質問: animator.GetBoneTransform(HumanBodyBones.Spine); Debug.Log(animator); Debug.Log(hip_trans); Debug.Log(spine_trans); ``` のログが、 ``` Bear_ PBR (UnityEngine.Animator) Null Null ``` でした。ボーンが取得できない(Null)のエラーかと思うのですが、これはHumanoidでないからなのでしょうか? 当該モデルの熊オブジェクトの構造は以下です。 子オブジェクトのインスペクタをいろいろと見たのですが、なにがボーンに該当するのか、Humanoidなのかどうかといったことなどがわかりませんでした。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/573d62baf244b314115b9154e0a359a0.png) ### 追記 FBXファイルをHumanoidに設定することで、SmartRig Bipedのアセットが機能することが確認できました。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/099e29d6a31b3cd105199d1607ca28ba.png) アニメーションもHumanoidに設定することを試みました。 RigをHumanoidに設定し、下記2つのパターンを設定して、[Apply]で適用してみました。 ``` [Avatar Definition] → [Create From This Model] [Avatar Definition] → [Copy From Other Avatar] ``` [Copy From Other Avatar]に設定した際は、[Source]に上記画像の赤線で囲ったAvatarをセットしました。 しかし、2つのパターンどちらでもアニメーションが正しく動かなかったです(熊の姿勢が変だったり、アニメーションが正しく動かなかったです)。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/958a5b0dd61f191ef00f0f6b82d83753.png)
回答: ヒエラルキーの「root」以下がボーンの役割をするオブジェクト群だろうと思いますが、名前がなんだかHumanoidっぽくないので望みは薄そうですね... `animator`のisHumanはどうなっているでしょうか? あるいはAvatar欄の「BearAvatar」と表示されている部分をクリックすると、プロジェクト中の該当するアバターアセットが強調表示されるはずですが、それを選択してインスペクターに情報を表示させるとどうなっているでしょうか。もしHumanoidかつ編集可能なら「Configure Avatar」ボタンが表示され、そうでなければ何も情報が表示されずまっさらかと思います。 「IK Pass」にチェックを入れられるかどうかではおそらく判断できないかと思います。ちょっと試した限りではAnimator Controller側はアバターがHumanoidかGenericかを気にしていない様子で、GenericアバターをセットしたAnimatorにIK PassをオンにしたAnimator Controllerをセットすることもできました。ですが一緒にアタッチしたスクリプトにOnAnimatorIKメッセージは送られず、IKで手や頭を操作することはできませんでした。