音無サノトの空想録

漫画を描き続けるのが人生の挑戦

【ゲーム制作】Blender でモデリングしたオブジェクトを Unity にインポートする

どうも音無サノトです(^^♪

ゲーム制作記事の続きになります。

前回までに障害物となるオブジェクトを Blender で作成しました。

 

otonasisanoto.hatenablog.com

 

 今回はこの作成したオブジェクトを Unity にインポートします。

f:id:otonasisanoto:20190525092146p:plain

前回制作したオブジェクト

 

 

対応するファイル形式の確認

まずオブジェクトをエクスポートする前に Blender と Unity それぞれで対応している3Dオブジェクトのフォーマットを確認します。フォーマットを合わせないと Blender 側でエクスポートしたところで Unity にインポートできなくなります。

 

それでは早速、確認してみます。

Blender はエクスポートできるファイル形式から、 Unity は公式マニュアルから調べました。

f:id:otonasisanoto:20190525092255p:plain

Blender 対応フォーマット

まとめますと下記の様になります。

Blender : .dae.fbx.3ds.obj、.abc、.ply、.x3d、.stl

Unity     : .dae.fbx.3ds.obj.dxf、.skp

 

赤字のところがどちらも対応しているフォーマットです。

一応フォーマットの勉強のため、共通しているものはサッと調べてみます。

後で使えそうな情報を表でメモしています。

フォーマット 概要
dae(Collada) XMLで記述されるフォーマット。
テクスチャやボーンにも対応とのこと。
元々はPS3PSP用に作られたらしい。
ROSのURDFでも使われている。
fbx Autodeskの代表フォーマット。
ポリゴン、モーションキー、シェイプ(モーフィング)、テクスチャ、
マテリアル、階層情報、IKなどの情報も受け渡し可。
テキストベースでの記述とバイナリバージョンがあるらしい。
3ds Autodesk 3ds Maxで使われるフォーマット。
シーン、モデリング、アニメーションなどのデータが扱える。
バイナリファイル形式である。
obj Wavefront Obj形式。
頂点、法線、テクスチャ座標値などのデータを記録。
テキスト形式のシンプルなフォーマット。

 

何となく .3ds は限定的な感じで .obj はシンプルだけど扱えるデータが限られているみたいです(ここら辺は時間があったら勉強してみます)。今回は .fbx 形式でやってみようと思います(これでやっている人が多かったため)。

 

Blender でオブジェクトをエクスポートする

まず前回作成した Blender のファイルを開き、エクスポートするオブジェクトを選択して、 File > Export > FBX(.fbx) を選択します。

f:id:otonasisanoto:20190525102344p:plain

Export より .fbx を選択

すると下の様な画面が出ますので、名前と設定を変更します。

f:id:otonasisanoto:20190525102821p:plain

Export 画面

 

まず名前の変更です。

ここでファイルの保存場所とファイルの名前を変更できます。

デフォルトでは Blender ファイルの置かれているファイルパスとそのファイル名が適用されるみたいです。

今回はこのままにしておきます。

f:id:otonasisanoto:20190525103026p:plain

ファイルの保存場所と名前の設定

 

次にエクスポートの設定の変更です。以下の変更を行います。

  • Selected Object (選択したオブジェクト) にチェックを入れる
  • Forward (前方) を Z Forward (Zが前方) に変更する
  • Up (上) を Y Up (Yが上) に変更する
  • !EXPERIMENTAL! Apply Transform (!実験的機能! トランスフォーム適用)にチェックを入れる (頂点座標をベイクする機能らしいです。ゲーム内で使用する場合はこれにチェックを入れた方がオブジェクトを扱いやすくなるとのこと)

f:id:otonasisanoto:20190525102936p:plain

Export の設定を変更する

 

設定が完了したら、ファイルパスの隣にある Export FBX をクリックしてエクスポートします。

f:id:otonasisanoto:20190525105451p:plain

Export FBX をクリックする

 

すると指定したファイルパスに FBX 形式のファイルが生成されます。

f:id:otonasisanoto:20190525103240p:plain

FBX形式のファイルが生成される

 

Unity にオブジェクトをインポートする

続いて Unity 側にオブジェクトをインポートします。

まず Assets フォルダに 「Models」という名前のフォルダを作ります。

f:id:otonasisanoto:20190525103756p:plain

「Models」というフォルダを作成

 

そのフォルダ内に先ほど生成した enemy.fbx をドラッグ&ドロップします。

f:id:otonasisanoto:20190525104037p:plain

enemy.fbx を Models にドラッグ&ドロップ

 

すると以下のように enemy のゲームオブジェクトが追加されます。

f:id:otonasisanoto:20190525104129p:plain

追加後のフォルダ階層

 

追加されたオブジェクトをゲームシーンにドラッグ&ドロップします。

f:id:otonasisanoto:20190525104225p:plain

ゲームシーンに追加

 

ゲームシーン内にオブジェクトを配置できました。

f:id:otonasisanoto:20190525104313p:plain

ゲームシーンに追加後

 

しかし、このままでは大きすぎるので Scale の値をそれぞれ 0.3 に調整します。

f:id:otonasisanoto:20190525104533p:plain

大きさの調整

 

Player と比較するとちょうどいい大きさになりました。

f:id:otonasisanoto:20190525104554p:plain

Player との比較


以上で Blenderモデリングしたオブジェクトを Unity にインポートできました。
次回はこのオブジェクトの動作処理を追加して障害物っぽくしようと思います。

本日は以上となります。最後まで読んでいただきありがとうございました!