↓↓↓ ゲームプレイはコチラ↓↓↓
既存のアクションゲームでは、ネガティブな要素として捉えられる”止まる”という動作に、”敵の攻撃に合わせて止まると、敵を一掃出来る”というゲームシステムを加えることで、”止まる”ことを最大限楽しむことができる、3Dアクションゲームとなっております。
このゲームを簡単に説明すると、「だるまさんがころんだ」になります。
プレイヤーはボスが放つ必中攻撃「スナイプ」を回避しながら、ザコ敵を倒しつつボスのもとへ進んでいきます。ボスを倒すことができればステージクリアとなり、次のステージへ進みます。体力が全て無くなると、ゲームオーバーとなります。
プレイヤーはボスから常に狙われ続けています。スナイプは移動して避けたり、障害物等で遮ることは不可能ですが、”操作せずに、動かないでいると自動的に回避”することが可能です。ただ止まるだけでなく、スナイプに合わせてタイミング良く止まることで回避ランクが付与されます。回避ランクは上から順に「PERFECT」「GREAT」「GOOD」「CHICKEN」の4つで分けられます。「GOOD」以上の場合、周りの敵に衝撃波を与え、吹き飛ばすことができます。また、ボスのカウントダウンの速度を5段階に分けており、回避ランクによってカウントダウンの速度を決めています。
【ゲーム面】
アニメーションの違和感をなるべくなくす
アニメーション間の補完(ブレンド)を実装することによって、違和感のない動きで自然にプレイできるようにしました。
プレイヤーのアクション&リアクション時に演出をハデにする
攻撃時や衝撃波発生時など、プレイヤーがアクションやリアクションを起こす際に、カメラシェイクやヒットストップ、バイブレーションを実装することによって、より臨場感や気持ち良さを演出しています。
エフェクトは「Effekseer」を使用して自分で作成
このゲームでは、モデルやアニメーション、UIなどはアーティストの方に作成してもらいましたが、エフェクトのみ自分で「Effekseer」というエフェクト制作ツールを使用して作成しました。
【ゲームAI面】
RecastNavigationを活用したナビゲーションAIの実装
外部ライブラリ「Recast Navigation」を活用し、ナビゲーションAIの実装を行いました。
主にウォーカー(ザコ)からプレイヤーまでの最短経路の算出や、エージェント同士の衝突回避処理、移動に伴う落下防止処理を行うことで、より自然で安定したゲームプレイを実現しました。
※「エージェント同士の衝突回避処理」の動画はデバッグモードでプレイしています。
メタAIを実装し、キャリアーの一斉逃走とウォーカーの攻撃管理
を構築
「ファイナルファンタジーXV」で採用されたメッセージングシステムを活用し、メタAIの実装を行いました。
主にウォーカー(ザコ)の攻撃権に関する要求、付与、委譲の各処理や、キャリアー(バリア)の一斉逃走処理を実装し、敵同士が状況に応じて連携しながら、プレイヤーの動きにリアルタイムで反応できるようになりました。
※「ウォーカーの攻撃権に関する処理」の動画はデバッグモードでプレイしています。
【システム面】
一部のプログラミング設計をコンポーネント指向で設計
UnityやUnreal Engineのようなコンポーネントシステムを理解した上で、アクターマネージャーをコンポーネント指向で実装しました。
そして、プレイヤーや敵などのステータスを「ImGui」という外部ライブラリを利用して、自由に編集できるようにしました。
モデルエディターを自作し、ゲーム開発を効率化
モデルの読み込みを高速化するために、モデルエディターを作成し、アニメーションの作業効率やロード待ち時間が向上しました。
※詳しくは特設ページ「STOGameEditer」をご参照下さい。
レベルエディターを自作し、レベルデザインを効率化
レベルデザインを利便化するために、レベルエディターを作成し、プレイヤーや敵などを簡単に配置可能となりました。
※詳しくは特設ページ「STOGameEditer」をご参照下さい。
「深度シャドウマップ」や「ディゾルブ演出」などのシェーダーを実装
HLSL言語を使用して「深度シャドウマップ」や「ディゾルブ演出」など、3Dアクションゲームに必須なシェーダーを実装しました。
ボスが10秒カウントダウンで射撃 ⇒ 10秒カウントダウン ⇒ 「10Count」
プレイヤーがボスの射撃を回避 ⇒ 回避 ⇒ 「Avoidance」
「10Count」 + 「Avoidance」 = 「10CountAvoidance」
【開発環境】
自作ライブラリ(DirectX11) / Visual Studio 2022 / Visual Studio Code / C++ / HLSL / JSON
【制作期間】
最終バージョン : Ver.2.0
Ver.2.0 :
完成 : 2025年9月20日
ナビゲーションAI実装開始 : 2025年8月19日
ナビゲーションAIコンポーネントの実装 : 2025年8月中旬 - 8月下旬 (数日間)
ナビメッシュ情報データ読み込み機能の実装 : 2025年8月下旬 - 9月上旬 (数日間)
ウォーカー(ザコ)・キャリアー(バリア)にナビゲーションAI(ナビメッシュ・エージェント機能)を搭載 : 2025年9月上旬 - 9月中旬
Ver.1.8 :
完成 : 2025年8月29日
ライブラリ改修開始 : 2025年7月14日
「Recast Navigation」ライブラリの導入 : 2025年7月中旬 - 2025年7月下旬 (約2週間)
ソースコードのリファクタリング : 2025年7月下旬 (数日間)
メタAI実装開始 : 2025年8月22日
メッセージングシステムの実装 : 2025年8月下旬 (数日間)
ウォーカー(ザコ)の攻撃権システムの実装 : 2025年8月下旬 (約1週間)
キャリアー(バリア)に対する逃走命令システムの実装 : 2025年8月下旬 (数日間)
Ver.1.7 :
完成 : 2025年8月16日
ロックオン切り替え実装 : 2025年8月上旬 (数日間)
ディゾルブ演出強化 : 2025年8月上旬 (数日間)
ゲームのレベルデザイン : 2025年8月上旬 - 8月中旬 (約1週間)
ソースコードのリファクタリング(7回目) : 2025年8月上旬 - 8月中旬 (約1週間)
Ver.1.6 :
完成 : 2025年8月8日
ロックオンシステムシステム実装 : 2025年7月下旬 - 8月上旬 (約1週間)
回復ドロップアイテム実装 : 2025年7月下旬 - 8月上旬 (約1週間)
ゲームのレベルデザイン : 2025年7月下旬 - 8月上旬 (約1週間)
ソースコードのリファクタリング(6回目) : 2025年7月下旬 - 8月上旬 (約1週間)
Ver.1.5 :
完成 : 2025年7月30日
プレイヤーの移動や着地などの基本操作等を改良 : 2025年7月下旬 (約1週間)
ザコ敵(ウォーカー)の移動や攻撃などの難易度を調節 : 2025年7月下旬 (約1週間)
ソースコードのリファクタリング(5回目) : 2025年7月下旬 (約1週間)
エフェクトシステムを改良 : 2025月7月下旬 (数日間)
ゲームのレベルデザイン : 2025月7月下旬 (約1週間)
Ver.1.4 :
完成 : 2025年7月22日
一部のバグなどの不具合調整 : 2025年7月中旬 - 7月下旬 (約1週間)
ソースコードのリファクタリング(4回目) : 2025年7月中旬 - 7月下旬 (約1週間)
一部のゲームUIを改良 : 2025月7月中旬 - 7月下旬 (約1週間)
Ver.1.3 :
完成 : 2025年7月15日
一部のバグなどの不具合調整 : 2025年7月上旬 - 7月中旬 (数日間)
ソースコードのリファクタリング(3回目) : 2025年7月上旬 - 7月中旬 (数日間)
Ver.1.2 :
完成 : 2025年7月8日
ヒットストップ実装 : 2025年7月上旬 (数日間)
一部のゲーム演出のクオリティアップ : 2025年7月上旬 (数日間)
ソースコードのリファクタリング(2回目) : 2025年7月上旬 (数日間)
Ver.1.1 :
完成 : 2025年7月1日
カメラシェイク&バイブレーション実装 : 2025年6月下旬 - 7月上旬 (約1週間)
一部のゲーム演出のクオリティアップ : 2025年6月下旬 - 7月上旬 (約1週間)
ソースコードのリファクタリング(1回目) : 2025年6月下旬 - 7月上旬 (約1週間)
Ver.1.0 :
完成 : 2025年6月25日
ライブラリ制作(改良)開始 : 2025年3月7日
フレームワーク改良 : 2025年3月上旬 - 3月下旬 (約2週間)
シェーダーシステム改良 : 2025年3月上旬 - 3月下旬 (約2週間)
入力システム改良 : 2025年3月下旬 (約1週間)
コンポーネントシステム改良 : 2025年3月下旬 (約1週間)
ゲーム制作開始 : 2025年5月1日
ゲームフロー実装 : 2025年5月上旬 (約1週間)
タイトルシーンやゲームシーン、チュートリアルシーンの作成
ステージセレクトによって、ゲームシーン起動時に各ステージのレベルデータ(JSON)が読み込まれる処理を実装
マルチスレッド対応
プレイヤー実装 : 2025年5月上旬 - 5月下旬 (約2週間)
アクション (移動 / ジャンプ / 攻撃 (ロックオン処理, 5段攻撃) / 回避 / 死亡)
TPS視点のカメラワーク実装
敵との当たり判定処理 (攻撃, 衝突)
敵3種(ウォーカー / キャリアー / コマンダー)実装 : 2025年5月下旬 - 6月上旬 (約2週間)
アクション (移動 / 攻撃)
プレイヤーとの当たり判定処理 (攻撃, 衝突)
ステージ実装 : 2025年6月上旬 - 6月中旬 (約1週間)
キャラクターとの当たり判定処理
演出実装 : 2025年6月中旬 (数日間)
ゲームクリア演出実装
ゲームオーバー演出実装
ポーズ実装 : 2025年6月中旬 (数日間)
メニュー画面作成
シェーダー実装 : 2025年6月中旬 - 6月下旬 (約1週間)
深度シャドウマップ実装
ディゾブル演出実装
【使用ソフト】
「Audacity」 : BGMやSEを加工する際に使用。
「Bitmap Font Generator」 : オリジナルビットマップフォントを作成する際に使用。
「Cereal」 : モデルデータやレベルデータをシリアライズする際に使用。
「DOVA-SYNDROME」 : BGMやSEを探す際に使用。
「Effekseer」 : エフェクトを作成する際に使用。
「FBX SDK」 : FBX形式モデルを読み込む際に使用。
「GitHub」 : SourceTreeに連携させる際に使用。
「ImGui」 : パラメータ設定を視覚的、動的に調整する際に使用。
「ImGuizmo」 : オブジェクトを移動や回転、拡大縮小する為に使用。
「Maya」 : モデルを作成する際に使用。
「Photoshop」 : スカイマップやUIを作成する際に使用。
「Recast Navigation」 : ナビメッシュの生成やエージェントの経路探索を行う際に使用。
「Sourcetree」 : ソースコードをバックアップする際に使用。
「STB」 : BitmapFontやDistanceFieldFontを描画させる為に使用。