テクノなまこ

科学の力

UnrealEngine5で万有引力

参考

[UE5] Simulating Gravity in Unreal Engine 5 - YouTube 物体同士の万有引力
Unreal Engine 5 Planet Gravity System - Physics Objects - YouTube 特定の惑星への万有引力

地球-衛星系の万有引力

下準備

  • UE5.3をBlank,StarterKitなし,BluePrintありで起動する。
  • File>New level>Basicから新しいレベル(一つの独立した場面、Unityでのシーンに相当)を作る

地球の設定

  • Window>Content Broeser>Content Browser1から、Content Browserを表示する
  • Content Browser上で右クリック>BluePrintClass>Actorから、アクター(参照して動的に動かせるオブジェクトの母体)を作成する
  • Content Browser上でアクターの名前をEarthにする
  • Content Browser上でアクターをダブルクリックして開きエディターウィンドウ(正式名称を知らない)を表示する
  • エディターウィンドウ上でComponents>+Add>Sphereから、球体を作成する
  • エディターウィンドウのComponents上で、SphereをDefaultSceneRootの上にドラッグし、DefaultSceneRootをSphereで置き換える

地球に落とすものの設定

  • メインのウィンドウに戻り、+ボタン>Shapes>Sphereから衛星に相当する新しい球体を作成する
  • 衛星を地球から離す。
  • 衛星を選択した状態で
  • 地球を選択し、Details>Physics上で、Simulate Physicsにチェックを入れ、Massにチェックを入れ、Mass(kg)の値を1.0等にし、Enable Gravity(下方向の重力を適用する)のチェックを外す
  • Content Browser上で右クリック>BluePrint Class>GameMode baseから、ゲームモードベースのブループリントを作成する
  • Content Browser上ゲームモードベースのブループリントの名前をMain_Gamemode等にリネームする
  • Content Browser上でMain_Gamemodeをダブルクリックしてエディターウィンドウで開く
  • Main_Gamemodeを開いて表示されたエディターウィンドウのEvent Graphタブを表示する 下の画像のBluePrintを作る
  • 再生ボタンで球体が地球に落ちたら成功

付録 多対多の万有引力

参考の一つ目の動画では複数の天体の多対多の万有引力を実装している。多対多の万有引力のBluePrintは下のようになる。球体同士が衝突して一体となると回転し始める癖がある。