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

今回は3Dキャラクターを簡単な設定だけで作る事が出来る無料ソフトMakeHumanを使って人型キャラクターを作成し、Unityに取り込んで使用してみました。

www.makehumancommunity.org

上記サイトから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型にする場合はこれらのボーンが合ってるみたいで、他のだとうまくいきませんでした(ボーンの割り当てをする必要が出てきます)。

ボーンに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をクリックします。

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

取り込んだキャラクターはテクスチャが取り込まれていないのでテクスチャを取り込みます。

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」君なんて知らんぞ!!という方は

Unityでキャラクターを移動する為の準備と概要(スクリプトを書く前に)
Unityでキャラクターを移動させるスクリプトを書く前に準備しておく事と、移動させる為に必要な事を考えていきます。
Unityでキャラクターの移動をプログラミングしてみる
Unityで3Dキャラクターモデルを配置し、キャラクターをCharacterControllerの機能を使って移動させるようなプログラミングをしてみます。

をご覧いただくと「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キャラクターがちゃんと動くか確認する

上の画面のようにMakeHumanで作ったキャラクターが「masasi」君と同じように動く事が確認出来ます。

これでMake Humanで3Dキャラクターを作り、Unityに取り込んで動かす事が出来ました。

MakeHuman→Unityに取り込む意図

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

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

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

Blenderを使ってUnityで使うアニメーションを作成する
Unityで使用するキャラクター用のアニメーションをBlenderを使って作成していきます。作成方法を学べば自分のゲームに自作のアニメーションを使うことが出来ます。

MakeHumanのキャラクターを使う場合は

Blender2.76bにMakeHumanデータの取り込みとUnityへのインポート1
人型キャラクター作成ソフトMakeHumanで作成したキャラクターを3DCG作成ソフトBlenderへの取り込み方と出力、それからUnityへと取り込む方法

も参考にしてください。

コメント

タイトルとURLをコピーしました