コンストラクション スクリプト は、Blueprint クラスのインスタンスが作成されるときに コンポーネント リストに従って実行します。Blueprint クラスのインスタンに初期化オペレーションを実行できるようにするノードグラフが含まれています。 ワールドへのトレースの実施やメッシュやマテリアルの設定などのアクションは、 コンテキスト固有のセットアップを実現するために使用することがあるので、非常に強力です。例えば、Light ブループリントでは、どのタイプのグラウンドに配置するかを決定、および メッシュ一式の中から使用する適切なメッシュを選択できます。 Fence ブループリントでは、距離をカバーするために必要なフェンスの長さを決めるために各方向にトレースを実行します。
コンポーネントに関する詳細は、「コンポーネントの概要」を参照してください。
Components ウィンドウ
コンポーネントを理解すれば、ブループリント エディタ 内の [Components] ウィンドウを使ってコンポーネントをブループリントに追加することができるようになります。これにより、 CapsuleComponents や BoxComponents や SphereComponents 経由でのコリジョン ジオメトリの追加、 StaticMeshComponents または SkeletalMeshComponents の形でのレンダリングされたジオメトリの追加、 MovementComponents を利用した動作の制御を実現します。コンポーネント リストに追加されたコンポーネントは、 インスタンス変数に割り当てることによって、コンポーネントのイベントグラフや別のブループリントからコンポーネントへのアクセスを可能とします。

コンポーネントの追加
コンポーネントをブループリントの [Components] ウィンドウに追加するには以下を行います。
-
追加するコンポーネントの種類をドロップダウンリストから選択します。例えば CameraComponent などです。
-
リストからコンポーネントを選択すると、コンポーネントの名前の入力を求められます。
コンポーネントはアセットをドラッグ&ドロップして コンテンツ ブラウザ から [Components] ウィンドウへ追加することもできます。

この手法が適用されるアセットは、StaticMeshes、SoundCues、SkeletalMeshes、ParticleSystems があります。
コンポーネントの削除
コンポーネント リストからコンポーネントを削除するには、そのコンポーネント名上で 右クリック し、[Delete] を選択します。

ウィンドウでコンポーネントを選んで、[Delete] キーを押すだけでも削除できます。
コンポーネントの変形
レベルのインスタンスに追加されたコンポーネントは、デフォルトでインスタンスの位置へ配置されます。ただし、コンポーネントは、アクタの変形する 方法と同じ要領で [Details (詳細)] ペインまたは ビューポート で変形、回転、そしてスケーリングすることができます。
変形するコンポーネントは、[Components] ウィンドウで名前をクリック、または ビューポート でコンポーネントを直接クリックして選択します。ビューポート でコンポーネントを変形、回転、またはスケーリングする際は、スナップを有効にするため [Shift] キーを押します。このスナップは レベル エディタ でスナップを有効することが必要であり、 レベル エディタ から [Snap Grid (グリッドをスナップ)] 設定を使用します (グリッド スナップの詳細は アクタのスナップ を参照)。
選択したコンポーネントの 位置、回転、スケーリング の正確な値は [Details(詳細)] パネルで入力します。

親コンポーネントのトランスフォーム、回転、スケーリングは、これらの変形を子コンポーネントへ伝播します。
Component アセット
コンポーネントを追加したら、アセットがそのコンポーネントを占有するように指定する必要があります (StaticMeshComponent 用にスタティックメッシュを使うように割り当てるなど)。使用するアセットをコンポーネントの種類として割り当てる方法がいくつかあります。
Component アセットの割り当て
[Components] ウィンドウのコンポーネントにアセットを割り当てるには、以下の手順に従います。
-
コンポーネントを選択し、そのコンポーネントの種類に該当するセクションを [Details] パネルで見つけます。
上図は、StaticMeshComponent を追加しました。StaticMesh の下がアセットの使用を割り当てる場所です。
-
[Static Mesh] ドロップダウン ボックスをクリックし、使用するアセットをコンテキスト メニューから選択します。
アセットは、コンテンツ ブラウザ からも割り当てが可能です。
-
コンテンツ ブラウザ のコンポーネントと一緒に使用するように割り当てたいアセットを選択します。
-
コンポーネント を選択し、コンポーネントの種類に当てはまるセクションを [Details] パネルで見つけます。
上図は、StaticMeshComponent を追加しました。StaticMesh の下がアセットの使用を割り当てる場所です。
-
アセットは コンテンツ ブラウザ で選択されているので、Static Mesh ボックスをクリックするのではなく
ボタンをクリックします。
コンテンツ ブラウザ で選択したアセットを、コンポーネントで使用するアセットとして割り当てます。
Component アセットの削除
以下の方法で、割り当てられたアセットをコンポーネントからクリアします。
-
コンポネントの [Details] パネルで、現在割り当てられているアセットの隣にある
をクリックします。
-
または、アセットの [Current Asset] ボックスをクリックし、コンテキスト メニューから [Clear (クリア)] を選択します。
いずれの手法でも、アセットはコンポーネントに割り当てられた時に削除されます。
Component アセットのブラウズ
コンポーネント ブラウザ で検索して、現在割り当てられているコンポーネントのアセットをブラウズすることもできます。
-
コンポネントの [Details] パネルで、現在割り当てられているアセットの隣にある
をクリックします。
-
コンテンツ ブラウザ が、選択された割り当て済みのアセットを表示しながら開きます。
コンポーネント インスタンス変数名の変更
[Components] ウィンドウで作成されたコンポーネントは、タイプに応じてインスタンス変数名が自動的に付けられます。
その変数名を変更するには、以下の手順に従います。
-
[Components] ウィンドウでコンポーネントを選択すると、その詳細が [Details] パネルに表示されます。
-
[Details] パネルの [Variable Name (変数名)] フィールドで対象のコンポーネントの名前を変更します。次に [Enter] を押して確定します。
[Components] ウィンドウでコンポーネントを選択して F2 を押せば、コンポーネント名の変更がすぐにできます。
Component Events と関数
別の方法で、イベントまたは関数ベースのコンポーネントをブループリントの イベント グラフ にすぐに追加することができます。このような方法で作成されたイベントまたは関数は、特定の関数に固有なので、関連したコンポーネントを確認するテストは必要ありません。
-
BoxComponent など、イベントが作成されるコンポーネントを追加します。
-
コンポーネントに名前を付けます。ここでは「Trigger」という名前をつけます。
-
[Details] パネルの [Add Event (イベントを追加)] ボタンをクリックし、追加したいイベントの種類を選択します。
[Components] ウィンドウのコンポーネントを 右クリック して [Add Event (イベントを追加)] コンテキスト メニューからイベントを選択します。
-
いずれの手法でも、新規に作成されたノード (選択したタイプにより異なります) は自動的に開いた イベント グラフ に追加されます。
イベントおよび関数は [My Blueprint] ウィンドウの イベント グラフ からコンポーネント用に追加することもできます。
-
[My Blueprint] ウィンドウの [Components] でコンポーネントを選択します。
-
グラフを 右クリック してコンテキスト メニューを表示します。
コンポーネントに関連したイベントまたは関数があれば、リスト上部に表示されます。
すべてのコンポーネントに関連するイベントがあるわけではありません。例えば PointLightComponent には関数しかありません。
[My Blueprint] ウィンドウのコンポーネントを 右クリック して [Add Event] コンテキスト メニューからイベントを選択します。