アセット
Turian はインポートパイプラインを使用します:プロジェクトの assets/ フォルダにドロップしたファイルはソースです。インポート時に各ソースには安定した GUID(サイドカーファイル <file>.meta に保存)が割り当てられ、.cache/assets/ 下のランタイムアーティファクトにクックされます。出荷されるゲームはパッケージ化された .oap からそれらのアーティファクトを読み取り、バラバラの assets/ フォルダには触れません。アセット間の参照(マテリアルのテクスチャ、MeshRenderer のメッシュ)は GUID として保存されるため、名前変更や移動後も有効です。
モデルのインポート(glTF / GLB / OBJ)
.gltf、.glb、または .obj を assets/ にドロップすると、そのジオメトリがインポートされます。glTF/GLB の場合、Turian はファイルのマテリアルとテクスチャも読み取り、エンジンアセットを生成します——単一のモデルは1つのソースから多数のアセットを生成します:
- glTF マテリアルごとに1つの
.material。glTF メタリックラフネスモデルを組み込み PBR シェーダーにマッピング(ベースカラー、メタリック、ラフネス、エミッシブ + 強度、法線スケール、オクルージョン、アルファモード/カットオフ、両面 → カリング); - 参照されている画像ごとに1つのテクスチャアセット。
これらの生成アセットはモデルの .meta に記録され、再インポート後も GUID を保持するため、シーン参照は有効なままです。サポートされていないマテリアル拡張は警告されますが、致命的にはなりません。
ジオメトリはインポート時に標準バイナリメッシュにクックされるため、ランタイムは1つの高速で形式に依存しないパスでロードします——OBJ/glTF/cgltf の解析はエディタでのみ行われ、出荷されるゲームでは決して行われません。
生成されたサブアセットの編集
アセットブラウザでインポートしたモデルを選択すると、インスペクターに生成アセットとして生成されたマテリアル/テクスチャがリスト表示されます。マテリアルをクリックして開き、調整します(例:ベースカラー)。編集は再インポート後も保持されます——インポーターは不足しているマテリアルのみを(再)生成します。完全な再インポートはキャッシュをクリアしてすべてをソースから再生成します。
インポート設定
テクスチャまたはモデルを選択すると、インポート設定パネル(Unity スタイル)が表示されます:
- 画像 — テクスチャタイプ(デフォルト / 法線マップ / スプライト / UI / HDR)、色空間、ミップマップ、圧縮、フィルター、ラップ、最大サイズ。
- モデル — マテリアルのインポート、アニメーションのインポート、スケールファクター。
設定は .meta に保存されます。適用でアセットを再クックします。
外部テクスチャ vs 埋め込みテクスチャ
- 外部画像(glTF が参照する兄弟
.png/.jpgファイル)は、独自の.metaを持つ通常のテクスチャアセットになります——他のアセットと同様に選択して交換できます。 - 埋め込み画像(GLB バイナリチャンク、または base64 データ URI)は、インポート中にキャッシュ専用のテクスチャアセットとして抽出されます。
どちらの場合も、生成されたマテリアルは各マップを GUID でバインドします。一般的な形式(PNG、JPEG など)は RGBA8 にデコードされます。
テクスチャ形式
| 形式 | パス |
|---|---|
| PNG / JPEG / BMP / TGA / WebP | RGBA8 にデコード(stb_image)。 |
KTX2(.ktx2) |
GPU ブロック形式を直接アップロード——BCn パススルー、Zstandard 展開、Basis Universal(ETC1S / UASTC)を BC7 にトランスコード。ミップレベルは保持されます。 |
KTX2 サポートは、スタンドアロンでエンジンに依存しない ktx2 モジュール(バンドルされた Basis Universal トランスコーダー付き)にあり、loadTexture の背後に配置されているため、マテリアルとインポーターは形式に依存しません。
PBR マテリアル
.material は小さな JSON アセットで、シェーダーを GUID で参照し、そのシェーダーが公開するパラメーターの値を保存します。組み込みの PBR(メタリックラフネス) シェーダーが公開するもの:
| パラメーター | 種類 | 説明 |
|---|---|---|
base_color |
色 | アルベドティント(RGBA) |
metallic、roughness |
スカラー | 0–1 |
emissive、emissive_strength |
色 / スカラー | |
normal_scale、occlusion_strength |
スカラー | |
alpha_cutoff |
スカラー | マスク透過用 |
albedo_map、metallic_roughness_map、normal_map、emissive_map、occlusion_map |
テクスチャ | GUID でバインド |
生成されたマテリアルは通常のアセットであるため、インスペクターで編集したり、モデルに触れずにメッシュを別のマテリアルに差し替えたりできます。MeshRenderer のメッシュをモデルに設定してもマテリアルが空の場合、Turian は自動的にモデルの主要な生成マテリアルを入力します。
アセットブラウザからマテリアルをゼロから作成することもできます。組み込みプリセット(デフォルト、メタル、プラスチック、エミッシブ、ガラス)も含まれています。
例
3d-model-materials の例では、3つのオブジェクトが並んで表示されています:組み込みメタルプリセットを使用した OBJ 立方体、glTF としての Khronos WaterBottle(外部 .png マップ)、および GLB としての同じボトル(インポート時に抽出された埋め込みマップ)。Sponza や Bistro のような大規模シーンにスケールアップできる構造になっています——モデルを assets/models/ にドロップし、プロジェクトを開いてシーンに追加するだけです。
MeshRenderer コンポーネントについてはコンポーネントリファレンスを、ブートシーンについてはプロジェクト設定を参照してください。