.fbx exportなぜマテリアルやテクスチャがないのですか?

.FBXにエクスポートしたメッシュでノードテクスチャを使用しました。

次に、それをUnreal Engine 4にインポートしましたが、しませんでした。 “テクスチャをインポートします。UnrealEngineの Upload Textures オプションをクリックしました。

何か問題がありますか、それともBlenderですか?

コメント

回答

これはよくある質問です。

TL; DR

ほとんどのファイル形式は、本格的なマテリアル定義やその他のアプリケーション固有の機能は言うまでもなく、テクスチャのエクスポートをサポートしていません。現在、ほとんどのBlenderインポーター/エクスポーターはノードベースのマテリアルを適切にサポートしていません。

ターゲット環境で使用可能なテクスチャを使用してマテリアルを手動で複製します。

長い話

マテリアルは実装固有であり、所属するレンダリングシステムと緊密に結びついています。 to 、またはそれらが作成されたソフトウェア。ほとんどの場合、アプリケーション間でマテリアル定義をインポート/エクスポートすることはできません。また、Blender InternalMaterialsをCyclesRendererと連携させることも、その逆もできません。これらは両方とも、完全に異なるアプリケーション間はもちろん、Blenderで作成されます。 。

このため、3DS、FBX、Collada、STL、OBJなど、使用するファイル形式でマテリアルプロパティをインポートまたはエクスポートすることはできません。これらは主に、オブジェクトシェイプの移植に関係するメッシュのみのジオメトリ中心のファイル形式であり、アニメーション、アーマチュア、基本的なシェーディング、またはカラープロパティ(MTLファイルなど)の場合もあります。完全な複雑なマテリアル定義は決してありません。

ほとんどの交換ファイル形式の仕様には、そのデータに対応するためのデータ構造はありません。すべての可能なタイプのプロパティ、設定、またはマップは言うまでもありません。たとえあったとしても、さまざまな目的のために、さまざまな要件(リアルタイムレンダリングエンジンやゲームの速度や応答性、物理ベースの「オフラインレンダリング」のリアリズムなど)に対応するためのさまざまなレンダリング実装が多すぎます。独自の異なるパラメータセットと特定のプロパティを解釈する特定の方法を使用して、設定、パラメータ、または特定の機能をそれらの間で簡単に正しく一致させることができます。

たとえば、ほとんどのリアルタイムレンダリングシステムでは、何らかの形式の明示的な”背面カリング”オプションは、パフォーマンス上の理由からラスタライズに大きく依存しているためですが、Cyclesのようなレンダリングでは、基本ノードにすぎません。レイトレーサーの場合、ジオメトリがどちらの方向を向いているかは関係ありません。一方、ガラスシェーダーと透明シェーダー”はレイトレーサーで大きな屈折を使用して”動作しますが、EEVEEではブレンドをいじくり回す必要がありますモードと透明度の設定。サイクルには存在しません。これは、オブジェクトの相互作用を表すのにコストがかかり、ラスターライザーにとって複雑であるためです。

拡散、鏡面反射、光沢、またはなど、より一般的な画像ベースのテクスチャチャネルが正しく保持される場合があります。ますます人気が高まっている” PBRワークフロー”ですが、手続き的に生成されたテクスチャやテクスチャ座標が生成されることはありません。これらはレンダリング時に生成され、 「エクスポートされません。ほとんどのBlenderエクスポーターは、Cyclesノードベースのマテリアルをまったくサポートしていないことに注意してください(当時) Blender 2.79#)の記述であるため、Cyclesノードツリーで使用されるイメージテクスチャでさえ、保存されることはほとんどありません。

同じことがアプリケーションに固有の他の多くの機能にも当てはまります照明パラメータ、シャドウ設定などのレンダリングエンジンランプ、カメラ、物理シミュレーション(流体、布、ソフトボディ)、テクスチャオプション(クランプ、クリッピング、タイリング、カラー調整)、生成されたテクスチャ座標(UVマップによって明示的にマッピングされていないもの、またはメッシュのアンラップによって作成されたもの)、マテリアルオプション(背面カリング、シャドウ、可視性、透明度、ブレンドモード)パーティクルシステム、煙と火のシミュレーション、ボリュームデータ、モディファイア、シェイプモーフィング(シェイプキーや変形ベースのアニメーションなど)、その他の”生成されたデータ”は、ほとんどの場合、インポートまたはエクスポートすることもできません(いくつかの例外を除きます)。

それを解決するにはどうすればよいですか?

インポート/エクスポートできるのはメッシュとのUV座標だけなので、でターゲットアプリケーション” 、ゲームエンジン、またはモデルをインポートして表示する受信レンダリング環境、Unreal、Unity、Gamekit、外部レンダリングソフトウェアなど、または他の場所からモデルをインポートする場合はBlender自体。UVマップは通常、ほとんどのExchangeファイル形式でデフォルトで正しく保存されます。

そこで費やす必要があります。提供されたテクスチャと利用可能なマップを使用して、マテリアルを最初から再作成する場合があります。はい、ある程度のバックトラックが必要で、時間がかかりますが、練習すればより速くなります。可能な場合はプリセットを再利用可能なライブラリに保存して、繰り返しの量を減らします。

状況によっては、Blenderを使用してテクスチャをベイクします後で最終目的地でを使用するか、そこでマテリアルを作成するためのアプリケーションを受け取ることができます Blenderの内部ではありません

ベイク処理はシェーディングを事前に計算するプロセスです

a>そしてそれを静止画像テクスチャに保存します。これには、拡散、光沢、間接照明、バンプマップ、法線マップ、ライトマップなどのいくつかのオプションのチャネルが組み込まれている場合があります。これにより、グラフィックの品質が向上したり、”リアリズム”がダイナミズムを犠牲にして認識されたりする場合があります。 “が影や反射のように”表面にペイントされている場合。これは、利用可能なリソースが限られているか不明であり、グラフィックの忠実度よりも速度が優先される、高性能メディアやWebやモバイルゲームなどの低電力プラットフォームの要件であることがよくあります。

例外

これらすべての注目すべき例外の1つは、 glTF ファイル形式です。これは、バージョン2.0 以降です。 glTFは、仕様のメタリックラフネスシェーディングモデルに基づくいくつかのマテリアル定義をサポートします。 KhronosGroup自身が作成した glTF-Blender-IO アドオンは、原則的なBSDFノードベースのマテリアルのエクスポートをサポートしています a>。ただし、それでもいくつかの制限が適用されます。

物理ベースのレンダリングの最近の人気と、ゲームエンジンおよびRealでの使用の増加により-タイムレンダリングアプリケーションでは、マテリアルの表面プロパティを記述するための、漠然と定義された”緩い標準”になりました(ただし、いくつかの異なるニュアンスがあります)バージョンが存在します)。

将来の開発

PBRは標準ではありませんが、すべての実装が同じように機能するわけではありません。または、同じパラメータを同様に解釈します。 Principled BSDF は、確立された業界リーダー(Disney)が独自の内部使用とゲームのために設計したモデルに従って、すでに作成されています。 UnrealEngine®などのエンジンやSubstancePainter®などのテクスチャペイントアプリケーションも採用しています。

PBRワークフローの人気と牽引力が高まるにつれて、より多くのアプリケーションが使用される可能性があります”ムーブメント”に参加して、将来的に実装してください。共通の基準に合意できれば、将来、より多くの輸入業者/輸出業者が、ますます多くの材料特性との互換性を改善する可能性があります。それらは、Blendファイルから直接読み取るか、他の架空の新しいファイル形式を使用するか、新しい標準の実装を余儀なくされる可能性があります。現在のものはまだそれらを正しく記述するためのデータ構造を欠いているので。現時点では、これは純粋な推測であり、既知の計画は作成されていません。

関連する問題

コメント

  • Unrealやその他のエンジンを使用したことはありません。手がかりがありません。専用のコミュニティで、それについて質問する必要がありますI ‘恐れています。一部のエンジンではメッシュごとに複数のマテリアルが許可されていないため、複数のオブジェクトに分割する必要があると聞きました。とにかく、ビューポートでの視覚的な忠実度のために、Blenderでマテリアルを適用できます。インポーターが、エンジンでやり直す必要のある作業が’少ないことをサポートしている場合は、’まったく同じマテリアル定義を使用することを期待していません。
  • 多くのアプリケーション/フォーマットが割り当てられたマテリアルスロット(つまり、どの頂点にどのマテリアルが割り当てられているか)を考慮していることに注意してください。 、ただし、割り当てられた実際のマテリアルではありません。独自のマテリアルを割り当てるために必要なためです。
  • @Duarte Farrajota Ramos割り当てられたマテリアルでブレンダーメッシュをエクスポートする、無数のエクスポートスクリプトがあります
  • @ phil123以下の回答として、上記のスクリプトへのリンクと使用されたワークフローの説明、および結果のスクリーンショットを添えて投稿する必要があります
  • UnrealとglTFについて何か追加できます。’ FBXについて知りません。 Cycles、Eevee、およびUnrealには、それぞれ強力なノードベースのマテリアルがあります。 glTF 2.0マテリアルモデルはよりシンプルですが、ゲームアートのニーズの大部分を処理できます(画像テクスチャベースのPBR)。 glTFは、マテリアルを使用した静的メッシュに対して、BlenderとUnreal(4.19以降)の間で機能します。 1つのメッシュオブジェクトに複数のマテリアルを含めることができ、これらはUnrealのマテリアルスロットとして表示されます。そこから、glTFからインポートしたマテリアルを使用するか、Unrealでそれらを交換/新しいマテリアルを作成できます。

回答

.fbxにエクスポートする場合、マテリアルをエクスポートすることはできません。表面の色はありますが、テクスチャの光沢や反射などの他の設定はありません。はい、できますが、内部でBlenderを使用する必要があります(サイクルでは機能しません)、ノードを使用しないことを確認し、テクスチャを適用します。次に、fbxエクスポート設定で、下部に移動し、コピーするパスを設定して、その横にあるボックスのようなアイコンをチェックします。エクスポートされたfbxファイルにテクスチャを埋め込む必要があります。

PS:新しいBlender2.79をテストしませんでした

テクスチャを埋め込むためのBlenderFbxエクスポート設定

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です