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

SkeletonModificationStack3D several issues #67230

Closed
Dabnabbit opened this issue Oct 11, 2022 · 3 comments
Closed

SkeletonModificationStack3D several issues #67230

Dabnabbit opened this issue Oct 11, 2022 · 3 comments

Comments

@Dabnabbit
Copy link

Dabnabbit commented Oct 11, 2022

Godot version

4.0.beta2

System information

Windows 11, RTX 3070TI, GLES3

Issue description

There are a large number of constraint bugs and issues with the SkeletonModificationStack3D currently.

First and foremost the entire ModificationStack must be disabled and re-enabled to update, and has to be done after every tweak or modification to correct calculations and deformations of the skeleton.

Specifically the SkeletonModification3DJiggle modifier seems to occasionally displace bone lengths when applied. Still trying to iron out which bones and why, but it seems consistent in the ones that it has errors on. The effect works correctly, however, on some bones it moves the location of the bone to it's parent bone origin.

Video.mp4

Also a really nice missing feature in this stack would be an orientation control, to copy transforms from a target object to the bone object, it's nice to have the IK and the "LookAt" constraints, but they really need the copyorientation constraint to really let the IK work properly.

Steps to reproduce

Open grass_hopper_leg scene, select the GeneralSkeleton node, navigate to the ModificationStack, toggle Element0 (JiggleBone) and watch Leg2_3.R magically move to the origin of Leg2_2.R. Also notice that skeleton does not update properly without toggling entire stack on and off to reset.

Minimal reproduction project

IKTestProject.zip

No response

@fire
Copy link
Member

fire commented Oct 11, 2022

@lyuma #63588 (comment)

@Dabnabbit
Copy link
Author

Dabnabbit commented Oct 11, 2022

@fire Thanks for the response! Reading through all the stuff going back to 2020 you seem to be pretty heavily involved in these matters, and I appreciate your efforts tremendously! My only question, possibly as a bit of a Git noob, is what does that imply for these issues? I see a lot of mentions of skeleton modifier deprecation and some kind of new node structure, but haven't seen anything like that 4.0.beta2, is this in an unpublished branch? If I plan on utilizing IK and other constraints with Godot should I be looking to utilize another custom build of Godot?
[edit: I might be an idiot, I just realized there is in fact a SkeletonIk3d node... I looked everywhere for this a few days ago I have no idea how I didn't find it]

@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.

SkeletonIK3D remains in 4.0 and 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.

@lyuma lyuma closed this as not planned Won't fix, can't repro, duplicate, stale Jan 14, 2023
@akien-mga akien-mga added this to the 4.0 milestone Jan 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants