Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

Caveでは、プロジェクトはアセットで構成されています。

アセットとは、Asset Browserに存在する再利用可能なコンテンツのことです。シーン、エンティティテンプレート、メッシュ、マテリアル、テクスチャ、オーディオ、スクリプト、ロジックファイル、タイムラインなどが含まれます。

アセットを理解するほど、作業の構築、整理、再利用が簡単になります。

アセットとは何か?

アセットはCaveに保存されたプロジェクトコンテンツの一部です。

アセットは、テクスチャやメッシュのような視覚的なものかもしれません。また、Pythonスクリプト、ロジックブリックスファイル、シーン、タイムラインのような機能的なものでもあります。アセットはプロジェクト内に保存され、Caveはそれらをエンティティ、コンポーネント、エディタのツール、ランタイムシステムから参照します。

> 裏側では、シリアライズ(ディスクへの書き込み・読み込み)が必要なものやエディタに表示されるものはすべてアセットとして扱われています。

具体例:

  • 「メッシュエンティティ」はメッシュアセットを使用できます。
  • メッシュコンポーネントはマテリアルアセットを使用できます。
  • マテリアルはテクスチャアセットを使用できます。
  • PythonコンポーネントはPythonスクリプトアセットを使用できます。
  • 「レベル」はシーンアセットとして保存できます。
  • 再利用可能なオブジェクトのセットアップはエンティティテンプレートアセットとして保存できます。

つまり、アセットはただのフォルダ内のファイルではなく、ゲームを作るための構成要素です。

Asset Browser

Asset Browserはアセットを管理する主要な場所です。

image.png

これを使って:

  • プロジェクトフォルダの閲覧
  • アセットの選択
  • フォルダの開閉
  • サムネイルの表示
  • ファイルのインポート
  • アセットの名前変更
  • アセットの複製
  • アセットのフォルダ間移動
  • アセットの削除
  • アセットをCaveパッケージとしてエクスポート

Asset Browserはフォルダエリアとコンテンツエリアに分かれています。フォルダエリアでプロジェクト構造を移動し、コンテンツエリアで現在のフォルダ内のアセットを表示します。

アセットを選択すると、その設定がPropertiesタブに表示されます。

主なアセットタイプ

Caveで作業中にいくつかのアセットタイプを目にします。

アセットタイプ 用途
Scene レベル、メニュー、テストエリア、プレイ可能な空間
Entity Template 再利用可能なエンティティ階層(prefabに似ています)
Mesh 3Dモデルデータ
Material メッシュや地形で使われる表面設定
Texture マテリアル、UI、その他システムで使う画像データ
Audio 音声や音楽のコンテンツ
Armature メッシュのアニメーションに使われる骨格構造
Animation 骨格アニメーションデータ
Python Script Pythonコンポーネントやツールで使うコード
Logic Bricks ビジュアルなゲームプレイロジック
State Machine 状態に基づく動作ロジック
Timeline カットシーンやスクリプトイベントなどのシーケンス
Shader Program カスタムレンダリング動作
Post Processing フルスクリーンのレンダリング効果
Documentation プロジェクト内に保存されたテキストドキュメント
---

すべてのアセットタイプをすぐにマスターする必要はありません。初期段階ではシーン、エンティティテンプレート、メッシュ、マテリアル、テクスチャ、スクリプト、ロジックのアセットを主に使うでしょう。

アセットの整理

アセットを明確に整理するとプロジェクトの作業が楽になります。

単純なプロジェクト構成の例:

Scenes
Characters
Props
Materials
Textures
Scripts
Logic
UI
Audio
Timelines

プロジェクトに合った別の構成を選んでもかまいません。重要なのは後で見つけやすいことです。

名前も重要です。アセットの用途を説明する名前を使いましょう。

Caveはアセット名に空白文字を許容し、Asset Browserはタイプごとのスタイルで表示されるため、名前にMaterialTextureのような接頭辞や短縮コードを入れる必要は通常ありません。

読みやすい名前を使いましょう。短くしたければPascalCaseでも構いません。

例:

不明瞭な名前 より良い名前
Material Wet Rock
Texture Wood Crate Diffuse
Scene Cave Entrance
Script DoorController
EntityTemplate Enemy Bat

目的はすべてのプロジェクトに同じ命名スタイルを強制することではなく、曖昧な名前を避けて関連アセットが見つけやすくすることです。

新しいアセットのインポート

サポートされているファイルはコンピュータからAsset Browserにドラッグしてインポートできます。Caveは正しいアセットタイプを作成しようとします。

よくあるインポートコンテンツ:

  • 3Dモデル
  • 画像
  • オーディオファイル

必要に応じてエディタのメニューから再インポートも可能です。

インポートは最初のステップです。アセットがプロジェクトに存在したら、選択してPropertiesで設定を編集し、シーンや他のアセットで使用できます。

アセットのインポートについては後で詳しく学びます。

メッシュ、マテリアル、テクスチャ

メッシュ、マテリアル、テクスチャは連携して動作します。

  • Meshは形状です。
  • Materialは表面の見た目を制御します。
  • Textureはマテリアルや他のシステムが使う画像データです。

例として、木製のクレートは以下を使うかもしれません:

  • クレートのメッシュ
  • 木のマテリアル
  • 1枚以上の木のテクスチャ画像

シーン内のエンティティはメッシュアセット自体ではありません。 エンティティはメッシュアセットとマテリアルアセットを使うコンポーネントを持っています。この分離は同じメッシュやマテリアルを複数回再利用できるため有効です。共有マテリアルを編集すれば、そのマテリアルを使うすべてのオブジェクトが更新されます。

シーンとエンティティテンプレート

ゲームプレイを構築するうえで特に重要な2つのアセットタイプ:

  • Sceneはレベルやプレイ可能空間を保存します。
  • Entity Templateは再利用可能なエンティティのセットアップを保存します。

広い空間、メニュー、テストマップやレベルにはシーンを使いましょう。

複数回配置したいオブジェクトにはエンティティテンプレートを使います。例えば:

  • ピックアップ
  • ドア
  • 小道具
  • 車両
  • UIウィジェット

シーンは特定の場所に存在するものを示し、エンティティテンプレートは再利用可能なオブジェクトの作り方を示します。

アセットの参照

エンティティやコンポーネントはアセットを参照できます。

例:

  • メッシュコンポーネントはメッシュを参照。
  • メッシュコンポーネントはマテリアルを参照可能。
  • マテリアルはテクスチャを参照。
  • PythonコンポーネントはPythonスクリプトを参照。
  • タイムラインはアニメーションやトリガーに必要なエンティティやデータを参照。

この参照システムにより、アセットは複数の場所で再利用できます。アセットを削除すると他の部分の参照が切れてしまう場合があるので注意してください。

不安な場合は、まず一時的なフォルダに移動し、プロジェクトをテストしてから削除するのが安全です。

プロジェクトコンテンツの保存

Caveはプロジェクトコンテンツの変更を追跡します。変更が保存されていない場合、「ダーティ」状態と見なされます。

これを踏まえて、以下のショートカットを使いましょう:

ショートカット 操作
Ctrl + S ダーティなプロジェクトコンテンツの保存
Ctrl + Shift + S すべての保存
---

Fileメニューからも保存できます。

ほとんどの場合、ダーティなコンテンツの保存が望ましいです。変更があったアセットのみを保存し、すべてを書き換えるわけではありません。

Play Modeでテストする前に、Caveは自動でダーティなプロジェクトコンテンツを保存します。

後でアセットを見つける

プロジェクトが大きくなるにつれ、コンテンツを素早く見つけることが重要になります。

以下を活用しましょう:

  • 明確なフォルダ構成
  • 一貫した名前
  • Asset Browser
  • Finderタブ
  • アセット選択時のPropertiesタブ
  • 必要に応じてシステムのファイルエクスプローラーでプロジェクトを開くFileメニュー

作業の速いプロジェクトは必ずしも小さいわけではありません。コンテンツが見つけやすいプロジェクトです。

役立つ習慣

新しいものを作成またはインポートした時は、以下の3つを行いましょう:

  1. 適切なフォルダに入れる。
  2. 役立つ名前を付ける。
  3. プロジェクトを保存する。

この小さな習慣が後々の混乱を大幅に減らします。