しゃがみから立ち上がれるかどうかをチェックする方法!
※前回の記事の続きとして紹介してるので
前回の記事を読んでから見ることをお勧めします。
前回の記事で
しゃがみアニメーションの方法を書きました。
しゃがむことが出来るのは良いのですが
1つ問題があります。
どういう問題かというと・・・
もしここで立ち上がろうとしたら・・・
・
・
・
普通に立ち上がれてしまうのです!
思いっきり貫通してしまって
明らかにおかしいことになってしまいますよね!w
今回はそのようなことが起きないように
しゃがみから立ち上がれるかどうかをチェックする方法!
を紹介します!
~イベントグラフの作成~
「ThirdpersonCharacter」を開き
イベントグラフに以下の処理を作成します。
「Qキー」を押した時
立ち上がり可能か判定
FlipFlopの「A」に繋がる処理
インターフェース「SetPlayer_CrouchingBPI」を呼び出した後
カスタムイベント「CanPlayerStanding」を
タイマーで「0.01」秒毎に呼び出しています。
FlipFlop「B」に繋がる処理
しゃがみから立ち上がり、タイマーを止める。
~カスタムイベント「CanPlayerStanding」の作成~
カスタムイベント「CanPlayerStanding」イベントは
以下のようになってます。
Sphereトレースで、頭上に立ち上がるのを阻害する障害物があるかを
チェックしています。
トレースがヒットしたら、障害物があるとして立ち上がり不可
トレースがヒットしてなければ、障害物がないとして立ち上がり可能
となります。
~CapsuleComponentのサイズ調整~
そして、これは前回言い忘れたのですが・・・
Crouchノードを呼び出した時に
CapsuleComponentのサイズ(高さ)が自動で変化します。
↓
こんな感じですね。
しかし、このサイズだと
場合によっては以下のようなことが起こってしまいます。
CapsuleComponentのサイズが小さいので
頭が貫通してしまいます。
そういう時は
CharacterMovementの「CharacterMovement(GeneralSetting)」項目にある
「CrouchedHalfHeight」の値を変えましょう。
デフォルトでは「40」になっているので
「60」ぐらいが丁度良いでしょう。
必要な準備はすべて終わりました。
これでプレイしてみましょう!
「Qキー」を押してるか分かるように
「PrintString」で画面左上に文字を表示させてます。
しゃがんでいる時
上に障害物があった場合
何回「Qキー」を押しても
立ち上がれていないのが分かったと思います。
それではまた!^^ノシ