おもちゃラボ

Unityで遊びを作ってます

【Unity】Blenderで人型のボーンを入れて、Animatorで走るアニメを再生する

人型の3Dモデルにボーンを入れるのは、手作業でやると結構大変です。Blenderにはアーマチュアと呼ばれる人型のボーンが用意されており、これを使えば簡単に人型のボーンを入れることが出来るようになります。

f:id:nn_hokuson:20170420201957j:plain

簡単なはず・・・なのですが、最初にやろうとすると手順が多くて大変だったりします(笑)この記事では、ハマリポイントも合わせて、ボーンの入れ方からUnityのAnimatorで動かすまでの流れを説明します。

Rigfyを使わずにボーンを入れる手順はこちらの記事で説明しているので、スクラッチでボーンを入れたい方はあわせて参考にして下さい。
nn-hokuson.hatenablog.com

Rigifyの有効化

まずはRigifyが使えるようにAddonを有効化します。
メニューバーから「ファイル」→「ユーザー設定」→「アドオン」と選択し、「Rigging:Rigify」の右側のチェックボックスにチェックを入れてください。

f:id:nn_hokuson:20170420194705p:plain:w400

アーマチュアの設定

自分の作成したモデルをロードし、人型のアーマチュアを設定しましょう。「Shift+A」→「アーマチュア」→「Human」を選択して下さい。

f:id:nn_hokuson:20170420194720p:plain:w400

すると、下図のような人型のボーンが作られます。

f:id:nn_hokuson:20170420194725p:plain:w450

この人形のボーンをmeta rigといいます。これを自分の作った3Dモデルにフィットするように移動・回転・拡大縮小してください。

f:id:nn_hokuson:20170420194757p:plain:w450

注意:メタリグはポーズモードではなく、編集モードで編集してください

モデルとリグを関連付けましょう。「モデル→「リグ」の順番に選択して、「Ctrl+P」で「自動のウエイト」を選択します。順番が大切です!

f:id:nn_hokuson:20170420194841g:plain

これで、リグを動かすとモデルも動くようになりました!(おい・・・)

f:id:nn_hokuson:20170420201537g:plain

ちなみに、「自動のウエイト」を選択したときに「ボーンヒートウェイト:一つ以上のボーンで解決に失敗しました」というエラーが出ることがあります。その場合は次の記事を参考にしてみて下さい。

nn-hokuson.hatenablog.com

Blenderで書き出しUnityにインポートする

Blenderで作ったモデルをUnityにインポートしましょう。メニューから「ファイル」→「エクスポート」→「fbx」を選択します。

f:id:nn_hokuson:20170420194917p:plain:w400

続いて作成したfbxファイルをUnityにドラッグ&ドロップしてインポートします。
インスペクタから「Rig」→「Animation Type」を「Humanoid」に設定して「Apply」ボタンを押してください。

f:id:nn_hokuson:20170420194926g:plain

configureボタンを押して正しくボーンが対応付けられているかを確認します。全身が緑色のおじさんになっていたら成功です。

f:id:nn_hokuson:20170420194952p:plain:w200

緑色のおじさんの右上のタブ「Muscles&Settings」を押すと、正しくボーンが設定されているかをアニメーションとともに確認することができます。

f:id:nn_hokuson:20170420195007g:plain

Animatorでアニメーションを再生する

今回のアニメーションはUnity-chanについてくるアニメーションを利用しましょう。ジャンプや走りなど一通りのアニメーションが揃っているため便利です。ユニティちゃんのアセットはこちらからインポートしてください。
f:id:nn_hokuson:20170420200539j:plain:w500

作成した人形のファイルをシーンビューに配置します。続けて、プロジェクトビューで右クリックし「Create」→「Animator Controller」を選択してManControllerを作成します。作成したAnimator ControllerをAnimatorコンポーネントにセットしてください。

f:id:nn_hokuson:20170420195349j:plain:w550

続いて今作ったAnimatorを編集していきます。ダブルクリックするとAnimatorエディタが開くので、走るアニメーション用に新しいステートを作ります。右クリックで「Create State」→「Empty」を選択してください。

f:id:nn_hokuson:20170420195118p:plain:w350

作成したNew Stateのパラメータをインスペクタから設定します。名前をRunに変更し、Motionの欄は「RUN00_F」を選択します。このRUN00_Fがユニティちゃんのアセットに含まれているアニメーションファイルです。

f:id:nn_hokuson:20170420195127p:plain:w250

再生ボタンを押すと、モデルが走りだしました!

f:id:nn_hokuson:20170420195135g:plain

まとめ

最初は、ものすごく長い工程に感じるかもしれませんが、実際には次の3工程を行っているだけです。

  1. Blenderでボーンを入れる
  2. Unityでボーンを認識させる
  3. Animatorの設定をする

慣れれば簡単なのですぐにできるようになりますよ☆

[asin:B091KQFSRC:detail]