以下の内容はhttps://marumaro7.hatenablog.com/entry/getbonetransformより取得しました。


【Unity】Humanoid型で設定されたボーンを取得して回転させる GetBoneTransform

はじめに

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]

f:id:marumaro7:20220307060511p:plain

注意

アニメーション実行中はボーンの操作ができません。
簡易的に試すならAnimatorコンポーネントをオフにすることで動かすことができます。

参考

www.hanachiru-blog.com

kan-kikuchi.hatenablog.com

docs.unity3d.com

docs.unity3d.com




以上の内容はhttps://marumaro7.hatenablog.com/entry/getbonetransformより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14