Hello,
I have these spine animation which keyed position change in a pelvis like bone. And then I use a SkeletonRootMotion component to synchronize the x axis for unity's GameObject.
It works fine in most cases, but there're a few animations that behaves in a strange way like below:
as u can c, the Transform root doesn't follow the bone position (yao) that I use for root motion. the compnent settings are below:
Please tell what I have done wrong.
Let me know if further information is required to help.
Need help with root motion
It seems like you are experiencing issues with the SkeletonRootMotion
component not synchronizing correctly with the bone position in some animations. Based on the information provided, ensure that the bone hierarchy is set up correctly, with the root-motion bone being a direct child of the root and that it is the bone you are moving forward during animations. The SkeletonRootMotion
component should be configured to use this bone for root motion. If the root-motion bone is set up parallel to the actual skeleton, it might not affect the skeleton as expected, leading to discrepancies in movement. Additionally, make sure that the SkeletonRootMotion
component is correctly configured to apply movement along the X axis, and check if any constraints or scaling on parent bones might be affecting the root motion. If the issue persists, reviewing the setup in the Spine project for any inconsistencies or errors might be necessary.
@Hivon_P Sorry to hear you're having troubles. Which exact version of the spine-unity runtime (name of the unitypackage, also listed in Assets/Spine/version.txt
, or in the Package Manager) are you using?
Could you show your skeleton's bone hierarchy above and below your yao
rootmotion-bone (e.g. a screenshot of the Tree view in Spine).
@Hivon_P I would not ask for it if it were irrelevant.
The main question is whether your root-motion bone yao
has any local movement in relation to its parent bone (jue_all
), either via applied animations or via transform constraints. If that is not the case, no root motion movement will be picked up.
Harald I apologize if I sound rude.
And thank you for point out the problem. I think I misunderstand the concept of root motion, only local movement will be picked up, rather than relative position to the actual root bone. The animations I was provided with, some of them were moving by 'yao' , some were by 'jue_all', and some were combined. So is there a way I can use 'yao' as root motion bone relative to the actual root?
- Modifié
Hivon_P I apologize if I sound rude.
No need to apologize!
Hivon_P So is there a way I can use 'yao' as root motion bone relative to the actual root?
You can use a Transform Constraint to always let an additional root-motion
bone follow your yao
bone's location, and make this root-motion
a child of root
. This way your root-motion
bone follows the yao
bone but contains all (cumulated) movement itself, in relation to its parent.
Harald
Hi, I've tried the way you suggested, but the result isn't what I expecting. My goal is to find a way to root motion X position between unity's gameobject and the character body when ever there's animation moment applied to the body, and can stay at the new position when mixing to original pose. When I try this way, when animation applied, the root bone was driven away and the root-motion bone(a child bone of root bone which was transform constrainted to 'yao') stays still.
Hivon_P When I try this way, when animation applied, the root bone was driven away and the root-motion bone(a child bone of root bone which was transform constrainted to 'yao') stays still.
This is exactly what root motion is for, it subtracts motion from the root-motion bone and adds it to the GameObject Transform instead. Thus it effectively moves all other bones (including root
) back if root-motion
was moving forward in your animation. Or did you mean something else?
Harald
I ‘m sorry if I misexpress myself.
I do mean something else. The problem I had with this approach is that, the delta moment of the root motion bone didn’t apply to the GameObject, so the GameObject stays in the same world position along with the root motion bone whatever animation applied, while root bone is visually moving towards the opposite direction. Shouldn’t it be contrary?
Hivon_P Sorry I misunderstood you there. Could you please send us a minimal Unity project which still shows your issue? You can send it as a zip file to contact@esotericsoftware.com, briefly mentioning this forum thread URL so that we know the context. Then we can have a look at it.