妹でもわかるUnrealEngine4

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

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

プロシージャルでグリッドに合わせる足場……をさらに改良(失敗版)

※追記
この方法だと上手くいきません。よくみたらグリッドからズレてました。

正しく対応する方法はこちらに
imoue.hatenablog.com


f:id:una_unagi:20180410235950g:plain
昨日のやつを動かすとこうなる

imoue.hatenablog.com

妹「マウスでシュッと動かした場合は、動くんだけど、少しだけだと全然動かない。これってUE4側でグリッドをONにするしかないの?」

「いくつか解決する方法はあるけど、例えばコンストラクションスクリプトの位置合わせしてるところを、こういう風に改良してみる」

f:id:una_unagi:20180411000227p:plain

「なんで動いたり動かなかったりするかというと、ちょっと動かすだけだとグリッドが効いて元の位置に戻る。シュッと動かすとグリッドで調整しても元とは違う場所になる。このちょっと動かした時が問題になる。UE4側でグリッドをONにすると大丈夫なのは、ちょっと動く状態がそもそも起きなくなるからで」

f:id:una_unagi:20180411000530g:plain

「だから、グリッドに合わせたら、その位置を変数に保存しておいて、その位置からグリッド1個分以上離れた位置に動かすまで、次の位置合わせはしない。こうすることで、ちょっとだけ動いた時は無視するようになる。Locationを元の位置に戻さないから、そのままマウスでドラッグしていける」

妹「おおお? でもどうしてこうなるのかよくわからないな……これ最初の位置ってどこなの? 位置合わせする前の」

「それはどこでもいいよ。初期値の0のままでも。遠くだったら最初に位置合わせが発生するし。位置合わせが反応しないほど近くで、かつグリッドからズレてる場合も、動かしてるうちにフィットするから」