Unreal Engine 5(UE5)では、新しくブループリントアクターを作成すると、最初に DefaultSceneRoot というコンポーネントが自動で追加されます。この DefaultSceneRoot はアクターの基本的なルートとして機能し、すべてのコンポーネントをこのルートにアタッチすることができます。
DefaultSceneRootの役割
DefaultSceneRoot の主な役割は以下の通りです。
1. アクターの位置や回転、スケールの基準点となる。
2. 他のコンポーネントがアタッチされるデフォルトの親ノードとなる。
3. もし他にルートとなるコンポーネントが存在しない場合、自動的に追加される。
このコンポーネントは、特にカスタムのルートコンポーネントを設定していない限り、アクターの中心点として機能します。
DefaultSceneRootの特徴
DefaultSceneRoot にはいくつかの特徴があります。
✔ ルートコンポーネントとして機能するが、シーン内に表示されるわけではない。
✔ 新しくコンポーネントを追加し、ルートに設定すると自動的に削除される。
✔ 物理シミュレーションを適用することはできない。
✔ コンストラクションスクリプトを利用して置き換えが可能。
DefaultSceneRootを置き換える方法
通常、 DefaultSceneRoot はそのまま使用することもできますが、独自のルートコンポーネントを設定することで、アクターの挙動をより細かく制御できます。
以下の手順で DefaultSceneRoot を置き換えることができます。
1. ブループリントエディタを開く。
2. [Components] タブで新しいコンポーネント(例: StaticMeshComponent や SceneComponent)を追加。
3. 追加したコンポーネントを右クリックし、[Set as Root](ルートに設定)を選択。
4. これにより、 DefaultSceneRoot は削除される。
これにより、アクターのルートを自分で定義したコンポーネントに置き換えることができ、より柔軟な制御が可能になります。
いつDefaultSceneRootをそのまま使うべきか?
すべてのケースで DefaultSceneRoot を置き換える必要があるわけではありません。以下のような場合は、そのまま使用するのが適しています。
✔ 特にルートとして機能するコンポーネントが不要な場合。
✔ アクターの配置だけを管理し、表示するオブジェクトがない場合。
✔ シンプルなスクリプトベースのアクター(例: トリガーボックスやエフェクトのスポナー)。
まとめ
DefaultSceneRoot は、UE5のブループリントアクターでデフォルトのルートコンポーネントとして機能します。新しいコンポーネントをルートとして設定すると自動的に削除されます。
特に問題がなければそのまま使用してもよいですが、物理シミュレーションを適用したい場合や、特定の機能を持つルートが必要な場合は、 SceneComponent などを追加して置き換えるのがベストです。