アクタにコンポーネントを追加すると、レベルに配置するアクタ全体の構成要素を作り上げていることになります。 例えば、車自体はアクタですが、車輪、ハンドル、車体、ライトなどはすべてコンポーネントと考えることができます。
アクタを特徴付けるコンポーネントを追加したら、車がどのように機能するかに関する ブループリント スクリプト (または C++ コード) を用意しなくてもレベルに配置できることは重要です (ドライバーが車の運転操作をしなくても物体として存在可能な現実世界と同じです)。 「アクセル」はコンポーネントであるため、スクリプトやコードによってアクセルが踏み込まれることを示し、同様に車を加速させるロジックを与えます。 各コンポーネントはこれと同じ方法で利用できます (ライトをオンにする、クラクションを鳴らす、ラジオをつける、ステアリングなど)。
コンポーネントのインスタンス化
一般的にサブオブジェクトのデフォルトの挙動とは逆に、アクタ内でサブオブジェクトとして作成されたコンポーネントはインスタンス化されます。つまり、各アクタの特定クラスのインスタンスは、コンポーネントの独自の固有インスタンスを取得します。 上述の乗り物の例で思い描くとわかりやすいでしょう。Car クラスは、車輪の表現にコンポーネントを使用するかもしれません。 クラスのデフォルト プロパティにはサブオブジェクトとして 4 つの Wheel コンポーネントが作成され、"Wheels" 配列へ割り当てられます。新規の Car インスタンスが作成されると、Wheel コンポーネントの新しいインスタンスはその特定の Car 用に作成されます。 これが該当しない場合、ワールドにある一台の Car が動くと、全ての Car の車輪が回転します。これは明らかに望まれる動作ではありません。デフォルトのコンポーネントのインスタンス化は、アクタへ固有のサブオブジェクトを迅速に追加するプロセスを簡素化します。
コンポーネントをインスタンス化しないと、全てのコンポーネントの変数は Instanced
プロパティ指定子 を使用して宣言する必要があります。
コンポーネントのタイプ
多様なコンポーネントをアクタへ追加することができます。詳細は以下のリンクを参照してください。
上記以外のコンポーネントについては、「Unreal Engine API リファレンス」の「コンポーネント ビジュアライザ」セクションを参照してください。