对于具有相同骨骼结构的不同骨架,如何使用同一套动画
- 已编辑
Thank you for the simplified project. The first thing we will do is delete everything that doesn't affect the problem, so I appreciate that you have done that.
The problem is here, the constraint 图像因不支持 HTTPS 被隐藏。 | 仍然显示[FIX]F-arm
:
When scale X and scale Y are different values, it is called non-uniform scale. This constraint applies non-uniform scale to bone F-arm
. The bone F-wrist
is a child so it inherits scale from its parent. That scale from the parent is applied in the direction of the parent. When F-wrist
points in the same direction as the parent, F-wrist
is scaled shorter. When F-wrist
is rotated 90 degrees from the parent, it is no longer shorter, it is instead made wider. As your IK target is moved, F-wrist
is rotated and the scale from the parent changes its length.
To fix it, use uniform scale, where scale X and scale Y have the same values: 图像因不支持 HTTPS 被隐藏。 | 仍然显示
With this, no matter what rotation F-wrist
has, it will always be the same length.
You probably want to use uniform scale in other areas. I also suggest turning off transform constraint mixes you don't need, eg rotation and shear.
I forgot to mention, my earlier project was saved with 4.2, so it won't open in 4.1. It's probably not useful now anyway.
Nate 就是这个导致的,我这边按照你的指点调整了以后也顺利解决了,非常感谢你和Misaki的耐心讲解,我学习到很多,感谢有你们的帮助!
Sure, we're glad to help!
It is a little unfortunate to need to disable inherit scale to change bone lengths for skins, and to have to introduce intermediary bones for attachments. We'll consider other ways to change the bone length. For it to be in the skin, it'd need to be a constraint.
Nate 之前提及的问题一切都解决的很顺利,等我们绑定完骨骼开始预览动画的时候,出现了新的问题。
我们发现通过变换约束缩放的骨骼在父节点旋转的时候,无法保持固定的相对位置,会随着旋转产生偏移量。
请关注下面图中肩膀的位置
这是通过普通的骨骼绑定产生的效果,也是我们期望得到的效果。
这是通过变换约束调整不同尺寸骨架绑定的效果,这种方式在旋转的过程中,产生了异常。
我们准备了一个工程文件,可以复现这个问题。在这个工程中,有两个骨架,分别命名为“Wrong”和“Correct”,他们一个表现正常,一个表现出了我上面所述的问题。
我们已经做了很多检查,不知道我们做错了什么,希望能得到帮助
- 已编辑
You mentioned before that it is recommended to turn off unnecessary transformation constraint blending. Even if the transformation constraint blending I currently enable does not take effect, will there be any additional overhead or other effects?
Yes, the transform constraint does extra work for rotation and shearY. Set the mixes to 0 for transform properties you don't need to affect.
Thank you for the reproduction Spine project. The behavior occurs because you are using the transform constraint in the world coordinate system. When doing that "up" is always toward the top of your monitor. When the bones rotate, moving the bones toward the top of your monitor becomes the wrong direction.
To fix it, check Local
. This moves the bones in their local coordinate system, where "up" is in relation to the parent bone. That way when everything rotates, the up direction also rotates, and the shoulder stays in the correct place in relation to the other bones and attachments.
After changing to Local
you likely need to reposition your bones.
Nate 感谢,这个很有帮助