今回は3Dキャラクターを簡単な設定だけで作る事が出来る無料ソフトMakeHumanを使って人型キャラクターを作成し、Unityに取り込んで使用してみました。
上記サイトからDownload出来ます。今回使用したMakeHumanのVersionは1.0.2と1.1.1です。
Make Humanを起動したらSettingでLanguageをJapaneseにしてMake Humanを再起動すれば日本語になります。
MakeHumanでキャラクターを作り、ファイルを出力
とりあえず設定をして3Dオブジェクトを作成し、Unityで取り込んでみます。
ジオメトリーで服や靴を選択し、サンプルが着替えをしたのを確認します。
ポーズ/アニメーションのタブでバージョンが1.0.2の時はhumanik.json、バージョンが1.1.1の時はGame engineを選択します。
Unityで取り込んでAnimation TypeをHumanoid型にする場合はこれらのボーンが合ってるみたいで、他のだとうまくいきませんでした(ボーンの割り当てをする必要が出てきます)。
最後に作成した3Dキャラクターを出力します。
エクスポートタブを選択し、メッシュフォーマットはFilmbox(fbx)、単位をデシメートルにします。
デシメートルだとUnityで取り込んだ時にちょうどいい大きさになっています。
オブジェクトの出力先はエクスポートボタンの左にある「・・・」をクリックし、変更してください。
エクスポートボタンを押すと出力されます。
今回はわかりやすいようにデスクトップに出力します。
Unityにキャラクターを取り込む
Unityを起動したら、オブジェクトファイルをUnityのProjectウインドウのAssetsフォルダにドラッグ&ドロップします。
そうするとUnityにファイルがインポートされます。
もしくはUnityのメニューのAssets→Import NewAssetsでデスクトップにある3Dキャラクターを指定します。
取り込んだ3Dキャラクター(人型)をUnityで使う為の設定
次に3Dキャラクターを人型として扱う為にインポートしたキャラクタを選択し、インスペクタ上のRigを選択します。
Animation TypeをHumanoidにしConfigureをクリックします。
ポップアップで出るウインドウではSave→Applyを選択します。
ヒエラルキー(階層)が表示されるのでDoneをクリックします。
取り込んだキャラクターはテクスチャが取り込まれていないのでテクスチャを取り込みます。
MakeHumanでモデルを出力した先にtexturesというフォルダが作られその中にモデルのテクスチャが出力されますので、UnityのAssetsフォルダの人型モデルと同じフォルダにtexturesフォルダをドラッグ&ドロップしインポートします。
その後、人型モデルを選択しMaterialsタブのOn Demand RemapのSearchでLocal Materials Folderを選択し、Search And Remapボタンを押します(Unityのバージョンによって多少やり方が変わります)。
すると人型モデルのマテリアル名と同じテクスチャがマテリアルに設定されます。
オブジェクトの取り込みと設定が完了したので、実際にシーンに配置して動かしてみます。
取り込んだ3Dキャラクターにコンポーネントを追加し動かしてみる
「masasi」君に設定しているコンポーネントのCharacter ControllerとMoveスクリプトをコピーし取り込んだmakehumanのゲームオブジェクトにペーストします。
コンポーネントは名前の辺りで右クリックしCopy Componentを選んで、ペースト先のインスペクタ上の他のコンポーネントの名前辺りで右クリック→Paste Component As Newとするとペースト出来ます。
間違ってRemove Componentを選択しないように気を付けてください。
「masasi」君なんて知らんぞ!!という方は
をご覧いただくと「masasi」君の事が解ります(^O^)/
ではなくて・・・・CharacterControllerとキャラクターを移動させるMoveについて記述しています。(._.)
Animator Controllerには「masasi」君と同じmasasiを選択し、Apply Root Motionのチェックを外します。
Apply Root Motionのチェックが入っているとアニメーションの動きがTransformに反映されてしまいます。
Character Controllerのコライダ(当たり判定範囲)を調整し、Unityの実行ボタンを押してください。
以前の機能を作るのが面倒な方はスタンダードアセットをアセットストアからインポートし、ThirdPersonControllerのプレハブと同じようにThirdPersonCharacterとThirdPersonUserControlコンポーネントを取り付けて試してみてください。
CapsuleColliderが自動で取り付けられるのでコライダのサイズも調整してください。
簡単なやり方としてはThirdPersonControllerプレハブをヒエラルキー上に配置しコンポーネント右の歯車からCopy Componentを選択し、ヒエラルキー上のMakeHumanで作ったキャラクターのインスペクタのどれかのコンポーネントの右の歯車からPaste Component As Newを選択しコピーします。
上の画面のようにMakeHumanで作ったキャラクターが「masasi」君と同じように動く事が確認出来ます。
これでMake Humanで3Dキャラクターを作り、Unityに取り込んで動かす事が出来ました。
MakeHuman→Unityに取り込む意図
今回Make Humanを使ったのはこれでメインキャラを作るという意図ではなく、人型のオブジェクトを出力して、blenderというソフトでアニメーションを付けてアニメーションデータを出力、それをUnityで取り込んでそのアニメーションを使用する。
という事をやりたい為です。
アニメーションを作るには
MakeHumanのキャラクターを使う場合は
も参考にしてください。