はじめに
Humanoid型のアバターで設定されているボーンを動かしたかったのでメモ
具体例
まずは左膝を回転させる具体例
//操作したいアバターに付けているのAnimatorコンポーネントを割り付け [SerializeField] private Animator anim; public void BoneRotateTest() { //トランスフォームコンポーネントの変数を宣言 Transform leftLowerLeg; //左膝に設定されているTransformを取得 leftLowerLeg = anim.GetBoneTransform(HumanBodyBones.LeftLowerLeg); //回転 leftLowerLeg.Rotate(new Vector3(0, 0, 60f)); }
詳細
指定したボーンのTransformコンポーネントは、
Animatorコンポーネントに入っている情報からGetBoneTransformで取得が可能です。
Animator.GetBoneTransform(指定したボーン);
指定のボーンはHumanBodyBonesの列挙型で指定することができます。
HumanBodyBones.対象部位
対象部位はこちらで確認するとわかりやすいです。
引用:
Unity Humanoid Avatarの解説 [VirtualCast]
注意
アニメーション実行中はボーンの操作ができません。
簡易的に試すならAnimatorコンポーネントをオフにすることで動かすことができます。