しゃがみから立ち上がれるかどうかをチェックする方法!

※前回の記事の続きとして紹介してるので

 前回の記事を読んでから見ることをお勧めします。

 

 

前回の記事で

free-gamer.hatenablog.com

しゃがみアニメーションの方法を書きました。

 

しゃがむことが出来るのは良いのですが

1つ問題があります。

 

どういう問題かというと・・・

 

もしここで立ち上がろうとしたら・・・

f:id:Free_Gamer:20190828154945p:plain

f:id:Free_Gamer:20190828155044p:plain

普通に立ち上がれてしまうのです!

思いっきり貫通してしまって

明らかにおかしいことになってしまいますよね!w

 

今回はそのようなことが起きないように

 

しゃがみから立ち上がれるかどうかをチェックする方法!

 

を紹介します!

 

 

~イベントグラフの作成~

「ThirdpersonCharacter」を開き

イベントグラフに以下の処理を作成します。

f:id:Free_Gamer:20190828160811p:plain

 

「Qキー」を押した時

立ち上がり可能か判定

f:id:Free_Gamer:20190828161645p:plain

 

FlipFlopの「A」に繋がる処理

f:id:Free_Gamer:20190828161712p:plain

インターフェース「SetPlayer_CrouchingBPI」を呼び出した後

カスタムイベント「CanPlayerStanding」を

タイマーで「0.01」秒毎に呼び出しています。

 

FlipFlop「B」に繋がる処理

f:id:Free_Gamer:20190828162327p:plain

しゃがみから立ち上がり、タイマーを止める。

 

 

~カスタムイベント「CanPlayerStanding」の作成~

カスタムイベント「CanPlayerStanding」イベントは

以下のようになってます。

f:id:Free_Gamer:20190828162026p:plain

Sphereトレースで、頭上に立ち上がるのを阻害する障害物があるかを

チェックしています。

 

トレースがヒットしたら、障害物があるとして立ち上がり不可

トレースがヒットしてなければ、障害物がないとして立ち上がり可能

 

となります。

 

 

~CapsuleComponentのサイズ調整~

そして、これは前回言い忘れたのですが・・・

Crouchノードを呼び出した時に

f:id:Free_Gamer:20190828163140p:plain

CapsuleComponentのサイズ(高さ)が自動で変化します。

 

f:id:Free_Gamer:20190828163314p:plain

f:id:Free_Gamer:20190828163331p:plain

こんな感じですね。

 

しかし、このサイズだと

場合によっては以下のようなことが起こってしまいます。

f:id:Free_Gamer:20190828163612p:plain

CapsuleComponentのサイズが小さいので

頭が貫通してしまいます。

 

そういう時は

CharacterMovementの「CharacterMovement(GeneralSetting)」項目にある

「CrouchedHalfHeight」の値を変えましょう。

f:id:Free_Gamer:20190828163949p:plain

f:id:Free_Gamer:20190828164002p:plain

デフォルトでは「40」になっているので

「60」ぐらいが丁度良いでしょう。

 

 

必要な準備はすべて終わりました。

これでプレイしてみましょう!

 

「Qキー」を押してるか分かるように

「PrintString」で画面左上に文字を表示させてます。

f:id:Free_Gamer:20190828164437p:plain

 

 

youtu.be

 

しゃがんでいる時

上に障害物があった場合

何回「Qキー」を押しても

立ち上がれていないのが分かったと思います。

 

 

それではまた!^^ノシ