広告あり

Unreal Engine コツコツ自習_演算子ノードを使って三角関数計算し位置を決める方法

UEコツコツ自習シリーズ
スポンサーリンク

演算子ノードを使って移動先のロケーションを計算する

今回は、Get Actor Forward VectorノードGet Forward Vectorノードを使わずに、指定先の位置(ロケーション)を計算する方法を備忘録にします。

※作業環境:UEバージョン5.3.2

備忘録

三角関数を利用した位置の計算方法をまとめます。

まずは基準の座標(トランスフォーム)を取得します。

今回はプレイヤーの座標にします。

「Get Actor Transform」ノードで、プレイヤーのトランスフォームを取得します。

次に角度を決めます。

「Get Actor Transform」ノードの「Return Value Rotation」ピンを分割して3つに分けます。

今回は「Yaw」軸の角度を設定していきます。

プレイヤーの「Yaw」角度に値をプラスして角度を指定します。

上の写真の通り、今回は5つの方向を設定しています。

このプラスした状態の値を変数にセットして扱います。

上の写真を例にすると、指定する角度は「Fire Ice Rotation」の変数にセットしています。

三角関数の公式を使ってXとYの座標を決定します。(Z座標は変更無しとします)

三角関数の公式を使った計算は、こんな感じ

  • 移動距離をrとします。(今回は100cm)
  • X軸方向の移動距離xは x=r × cos(θ)で求めます。
  • Y軸方向の移動距離yは y=r × sin(θ)で求めます。
  • θの角度ですが、角度をラジアンに変更して計算します。
    (例えば10度ならθ=10×π[パイ]÷180)

現状のプレイヤーの位置に計算した値を足して、指定した位置になります。

あとは計算したXとYの値をロケーションに割り当てればOKです。

何かを生成したいなら「Spawn Actor from Class」「Spawn Emitter at Location」ノードなどが使えます。

位置を変更したいだけなら「Set Actor Location」「Set World Location」ノードなどが使えます。

他の記事を探す

他の記事も気になる方は、以下の記事の目次を確認ください。

タイトルとURLをコピーしました