以下は、プロジェクトにエンティティ、コンポーネント、プレハブを追加するためのワークフローです。 これらのワークフローを使用すると、複雑なオブジェクトを作成して、それを体験に追加することができます。
エンティティを作成する
エンティティを作成するには、以下を実行します。
[Place Actors (アクタを配置)] パネルを開きます。
[Entity (エンティティ)] アイコンを選択します。
空のエンティティを ビューポートにドラッグします。
[Details (詳細)] パネルからエンティティにコンポーネントを追加できます。
アウトライナーでエンティティを追加する
シーン内にエンティティを配置したら、アウトライナーを使用してさらにエンティティを追加できます。
エンティティを複製すると、アウトライナーにさらに多くのエンティティが作成されます。
アウトライナーでエンティティを右クリックして、次のオプションを選択することもできます。
Add Entity (エンティティの追加):最初に選択したエンティティの下に、ネスト対象の新しいエンティティを追加します。
Group Under New Entity (新しいエンティティの下にグループ化):最初に選択したエンティティの親となる、新しいエンティティを作成します。 元のエンティティが別のエンティティの下にネストされていた場合、構造は同じままで、新しいエンティティが元の親エンティティと子エンティティの間に挿入されます。
エンティティのネストと構造化
エンティティを階層構造に配置すると、階層内にエンティティ間の関係が作成されます。 ネスト構造には 4 つのレベルがあります。
祖先 - 親以上のレベル (親、祖父母、曽祖父母など)。
子孫 - 現在選択されているエンティティより下のレベル (子、孫など)。
親 - 現在選択されているエンティティの 1 レベル上の単一の祖先。
子 - 現在選択されているエンティティの 1 レベル下の子孫。
この構造では、祖先エンティティが、その下にネストされたすべてのエンティティの存続期間を制御することになります。
以下の例では、街灯自体は単純なゲームのオブジェクトで、そのコンポーネントに設定されている 1 つの機能しか使用できません。つまり、街灯のスタティックメッシュへと変換することしかできません。
Rotation_Point エンティティ、Dock_Lantern エンティティ、SpotLight エンティティが Default_Wooden_LightPost_Prefab_C エンティティの下にネストされている場合、街灯は子の特性を引き継ぎます。したがって、その街灯はより複雑なゲーム オブジェクトになります。
これには次のような利点があります。
エンティティのコンポーネント関数をスケールして、エンティティがシーン内でどのように動作するかを指定します。
子エンティティと子孫エンティティが親エンティティと祖先エンティティとどのようにやり取りするのかを決定します。
階層構造はゲーム内のオブジェクトの存続期間を表します。祖先オブジェクトが破壊されると、子孫および子オブジェクトもすべて破壊されます。
エンティティをグループ化するときは、エンティティが何であるかがわかるように親エンティティの名前を変更します。
ネストを利用できます。 例えば、建築アセットを整列させて、建物内に隙間が発生する可能性を減らすことができます。
子孫エンティティは、ワールド内の祖先の位置を基準にオフセットできます。したがって、シーン内で複製または移動するときに建物の壁、床などの配置を制御する中央ピボット ポイントを設定できます。
コンポーネントを追加する
エンティティにコンポーネントを追加すると、プロジェクト内のゲーム オブジェクトの動作が決まります。
エンティティにコンポーネントを追加して [Details] パネルからカスタマイズするには、以下の手順を実行します。
ビューポートまたはアウトライナーでエンティティを選択します。
エンティティの [Details] パネルで、[Add Component (コンポーネントを追加)] を選択します。
[Component (コンポーネント)] ドロップダウン メニューを検索し、コンポーネントを選択します。 これにより、エンティティにコンポーネントが追加され、エンティティの [Details] パネルにそのコンポーネントの入力フィールドが表示されます。
[Details] パネルから、コンポーネント オプションでコンポーネントをカスタマイズします。
コンポーネントは、メッシュのように単純なものから、カスタム Verse スクリプトのように複雑なものまであります。 1 つのエンティティに複数のコンポーネントを割り当てて、そのエンティティがプロジェクト内でどのように動作するかを定義できます。 ただし、エンティティで一度に使用できるコンポーネント型は 1 つだけです。
つまり、コンポーネント型を選択すると、同じエンティティでそのコンポーネント型を再利用することはできません。 同じコンポーネントを使用するには、別のエンティティを追加してから、そのコンポーネントを新しいエンティティに追加する必要があります。 Scene Graph で使用できるコンポーネントの詳細については、「コンポーネント」を参照してください。
必要とするコンポーネントが見つからない場合は、 独自のコンポーネントを作成することもできます。 Verse を使用して独自のコンポーネントを作成する方法をご確認ください。
現在、追加できるのは特定のコンポーネント サブクラスの 1 つのみです。 たとえば、エンティティには point_light_component を 1 つのみ持つことができますが、エンティティに 1 つの point_light_component と 1 つの rect_light_component を持つこともできます。 Verse で作成されたカスタム コンポーネントにも同じ制限が適用されます。
アセット生成コンポーネント
アセット生成コンポーネントは、メッシュ、サウンド、パーティクルシステムのアセットなど、プロジェクト内の既存のコンテンツに基づき自動で作成されるコンポーネントのクラスです。 これらのアセットは、生成されたコンポーネントで変更可能なプロパティを公開する場合もあります。
コンポーネントをオーバーライドする
プレハブ エディタの [Details] パネルまたはシーンでコンポーネントをオーバーライドできます。 つまり、新しいエンティティを作成したり、現在のコンポーネントを削除したりすることなく、新しい機能を追加したり、コンポーネントに関連付けられたアセットを変更したりすることで、コンポーネントの性質を変更できます。
コンポーネントのオーバーライドには 4 つの異なる状態があります。 これらの状態は、コンポーネント カードに表示されます。
| 画像 | 名前 | 説明 |
|---|---|---|
No Override (上書きなし) | コンポーネントにはオーバーライドがありません。 | |
Override Here (ここで上書き) | このレベルのここでコンポーネントがオーバーライドされます。 | |
Override Inside (内部を上書き) | コンポーネントのオプションの 1 つがオーバーライド状態になっています。 [INCLUDE:#state] | |
Unique Override (一意の上書き) | オーバーライドが、このプレハブ インスタンスに対して固有となっています。 [INCLUDE:#state] |
コンポーネントをオーバーライドするには、次の手順を実行します。
コンポーネントの [Details] パネルで、コンポーネント カードのドロップダウン メニュー ボタン ([+ (プラス記号)]) をクリックします。
ドロップダウン メニューで、[Override Component (コンポーネントのオーバーライド)] を選択します。
下の画像では、[Details] パネルのコンポーネントの隣にあるすべての空のアイコンに [オーバーライド] アイコンが表示されています。
コンポーネントのオプションのデフォルト値を変更すると、ライト コンポーネントのデフォルト値を増やすなど、そのコンポーネントの機能に対するオーバーライドも作成されます。 デフォルト値を変更すると、コンポーネント コントロール ボタンに [+] アイコンが表示されます。これは、デフォルト値が変更されたことを示します。
オーバーライドをクリアする
元のプレハブ デザインに戻すには、次の手順を実行します。
[Details] パネルで、コンポーネント カードのドロップダウン メニュー ボタンをクリックします。
[Clear Override (オーバライドをクリア)] を選択します。 すると、プレハブが元の状態に戻ります。
コンポーネントを削除する
エンティティからコンポーネントを削除するには、以下の手順を実行します。
[Details] パネルで、コンポーネント上のコンポーネント カードのドロップダウン メニュー ボタン ([+ (プラス記号)]) をクリックします。
ドロップダウン メニューで、[Remove Component (コンポーネントの削除)] を選択します。 すると、コンポーネントがエンティティから削除されます。
このワークフローはプレハブ エディタでも機能します。
エンティティをプレハブとして保存する
エンティティを作成してコンポーネントを追加したら、特定のエンティティをプレハブとして保存できます。 つまり、同じエンティティとコンポーネント構造のインスタンスを複数作成でき、これらに対する変更をそれらすべてに瞬時に反映させることができます。 プレハブを作成して変更を伝播する方法については、「プレハブとプレハブ インスタンス」を参照してください。
フォートナイト クリエイティブで Scene Graph を使用する
Scene Graph エンティティのサポートはフォートナイト クリエイティブで利用できます。 スマホ ツールを使用すると、編集モードで慣れているコントロールとフィードバックを使用して、Scene Graph での基本的な編集機能を利用できます。 このサポート機能では、スマホ ツールを使用して、シーンにあるすべてのエンティティとアクタを同時に操作することもできます。
フォートナイト クリエイティブと Scene Graph の間でこのような基本的な操作が可能なのは、スマホ ツールによってエンティティ階層全体が 1 つのオブジェクトとして選択されているためです。
クリエイティブ編集モードでは Scene Graph エンティティを作成することはできません。