この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:1
ページ更新者:T
更新日時:2025-03-16 15:15:40

タイトル: SpawnActorでSpawn Transform Rotationが反映されない理由
SEOタイトル: 【UE5】SpawnActorでSpawn Transform Rotationが反映されない理由

Unreal Engine 5(UE5)において、SpawnActorノードを使用してアクターをスポーンする際に、指定したRotationが反映されないケースがあります。これは初心者だけでなく、経験者でもハマることのある問題です。本記事では、その理由と解決策について詳しく解説します。

考えられる原因

スポーン時にRotationが適用されない原因はいくつか考えられます。主な理由として以下の3つが挙げられます。

1. アクターのコンポーネントが親のTransformを無視している

UE5では、アクターのルートコンポーネントがワールド座標を基準にしている場合、スポーン時の回転が適用されないことがあります。特に、StaticMeshComponentをルートとして持つアクターではこの現象がよく発生します。

この問題を解決するには、以下のようにアクターのルートを適切に設定する必要があります。

  • SceneComponentをルートにする
  • スポーン後に手動で回転を適用する

2. Spawn Actorノードの「Always Spawn, Ignore Collisions」設定

SpawnActorノードの「Spawn Collision Handling Method」が「Try To Adjust Location, But Always Spawn」などに設定されている場合、コリジョンによってTransformの一部が書き換えられることがあります。

これを防ぐには、「Always Spawn, Ignore Collisions」に設定し、意図したRotationが適用されるようにするのが有効です。

3. スケルタルメッシュを使用している場合の影響

スケルタルメッシュを含むアクターは、アニメーションの初期化によってスポーン時の回転が上書きされることがあります。これは、ブループリントでアニメーションが設定されていると特に起こりやすい現象です。

この場合、スポーン後に手動で回転を再設定するか、アニメーションの初期化処理を調整する必要があります。

解決策

以上の問題に対する解決策を以下にまとめます。

  • アクターのルートをSceneComponentにする
  • SpawnActorノードの「Spawn Collision Handling Method」を「Always Spawn, Ignore Collisions」にする
  • スポーン後に明示的にSetActorRotationを呼び出す
  • アニメーションの初期化設定を確認し、回転を変更しないようにする

まとめ

Unreal Engine 5のSpawnActorRotationが適用されない原因は、アクターのルートコンポーネントの設定やコリジョンの影響、アニメーションの処理など様々な要因が考えられます。正しい設定を行い、必要に応じて手動で回転を適用することで、意図した挙動を実現できます。

この記事を参考に、思い通りの回転でアクターをスポーンさせてみてください!