Unreal Engine 5で開発する過程で、ウィジェットで作成したマップを常にプレイヤーの正面を向くようにする手順を備忘録的に投稿します。
常に正面を向くマップ作成
ウィジェットを使ってレベルのレイアウトを表示するマップを作ったのですが。このマップをプレイヤーの向きに対応して回転させたり上下左右に移動する機能を追加したので、その時のポイントをまとめてみました。
ウィジェットの階層でポイントなのは、回転用と移動用の2つの[キャンバスパネル]を使います。
下の画像で説明すると[DungeonMapGridPanel]がマップを表示しているパネルで[MoveCanvasPanel]と[AngleCanvasPanel]が、移動用と回転用の役割にするパネルです。
その上に座標や位置決め設定をするために[キャンバスパネル]を追加します。
それぞれのパネルの中心で重なるように[Alignment]などで調整します。
キャンバスパネルを移動・回転する
追加した[キャンバスパネル]をイベントグラフで移動・回転させます。
移動側のパネルは、キャラクター(三人称の場合はカメラ)の[GetActorLocation]で取得したベクターの[X/Y]値を使って[SetPosition]の[InPosition]に設定します。
キャラクターの移動とマップの方向などが異なる場合には、符号変換など調整が必要な場合があります。
回転側のパネルは[GetControlRotation]で取得したプレイヤーのYawを使い[Set Render Transform Angle]で回転させます。
実行するとプレイヤーの向いている方向に、2つのキャンバスが移動と回転してくれるのでウィジェットの内容が対応して追従するようになります。
まとめ
今回は、Unreal Engine 5のウィジェットで作成したマップを常にプレイヤーの正面を向くようにする手順について書きました。
ポイントは、回転用の移動用の2つのパネルを用意すると、複雑な計算をすることなくプレイヤーの向きに対応した追従をウィジェットに追加できます。
Unreal Engine でマップなどのウィジェットをプレイヤーの向きに追従したい人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。





