読者です 読者をやめる 読者になる 読者になる

妹でもわかるUnrealEngine4

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

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

物理エンジンで2次元方向にしか移動させない方法 #UE4

f:id:una_unagi:20170430230332p:plain

「UE4の物理を使った時に、決まった方向にだけしか動かない方法がわからないという話を先日聞いたので、今日はその方法をチェックしておこうかと」

妹「勝手に奥とかにズレないようにするってことだよね」

「そうそう。これは2Dゲームの研究中に少しやったような気がするけど、3Dのゲームでも必要になることがある。一番最初にピンボール的なゲームを作ろうとした時に、これのやり方がわからなくて頓挫してしまった。物理使わないというのもどうもアレで」

物理で動かす場合
f:id:una_unagi:20170430230341p:plain

ProjectileMovementComponentの場合
f:id:una_unagi:20170430230347p:plain

「このへんの設定を変えることで、動く方向が限定できるようになる。ただ物理の方はプロジェクト設定だから、プロジェクト全体的にそうなるという点に注意が必要。MovementComponentは厳密にいうと物理ではないけど、勝手に動いちゃうという点では同じように困る」

妹「これはSetActorLocationとかで動く場合には効かないんだよね?」

「そういうのは勝手に動くわけじゃなく、毎回移動先を設定してるわけだから、その移動させる前にYの数値だけ元のままにするとか、適当に調整すれば解決する」

妹「でも物理的にというかなんというか、本物のピンボールっていうのは、ちゃんと動いてるよね? 別に物理設定とかせずに、重力通りに」

「それはそう。台をちょっと傾けたり、あと飛び出ないように透明のフタ(コリジョン)を置くことで、現実的な設計にすることも出来る。ただその時作ろうとしたピンボールはそういうのではなく、ブルーマンが落ちてくる玉をヘディングして押し返すというピンボールだったから……」

妹「それはたぶんピンボールではないと思う」

「ちゃんとしたピンボールの場合、ちゃんとした設計にすることも出来るけど、物理エンジンも完全に物理現象をシミュレートしてるわけじゃないというのが注意点。妙なとこで引っ掛かったり、勢いがついて突き抜けちゃう可能性があるから。平面上から絶対動かさないと決めてる場合は、そういう設定にしておいた方が安全」