アセット

このページは自動翻訳されており、誤りが含まれる場合があります。誤りを見つけた場合は「このページを編集」リンクからご協力ください。

アセットはプロジェクトの Assets/ フォルダー内の任意のファイルです。Turian はフォルダーを監視し、各ソースファイルを .Cache/ 内のエンジン用成果物にインポートして、プロジェクトのアセットカタログに記録します。

id と .meta ファイル

すべてのアセットには隣に .meta ファイルができ、安定した id が保存されます。シーン、マテリアル、コンポーネントはパスではなくこの id でアセットを参照するため、Studio の Assets パネルでもファイルマネージャーでも、自由に移動・名前変更できます。.meta ファイルはバージョン管理に含め、.Cache/ は含めないでください。

対応ファイル

種類 拡張子 開く場所
シーン / プレハブ .prefab Studio のタブ
マテリアル .material Inspector
データアセット .dataasset、.asset Inspector
モデル .gltf、.glb、.fbx、.obj 既定のプログラム
テクスチャ .png、.jpg、.jpeg、.tga、.bmp、.gif、.webp、.dds 既定のプログラム
フォント .ttf、.otf —
UI ドキュメント / スタイルシート .ui、.uss 既定のプログラム
文字列テーブル .strings 既定のプログラム
スクリプト .cs コードエディター

モデル

  • glTF 2.0(.gltf、.glb)— ジオメトリ、すべてのメッシュとプリミティブ、マテリアル。glTF の各マテリアルは子のマテリアルアセットに、埋め込み画像は子のテクスチャアセットになり、id はモデルの id から導出されるので再インポートしても変わりません。別ファイルのテクスチャは独立したアセットとしてインポートされます。
  • FBX — Assimp によるジオメトリとマテリアル。
  • OBJ — ジオメトリ。

モデルは ModelComponent でシーンに配置します。モデルを Model フィールドにドロップしてください。Materials は Unity のマテリアルスロットのように、サブメッシュごとのマテリアルを差し替えます。

テクスチャ

テクスチャはミップマップ付きで GPU に送られます。Inspector のインポート設定で、解像度(長辺)の上限を全体またはビルドターゲットごとに設定できます。プロジェクト全体の既定値は Graphics Settings の Texture Max Resolution です。

マテリアル

Assets パネルで右クリック → New → Material で作ります。マテリアルは glTF 2.0 の PBR メタリック・ラフネスモデルを使います:

プロパティ 意味
BaseColorFactor、BaseColorTexture ベースカラー(RGBA)とテクスチャ。
MetallicFactor、RoughnessFactor、MetallicRoughnessTexture 金属度と粗さ。
NormalTexture タンジェント空間の法線マップ。
OcclusionTexture アンビエントオクルージョン。
EmissiveFactor、EmissiveTexture 表面が発する光。

Assets パネルからテクスチャを Inspector のテクスチャスロットにドロップします。

データアセット

データアセットは、アセットファイルとして保存され Inspector で編集される独自の C# クラスです — Unity の ScriptableObject のようなものです。アイテム、敵のステータス、会話、ステージのリストなど、デザイナーがコードに触れずに調整すべきものに使います。

namespace Usercode;

[CreateAssetMenu(path: "Game/Weapon", fileName: "NewWeapon")]
public class WeaponData : DataAsset
{
    public string DisplayName = "Sword";
    [Range(1, 100)] public int Damage = 10;
    public float Cooldown = 0.5f;
}

スクリプトがコンパイルされると、Assets パネルのコンテキストメニューに New → Game → Weapon が表示されます。

実行時のアセット読み込み

参照をフィールドとして公開して Inspector で設定し、IAssetLoader で読み込みます:

public class Armory : Component
{
    public AssetReference<MaterialAsset>? GoldMaterial;

    public override async void OnStart()
    {
        var loader = RuntimeServices.TryGet<IAssetLoader>();
        if (loader is null || GoldMaterial is null) return;

        var material = await GoldMaterial.LoadAsync(loader);
    }
}

アセットの配布

エクスポート時、Turian はインポートしたすべてのアセットをゲームの Content/ フォルダー内の Open Asset Package(.oap)にまとめます。CRC で検査されるエントリを持つ単一の圧縮ファイルで、ランタイムが直接読み込みます。CLI では .oap ファイルのパック(ChaCha20 暗号化も可能)、一覧、検査、検証、展開もできます。

再インポート

ファイルが変わるとインポートは自動で実行されます。Project → Reimport Assets はすべての .meta を書き直してプロジェクト全体を再インポートし、turian-cli compile <プロジェクト> は同じことをヘッドレスで行います。


← すべてのドキュメント このページを編集