妹でもわかるUnrealEngine4

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

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

妹、キャラクターの動きを強制的に止めたい

「双方向のワープは出来るようになった?」

妹「なったよ。こんな感じで、チョウチョにさわるとワープするし、1回離れないとワープしない」

f:id:una_unagi:20150715180132g:plain

「おーちゃんと動いてますね」

妹「いやちゃんとは動いてないんだよ」

「駄目なの?」

妹「これワープする時はボタン押してないんだけど、ワープした時の勢いのまま反対側に動いてるでしょ。いったんそこにピタッと止めたいんだよ」

「それは多分Velocityの設定をすればいいはず」

妹「べろしてぃ?」

「今どっちに向かってどれぐらいの強さで動いてるかという数字。一定の間隔で……多分1フレームごとにだと思うんだけど、その量だけ移動する。ロケーションと同じ3次元Vector型」

妹「それどこにあるの?」

「うーんと、Movementコンポーネントの中にあるのを使えば良さそう。こんな感じにすると止まる」

f:id:una_unagi:20150715180922p:plain

「こうやってSet Velocityで全方向に0を設定したから動かなくなる」

妹「動かなくなったら困るのでは?」

「それまでの動きの影響がなくなるだけだから。空中で止めたとしたら、重量の影響で勝手にVelocityの下方向への数字が増えるし、左右を押せば同じように増えるよ」

妹「そういうの勝手に増やしたくない時は?」

「一時的に重力設定を0にしたり、CharacterMovementをWalkingじゃなくてFlyingにしたりする。その状態で移動操作も無効にすればピクリともしなくなる」

妹「なるほど。でも普段の移動にVelocityを使わないのはなんで? 使った記憶ないんだけど」

「弾の発射とかでは使ってるはず。どっち向きに飛ばすかという初期設定。あと強引に動きをねじ曲げる時には使う。それ以外の動きでは別のブループリントとか設定とかで関係的にVelocityを操作してる。思ったとおりに動いてるならどっちの方法でもいいんだけど」

妹「これは何かに使いそうだからメモしとこう」