Blender 2.71でのゲーム開発支援
投稿日時 2014年06月13日 | カテゴリ: 技術・開発関連
|
元記事:Supporting Game Developers with Blender 2.71 | Blender Code
Moguri 氏による記事の翻訳です。(右図は同記事より抜粋)
2.71リリース用に、私たちは Blender と外部エンジンを使用したゲーム開発の支援を改善する作業を行ってきました。その終わりまで、Bastien Montagne 氏が新しい FBX エクスポータの作業を行い、そして私(訳注:Moguri 氏)は様々な外部エンジンのワークフローを評価してきました。Dalai Felinto 氏も Cycles のベイキングの作業に尽力してきました。以下に2.71のゲーム開発用の新しい機能の情報がいくつかあります。
新しいバイナリ FBX エクスポータ Blender がバイナリ FBX ファイル(Ver.7.4)をエクスポートできるようになりました。この新しいエクスポータにより、以下のような恩恵があります。 [wiki] -ファイルサイズの縮小
-エクスポートの高速化
-カスタムプロパティ
-マテリアルの各プロパティ(スペキュラやディフューズなど)にリンクしているテクスチャ付きのマテリアルのエクスポート
-テクスチャを(サブフォルダにコピーせず)FBX ファイルに直接添付可能
-新しい「※Apply Transform(トランスフォームを適用)」(現時点ではスタティックなモデルにのみ推奨、アニメーションする物でも動作はするかもしれませんが)。これにより、座標系(要は上/前の軸)がマッチしなくても、エクスポートデータと Blender 内で同じ回転値が得られます。そのため、例えば、Blender 空間(-Y, Z)で回転していない monkey が、Unityの(-Z, Y)空間にエクスポートされたとしても、このオプションにより、同じく回転なしの状態になります(言い換えると、矯正された回転がメッシュデータ自身に「ベイク」されているということです)。(※:元記事では「Bake Space Transform(空間トランスフォームのベイク))。
-FBX ファイルへの正しい軸とスケールデータの書き込み(他のアプリでこの情報を実際に使用している物はまだあまり多くはありません)
-メッシュのタンジェント空間データ(ノーマルとバイタンジェント(Bitangent)ベクトル)のエクスポート
-ボーンとオブジェクトアニメーションのベイク。注意:アニメーションの「ベイク」とは、Blender 内で再生される、すべての位置/回転/ポーズが記録されることで、その結果、すべての間接的なアニメーション、コンストレイントやドライバーを元にした複雑な物でさえも動作します(最終的なアニメーションはクリーンアップされ、不必要なキーフレームやカーブが除去されます)。以下の3つのアニメーションベイキングモードがあります。
--NLA Strip(NLA ストリップ)オプションが有効である場合、各ストリップが一つのアニメーションスタックとしてエクスポートされ、このストリップでアニメーションされるすべてが集められます(つまり、複数のオブジェクト用のアニメーションが生成可能ということです)。
--All Actions(すべてのアクション)オプションが有効である場合、各オブジェクトに対し各アクションがチェックされ、もしマッチするなら、そのアニメーションのあるオブジェクトに''のみ''影響する、アニメーションスタックが生成されます。
--もし上記のオプションがどれも有効でなければ(または何もアニメーションを生成しない場合)、シーン全体が単一のアニメーションスタックにベイクされます。 [/wiki]
新しいエクスポータのストレステストを行えるよう、いくつかのアセットを集め、シンプルなレベルといくつかのキャラクタを作成しました。そして、Unity、Unreal Development Kit(UDK)、Unreal Engine 4(UE4)にエクスポートしてみました。その結果を下記にまとめます。完全なメモは次のリンク先をチェックしてください:http://wiki.blender.org/index.php/User:Moguri/ExportDocs
(訳注:以下は図は省いていますので、元記事を参照してください)
Unity 動作可: [wiki] -スタティックメッシュ(UV含む) -スケルタルメッシュ -スケルタルメッシュアニメーション(IKコンストレイント含む) -フラットとスムーズシェーディング -nゴン -レベル全体のエクスポート -マテリアルのエクスポート(マテリアルは Unity 内でエクスポートしたマテリアルの名前と色で作成され、添付したディフューズテクスチャも設定されます) [/wiki]
動作不可: [wiki] -コリジョンメッシュ(Unity 内で設定する必要あり) -シェイプキーアニメーション -オブジェクトアニメーション [/wiki]
メモ: デフォルトのスケールと軸オプションが上手く動作しました(Scale(拡大縮小): 1.00、Forward(前方): -Z が前方、Up(上): Y が上)。スケーリングのみ Unity で設定します(デフォルトは0.1)。
UDK 動作可: [wiki] -静的メッシュ(UV含む)
-マテリアルのエクスポート(マテリアルは UDK 内でエクスポートしたマテリアルの名前と色で作成され、添付したディフューズテクスチャも設定されます)
-コリジョンメッシュとしてのメッシュエクスポート(UCX_〜 の形式で名前を付ける必要あり。〜はコリジョンメッシュ名) [/wiki]
動作不可: [wiki] -レベル全体のエクスポート(アセット毎にエクスポートし、UDK 内で一緒にする必要があります)
-スケルタルメッシュとアニメーション(代わりにPSK/PSA エクスポートを使用してください。こちらの方がもっと信頼性が高いです)
-フラットとスムーズシェーディングは上手く動作しないようです
-オブジェクトアニメーション
-シェイプキーアニメーション [/wiki]
メモ: [wiki] -テクスチャは2のn乗のサイズで、なおかつ対応する画像フォーマット(JPEGは不可、PNGは可)にする必要があります。
-デフォルトの軸オプションで動作(Forward(前方): -Z が前方、Up(上): Y が上)。
-Scale(拡大縮小)は100.0に設定してください。
-UDK は互換性のない FBX バージョンではエラーになります(UDK は7.3.0、Blender のエクスポートは7.4.0)。ただしモデルは読み込みます。
-コリジョンメッシュも UDK 内で作成可能です(つまり、コリジョンメッシュのインポートをあてにしてはいけないということです)。 [/wiki]
UE4 動作可: [wiki] -スタティックメッシュ(UV含む) -スケルタルメッシュ -スケルタルメッシュアニメーション(IKコンストレイント含む) -フラットとスムーズシェーディング -nゴン -マテリアルのエクスポート(マテリアルは UE4内でエクスポートしたマテリアルの名前と色で作成され、添付したディフューズテクスチャも設定されます) -コリジョンメッシュとしてのメッシュエクスポート(UCX_〜 の形式で名前を付ける必要あり。〜はコリジョンメッシュにするメッシュ名) [/wiki]
動作不可: [wiki] -レベル全体のエクスポート(アセット毎にエクスポートし、UDK 内で一緒にする必要があります) -シェイプキーアニメーション -オブジェクトアニメーション [/wiki]
メモ: [wiki] -テクスチャは2のn乗のサイズで、なおかつ対応する画像フォーマット(JPEGは不可、PNGは可)にする必要があります。
-デフォルトの軸オプションで動作(Forward(前方): -Z が前方、Up(上): Y が上)。
-Scale(拡大縮小)は100.0に設定してください。
-UDK は互換性のない FBX バージョンではエラーになります(UE4 は7.3.0、Blender のエクスポートは7.4.0)。ただし大抵は大丈夫です。
-コリジョンメッシュも UE4 内で作成可能です(つまり、コリジョンメッシュのインポートをあてにしてはいけないということです)。 [/wiki]
制限事項 現在判明している(ASCII版と比べた)制限は、バイナリエクスポータはシェイプキーをエクスポートできないということです。これは Unity 内に BlendShapes としてインポート可能です。
Cycles ベイキング 2.71には Cycles ベイキングもあります。すでに Cycles ベイキングについてはブログ記事(英文)があります。
支援をお願いします Buildbot からビルドを入手し、Tracker に実行時の問題を報告してください。また、bf-gamedev メーリングリストにて、皆さんのワークフローを改善するのに私たちはどうすればいいのかを提案することもできます。
|
|