- Home /
How to change the axis of bone of humanoid model?
I am using Ethan in standard asset and I found that the axis of arm is not pointing to elbow.
How should the model or scripts be changed to achieve the objective?
(Actually, what I want to do is rotating along the bone...)
Answer by Cherno · Apr 27, 2015 at 12:13 AM
I had this problem too, and after a lot of research and trai land (t)error, I have come to the conclusion that it's not possible to change the axis orientation of a bone... At least not in 3D Studio Max. Maybe your 3D modelling application has such a feature, but I highly doubt it. Anyway, there are ways around the issues that come with this limitation (namely that the bone rotation gets screwed up when using LookAt and similar rotation functions):
If a bone will be used with LookAt etc., define a rotation offset for it's eulerangles:
public Transform torsoPivotBone;
public Vector3 torsoBoneLookAtOffset = new Vector3(0f, -90f, -100f);
And to use LookAt:
void LateUpdate() {
torsoPivotBone.LookAt(aimingTargetPos); torsoPivotBone.Rotate(torsoBoneLookAtOffset);
}
torsoPivotBone being a bone Transform that controls the upper body, for example (like, one of the spine /chest bones).
What it does? LateUpdate() gets called after rotation and movement caused by animations take effect, so it's here where we can alter the bone's transform. So first we make it look at a target position (which by itself would, depending on the pivot orientation, result in very weird behaviour), and then apply our offset angles so it faces the right way after all.
Another way (which will not work as well with animations) is to temporarily re-parent the bone to a helper object that faces the right way and is rotated instead.
Your answer
Follow this Question
Related Questions
How Can I animate an humanoid model and integrate it in an android app? 1 Answer
MMD How to export model and animations to Unity as 3rd person controller? 2 Answers
Why extra/additional bones don't work with @ animation pipeline? 0 Answers
URP vs Built-in Humanoid Model 0 Answers
Attaching a Model to a prefab at runtime 0 Answers