-
-
Notifications
You must be signed in to change notification settings - Fork 21.5k
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
Fixed blending value track without RESET and TRS3D track with RESET #60235
Fixed blending value track without RESET and TRS3D track with RESET #60235
Conversation
8aec3b8
to
37002d5
Compare
37002d5
to
57d6a0d
Compare
57d6a0d
to
0fe723a
Compare
Can we discuss having the reset track override skeletal rest if it exists? |
@fire So what you mean is that if a RESET track is exist, the missing track will use the value of the RESET track instead Rest? At least, the 3D rotation should respect the REST and calculate the shortest path. It can be done if the exception handling by |
@fire Let's consider a use case. For example, a model imported as T-pose and posed to sit-down in a RESET track. Then, applying RESET to the missing track would change the result of the combined retargeting and blending, depending on the pose of the RESET track. Perhaps it will cause confusion. Ideally, we would like to have a RESET track in the Node instead of in the Animation, but that is a bit of an overstatement. Since non-3DSkeleton animations are generally not used across scenes and rarely apply animations to different objects, the RESET track can be used as a Rest. However, for 3DSkeletons which not so, I think that Rest should be respected. |
I mention this because GLTF files in the production do not provide t-pose rests most of the time. |
It is the T-poser's job in the Retarget/Import process to T-pose models that do not have a T-pose Rest, and it makes no sense to T-pose in RESET. It means that the 3D model will be loaded with the initial pose in T-pose when the scene is loaded. For example, some NPCs should have a T-pose rest, but it is not ideal for them to be loaded with T-pose. |
Makes sense. |
Thanks! |
Follow up #60093. I mistook value track blend process (in line 1328).
It may also be necessary to add an additional method to look for RESET track in multiple AnimationLiblaries. This will be added later.After discussions with reduz, it was concluded that the RESET track should be created by Godot and reside in Global.Skeleton3D already has Rest so it should not use the RESET track. The 3D model is basically imported with the T-pose as rest, and the RESET track should be used to determine the pose at load time for its intended pose. And if a track is missing from the blend animation, it should be use rest value, which is reasonable considering the Optimizer and Retargeter (in the future) behavior.