Unity+UnrealEngine4+Blog.

UnityやUnrealEngine4とかについて学習したことを書いてます

UE4 モブの車を自動で走らせる -1

UE4の記事です。

街中を自動で走るモブの車を作っていきます。

 

関連記事

nabesi777.hatenablog.com

 

nabesi777.hatenablog.com

 

 

モデルはVehicleTemplateに入っているものを使うので、プロジェクトを作成するときにこのテンプレートで作成しました。

f:id:nabesi777:20190907155209p:plain

 

作成するものの概要としては、Splineというコンポーネントを使いパスを描き、その上を自動で車両が走るというものです。タイヤが回転するアニメーションも作成し、ランダムスポーンしてランダムで車両の色を変えたりもしてみたいと思います。

 

取り合えず今回はスプラインを引いて、そのライン上を車両が動くところまでです。

 

なお、このテンプレートは物理挙動で車両を動かしてリアルな車の動きを簡単に再現することもできますが、モブという性質上、たくさん走らせると重そうで不具合も起こりそうな物理挙動を使うよりも、上記のようなやり方でそれっぽくするのがいいかもしれません。

 

参考にさせてもらったサイト様です

[UE4] スプライン上を動く足場の作り方|株式会社ヒストリア

 

レベルの作成からやっていきます。

f:id:nabesi777:20190907155915p:plain

 

車が走れるようにFloorを大きく

f:id:nabesi777:20190907160010p:plain

 

Actorクラスで車のブループリントを作成します。

f:id:nabesi777:20190907160217p:plain

f:id:nabesi777:20190907160247p:plain

 

これを開いて、SkeltalMeshコンポーネントを追加します。

f:id:nabesi777:20190907160538p:plain

 

SkeltalMeshのDetails>SkeltalMeshでテンプレートに入っているモデルを指定します。

f:id:nabesi777:20190907160625p:plain

 

f:id:nabesi777:20190907160658p:plain

 

とりあえず車のBPはここまでにして、次にSplineを作成します。

ActorクラスでBPを作成

f:id:nabesi777:20190907160807p:plain

f:id:nabesi777:20190907160845p:plain

 

ダブルクリックで開いてSplineコンポーネントを追加

f:id:nabesi777:20190907160928p:plain

 

次にイベントグラフを開いて関数を作成

f:id:nabesi777:20190907161215p:plain

 

関数のDetailsのInputs Outputsを以下のように設定

f:id:nabesi777:20190907161419p:plain

 

Float型で変数も作成します。

f:id:nabesi777:20190907161654p:plain

 

そして以下のようにノードをつなげます

f:id:nabesi777:20190907161915p:plain

 

レベルの編集画面に戻って

先ほど作成したSplineブループリントを設置します。Splineの編集方法はこちらが参考になります。

ブループリント スプライン エディタ および ツールのリファレンス | Unreal Engine ドキュメント

f:id:nabesi777:20190907162306p:plain

 

もし道があるなら道に沿ってこのスプラインを伸ばしていきます。

車をスムーズにはしらせるように曲線をうまく曲げるの結構難しいです。

 

適当にこんな感じで作りました。

f:id:nabesi777:20190907162529p:plain

 

Mobcarブループリントもレベルに配置して、イベントグラフを開きます。

f:id:nabesi777:20190907162631p:plain

 

BP_Mobcarのイベントグラフを開いたらFloat型変数を二つ作成します。

f:id:nabesi777:20190907162842p:plain

 

次にレベル上に配置したSplineを参照するための変数も作成します。

f:id:nabesi777:20190907163015p:plain

f:id:nabesi777:20190907163033p:plain

 

レベル上のDetailsで編集できるようにSpeedとSplineは目のアイコンを開けます

f:id:nabesi777:20190907163424p:plain

 

変数の準備ができたら次のようにノードを組んでいきます。

もぶ車をループさせたい場合はGetCurrentLocationノードのループにチェックを入れます。

f:id:nabesi777:20190907163530p:plain

 

 できたらレベル編集画面に戻って、レベルに配置したBP_MobcarをクリックしてDetailの編集パネルを開きます。

 

スピードを入力できるのとSplineを参照できるようになっているので、設定を行います。

f:id:nabesi777:20190907163910p:plain

 

これで一応スプラインに沿って車体が動くようになりました。

ただ一点問題があって、Locationしか動かしていなので車の向きがずっと一定のまま進んでしまします。追加記事で修正します。

 

次はタイヤの回転アニメーションに進みます。

nabesi777.hatenablog.com