人型の3Dモデルにボーンを入れるのは、手作業でやると結構大変です。Blenderにはアーマチュアと呼ばれる人型のボーンが用意されており、これを使えば簡単に人型のボーンを入れることが出来るようになります。
簡単なはず・・・なのですが、最初にやろうとすると手順が多くて大変だったりします(笑)この記事では、ハマリポイントも合わせて、ボーンの入れ方からUnityのAnimatorで動かすまでの流れを説明します。
Rigfyを使わずにボーンを入れる手順はこちらの記事で説明しているので、スクラッチでボーンを入れたい方はあわせて参考にして下さい。
nn-hokuson.hatenablog.com
Rigifyの有効化
まずはRigifyが使えるようにAddonを有効化します。
メニューバーから「ファイル」→「ユーザー設定」→「アドオン」と選択し、「Rigging:Rigify」の右側のチェックボックスにチェックを入れてください。
アーマチュアの設定
自分の作成したモデルをロードし、人型のアーマチュアを設定しましょう。「Shift+A」→「アーマチュア」→「Human」を選択して下さい。
すると、下図のような人型のボーンが作られます。
この人形のボーンをmeta rigといいます。これを自分の作った3Dモデルにフィットするように移動・回転・拡大縮小してください。
注意:メタリグはポーズモードではなく、編集モードで編集してください
モデルとリグを関連付けましょう。「モデル→「リグ」の順番に選択して、「Ctrl+P」で「自動のウエイト」を選択します。順番が大切です!
これで、リグを動かすとモデルも動くようになりました!(おい・・・)
ちなみに、「自動のウエイト」を選択したときに「ボーンヒートウェイト:一つ以上のボーンで解決に失敗しました」というエラーが出ることがあります。その場合は次の記事を参考にしてみて下さい。
Blenderで書き出しUnityにインポートする
Blenderで作ったモデルをUnityにインポートしましょう。メニューから「ファイル」→「エクスポート」→「fbx」を選択します。
続いて作成したfbxファイルをUnityにドラッグ&ドロップしてインポートします。
インスペクタから「Rig」→「Animation Type」を「Humanoid」に設定して「Apply」ボタンを押してください。
configureボタンを押して正しくボーンが対応付けられているかを確認します。全身が緑色のおじさんになっていたら成功です。
緑色のおじさんの右上のタブ「Muscles&Settings」を押すと、正しくボーンが設定されているかをアニメーションとともに確認することができます。
Animatorでアニメーションを再生する
今回のアニメーションはUnity-chanについてくるアニメーションを利用しましょう。ジャンプや走りなど一通りのアニメーションが揃っているため便利です。ユニティちゃんのアセットはこちらからインポートしてください。
作成した人形のファイルをシーンビューに配置します。続けて、プロジェクトビューで右クリックし「Create」→「Animator Controller」を選択してManControllerを作成します。作成したAnimator ControllerをAnimatorコンポーネントにセットしてください。
続いて今作ったAnimatorを編集していきます。ダブルクリックするとAnimatorエディタが開くので、走るアニメーション用に新しいステートを作ります。右クリックで「Create State」→「Empty」を選択してください。
作成したNew Stateのパラメータをインスペクタから設定します。名前をRunに変更し、Motionの欄は「RUN00_F」を選択します。このRUN00_Fがユニティちゃんのアセットに含まれているアニメーションファイルです。
再生ボタンを押すと、モデルが走りだしました!
まとめ
最初は、ものすごく長い工程に感じるかもしれませんが、実際には次の3工程を行っているだけです。
- Blenderでボーンを入れる
- Unityでボーンを認識させる
- Animatorの設定をする
慣れれば簡単なのですぐにできるようになりますよ☆