見出し画像

【12月】コントローラー対応!見下ろし型レースゲーム!「MinimamuCircuit3D」

はじめに

毎月更新のUE5を使ったコンテンツ制作!
2023年4月から制作を始め、めでたく新年を迎えました。
正月ということで少し遅めの更新となりましたが、1月も引き続き制作に励みたいと思います!

今回は今までなんとなく実装していなかったコントローラーを使ったコンテンツです。今までのコンテンツでも使用可能でしたが、直感的な操作を求めていた為にあえて避けて来ました。

本当は別の方法を模索していたのですが時間が足りず。。コントローラーで実装しておくことで、のちの拡張がしやすくなる為用いることとしました。

「MinimamuCircuit3D」

お察しの通り、コンテンツ制作初となるレースゲームです!
ミニチュア模型テイストのコースを規定回数周回しながらゴールを目指すゲームとなっています。

コントローラーを複数繋げることでローカルマルチプレイにも対応可能で、今後対応人数を増やしていく予定です。

俯瞰カメラ

また、従来のレーシングゲームに多い目線カメラなどではなく、コース全体を俯瞰して見渡せる固定カメラでゲームが進行します。レースの全貌を常に把握出来るため、ミニチュアなコースで自分がラジコン走らせてるイメージで遊ぶことが出来ます。

また、本ゲームではレース展開を盛り上げる為に三つのアイテムを用意しました!!

アイテム説明
コース
コース(ワイヤーフレーム)

全体のタッチをある程度統一したかったのでエフェクト以外の3Dモデルは全てBlenderで自作。コース全体を表示するにあたって適切なサイズや小物の配置を細かく調整しています。
コース自体の難易度も悩みましたが、ファーストステージということでシンプルな作りとしました。今後新コースを実装したいと思っています。

車も必要最低限のローポリモデルを作成しました。当初はテクスチャで質感を付ける予定でしたが、Toy感を出すためにシンプルなマテリアル設定としました。

スタートと同時にアクセルが自動で押される仕組みなので、操作は左右とアイテムドロップのみ!アイテムの取得もランダムなので最後まで誰が優勝するかわからず、見ているだけでも楽しめるコンテンツとなっております!!

UE5簡易講座

今回もうっすら内部を解説!

車の前方移動処理

車体には「vehicle」型のBPが用意されており、サスペンションや前輪駆動、後輪駆動の設定が出来るのだが、自作モデルの為か物理アセットの処理とEnhancedInputが反応せず断念。。(どこかで原因を突き止めたい。。)
従来は歩行キャラクターに使用するBPを使って作成した。

前方移動には「AddMovementInput」にイベントTickを繋いで実装。
さらに、ゲーム中は非表示になる矢印を配置し「GetForwardVector」で前方方向を取得、「ScaleNan」変数に代入されている数値で移動の出力を決めている。

「Delay(遅延処理)」に繋がっているのは、車の後方から出てくる煙の処理。
キューブを回転しながらスポーンさせる処理を「Delay(遅延処理)」を使って0.1秒おきに発動するようにしている。

キューブ自体に小さくなって消える処理を組んでおり、仕様上車が常に動き続けるので画像のような見せ方が出来る。

ついでにアイテム(ターボ)の処理も解説。
前述したキャラクターBPには歩行速度を決めるパラメーターがある、画像中央の「MaxWalkSpeed」がその項目で、ここでは20000の数値を代入している。
これで車の移動速度が著しく上がり、三つ横の「Delay(遅延処理)」で5秒後にもう一度「MaxWalkSpeed」にアクセスし、元の数値に戻している。

課題

「BPVehicle」

前述している「Vehicle」の設定が上手くいっていない3Dモデル上のウェイトの処理がどうなっているかの検証が必要。
UE5の既存のVehicleサンプルをもっと理解する必要がある。

コントローラー

結論からいうと使えるコントローラーを所持していなかった。。
コントローラーには大きく「DirectInput」と「Xinput」と二種類の入力形式があり、UE5が対応しているのは「Xinput」のみ。一般的に家庭用ゲーム機は「DirectInput」でPCやX-BOXは「Xinput」となっている。

PCゲームをする際にPS5のコントローラーを使用していたので勘違いしていたのだが、[PS4][PS5]はどちらも「DirectInput」で、普段使用出来ていたのはSteamが勝手に入力を変換してくれていたからだった。(Steam優秀。。)ということで安めのコントローラーを購入。。思わぬ出費である。。

購入したコントローラー

これは「DirectInput」と「Xinput」にスイッチで切り替えが可能。ありがたい。。。(コントローラーがこれで計8台あることになる。。いらない。。いらない。。)

さいごに

正月はさすがにダレてしまって進行が遅くなってしまった。
1月はテキパキとこなしてやりたいことを消費していきたいと
思いつつもこの記事を書き始めてすぐに日付回って6日になってしまった。。恐ろしい。。。

本当に唐突に始めたコンテンツ制作であるが、周りも以前より反応をくれるようになり本当に「やって良かった」と思ってる。
継続することの苦難と効果が身に染みてきた。。

今後のコンテンツは周りも巻き込んでより良いものを作りたいと考えている。

次回は何を作ろうかではなく、どれにしようかといったところ。。。

この記事が気に入ったらサポートをしてみませんか?