俺にはできないUE4(UE4休止中)

Unreal Engine 4でゲームを作ったりする備忘録だったり、ただの日記だったりする

UE5でイカのゲームを作る_1

 せっかくグラボをRTX 3080にしたのでUE5を触ろうという事になった。が、ほんのちょっと触ってみただけだと、グレイマンがグレイウーマンというか中性的やや女性よりになってるゥーとか、デフォだとCtrl+Spaceを押さないとコンテンツブラウザ出てこねーの不便だな、とかそのくらいしか感想が出てこない。ついでにクリエイティブな欲求がゴリゴリ出てくるわけでもない。そんなの出てきてたら俺は今頃インディーゲームクリエイターだ。

 自分が才気あふれるクリエイターでない現実は受け入れるとして、ちょっとした目標が無いと何も作れないので、差し当たって世間で流行っているイカのゲーム、即ちSplatoon的なものを作ってみようと思う。勿論ちゃんとしたゲームでなく、なんかインクを撃って、地面や壁を塗れて、高速移動したり壁登り出来るような感じになってればよしとする。ネットワーク対戦? 無理を言うな。

 

 そういうわけで、新規プロジェクトをゲームサードパーソンで作る。C++をやるのは面倒なのでとりあえずデフォルトのブループリントで、アセットを自分で用意するのも面倒なのでスターターコンテンツもアリのままでプロジェクト作成。

 サードパーソンで作成したプロジェクトは、そのままでもプレイヤーキャラをWASDキーで移動、Spaceでジャンプと操作できるのはUE4から変わらずのようだ。まずは弾を撃てるようにしよう。

 そういうわけで弾のBPを作る。コンテンツブラウザ右クリックか、コンテンツブラウザ左上+追加ブループリントクラスを選択。種類はActor、名前はブループリントで主人公の弾なので、BP_Bullet_Playerとかでいいだろ。PlayerBulletだとEnemyBulletと並べた時に見づらいぞって、桜井さんが心の中のYouTube動画で言ってた。

youtu.be

 

 Actorとして作ったBPは見た目も何にも無いので、まずは弾っぽい外見を作る。BP_Bullet_Playerを開いて、左上の方にあるコンポーネント+追加のスタティックメッシュを追加する。そのままだと真ん丸であまりかっこよくないので、トランスフォーム拡大・縮小(Scale)をX 0.2YとZは0.1にしてそれっぽくしておく。この辺は完全に好みだ。デカくても真ん丸でも別によい。

 

 そのままでは画面に出しても重力で落下するだけなので、同じくコンポーネントの追加でProjectileMovementも追加する。これじゃなくてもいいのかもしれないが、ひとまず動いたのでヨシとしておく。事故で人が死ぬわけではないので速度優先だ。追加したProjectileMovementのプロジェクタイルInitialSpeedが初速なので、これを仮で2000としておく。これも好みでよい。UEの距離の単位はcmなので、2000だと多分秒速20mということだろう。これで弾はひとまず完成。そのうちコリジョンなどもデフォルトのままでなく細かく設定しないといけなくなるだろうが、ひとまず撃てるようにするのを優先。

 

 さて、弾はひとまず完成なので、次は弾を撃つ入力判定だ。サードパーソンのデフォルトで入っている'/Game/ThirdPerson/Blueprints/BP_ThirdPersonCharacter'に移動時の判定が入っているので、ついでにそこに書き足してしまおう。動けばよかろうなのだ。BP_ThirdPersonCharacterを開き、ビューポートなどが表示されているならイベントグラフタブを選択。Camera Input - Gamepadなどコメントと共に色々インプット設定があるので、それを避けて適当なところにマウスイベントマウスの左ボタンを追加。pressedから、ゲームクラスからアクターをスポーンしますを選択。出てきたノードのClassのところを先ほどのBP_Bullet_Playerにすると、これでクリックするたびにBP_Bullet_Playerが速度2000でスポーンすることになる。

 が、そのままだとプレイヤーがどこでクリックしようが、ワールド座標 0, 0, 0から弾が出るという謎仕様になるので、このBP(BP_ThirdPersonCharacter)のトランスフォームを流用しよう。プレイヤーの座標そのままだと、プレイヤーの股間から弾が射出されて、プレイヤーが弾に押し出されるという珍現象が発生するので、弾の発生位置はプレイヤーの進行方向少し前、少し上にする。というのをやると以下の画像のような感じになる。俺は先生ではないし、お金ももらっていないので詳しく説明はしません。適当にやって下さい。

 

 各BPを編集したら、コンパイルと保存を忘れずに。そういうわけで、プレイ中に左クリックを押すと弾が飛ぶようになった。都合により壁は貫通するが、その辺に置いてある青いブロックは当たり判定があるので、思う存分跳ね飛ばすなどしてほしい。弾の軌道や射程は、イカ基準だとデュアルスイーパー~ジェットスイーパーといったところだろうか。正直ここまでならUE4でも大差ない。疲れたので今回はこれで終わる。このまま続かなかったら、君の手で完成させてくれ!