前提・実現したいこと
有料のSmartRig Bipedというアセットを購入したのですが、
そのアセットはHumanoidのキャラクタモデルでないと対応していないとのことで、
他で購入したキャラクタモデルのアセットを適用させることを試みているのですが、
そのキャラクタモデルには、既にAnimatorコンポーネントがセットされているプレハブ版と、FBX版があり、
プレハブ版のほうで適用を試みているのですが、エラーが発生し、そもそもこれはHumanoidなのかどうかということを知りたいのですが、
どのようにすれば確認できますか?
ご教示お願いします。
試したこと
FBXの方であれば、インポート時にRigでHumanoidを設定してインポートできることは知っています。
もし、解決しなかったら、FBXの方で試すしかないとは思っているのですが、
まずは、プレハブのほうで確認できたらと思います。
プレハブの方で試してみたい理由は、既にAnimatorコンポーネントがアタッチされていたり、LODの設定がされていたりと、
いろいろと設定が施されているためです。
「Humanoid 確認」などで検索すると、インポート時にHumanoidにセットする方法は見つかるのですが、
既にセットし終わったモデルに対しては、Rigが何に設定されているか確認する方法が見つかりませんでした。
ちなみに、当該モデルの[Animator]パネルの[Base Layer]において、
設定から[IK Pass]にチェックを入れることができたのですが、
「[IK Pass]にチェックを入れられるのは、Humanoidのみ」ということはないですか?
アセットのドキュメントを読むと、明言はしていないのですが、[IK Pass]にチェックを入れられるのは、
Humanoidのみというように受け取れるようなことが書かれていました(勘違いかもしれません)。
また、当該モデルというのは、動物の熊のアセットなのですが、アニメーションによっては、
直立で立ったりもできるので、Humanoidなのかなんなのか不明と言った状況です。
また、有料アセットなのでコードを記載するのは望ましくないですが、ごく一部の
エラーが起こった箇所付近で取ったログ周辺のコードを記載させていただきますと、
C#
1 hip_trans = animator.GetBoneTransform(HumanBodyBones.Hips); 2 spine_trans = animator.GetBoneTransform(HumanBodyBones.Spine); 3 Debug.Log(animator); 4 Debug.Log(hip_trans); 5 Debug.Log(spine_trans);
のログが、
C#
1Bear_ PBR (UnityEngine.Animator) 2Null 3Null
でした。ボーンが取得できない(Null)のエラーかと思うのですが、これはHumanoidでないからなのでしょうか?
当該モデルの熊オブジェクトの構造は以下です。
子オブジェクトのインスペクタをいろいろと見たのですが、なにがボーンに該当するのか、Humanoidなのかどうかといったことなどがわかりませんでした。
追記
FBXファイルをHumanoidに設定することで、SmartRig Bipedのアセットが機能することが確認できました。
アニメーションもHumanoidに設定することを試みました。
RigをHumanoidに設定し、下記2つのパターンを設定して、[Apply]で適用してみました。
[Avatar Definition] → [Create From This Model] [Avatar Definition] → [Copy From Other Avatar]
[Copy From Other Avatar]に設定した際は、[Source]に上記画像の赤線で囲ったAvatarをセットしました。
しかし、2つのパターンどちらでもアニメーションが正しく動かなかったです(熊の姿勢が変だったり、アニメーションが正しく動かなかったです)。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/08/13 19:15
2020/08/14 00:12
退会済みユーザー
2020/08/14 02:53