はじめに
どうも、バッテラです。
これまで3Dに対して苦手意識があり避けていたのですが、そろそろ腰を据えて向き合う時かなと思いましたので、人体モデルに走るモーションをつけるまでを学習しましたので手順を共有したいと思います。
- はじめに
- キャラクターをダウンロードする
- キャラクターをUnityにインポートする
- マテリアルの調整
- モーションをダウンロード
- モーションをUnityにインポート
- キャラクターにモーションをセットする
キャラクターをダウンロードする
AssetStoreにあるモデルを使うと何もせずに終わってしまい学習にならないので、それ以外で確保していきます。
とりあえず人型モデルであればなんでもいいです。
なので今回はTurboSquidというサイトから3Dキャラクターをダウンロードしてみます。
TurboSquidについては以下の記事で解説しています。
たぶん人型であろうこのキャラクターをダウンロードしてみます。
このサイトでダウンロードできるFBXファイルにはテクスチャが含まれていないので、FBXとは別にテクスチャファイルもダウンロードする必要があります。
基本的にはFBXとテクスチャは2つを1セットとして覚えておきましょう!
キャラクターをUnityにインポートする
それでは入手したモデルとテクスチャをUnityに取り込みましょう。
FBXとテクスチャをUnityにドラッグ&ドロップでインポートするだけです。
こっからが結構重要です!
記事の後半で実装するモーション(アニメーション)でHumanoidAvatarが必要になってきます。
HumanoidAvatarについては以下で解説しています。
ということでHumanoidAvatarを作っていきます。
リギングしてHumanoidAvatarを作る
FBXファイルを選択し「Rig」タブを開きましょう。
[Animation Type]がGenericになっているのでHumanoidに変更しApplyをクリック。
そうするとこのような緑の人型のアイコンが表示されますがこれがHumanoidAvatarです。
これでモデルのヒューマノイド設定は完了です。
モデルに含まれるモーションを使わない
モデルによってはメッシュに加えてモーションデータも含まれてることがあります。サンプル用とかね。
今回はモーションは別で用意したものを使うので不要ですが、Unityでは自動でモーションをインポートするようになってしまっているので使用しないのであればインポートしないようにしましょう。
※不要にインポートしてエラーになることがたまにありますので・・・
インポートをオフするには、
FBXファイルを選択し「Animation」タブを開き[Import Animation]のチェックを外しApplyをしましょう。
マテリアルの調整
キャラモデルのFBXであれば大体マテリアルもセットで含まれていると思います。デフォルトではFBX内にあるマテリアルを使うようになっています。
しかし、このように正しく表示されない部位もあったります。
原因としてはBlenderなどのモデリングソフトで作ったマテリアル情報を全部Unityに引き継ぐことができないからです。
このモデルはBlenderファイルも存在していたので確認してみると、テクスチャの[ブレンドモード]が[アルファクリップ]になっていました。
しかし、インポートした時のマテリアルには Standard
のシェーダーが割り当てられています。
Blender
でいうブレンドモードに相当するRenderingMode
がOpaque
に固定されています。ちなみにOpaque
は不透明(アルファなし)という意味です。
正しく表示するにはRenderingMode
をCutoff
にしないといけません。
モデルに内包されているマテリアルを書きかえたい場合は以下の記事を参考にしてね。
モーションをダウンロード
mixamoというモーションを配布しているサービスがあるのでそちらを使っていこうと思います。
AdobeIDがあれば全て無料で使うことができます。
mixamoでモーションを探す
モデルとモーションの2種類ダウンロードできますが、今回モーションだけを使っていきます。
モーションはAnimations
タブにあります。
画面左側にはこのようにモーションのサンプルが表示されます。
キーワードで検索もできるので欲しいモーション名を入れると見つけやすくなります。
mixamoでモーションをダウンロードする
好きなモーションが見つかったらサムネをクリックして右画面を確認します。
スライダーをいじるとアニメーションの調整ができます。この辺は本筋と関係ないのでまたの別の機会に解説します。
最後にダウンロードする方法についてです。
Downloadをクリックすると設定画面が表示されます。
使用環境によってここを調整する必要があるようです。Unityで使う場合は以下のようにしてください。
Formatは 「FBX for Unity(.fbx)」
Skinは「With Skin」 を選びます。
他はそのままでいいと思います。
設定を変えたらDownloadをクリックします。これでダウンロードができます。
モーションをUnityにインポート
モーションのFBXファイルをAssetsにドラッグアンドドロップします。
モデルと同じように Animation Type
を Humanoid
に変更します。
FBXファイルの矢印をクリックするとモーションが入ってるのが分かります。
キャラクターにモーションをセットする
AnimatorControllerを作る
モーション単体では動作はしないのでAnimatorController
が必要となります。
Create
メニューからAnimatorController
を作ります。
ファイルをダブルクリックすると専用エディタが表示されます。
ここでモーションを登録していきます。
モーションをドラッグアンドドロップすることで簡単に登録できます。
キャラにAnimatorをアタッチ
キャラクターのゲームオブジェクトにAnimatorController
をドラッグ&ドロップします。
そうすると自動でAnimatorというコンポーネントがアタッチされます。
Animator
とAnimatorController
はセットで使うものだと覚えておきましょう。
そしてAvatar
にキャラモデルのHumanoidAvatarをセットします。
これで再生してみると・・・
一瞬で止まりましたね。。
mixamoのプレビューだと歩き続けていましたがインポートするとショット(単発)になってますね。
歩くとか走るといったモーションは基本ループして使うと思いますよね?
ループにするには、モーションの[Animation]タブを開きます。
そして [Loop Time] にチェックを入れます。 Applyを押して反映します。
これで実行してみると・・・
おぉー、いい感じに歩くモーションがつけられましたね。
これで完成です。お疲れ様でした〜。