MRが楽しい

MRやVRについて学習したことを書き残す

Blenderで作成した3DモデルをUnityに取り込む その5(.blendファイルでの取り込み)

本日は Blender と Unity の技術調査枠です。
Blenderで作成した3DモデルをUnityに取り込む方法をまとめます。
f:id:bluebirdofoz:20190220051605j:plain

取り込み方法

サンプルとして色付けを行った Shpere モデルの Blender プロジェクトを用意しました。
メニューから ファイル -> 保存 を選択し、.blend ファイルで上書き保存します。
f:id:bluebirdofoz:20190220051615j:plain

後は Unity を起動して、Assets フォルダ配下に .blend ファイルをドラッグするだけです。
f:id:bluebirdofoz:20190220051625j:plain

3Dモデルを Unity に取り込むことができました。
.blend ファイルを Hierarchy にドラッグしてシーンに配置できます。
f:id:bluebirdofoz:20190220051646j:plain
Blender と Unity の座標軸の違いから Transform の Rotation が X:-90,Y:0,Z:0 で取り込まれます。

.blendファイルを編集する

因みに .blend ファイルで読み込まれているので、ファイルを右クリックして[Open]を選択すると Blender でファイルを編集することができます。
f:id:bluebirdofoz:20190220051658j:plain

その場で3Dモデルを修正して、再び .blend ファイルを保存すると Unity 内の3Dモデルも修正されます。
f:id:bluebirdofoz:20190220051710j:plain
なかなか反映されない場合はファイルを右クリックして[Refresh]してみてください。

エラーが発生する場合

.blend ファイルを直接 Unity に読み込もうとした際、以下のエラーが発生することがあります。
このエラーが発生すると、Unity 内にモデルが表示されません。

Blender could not be found.

f:id:bluebirdofoz:20190220051722j:plain

これは .blend ファイルが Blender.exe に関連付けられていないときに発生するエラーです。
例えば、Blender を zip ファイルの解凍でインストールした場合などはこの問題が発生します。
Windows 10 環境であれば、以下の手順で関連付けを行います。

.blend ファイルを右クリックし、[プログラムから開く]を選択します。
ここで[別のプログラムを選択]をクリックします。
f:id:bluebirdofoz:20190220051831j:plain

ファイルを開く方法を選択するダイアログが表示されます。
.blend ファイルと Blender を関連付けるため、[常にこのアプリを使って .blend ファイルを開く]をチェックします。
f:id:bluebirdofoz:20190220051852j:plain

Blender がここで表示されるのであれば、Blender を選択します。
表示されていなければ[その他アプリ]の項目をクリックします。
(多くの場合は表示されないケースになると思います)
f:id:bluebirdofoz:20190220051904j:plain

その他のアプリ一覧が表示されます。
ここでも Blender が表示されなければ、最下部にある[このPCで別のアプリを探す]をクリックします。
f:id:bluebirdofoz:20190220051915j:plain

ファイルピッカーが表示されるので、PCで利用している Blenderblender.exe を選択します。
f:id:bluebirdofoz:20190220051926j:plain

すると .blend ファイルが blender.exe で開かれると同時に関連付けが行われます。
.blend ファイルのアイコンが blender.exe のアイコンに変わっていれば関連付けできています。
f:id:bluebirdofoz:20190220051936j:plain

Unity への読み込みに失敗した Assets 内の .blend ファイルを削除し、再度、.blend ファイルを読み込みなおしてみます。
f:id:bluebirdofoz:20190220052507j:plain
無事、読み込みが成功しました。

読み込み可能なデータ

以下のようなアーマチュア(ボーン構造)を持った複雑なキャラクタモデルも .blend ファイルで読み込み可能です。
f:id:bluebirdofoz:20190220052518j:plain

ただしテクスチャファイルなど .blend ファイルに含まれないものは参照が切れた状態で取り込まれてしまいます。
f:id:bluebirdofoz:20190220052528j:plain

別途、テクスチャファイルを Unity に取り込み、Unity 内で改めて参照を設定する必要があります。
次回記事で詳細な手順をまとめます。
f:id:bluebirdofoz:20190220052547j:plain
なお上記の通り、アーマチュアとメッシュは取り込みますが、一方でカメラやランプオブジェクトは取り込みません。

余談

タイトルに「その5」とある理由ですが、以前はわざわざ .fbx ファイルに変換しての読み込みを紹介していました。
bluebirdofoz.hatenablog.com
当時はまさか .blend ファイルで読み込めるとは露知らず。知っていると便利なのでまとめました。
内部的には FBX のエクスポータを利用しているだけとのことなので、最終的な動作に違いはないと思います。
docs.unity3d.com

マテリアルの設定についても現在は少し手順が異なっているようなので、次回は再びマテリアルの設定についてまとめます。
bluebirdofoz.hatenablog.com