Chaos Vehicleでクルマを動かす

環境:Unreal Engine 5.4.4、Houdini 20.0.751

Houdiniで簡単な自動車モデルをつくり、UEのChaos Vehicle プラグインで動かせるようにすることが今回の目的です。

Houdiniでクルマのモデルをつくる

押し出しツール等で簡単なHoudiniのクルマをつくった。
車輪の半径はのちにUEで設定することになるので意識しておく。
ここでは直径60㎝でつくった。

車体と車輪4つを別オブジェクトに分けた構成にする。

車体が親で車輪が子になるような階層にする。オブジェクトにつけた名前がそのままボーンの名前になる。

出力するときはUEの座標系に合わせて、X軸を前に、Z軸が上になるように回転させておく。これをしておかないとChaos Vehicleが上手く動作しない。

File > Export > Filmbox FBX
でFBXの出力をする。Z軸を上に設定する。

UEでインポートする

Edit > PluginsからChaos Vehicle Pluginを探し、これにチェックをしてエディタを再起動する。

FBXファイルをコンテンツブラウザにドロップする。

インポート設定で、Skeletal Meshにチェックをする。

Skeletal Mesh以外にPhysics AssetとSkeletonがつくられる。
以後はSkeletal Meshだけ更新すれば他も更新される。

アセットの設定

Physics Assetをダブルクリックして設定をしていく。

車輪の設定

まずは車輪を編集する。Wheel_Front_Leftら4つを選択状態にする。

ToolsのPrimitive TypeをSphereにして、右下のRe-generate Bodiesを押してコリジョンを変更する。
Physics TypeをKinematicに、
Collision ReponseをDisabledにする。

車輪のコリジョンモデルが球に変更された。

車体の設定

車体を選択して、コリジョンを設定する。Single Convex Hullで車体に合わせた形状にしてみた。

これでクルマのアセットの設定はほぼ完了。

ブループリントを作成する

ChaosVehicleWheel
WheeledVehiclePawn

のふたつのブループリントを作成する。前者は車輪の処理、後者はアクセルやブレーキなどの全体の処理と管理をするPawnBPになる。

ChaosVehicleWheel

ブループリントをChaos Vehicle等で検索して探し、作成する。ここではFR車(フロントエンジン、リアドライブ)を想定して設定している。

まずは前輪から

Axle TypeをFrontに
Wheel Radiusを車輪メッシュに合わせた値に
Affected by Steeringにチェックをする。

続いて後輪の設定。前輪のBPを複製して変更。

Axle TypeをRearに
Wheel Radiusを車輪メッシュに合わせた値に
Affected by Engineに。

WheeledVehiclePawn

WheeledVehiclePawnを検索して作成する。BPを開いたらプロパティを設定する。

MeshにSkeltal Meshを指定する。
Simulate Physicsを探してチェックを入れる。

プレイヤーとして動かす時のカメラが必要なので、Spring ArmとCameraを設定しておく。

左のコンポーネントメニューからVehicle Movement Componentを選択して、車輪の情報を設定していく。

先ほど設定したChaosVehicleWheelクラスのBP(前輪、後輪)と4つのボーン名を入力していく。

つづいてエンジントルクのグラフを作成する。

Create External Curveのボタンを押して新しくカーブを作成する。
Timeが回転数、Valueは最高を1としたトルク(N・m)のカーブをつくる。最高トルクは別の項目Max Torqueで設定する。

公式チュートリアルを参考に以下のように設定した。
Time:0, Value:0.5
Time:1000, Value:1000
Time:4000, Value:4000
Time:5000, Value:0.5

入力の設定

UE5のEnhanced Input方式でアクセルとステアリング、ブレーキ等の入力を設定していく。
Input ActionとInput Mapping Contextを作成する。

ValueTypeはそれぞれAxis1D(float)にしている。

Input Mappint Contextでは以下のようにまとめた。

キーボードのWSAD、ゲームパッドで操作できるようにした。

Pawn BPに戻り、入力の処理をEvent Graphで設定していく。

どのInput Mappint Contextを使うか、の設定したグラフ。

アクセルの動作

ステアリングの動作

バックの動作(ブレーキとバックの整理は次回やります)

ゲームモードを作って動作を確かめる

ここまでの作業が上手くいっているか確認するためにゲームモードのBPを作成する。

Game Mode Baseを選び、

Pawn BPをセットする。

World Settings > Game Mode > GameMode OverrideにゲームモードBPをセットしてゲームを実行する。

車輪は動かないが、前進したり、ハンドルを切って動けることを確認する。

車輪のアニメーションの設定

VehicleAnimationInstanceクラスのBPを作成する。

開いたらノードをこのように設定する。

Pawn BPを開いて、Animation > Anim Classに作成したBPをセットする。

ゲームを実行して、車輪も動いていることを確認する。

参考

公式のドキュメントと動画が分かりやすいです。
dev.epicgames.com/documentation/ja-jp/unreal-engine/how-to-set-up-vehicles-in-unreal-engine?application_version=5.3
www.youtube.com/watch?v=Wc6lUXOhRO0

タイトルとURLをコピーしました