MakeHuman1.0.2を使って3Dキャラクターを作り、Unityで取り込んで使う。

今回は3Dキャラクターを簡単な設定だけで作る事が出来る無料ソフトMakeHumanを使ってみました。

上記サイトからDownload出来ます。Versionは1.0.2(現在はバージョンアップしています)です。

Make Humanを起動したらSettingでLanguageをJapaneseにしてMake Humanを再起動すれば日本語になります。

スポンサーリンク

MakeHumanでキャラクターを作り、ファイルを出力

とりあえず設定をして3Dオブジェクトを作成し、Unityで取り込んでみます。
ジオメトリーで服や靴を選択し、サンプルが着替えをしたのを確認します。

サンプルキャラクターが服を着た事を確認する


ポーズ/アニメーションのタブでhumanik.jsonを選択します。
Unityで取り込むには今はこのボーンが合ってるみたいで、他のだとうまくいきませんでした。

ボーンにHumanik.jsonを設定する

makehumanファイルの出力設定をする

最後に作成した3Dキャラクターを出力します。

エクスポートタブを選択し、メッシュフォーマットはFilmbox(fbx)、単位をデシメートルにします。

デシメートルだとUnityで取り込んだ時にちょうどいい大きさになっています。

オブジェクトの出力先はエクスポートボタンの左にある「・・・」をクリックし、変更してください。
エクスポートボタンを押すと出力されます。

今回はわかりやすいようにデスクトップに出力します。

Unityにキャラクターを取り込む

Unityを起動したら、オブジェクトファイルをUnityのProjectウインドウのAssetsエリアにドラッグ&ドロップします。
そうするとUnityにファイルがインポートされます。
もしくはUnityのメニューのAssets→Import NewAssetsでデスクトップにある3Dキャラクターを指定します。

makehumanで作ったキャラクターをUnityに取り込む

取り込んだ3Dキャラクター(人型)をUnityで使う為の設定

次に3Dキャラクターを人型として扱う為にインポートしたキャラクタを選択し、インスペクタ上のRigを選択します。

Animation TypeをHumanoidにしConfigureをクリックします。
ポップアップで出るウインドウではSave→Applyを選択します。

アニメーションタイプをhumanoid型に設定する

ヒエラルキー(階層)が表示されるのでDoneをクリックします。

キャラクターにテクスチャを設定する

取り込んだキャラクターはTextureがうまく設定されていないので、キャラクターを選択し、インスペクタの、Material Namingで

From Model’s Materila
Model Name + Model’s Material

のどちらかを選択するとTextureが貼られます(貼られないかも・・・・)
うまく貼られない場合は手動でTextureの設定をしてください。

オブジェクトの取り込みと設定が完了したので、実際にシーンに配置して動かしてみます。

取り込んだ3Dキャラクターにコンポーネントを追加し動かしてみる

「masasi」君に設定しているコンポーネントのCharacter ControllerとMoveスクリプトをコピーし取り込んだmakehumanのゲームオブジェクトにペーストします。

コンポーネントは名前の辺りで右クリックしCopy Componentを選んで、ペースト先のインスペクタ上の他のコンポーネントの名前辺りで右クリック→Paste Component As Newとするとペースト出来ます。

間違ってRemove Componentを選択しないように気を付けてください。

「masasi」君なんて知らんぞ!!という方は

http://gametukurikata.com/program/prepare
http://gametukurikata.com/program/unityprogramming

をご覧いただくと「masasi」君の事が解ります(^O^)/
ではなくて・・・・CharacterControllerとキャラクターを移動させるMoveについて記述しています。(._.)

キャラクターを動かせるように設定する

Animator Controllerには「masasi」君と同じmasasiを選択し、Apply Root Motionのチェックを外します。

Apply Root Motionのチェックが入っているとアニメーションの動きがTransformに反映されてしまいます。

スクリプトでTransform(位置や回転)を操作したい場合はApply Root Motionのチェックは外します。
Character Controllerのコライダ(当たり判定範囲)を調整し、Unityの実行ボタンを押してください。

makehumanキャラクターがちゃんと動くか確認する

上の画面のようにMakeHumanで作ったキャラクターが「masasi」君と同じように動く事が確認出来ます。
これでMake Humanで3Dキャラクターを作り、Unityに取り込んで動かす事が出来ました。

他の3DCG作成ソフトなどで作ったキャラクターもボーンなどを設定すれば同じように取り込む事が出来ると思います。

MakeHuman→Unityに取り込む意図

今回Make Humanを使ったのはこれでメインキャラを作るという意図ではなく、人型のオブジェクトを出力して、blenderというソフトでアニメーションを付けてアニメーションデータを出力、それをUnityで取り込んでそのアニメーションを使用する。

という事をやりたい為です。

アニメーションを作るには

blender2.76を使ってUnityで使うアニメーションを作成する
Unityで使用するキャラクター用のアニメーションをBlenderを使って作成していきます。作成方法を学べば自分のゲームに自前のアニメーションを使うことが出来ます。
MakeHumanのキャラクターを使う場合は
blender2.76bにmakehumanデータの取り込みとUnityへのインポート1
人型キャラクター作成ソフトMakeHumanで作成したキャラクターを3DCG作成ソフトBlenderへの取り込み方と出力、それからUnityへと取り込む方法
も参考にしてください。