アルゴンUE4/UE5&アプリ開発日記

UE4/UE5の機能やプラグインを紹介します。初心者や中級者向けになってます!!

【UE5】ChaosVehicleを使用した車を動かす

車動かします!!(∩´∀`)∩

今回は車の無料モデルを使用しつつ、

ChaosVehicleWheelを使用した車の動作を作ってみます。

※UE5.1を使用しています。

※説明の誤りや不明瞭な点はコメントいただけると幸いです。

※こちらの動画を参考に作成しています。

無料の車のアセットを移行

まずは無料アセットであるVehicleVarietyPackVolumeの、

プロジェクトを作成します。

続いてそのプロジェクトからセダンのモデルや各種データを、

プロジェクトに移行します。

プロジェクトフォルダ内のVehicleVarietyVol2 → Skeletonsから、

SK_Sedan_01aを右クリックして移行を選択します。

移行ファイルを選択

移行ができてContentsフォルダに入っていれば完了です。

・目次に戻る

車の動きのBP作成

車の動きを作成する前にプラグインを設定します。

まずはChaosVehiclesPluginをオンにします。

プラグインの設定

プラグインを設定したら、Skeletonフォルダ内にある物理アセットを選択します。

今回はセダンのモデルを使用しているのでSK_Sedanの物理アセットを使用します。

車の物理アセットの選択

物理アセットを開いたらタイヤの動きなどを設定していきます。

手順としては下記の画像となります。

1.各タイヤを選択します。

2.CollisionReponseをDisabledに変更する。

3.PrimitiveTypeをSphereに変更する。

4.AutoOrienttoBoneをONに変更する。

タイヤの物理アセット設定

物理アセットの設定の設定が完了したので、

各BPを作成していきますが何が必要なのかを説明していきます。

ChaosVehicleWheel → 車の車輪の処理をするBP

WheelVehiclePawn → アクセルやブレーキなどの動作を行うPawnBP

上記2つを使用して車の動きをBPで再現する仕組みとなっております。

まずはChaosVehicleWheelを追加していきます。

ブループリントクラスを選択してすべてのクラスから、

「chaosve」と検索して「ChaosVehicleWheel」を選択します。

ChaosVehicleWheelの追加

作成したらまずは前輪の操作をしていきます。

主に設定するのをいくつか紹介していきます。

AxleType → 前輪か後輪かを選択

Wheel Radius → 車輪の半径・Wheel Width → 車輪の幅

Max Steer Angle → ステアリングの最大角

Affected by steering → ステアリングの影響を受けるか?

今回使用していないですがパラメータの説明はしておきます。

しっかりしたレーシングゲームを作る場合は下記のパラメータは重要です。

cornering stiffness → ステアリングの立ち上がり

Slip Sleed modifire → 横すべりのパラメータ

Slip Threshold → スリップするまでの閾値

Skid Threshold → 横すべりする閾値

Affected by Brake → ブレーキの影響を受けるか

Affected by HandBrake → ハンドブレーキの影響を受けるか

Affected by Engine → エンジンの影響を受けるか

ABSEnabled → ABSを有効にするか

Traction Control Enabled → 牽引動作を有効にするか

External Torque Combine Method →  外部のトルク動作処理の活用

前輪の設定

上記は前輪のみの設定なので今度は後輪も作成します。

BPをコピーして後輪を作ります。

設定する値は下記の通りになります。

後輪の処理

車輪用のBPの作成が完了したので車体のBPを作成していきます。

Wheelで検索して「WheeledVehiclePawn」を作成します。

VihiclePawnの作成

作成が完了したら作成したWheeledVehiclePawnのBPを開いて、

スケルタルメッシュに車のスケルタルメッシュを指定します。

コンポーネント欄でPawn(Self)を指定しておかないと表示されないので注意!

車のスケルタルメッシュの設定

スケルタルメッシュを設定したらSimulatePhysicsをオンにします。

※これを設定しないと動作しないので注意してください。

SimulationPhysics

プレイヤーとして操作する際のカメラがないので、

SpringArmとCameraを設定しておきましょう。

カメラとスプリングアームの設定

今度は各ホイールの情報をボーンに適応します。

Vehicle Movement Componentの詳細にあるWheelSetups内を設定できます。

先ほど作成した前輪用のBPと前輪のボーンを指定して、

後輪用のBPと後輪のボーンを指定していきます。

※Vehicle Movement Componentを選択しないと出ないので注意!

車の車輪の部分の作成

車輪の設定を行ったら今度は車両のエンジン動作の設定になります。

こちらはエンジンの動作をトルクのカーブで再現しているのでカーブを作成します。

外部カーブを作成があるので作成してみましょう。

カーブ作成ボタン

作成したらカーブの値を作成していきます。

値はそれぞれ下記となっています。

時間:0 値:0.5 時間:1000 値:1 時間:4000 値:0.8 時間:5000 値:0.5

カーブの値を指定する

値の設定が完了したら少し車両の重心を変更します。

Enable Center Of Mass Overrideにチェック入れて、

Center Of Mass Overrideを設定します。

車両の重心を変更する

設定が完了したら操作部分を作成していきます。

UE5.1からEnhanced Input方式なのでその方式でインプット処理を追加していきます。

入力アクションと入力マッピングを作成していきます。

今回は下記のように作成してみました。

※水色のものが入力アクションで黄色が入力マッピングです。

アクションとマッピングの作成

入力アクションに関しては下の画像のようになります。

ValueTypeはAxis1D(float)にしてます。

入力アクションの中身

そのアクションをそれぞれマッピングしています。

今回は下記のような形でマッピングしています。

Wキー → アクセル Sキー → バック 

A・Dキー → ステアリング左右 Bキー → ブレーキ

入力マッピングの設定

EnhancedInputの設定は完了しているのでBPの方での処理を作成します。

EnhancedInputは最初にどのマッピングを活用するのかを設定する必要があります。

EnhancedInput

設定が完了したら今回使用するマクロも作成していきます。

こちらはバックしているかアクセルを踏んでるか判断して、

どちらを操作するかブランチで分けています。

ブレーキのvelocityに合わせたマクロ

実際に各種動作を行う必要があります。

アクセルとステアリングの動作を追加していきます。

アクセルとステアリングの処理

バックの動作もこちらになります。

バックの処理動作

最後にブレーキ処理の作成になります。

アクセルかバックかチェックしておいて状態に応じたブレーキを設定します。

ブレーキの各種処理

動かす部分の動作は以上です。

実際に動かしたのは下記の動画になります。

ただしタイヤが回転していないのでタイヤをアニメーションするようにします。

・目次に戻る

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

今まで説明した動作についてはあくまで車を動かす動作なので、

アニメーションは別で作成する必要があります。

先ほど指定した車のスケルタルメッシュを右クリックして、

Animブループリントを作成します。

アニメーションBPを作成する

作成したアニメーションBPに関しては親クラスを変更します。

Veで検索して「VehicleAnimationInstance」を指定してます。

アニメーションBPの親クラスを変更する

あとはアニメーションの設定が終われば完了です。

MeshSpaseRefarenceからwheelControllerに動作を渡して、

コンポーネント情報を各種動作に渡してあげます。

VehicleAnimationInstanceの設定

最後にアニメーションBPを指定してあげます。

これで先ほどの車の車輪がアニメーションするようになります。

アニメーションBPの変更

実際に完成したものは下記のようなものになります。

・目次に戻る