プレイヤーが特定のタイミングで敵キャラのほうを振り向きたい

UE学習中のものです。

本文:ホラーゲームでよくあるような、敵に追いかけられて捕まったタイミングで攻撃を受ける際に主人公が敵キャラのほうを振り向く処理を行いたい。

詳細:
敵キャラクター(Pawnクラス)をビヘイビアツリーの処理を用いて
主人公に追いついたタイミングでカスタム関数(atack)を用いて攻撃処理を行っております。
その際、主人公に自動で敵キャラのほうを振り向かせたいです。

敵のブループリント

ビヘイビアツリーの攻撃タスク

ビヘイビアツリー

実行環境:

  • Windows 10

作業環境:

  • Unreal Engine 5.1

参考にしたURL:
[UE4] アクターをターゲットの方に向ける方法|株式会社ヒストリア (historia.co.jp)

操作キャラを常に敵の方向へ向かせたい - Development / Character & Animation - Epic Developer Community Forums (unrealengine.com)

よろしくお願いいたします。

やりたいことを把握しましたが、どのあたりで詰まっている感じでしょうか?
参考URLもあるようですし、見たところこのまま進めば順調に実装はできるとは思いますが。

ありがとうございます。

詰まっているところとしては、
Objectクラスが一致せず処理を作れない。ということになります。

以下画像内左下の処理のコメントにある「ターゲットにしたい敵」という箇所に紐づけられる変数はActorクラスのものに限定されております。
しかし、現状私が書いているブループリントのほうで紐づけようとしているものはPawnクラスしか見つけられませんでした。

image

この画像自体にも何も問題は無いように見受けられます

画像内TargetがActor型ということですが、Pawn型はActor型を継承しています。
すなわち、Pawn型はActor型と同じ能力を持っているため、GetActorLocationも使用することが可能です。

同じようなものにCharacter型(ThirdPersonテンプレートのデフォルトキャラ)はPawn型を継承しているため、Actor型の能力とPawn型の能力どちらも使える上位形態みたいなものとなります。

まとめると、Pawn型やCharacter型でも問題なくGetActorLocationなどを利用できるため、型をPawnやCharacterにしてみましょう。

いったん試してみます。

BP_Killer_Clownというのは敵キャラクターです。
それのactorlocationを取得してみました。
接敵した瞬間に一瞬だけ画面がぶれる現象が起きますが、うまくふりむくことはできませんでそた。
今のノードではうまくいかず以下のようになりました。

わかりづらいですが、一瞬接敵したタイミングでぶれる動画

理想(攻撃をもらうときに相手のを法を振り向いている)

Actorは振り向いているのに、カメラが振り向いていないとかですかね
→TPSで調べたところ、カメラの振り向きができていないことが原因のようです。
伝え忘れていましたたが、FPS視点のゲームです。
キャラクター自体は向きが変わってます。

確認したいのですが、以下の処理が残っている場合、毎フレームキャラクターの向きを修正し続けているため、敵が振り向かせた後にすぐに向きが戻ってしまうかもしれません。

tickの処理は入れてないです。その画像は私の書いたものではなく参考にしたページの画像です。

FPTemplateをベースに作っているのであれば、キャラクターの向き(Yaw)はControlRotationを参照していると思われます

ですので、Characterを回したい場合はControllerを回すため、SetControlRotationを使う必要があります

1 Like