横スクロールのアクションゲームを作っています。
キャラクターがジャンプをしている途中でしゃがみのアクションキーを押すと、空中にいるキャラクターがカクカクしてしまいます。
しゃがみのモーションは再生されていないのですが、コリジョンの大きさがしゃがみの時の大きさになっています。
空中にいる時はしゃがみのアクションをできないようにしたいのですが、どのようにノードを組んだらいいのか分かりません。
空中にいる時はコリジョンの大きさを変えない、空中での入力を無効にする(左右も向けない)なども試したのですが、上手く組めていなかったのか改善されませんでした。
初心者で調べても解決できなかったため、教えていただけると助かります。
よろしくお願いします。
実行環境:Windows10
作業環境:UE5(5.0.3)
Yurien
(Yurien)
2
アップされたイベントグラフ写真を拝見しますと条件式が誤っているように思われます。
この条件式ですと
①空中でしゃがんでいる時(IsCrouched True + IsFalling NOT False)
②地上でしゃがんでいない時(IsCrouched False + IsFalling NOT True)
③空中でしゃがんでいない時(IsCrouched False + IsFalling NOT False)
の3パターンでブランチのFalseが成立する=しゃがむの実行がされてしまいます。
ぱっと考えて、私ならこう組むなと考えたものを書きます。先のイベントグラフ写真のIsFallingの方にNOTがありますが、IsCrouchedの方にもNOTをつなぎます。(両方にNOTをつなぎます)それがANDと組み合わさることで
「IsCrouched(NOT)しゃがんでいない時」AND「IsFalling(NOT)地上にいる時」という条件になり、
2つを同時に満たす時にのみ条件Trueが成立するようになるので、これ(Ture)をCrouchにつなぎ、FalseをUnCrouchにつなぐと意図した通りに動くのではないでしょうか。
(もし間違っていたら申し訳ありません。)