妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

妹、ワープポイントにはいって行ったり来たりする

妹「昨日のポヨンポヨンするやつの原因わかった?」

「いや全然……」

妹「やっぱり駄目か」

「物理の問題じゃなさそうっていうのと、上にのってる側がCharacterMovementかどうかは関係ない事まではわかった。根拠はえび天を落としてもはねてるから」

妹「そうか……それはそれとして、新たに困った問題が起きてるんだけど」

「今度はなにをやらかしたんですか」

妹「ある場所に行くと、別の場所にワープするという機能を作ろうとしてたんだよ。というか、それ自体はできてるんだよ。一方通行のやつなら」

「両方向だと駄目だったの?」

妹「なんというか……ワープした先もワープポイントなわけだから、ワープして戻ってきちゃって、でも戻ってきたとこもワープポイントなものだから、必然的にまたワープして……」

「だいたいわかった。そのワープってOverlapイベントで飛ばしてるの?」

妹「そう。だからワープした先のコリジョンを無効にしちゃえ! って思ったんだけど、それだとコリジョンが元に戻せないから、結局ワープポイントがなくなったままになってしまった」

「解決方法はいくつかあるけど」

・ワープする時に変数をTrueにして、それがTrueの時はワープ不可、end overlapイベントで変数をFalseに戻す ・ワープさせるポイントと着地のポイントをずらす ・コリジョンを消した後にDelay入れて10秒ぐらいしてから戻す

「一番上の、変数使う方法がおすすめです。Overlap系のコリジョンの問題は、無効化にするより変数で分岐させた方が大抵上手くいくよ」

妹「コリジョン無効化にしちゃうとend overlapが反応しないから困ってたんだよ。こういうのも変数でいいのか」

「あとワープのポイントをずらすのも定番の方法。でもワープの仕方によってはいまいち」

妹「ワープの仕方?」

「右に歩いてる途中でワープすると、ワープ直後にもキー押しっぱなしだから、結局元の場所にワープしちゃう事がある。ポイントを右にずらしておけばいいけど、じゃあ左向きでワープした場合にどうするかとか、結構面倒な事になる。ボタン押してワープする仕様ならいいけど、その場合そもそも無限ループにはならないだろうし」

妹「じゃあDelay案は?」

「ワープした後に風景を眺めてたら、急に元に戻される……ってのは気分悪いでしょ。ただゲームの種類によってはありだと思うよ。無効時間長めにして、すぐには元の場所に戻れなくする感じで、ワープ可能になったらゲートが光るとか。変数と併用してもいい」

妹「なるほど。さっそく変数を追加してみよう」