UnrealEngine奮闘記

アンリアルエンジンでの開発やTIPSをまとめたblogです

インベーダーゲームを作る その9モデルのインポート

今回はプレイヤーを凸からモデルに切り替えたいと思います。

f:id:swiftnest:20140515222713j:plain:w460

Blenderの準備

モデルはコチラからダウンロードしました。

■TurboSquid: 3D Models for Professionals
http://www.turbosquid.com/FullPreview/Index.cfm/ID/531813
※自身のゲームなどで使用する場合はライセンスを確認して下さい。

基本的にUE4はFBX形式しかモデルデータはインポート出来ません。
そのため、今回の場合はOBJをFBXに変換する必要があります。
変換の方法は幾つかありますが、情報が沢山あるBlenderを使用したいと思います。

Download - blender.org - Home of the Blender project - Free and Open 3D Creation Software

Blender最新版には、FBXのExporterが入っていますが
幾つかの不具合も有るそうなので、最新のFBXエクスポーターに差し替えます。

mont29/blender-io-fbx · GitHub

GitHubサイトの右下「Download ZIP」からダウンロード出来ますので、これをBlenderの「scripts\addons\io_scene_fbx」に上書きます。

BlenderでFBXをエクスポート

後はBlenderで先ほどのOBJファイルを読み込み、FBXでエクスポートします。
エクスポート時のオプションは以下の通りです。

f:id:swiftnest:20140515220653j:plain

Exporter Versionは「FBX 6.1 ASCII」を使用します。
「FBX 7.4 binary」を使用しても良いのですが、その場合はUE4で法線が壊れるため、注意が必要です。
(この問題はUE4でインポートする際に解決出来ます。詳細は後述します。)

また、ScaleやForwardに関してはモデルに応じて変更が必要となります。

ケルトンメッシュの場合、エクスポート時のScale値でスケールすると問題が起きる可能性があります。
詳細はこちらのサイトを確認して下さい(英語)。
Static Mesh from Blender - Epic Wiki

UE4でFBXをインポート

FBXのエクスポートが出来たら、UE4でインポートします。
インポートの際のオプションは以下の通りです。

f:id:swiftnest:20140515221149j:plain

もし、エクスポートの際に「FBX 7.4 binary」を選んだ場合は
Normalsを「Calculate Normals」にすれば、UE4内で法線が再計算されるので問題なくなります。

なお、ポリゴン数が多い場合、インポートにはかなり時間が掛かります。
(10万ポリゴンを超えている場合は、10分ほど掛かる可能性があるようです)

FacebookUnreal Engineユーザー助け合い所の櫻井さんの投稿より
https://www.facebook.com/groups/unrealuserj/permalink/563245547107651/

高速化については以下があるようです

FacebookUnreal Engineユーザー助け合い所の櫻井さんの投稿より抜粋
https://www.facebook.com/groups/unrealuserj/permalink/563245547107651/

----

インポートの高速化について、ほかに手法がありますでしょうか?
Joe Conley
前にスケルタルメッシュがかなり時間かかった問題があった時に、調べたところはメッシュの頂点骨インフルエンスが多くて、ProcessImportMeshInfluencesという関数が遅かったです。
今週ProcessImportMeshInfluencesを最適化しました(このチェンジが4.2のリリースに出るはずです)が、とりあえず、2つのお勧めがあります:
UE4では頂点毎にMaxで8骨インフルエンスを対応しますので、メッシュをバインドする時にインフルエンスを限ったら使わない頂点がインポート時にプロセスされません:
メッシュをインポートする時に、Triangulateしないといけないですが、先にMayaからエクスポートする時にTriangulateしますと、UE4にインポートする時にTriangulateする必要がなくなります:

特に三角化は重要のようです。

インポート後のマテリアル設定とコリジョン

この状態では、カラーマップなどは正常に貼られていますが、それ以外は無視されています。
そこで、その他のテクスチャもインポートし、マテリアルエディタで接続を行います。

今回はエミッシブを青色に強めに光らせる修正と、Metallicに鉄の値(0.58)を入れて金属感を上げてみました。

f:id:swiftnest:20140515212235j:plain:w460

Matellicの値
Unreal Engine | Physically Based Materials

Material BaseColor (R, G, B)
Iron (0.560, 0.570, 0.580)
Silver (0.972, 0.960, 0.915)
Aluminum (0.913, 0.921, 0.925)
Gold (1.000, 0.766, 0.336)
Copper (0.955, 0.637, 0.538)
Chromium (0.550, 0.556, 0.554)
Nickel (0.660, 0.609, 0.526)
Titanium (0.542, 0.497, 0.449)
Cobalt (0.662, 0.655, 0.634)
Platinum (0.672, 0.637, 0.585)

後はコリジョンを付けてプレイヤーモデルと差し替えるだけです。
f:id:swiftnest:20140515222625j:plain:w460

資料

最後にBlenderからのUE4インポートについては沢山資料があるので、記載しておきます
(全て英語)


Exporting from Blender 2.70 to Unreal Engine 4 - YouTube



How to export animations from Blender 2.70 to Unreal Engine 4 - YouTube

Static Mesh from Blender - Epic Wiki

次回はメニューについてです。