ガードした時にダメージをくらわないプログラムをしました。
敵がいる方向にガードしたらダメージをくらわないのですが、敵がいない方向にガードしたらダメージをくらわなくなっしまいました。敵がいない方向でガードしたらダメージをくらうようにしたいです。
Actor間の内積で敵のほうを向いているかは判定できると思います。
Playerにプレイヤーアクター、Enemyにエネミーアクターを設定して以下のノードで分岐すると敵が前後どっちにいるか判定できるので、ガード処理を行うときに、前にいる場合はガード成功、後ろにいる場合はガード失敗処理につなぐとよいかと思います。
その画像の>でつないであるBrunchの後ろの処理はなんですか?
PrintStingの部分でしょうか?
このノードは分かりやすいようにデバッグコードとして置いてあるだけです。
実際に実装する場合はPrintStringは削除して、ガード成功処理、ガード失敗処理につないでください。
まず最初に、このノードに処理が来るのは敵から攻撃を受けた時という認識でよいでしょうか?
以下、それ前提で話を進めます。
PlayMontageの手前のブランチは
敵が前方にいるときにプレイヤーが攻撃をうけた →True
敵が後方にいるときにプレイヤーが攻撃をうけた →False
に処理が流れます。
ガードが成功するのは敵が前方にいるときなので、PlayMontageでガードモーションを再生するのは敵が前方にいるとき、つまりTrueに結ぶべきかと思います。
反対のFalseのほうはダメージを受けるべきときなので、ダメージを受ける処理を書いてください。(ダメージを受けるモンタージュを再生したりHPを減らしたり)
ただ、このままノード構成ですと
この赤丸をつけた個所に処理が進むと、DoOnceのResetに処理がいかないので2度とこの処理に入ってこないことになります。その辺も考えて、きちんとノードを結ばないといけないかと思います。
長々とすみません。ありがとうございました!長々とすみません。!!