Blender→Unity→VR

標準

1.Blenderでキャラクタ作成。Unityに持ち込むことを考えると、ローポリが望ましいが、Rigfyを設定するには、細分化したモデルのほうがいいかもしれない(アニメーションをつけるにも)

なので、何段階かにわけて、Blenderデータを保存しておこう。

図は、Rigifyのジェネレータボタンを押して、使いやすいリグに直した状態。rigify01

2. モーションをつけるには、Rigifyをジェネレートしてからおこなったほうが便利(図は、ジェネレートしないまま手付けでモーションつけた)。作成したモーションは、ユーザーがない状態だと保存されないため、モーション名の隣にある、F(Fakeユーザー)ボタンを押しておく。

setsumei01

3.モデルとアーマチュアの両方を選択して、fbxで出力するが、Unityにもっていくと軸がずれるかもしれない。その場合は、下記注意事項4)を実施する。

1)Blenderでキャラクタ作成→Rigifyアドオンを使い、MetaRigとキャラクタをあわせる。
2)今回はジェネレートせずに、メッシュ→アーマチュアを選択し、自動ウェイトづけ。このときに細分化が必要かもしれないが、細分化アドオンは適用しないまま使う。
3)アーマチュアとメッシュのリンクが確認できたら、細分化アドオンは(適用せずに)削除する。
4)メッシュとアーマチュアの両方を選択してFBXで出力。(アーマチュアは回転x:-90で適用。さらにx:90,y:0,z:180回転。メッシュは回転x:-90になっているところをx:0に直して適用してからのほうが、Unity側で回転しなくていい)

4.Unity側には、インポートし、リグにhumanoid(人間型)を選ぶだけでほぼ大丈夫。

rigify-unity

5.Unity側でのアニメーション(mecanim)適用方法(C#スクリプト必要)

1)ヒエラルキーからアニメーションコントローラ作成。適当に名前をつける。
2)キャラクターに、アニメーターコンポーネントが追加されていることを確認(ない場合は、追加)。アバターには、キャラクタのアバターを設定。また、コントローラーには、上記1)のアニメーションコントローラを設定。
3)そのアニメーションコントローラをダブルクリックし、アニメータ設定ウィンドウを開く。
4)画面上で右クリック。新規ステートメント→Emptyを作成し、Moveなどの名前に変える。
5)キャラクタの歩くスピードによって、ウェイトポーズ→歩きモーション→走りモーションに変更したいので、パラメータに、Speed変数を追加(floatタイプ)。
6)4)で作成したステートメントを右クリックし、「ブレンドツリーをステートメント内に作成」を選択。
7)ダブルクリックすると、ブレンドツリー設定画面になるので、ブレンドしたいモーションを選択し、変数との関係を調整する。

キャラクタにメカニム設定までは、こちらの記事も参考になる(Shadeの記事ではあるが)
https://shade3d.jp/training/unity/tips_2.html

コメントは受け付けていません。