Cave: はじめてのガイド
エンティティコンポーネントの理解
Lesson 10 of 19 • 25 XP
Keep your place in this quest
Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.
コンポーネントは、エンティティが実行できることを定義します。
エンティティはコンテナです。コンポーネントはそのコンテナに付属する機能です。

このレッスンでは、初心者として目にする主要なコンポーネントタイプを紹介します。すべてのオプションを暗記する必要はありません。目標はパターンを認識することです:
> エンティティが機能を必要とする場合、通常はその機能を提供するコンポーネントを追加します。
エンティティはコンポーネントから構築される
新しいエンティティは非常にシンプルに始めることができます。
その後、コンポーネントを追加することで、より機能的になります:
Transform Componentを追加すると、3Dワールド内に位置を持ちます。Mesh Componentを追加すると、可視化されるようになります。Rigid Body Componentを追加すると、世界と衝突できます。Python Componentを追加すると、ゲームプレイコードを実行できます。Logic Bricks Componentを追加すると、ビジュアルロジックを実行できます。Audio Player Componentを追加すると、音を再生できます。
これが一般的なCaveのワークフローです:コンポーネントを組み合わせてエンティティを構築します。
例えば:
| 望むオブジェクト | 可能なコンポーネント構成 |
|---|---|
| トーチ | Transform, Mesh, Light, Audio Player. |
| ドア | Transform, Mesh, Rigid Body, Logic BricksまたはPython. |
| プレイヤー | Transform, Character, Camera, Animation, Python. |
| ヘルスピックアップ | Transform, Mesh, Rigid Bodyトリガー, Logic BricksまたはPython. |
特定の状況に対する特別なオブジェクトタイプを探すのではなく、必要なオブジェクトを組み立てます。
コアコンポーネント
いくつかのコンポーネントは非常に一般的で、常に目にすることになります。
| コンポーネント | 主要な目的 |
|---|---|
| Transform Component | 位置、回転、スケールを保存します。 |
| Camera Component | カメラビューを定義します。 |
Transform Component
Transform Componentは位置、回転、スケールを保存します。

ほとんどの3Dエンティティはこれに依存します。ほとんどのオブジェクトは、世界のどこかに存在する必要があるからです。3Dビューでエンティティを移動、回転、またはスケールすると、その変形を編集しています。
多くの他のコンポーネントは変形に依存しています:
- ライトは位置が必要です。
- メッシュは位置が必要です。
- カメラは位置が必要です。
- 3D音源は位置が必要です。
Camera Component
Camera Componentはカメラビューを定義します。

エンティティをゲームカメラとして機能させたい場合に使用します。
カメラは以下のように使用されます:
- 一人称ゲーム。
- 三人称ゲーム。
- トップダウンゲーム。
- メニュー。
- カットシーン。
- 特殊なビュー。
シーンにはデフォルトのシーンカメラがありますが、ゲームプレイカメラは通常、Camera Componentsを持つエンティティです。これにより、移動、親子関係、アニメーション、スクリプト、ゲームプレイ中の切り替えが容易になります。
グラフィックコンポーネント
グラフィックコンポーネントは、プレイヤーが見るものを制御します。
| コンポーネント | 使用用途 |
|---|---|
| Mesh Component | 可視3Dオブジェクト。 |
| Light Component | ローカル光源。 |
| Particle Component | 多くの小さな要素から作られた視覚効果。 |
| Animation Component | 骨格アニメーションの再生。 |
| Animation Socket Component | アニメーション化されたボーンに子エンティティを取り付ける。 |
Mesh Component
Mesh Componentは、マテリアルを使用してメッシュを描画します。

以下に使用します:
- プロップ。
- 壁。
- キャラクター。
- ドア。
- 武器。
- 環境の部品。
- 何でも目に見えるもの。
メッシュコンポーネントは通常、メッシュアセットとマテリアルアセットを参照します。メッシュは形状を提供し、マテリアルは表面の外観を制御します。
Light Component
Light Componentは、シーンにローカルライティングを追加します。

以下に使用します:
- ランプ。
- トーチ。
- マジックライト。
- 光るプロップ。
- スポットライト。
シーンの太陽と環境光はシーン全体に影響します。ローカルライティングが必要な特定の場所では、エンティティにLight Componentを配置します。
Particle Component
Particle Componentは、繰り返しの視覚要素と効果を作成します。

粒子を以下のように使用します:
- 煙。
- 火花。
- 塵。
- 火。
- 風。
- グレーベース。
- 魔法効果。
粒子は、すべての火花や塵の塊を完全に手動で配置されたエンティティにしたくないので便利です。一つの粒子コンポーネントが多くの小さなビジュアルを生成し、制御できます。
Animation Component
Animation Componentは、骨格アニメーションを再生します。

アーマチュアやアニメーションアセットと連携し、再生、ブレンド、レイヤー、および最終的なアニメーションポーズを処理できます。
以下に使用します:
- アニメーションキャラクター。
- アニメーションクリーチャー。
- 骨格プロップ。
- ボーンを使用する任意のインポートされたアニメーションメッシュ。
Animation Socket Component
Animation Socket Componentは、親のアニメーション化されたエンティティの特定のボーンに子エンティティを取り付けます。

以下に使用します:
- 剣。
- 銃。
- シールド。
- ヘルメット。
- バックパック。
- 手のプロップ。
プロップを毎フレーム手動で更新するのではなく、ソケットが選択されたボーンに従います。
物理コンポーネント
物理コンポーネントは、衝突と物理的な動きを制御します。
| コンポーネント | 使用用途 |
|---|---|
| Rigid Body Component | 衝突、物理オブジェクト、トリガー。 |
| Character Component | プレイヤーおよびNPCのキャラクターの動き。 |
| Physics Constraint Component | 剛体をつなげる。 |
Rigid Body Component
Rigid Body Componentは、エンティティに物理的な挙動を与えます。

以下に使用します:
- 静的衝突。
- 動的オブジェクト。
- 物理プロップ。
- トリガーのようなゴーストオブジェクト。
例えば、壁は静的な剛体を使用することができるので、プレイヤーは通過できません。動くクレートは動的な剛体を使用して力に反応できます。
Character Component
Character Componentは、キャラクター型の動きに設計されています。

以下に使用します:
- 歩く。
- ジャンプする。
- 壁に沿って滑る。
- スロープを扱う。
- 物理的なオブジェクトのように動くのではなく、キャラクターのように動く必要があるプレイヤーまたはNPC。
通常、これは単純な剛体よりも制御可能なキャラクターの優れた出発点です。
Physics Constraint Component
Physics Constraint Componentは、剛体を互いにつなげます。
これは複雑な物理設定に便利です。たとえば:
- ヒンジ。
- ジョイント。
- 橋。
- ラグドールのような設定。
- 接続された物理オブジェクト。
すぐには必要ありませんが、何であるかを認識するのは良いことです。後で、スイングドア、吊るされたオブジェクト、または機械部品などに役立つことがあります。
ワールドおよびゲームコンポーネント
いくつかのコンポーネントは、世界を構築したり、プレイヤーにゲームを提示したりします。
| コンポーネント | 使用用途 |
|---|---|
| Terrain Component | 屋外の風景や彫刻された地面。 |
| Audio Player Component | 音、音楽、アンビエンス、及び3Dオーディオ。 |
| UI Element Component | テキスト、ボタン、パネル、HUD、及びメニュー。 |
Terrain Component
Terrain Componentは、地形を作成および編集します。

屋外のレベル、風景、丘、谷、道路、大きな地面に使用します。
地形には独自の編集ツールがあり、後で説明します。
Audio Player Component
Audio Player Componentは、音や音楽を再生します。
以下に使用できます:
- 音楽。
- アンビエントループ。
- 効果音。
- 3D位置オーディオ。
- UIサウンド。
オーディオは、スクリプト、Logic Bricks、タイムライン、UIコールバック、アニメーションコールバックを通じてもトリガーできます。
UI Element Component
UI Element Componentは、ゲームインターフェース要素を作成します。

以下に使用します:
- テキスト。
- ボタン。
- パネル。
- メニュー。
- ヘルスバー。
- HUD要素。
CaveのUIもエンティティから構築されているため、階層、コンポーネント、プロパティ、およびロジックをゲームの他の部分と同様に使用できます。
ロジックコンポーネント
ロジックコンポーネントは、エンティティの動作を決定します。
| コンポーネント | 使用用途 |
|---|---|
| Python Component | 再利用可能なPythonゲームプレイの挙動。 |
| Python Code Component | 小さなインラインのPythonの挙動。 |
| Logic Bricks Component | ビジュアルスクリプティンググラフ。 |
| State Machine Component | 状態ベースの挙動。 |
Python Component
Python Componentは、Pythonスクリプトアセットをエンティティに取り付けます。

以下のような再利用可能なゲームプレイロジックに使用します:
- ドアの動作。
- 敵の動作。
- やり取り。
- UIロジック。
- ゲームルール。
- カスタムシステム。
Python Code Component
Python Code Componentは、コンポーネント内に小さなインラインのPythonスニペットを保存します。

クイックテスト、小さなローカルの動作、一度きりのプロトタイプに使用します。
大きな再利用可能なロジックには、Python Componentを持つPython Scriptアセットをお勧めします。
Logic Bricks Component
Logic Bricks Componentは、Logic Bricksアセットをエンティティに取り付けます。

Logic BricksはCaveのビジュアルスクリプティングシステムです。ノードを接続することでコードを直接書かずに動作を作成できます。

トリガー、シンプルなやり取り、UIの動作、および視覚的に理解しやすいゲームプレイイベントに使用します。
State Machine Component
State Machine Componentは、エンティティに階層的な状態マシンを取り付けます。

状態機械は、次のように明確な状態を持つ動作に役立ちます:
- 待機。
- 歩く。
- 追跡。
- 攻撃。
- 逃げる。
- 死亡。
特に敵やNPC、構造化されたゲームプレイロジックに役立ちます。
車両コンポーネント
Caveには、車両関連のコンポーネントも含まれています。
スタート車両コンテンツを生成する場合、これらを見ることができます。
| コンポーネント | 目的 |
|---|---|
| 車両コンポーネント | 物理オブジェクトを車両スタイルのボディに変えます。 |
| ホイールコンポーネント | 車両のホイールの動作を定義します。 |
Vehicle Componentは、剛体およびホイールコンポーネントと一緒に機能します。
Wheel Componentには、サスペンション、操舵、ホイール半径、ホイールが前輪であるかどうかなど、ホイール関連の動作が含まれています。
実践的なコンポーネントレシピ
コンポーネントの構成を考えるためのいくつかの簡単な方法を示します:
| 目標 | コンポーネントレシピ |
|---|---|
| 可視静的プロップ | Transform + Mesh. |
| 固体壁 | Transform + Mesh + Rigid Body. |
| 移動するプレイヤー | Transform + Character + Python + Camera. |
| 照明を伴うトーチ | Transform + Mesh + Light + Audio Player. |
| メニューのボタン | UI Element + Python または Logic Bricks. |
| 敵の動作 | Character + Animation + State Machine または Python. |
これは厳密なルールではありません。出発点です。
より多くのオブジェクトを構築するにつれて、タスクに適したコンポーネントを選ぶのが速くなります。
その他のコンポーネント
Caveには、このレッスンで扱われていない、より専門的なコンポーネントがいくつかあります。
それは普通のことです。
最初のシーンを作成する前に、すべてのコンポーネントを知っている必要はありません。今は、エンティティに適切なコンポーネントを追加することで有用になるというパターンに集中してください。