ゲーム制作まで書くブログ

読まないで><

UE4_休符さんの「パンチラ防止機能」

 しばらく眺めていたが、やっと理解できた。

ので備忘録

 

 

まずこの機能は

「パンチラしようとしたら、カメラが変な方向を向く」機能

 なので

毎度、定められた動きをカメラにさせるものではない(たぶん)

 

そしてシークエンスに来る前に、たぶんカメラのLocation座標、XとZで分岐している。

カメラの仕様がわからないけど、パンチラしていると考えられる座標が必要で

 

その条件がそろったうえで

シークエンスのThen1でカメラのピッチ(RotationのY座標)を比較している。

このゲームでは、ある座標から5度以上、上を向くとパンチラとみなされる(たぶん)

 

パンチラとみなされた場合、Trueにながれて、カメラの相対位置座標のXとZに

なんか数字が流し込まれる。

中身はシークエンスのThen2でセットされているので、その都度ではなく

それ以前にセットされた数字を利用している(たぶん)

Falseだった場合は、おそらくデフォルトの数字(-750,0,50)にリセット処理される

ゲームの仕様がわからないので-750がどういう処理なのか謎だが・・・

おそらく親がプレイヤーキャラなので

そのキャラクターからX-750、Z50の位置が基本なのかなと。

どちらにしても

回転は0度にリセットされている。

 

最大の謎はThen2で

Yの絶対回転座標に15かけて、-750を足して、

パンチラ時に相対位置座標のXに流し込む値にセットしているところ。

なんで???

と思ったけど

そもそも「変な方向」に向ける処理なので

変な数字を入れるためなのかなと。

 

最後はウィジェットを出す処理

パンチラしようがしまいが

パンチラ危険領域に達した場合に

何か警告を一度出すようにするもの(たぶん)

ここは難しくないので特筆はしないが

DoOnceをリセットさせるために

最後から最初に伸ばされているのは初めて見た

のでこの理解でいいのか不明。

レベル遷移を挟まない処理だからか

もしくはゲームインスタンスに書かれている処理なのか

パンチラの警告を何度も発動させるためのつなげ方なのかなと。

 

 

この処理自体は

パンチラしたあとの処理なので

気になる「どうやってパンチラと判定するか」に関しての処理は

このイベントからだと「カメラのY軸の回転から判定している」くらいしかわからなかった。

 

 

他の人のイベントを見て

それを理解しようとすることは

勉強の方法として面白いなと思ったのでやってみた。

結果

よくわからなかったが理屈がわかって楽しかった。