(UE4)サードパーソンシューティングゲーム制作
TECH STUDIUMのUnity超入門コースに引き続きUnreal Engineコースを受講しました。 先日最終課題「オリジナルのゲーム制作」としてサードパーソンシューティングゲームを制作しました。 今回Unreal Engine4を使ってC++とブループリントでプログラムをして制作しています。 面白いゲームをというよりは基本的なプレイヤー、敵キャラ、弾丸、ゲームの状況の処理(クリア、ゲームオーバー)、アイテムとアイテムの入手、アイテムリスト、NPCの行動の実装など基本的な処理を自分で実装してゲームとして成立させることが目的です。 まったくプログラム未経験者であった私がこの4,5か月ほどでのでコードを読めるようになっただけでなく実際に記述して簡単なゲーム制作をUnreal Engine上でできるようになりました。 勉強していて気づいたのがゲーム制作が時間を忘れるくらい楽しいということ!もっともっといろいろ作ってUnreal EngineとC++を使いこなせるようになりたいです。 また今後はUnreal EngineでのVR関連の制作やVerse言語を用いたUEFNでの制作、Lua言語を用いたロブロックススタジオでの制作もしていこうと思います。 是非何かお仕事で携われることがありましたら是非是非お声かけお願いします! 以下今回制作したゲームの内容を紹介します。 〇ゲーム概要 ・ゲーム名「一撃必殺」 ・ボスキャラを倒したらクリア ・Healthゲージ0でゲームオーバー ・プレイヤーは銃で弾丸を発射し敵を倒せる。 ・弾丸はノーマルとスペシャルの2種類があり初期装備はノーマル。ノーマルは雑魚キャラのみ倒せるがボスは倒せない。スペシャルショットでボスを一撃で倒せるが1発しか打てない。 ・赤い雑魚キャラを倒すとEnergyゲージがたまり100%になるとスペシャルショットが出現。 ・スペシャルショットを入手すると画面右下アイテムリストに追加される。アイテムはクリックすると装備できる。 ・雑魚キャラとボスキャラに一定距離以内に接近されるとHealthゲージが減少していく。 ・雑魚キャラは無限に降ってくる。 〇技術面 ・プレイヤー、雑魚キャラ、ボスキャラはC++で基底クラスとなるCharacterクラスを作成しそこからそれぞれ派生クラスとして作成。プレイヤーが持っている銃のStaticMeshはアセットストアから購入したものをグリップポイントに設定して持たせた。 ・各キャラクターの歩行や静止時のアニメーションはスターターパックをアセットストアから入手してSkeletal Meshに設定。 ・弾丸もC++で基底クラスを作成してそれぞれノーマルショットとスペシャルショットの派生クラスを作成しています。ノーマルショットのクラスには雑魚キャラのみにApplyDamageメソッドがを走るようにif文で条件分岐を実装。 ・プレイヤーのクラスにC++でデリゲートの処理を実装。Energyが100%になったときにブループリント側のスペシャルショットのアイテムのスポーン処理がトリガーされるように実装。 ・ゲームのプレイ、クリア、ゲームオーバーの各状態の遷移はC++で実装。GameModeクラスを作成してEnumクラスで各状態を宣言、BeginPlayで初期は状態をPlayに設定して、Tickでクリア、ゲームオーバーの条件を満たすかを監視して、条件を満たしたら状態遷移を行うSetCurrentStateメソッドが走るようにしている。各状態での敵キャラの出現やプレイヤーの出現ON、OFFもC++で記述。 ・アイテムリストの生成と更新はブループリントで作っています。入手したアイテムは画面右下のアイテムリストに追加されていき、クリックで使用すると消えます。今回はアイテムの使用したらスペシャルショットが装備されるように処理を実装。 ・敵キャラクターはAIControllerClassを設定して「プレイヤーを追いかけて追いついたら3秒停止する」といった感じで自律的に動くように設定。


