ファイル形式とアセット構造
※ 翻訳には「Google AI Studio」を利用し、「Gemini Experimental 1206」のモデルを使用しています。
このガイドラインは、Khronos Groupの「3DC-Asset-Creation」で公開されている「File Format and Asset Structure」を日本語に翻訳したものです。
原文のライセンス: Creative Commons Attribution 4.0 International License
ファイル形式とアセット構造
バージョン 1.0.0 最終更新日: 2020年10月20日
アセット作成ガイドラインの概要3Dアセットを構築する際には、最終的な製品モデルを広く認知されたファイル形式でエクスポートし、それらのファイル内のデータを一般的な慣習に従って構造化することが重要です。
glTFは、ロイヤリティフリーでオープンスタンダードな3Dアセット用のファイル形式であり、多様なプラットフォーム上の3Dオーサリングツールやビューアで広く採用されています。glTFは、アセットのマテリアルに物理ベースレンダリング(PBR)を使用し、リアルなビジュアル製品表現を可能にします。glTFアセットは、参照されるテクスチャとジオメトリを持つ.gltfファイル、またはテクスチャを外部画像として参照する代わりに直接埋め込むバイナリ.glbファイルとして表現されます。
iOSデバイスはネイティブにglTFをサポートしていませんが、Apple独自のUSDz形式を使用しています。glTFとUSDzは同様の機能を備えていますが、一部のglTF機能はUSDzではサポートされていません。詳細については、glTF 2.0の機能/拡張機能とUSDZの比較のセクションを参照してください。
これらの違いをサポートするために、パブリッシングターゲットワークフローを使用することをお勧めします。このシステムを使用すると、最高品質のコンテンツをPBR形式でソースアセットを作成できます。このアセットは、さまざまなビューアをサポートするために、それぞれ異なるマテリアル機能をサポートするさまざまなターゲットにデシメーション/単純化できます。たとえば、glTFはエミッシブ値またはテクスチャの使用をサポートしていますが、USDzはエミッシブテクスチャのみをサポートしています。
ファイルサイズのベストプラクティス
ファイルサイズは通常、ジオメトリとテクスチャで構成されます。ランタイムアセットのシナリオでは、通常、テクスチャがファイルサイズ全体の割合を多く占める傾向があります。ダウンロード時間を短縮し、よりスムーズなゲストエクスペリエンスを作成するために、アセットのファイルサイズをできるだけ小さくすることが望ましいです。最終的には、小さなファイルサイズと最適なビジュアル品質のバランスを取ることが重要です。
ハードウェア機能の進歩、より強力なプラットフォーム、より高速な伝送速度により、理想的なファイルサイズの定義は時間とともに変化します。業界全体では、ランタイムアセットの標準範囲は3 MBから15 MBの間で変動することが観察されています。
また、テクスチャサイズを最適に保つために、JPGや圧縮PNGなどの圧縮テクスチャを使用することをお勧めします。以下のクリスマスストッキングの画像を例として参照してください。近い将来、KTX2などの新しいGPUテクスチャが、アセット検討のテクスチャ部分を処理するためのツールの一部になる予定です。
パブリッシングターゲットのセクションを参照してください。
アセット準備のベストプラクティス
アセットの構造
-
クリーン/フリーズ変換データ: モデリングプロセス中または異なるDCCツール間でアセットを変換する際に、残余の変換データ(回転、平行移動、スケール)が存在する可能性があります。変換データをクリーンアップすると、信頼性の高い動作が保証され、アニメーションにとって重要です。
-
グループ化/階層: 適切なグループ化階層(シーングラフ)を使用して、モデルのコンポーネントを自己完結型アセットとして整理します。
-
一貫した命名規則: コンポーネント(グループノード、マテリアル、メッシュなど)に適切なプレフィックスとサフィックスを使用して一貫した名前を付けます。
-
各コンポーネントのピボット配置: メッシュとグループノードのピボットポイントを意図的に配置します。たとえば、移動制御のためにヒンジがある場所にピボットを配置します。それ以外の場合は、グループノードまたはメッシュのピボットをすべてワールドセンター(0,0,0)に配置することをお勧めします。アセットのトップグループノードは、ワールド(0,0,0)に配置する必要があります。ポイントをよりよく説明するために、TVシェルフの例とその準備方法を次に示します(図1.1)。
-
TVスタンドモデルのシーングラフ:いくつかのジオメトリコンポーネントを含むトップグループノードがあります。
-
シーングラフは、コンポーネントとアセット自体を説明する一貫した命名規則を示しています。
-
赤い軸は、アニメーション/移動を容易にするために、キャビネットドアのピボットポイントがどこにあるかを視覚化します。アセットのメインピボットポイント(大きな赤い軸)は、ワールドセンター(0,0,0)にあります。

(C)2020, Target. License: CC BY 4.0 International 図1.1: ピボット配置
アセットジオメトリ
形状とフォームを最適に記述するためにポリゴンを経済的に使用する方法が目標です。きれいなトポロジーの流れが常に望まれます(図1.2)。

(C)2020, Target. License: CC BY 4.0 International 図1.2: ジオメトリとトポロジーの流れ
ランタイムアセット作成シナリオでは、通常、ギャップや穴のない水密ジオメトリが望まれます。これは、水密アセットが一部の最適化プログラムでの再処理を通じてより良い最適化を提供するか、または単に両面レンダリングをオンにする必要を回避するためです(図1.3)。

(C)2020, Target. License: CC BY 4.0 International 図1.3: 水密ジオメトリ
Nゴンと非平面を避け、クアッドメッシュまたはトライアングルメッシュのみを使用してください。細長い三角形の面はGPUで描画するのにコストがかかるため、避けることをお勧めします(図1.4)。

(C)2020, Target. License: CC BY 4.0 International 図1.4: Nゴンと非平面を避ける
0から1の空間でのUVレイアウトは、可能な限りテクスチャ空間を最大化する必要があります(図1.5)

(C)2020, Target. License: CC BY 4.0 International 図1.5: UVレイアウトでテクスチャ空間を最大化する
アセットテクスチャ
ポリゴンメッシュを削減するもう1つの一般的で効果的な方法は、詳細なハイポリメッシュを法線マップにベイクし、それを低密度のメッシュに適用して頂点数を削減することです(図1.6)

(C)2020, Target. License: CC BY 4.0 International 図1.6: 詳細を記述するための法線マップの使用
アセットのUV境界周辺の目に見える継ぎ目を回避するには、テクスチャにエッジ拡張を適用して、MIPマッピング中の継ぎ目を回避する必要があります(図1.7)

(C)2020, Target. License: CC BY 4.0 International 図1.7: UVレイアウトでテクスチャ空間を最大化する
ファイルサイズを小さく保つために圧縮テクスチャ(JPEGなど)を使用します。アルファ情報が必要な場合はPNGを使用します。たとえば、アルファカバレッジ情報を含むベースカラーテクスチャ(図1.8)。

(C)2020, Target. License: CC BY 4.0 International 図1.8: 圧縮によるテクスチャの最適化
アセット内の不透明および透明なコンポーネントの処理 - 透明および不透明なオブジェクトを記述するために別々のマテリアルを使用することをお勧めします。
ターゲットとするビューアに基づいてアセットを検討および設計することは常に良いことです。現時点でサポートされているかどうかを理解することが重要です。たとえば、頂点カラー、追加のUVセット、アニメーション、カメラなどです。
アセットのピボットポイント(配置、吊り下げポイント)

(C)2020, Target. License: CC BY 4.0 International 図1.9: アセットのピボットポイントの配置
3Dアセットのピボットは、その静止位置と、アセットがインタラクティブな環境でインスタンス化されたときの仮想ハンドルがどこにあるかを表します。特定のターゲットプラットフォームと特定のカスタム要件によって異なります(図1.9)。ただし、一般的な経験則と推奨される一般的な方法があります。
-
ピボットをアセットの静止位置として配置します
-
ピボットをボリュームの中心に配置し、仮想的な接触面を優先します。
-
垂直壁に対する接触点を優先する
-
床に接するオブジェクトの場合は床を優先する
-
天井スペース用に設計されたアセットの場合はオブジェクトの上部を優先する
-
-
アセットをワールド空間の中心(0,0,0)に配置します
一般的な命名規則のベストプラクティス
-
アセットとファイルの名前に有効な文字セットを使用します:a-z、_、-、0–9。
-
命名規則では、最初の文字はアルファベット文字のみで始めます。
-
ファイル名内の単語を区切るには、空白ではなくキャメルケース、アンダースコア_、またはハイフン-を使用します。
-
一貫性が不可欠です。一部のOS(UnixおよびLinux)とツールおよびWeb環境は、大文字と小文字を区別する傾向があります。
-
シーン内のさまざまな要素に適切な命名規則を定義することは、常に良い習慣です。一貫性は、特にチーム環境で、他のアーティストやユーザーに明確さを与えるのに役立ちます。もう1つの利点は、一貫した命名が自動化されたエンジニアリングソリューションに役立つことです。
以下は、ファイル内のさまざまな要素を定義するための一般的な業界標準の命名プレフィックスの例です。
要素 | プレフィックス | 例 |
---|---|---|
オブジェクトグループ | grp | grp_chair |
ジオメトリ | geo | geo_chair |
マテリアル | mat | mat_ wood |
不透明 | opq | mat_opq_wood |
透明 | trp | mat_trp_glass |
テクスチャ | tex | tex_wood |