広告あり

Unreal Engine コツコツ自習_生成するアクタの向きをキャラクター進行方向と同じにする方法

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

生成するアクタの向きをキャラクター進行方向と同じにする

今回は、生成するアクタの向きを、キャラクター進行方向と同じにする方法を備忘録にします。

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

備忘録

プレイヤーの進行方向とスポーンするアクタの向きを同じにしたいときに使った処理です。

もっと良い方法があるかもしれませんが、まとめていきます。

「Rotation From X Vector」「Get Velocity」ノードを使います。

まず「Get Velocity」ノードで、キャラクター(アクタ)の速度ベクトルを取得します。

「Rotation From X Vector」ノードに速度ベクトルを繋いで、進行方向の回転を取得します。

Outputピンを分解して「Roll」、「Pitch」、「Yaw」に分けます。

「Roll」、「Pitch」、「Yaw」とは各回転軸の名称なのですが、説明を省略します。

詳しく説明しているサイトが多くあるので、そちらをご確認ください。

今回はキャラクターの「Yaw」軸に合わせます。

Outputピンの「Return Value Z(Yaw)」を変数にセットして使用します。

ここまでの工程でキャラクターの進行方向への回転は取得できました。

あとは、任意のタイミングでアクタをスポーンさせるときに、回転を適用します。

キャラクターの進行方向にアクタがスポーンされるようになります。

アクタをスポーンするノードには、「Spawn Actor from Class」ノードを使用します。

上の写真を例にすると、「Fire Ball Rotation」という変数に回転値をセットしています。

「Fire Ball Rotation」を「Spawn Transform Rotation Z (Yaw)」に繋げることで、新しく生成されるアクタの向きがキャラクターの進行方向と同じに設定されます。

新しく生成されるアクタに正面方向への動きを設定していれば、スポーンされた際にキャラクターと同じ進行方向に動き出すはずです。

上の写真は、私が組んだブループリントの一部です。

進行方向への回転を取得し、変数にして使っています。

キャラクターが一定距離進んだ場合のみ変数にセットしているので、移動量が少ないと回転はセットされません。

「==」ノード(Near Equalノード)の一番下の値は、「Error Tolerance」で許容誤差を示しています。

ここでは「100cmの範囲内なら同じとして扱う」みたいな感じになります。

他の記事を探す

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

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