Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

All inverse kinematic options in Godot 4 seem broken #69752

Closed
Jamsers opened this issue Dec 8, 2022 · 10 comments
Closed

All inverse kinematic options in Godot 4 seem broken #69752

Jamsers opened this issue Dec 8, 2022 · 10 comments

Comments

@Jamsers
Copy link

Jamsers commented Dec 8, 2022

Godot version

4.0.beta7.official

System information

Windows 11 22H2, GTX 1650 Mobile, NVIDIA Driver 527.37, Vulkan

Issue description

Each inverse kinematic option in Godot 4 seems broken in its own peculiar way.

Ikissue.Debug.2022-12-08.16-10-10.mp4

CCDIK behaves the best, but at certain angles (when the body is leaning back in the video) it seems unable to integrate towards the target. I am also unable to set joint limits because any values lock up the integration, leaving it snapping at extreme angles.

FABRIK is utterly broken. I cannot even begin to explain what is happening in the video.

TwoBoneIK seems to make the beginning of the chain stuck at the skeleton root/origin. There are rotation issues in the video but I cannot confirm if this is due to the too large distance between chain beginning and IK target or an inherent issue in the integration itself.

Steps to reproduce

Create a basic humanoid rig.
Set up IK chains for its limbs in Skeleton3D. (Skeleton3D -> Modification Stack -> SkeletonModification3DCCDIK/FABRIK/TwoBoneIK)
Enable SkeletonModification while animation is playing.

Minimal reproduction project

IKIssue.zip
Minimal reproduction project includes source .blend file.

@Chaosus Chaosus added this to the 4.0 milestone Dec 8, 2022
@TokageItLab TokageItLab moved this to To Assess in 4.x Priority Issues Dec 8, 2022
@Chaosus Chaosus moved this from To Assess to Todo in 4.x Priority Issues Dec 8, 2022
@VVishion
Copy link

TwoBoneIK seems to swallow the bone before the first IK bone

@dszhblx
Copy link

dszhblx commented Jan 4, 2023

Need a woking IK system in Godot 4.0
Anyone fixing it?

@realkotob
Copy link
Contributor

realkotob commented Jan 4, 2023

@dszhblx Yes, see #70887

@fire
Copy link
Member

fire commented Jan 4, 2023

I am investigating this issue.

Can this sample project be licensed MIT so I can put it on github as opensource?

The blend file is rotated 180 and there are no end bones, so I don't know the location of the hands, legs or the head. Typically there's fingers or a "toe".

Bone rolls are not point head to child.

@fire
Copy link
Member

fire commented Jan 4, 2023

Outdated, will post new work

Having some trouble getting the correct ik targets.

2023-01-04_12-45-30.mp4

Note that I haven't correctly defined the constraints on the UpperLeg here, so it jumps.

The IK targets in your example are decompose into like multiple position nodes.

The solver I'm working on expects rotation and position.

Using this animation file.

many_bone_ik_humanoid_profile_animation_ik.zip

@dszhblx
Copy link

dszhblx commented Jan 5, 2023

@dszhblx Yes, see #70887

Many bone IK is awesome! But it seems like godot 4.0 will not include it? #70887 PR is under milestone 4.x.

@Jamsers
Copy link
Author

Jamsers commented Jan 5, 2023

Hi @fire, here's the MIT licensed minimal repro project in case you still need it
IKIssue.zip

@warriormaster12
Copy link
Contributor

@dszhblx Yes, see #70887

Many bone IK is awesome! But it seems like godot 4.0 will not include it? #70887 PR is under milestone 4.x.

That would suck cause at the moment Godot 4 doesn't have a working ik solution. I really need ik support for one of my projects.

@Calinou
Copy link
Member

Calinou commented Jan 8, 2023

That would suck cause at the moment Godot 4 doesn't have a working ik solution. I really need ik support for one of my projects.

See https://godotengine.org/article/release-management-4-0-and-beyond.

@lyuma
Copy link
Contributor

lyuma commented Jan 14, 2023

I have regrettably removed the SkeletonModificationStack3D for 4.0 in #71137 because we would not have time to get all the bugs working in time for 4.0. As noted in Calinou's article, this does not imply that the functionality is out of the question for a future 4.x, just that it didn't make the cut for the 4.0 point release itself.

I do intend to fix the known issues with SkeletonIK3D (the Node) in time for 4.0 to get it working as well as it was in 3.5

For now, there are modules made for Godot which can provide some IK functionality, including fire's many_bone_ik and RenIK which you can compile into the engine on your own, but we are unable to get them integrated in time for the 4.0 release, since feature freeze has already occurred.

Look forward to more IK and skeleton modifications available in Godot 4.1 or later.

I know this is hard to hear, but I will be closing this issue: the modification stack as you tested has been removed, and will not return in the same form. That said, I do hope to make sure Godot provides a way of performing these modifications in the future.

I have saved your example project and made note of this issue so when the time comes to add this functionality back into Godot, I will try and make sure the usecases in this MRP work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

No branches or pull requests

10 participants