Unreal Engine 5(UE5)では、新しくブループリントアクターを作成すると、最初に DefaultSceneRoot というコンポーネントが自動で追加されます。この DefaultSceneRoot はアクターの基本的なルートとして機能し、すべてのコンポーネントをこのルートにアタッチすることができます。

DefaultSceneRootの役割

DefaultSceneRoot の主な役割は以下の通りです。

1. アクターの位置や回転、スケールの基準点となる。

2. 他のコンポーネントがアタッチされるデフォルトの親ノードとなる。

3. もし他にルートとなるコンポーネントが存在しない場合、自動的に追加される。

このコンポーネントは、特にカスタムのルートコンポーネントを設定していない限り、アクターの中心点として機能します。

DefaultSceneRootの特徴

DefaultSceneRoot にはいくつかの特徴があります。

✔ ルートコンポーネントとして機能するが、シーン内に表示されるわけではない。

✔ 新しくコンポーネントを追加し、ルートに設定すると自動的に削除される。

✔ 物理シミュレーションを適用することはできない。

✔ コンストラクションスクリプトを利用して置き換えが可能。

DefaultSceneRootを置き換える方法

通常、 DefaultSceneRoot はそのまま使用することもできますが、独自のルートコンポーネントを設定することで、アクターの挙動をより細かく制御できます。

以下の手順で DefaultSceneRoot を置き換えることができます。

1. ブループリントエディタを開く。

2. [Components] タブで新しいコンポーネント(例: StaticMeshComponentSceneComponent)を追加。

3. 追加したコンポーネントを右クリックし、[Set as Root](ルートに設定)を選択。

4. これにより、 DefaultSceneRoot は削除される。

これにより、アクターのルートを自分で定義したコンポーネントに置き換えることができ、より柔軟な制御が可能になります。

いつDefaultSceneRootをそのまま使うべきか?

すべてのケースで DefaultSceneRoot を置き換える必要があるわけではありません。以下のような場合は、そのまま使用するのが適しています。

✔ 特にルートとして機能するコンポーネントが不要な場合。

✔ アクターの配置だけを管理し、表示するオブジェクトがない場合。

✔ シンプルなスクリプトベースのアクター(例: トリガーボックスやエフェクトのスポナー)。

まとめ

DefaultSceneRoot は、UE5のブループリントアクターでデフォルトのルートコンポーネントとして機能します。新しいコンポーネントをルートとして設定すると自動的に削除されます。

特に問題がなければそのまま使用してもよいですが、物理シミュレーションを適用したい場合や、特定の機能を持つルートが必要な場合は、 SceneComponent などを追加して置き換えるのがベストです。