開発環境
使用したツール:VisualStudio2022, Blender, Adobe illustrator
使用した言語:C++, DirectX11
使用したライブラリ:DirectXToolKit
制作期間:約6ヶ月(2023年7月~2024年1月)
制作人数:1人
ゲーム概要
プレイヤーは丸いキャラクターを操作して360度に回転するバーをジャンプでよけながら、上から降ってくるゼリーをたくさん集めてハイスコアを目指すことを目的としたゲーム内容です。
「ゲーム全体から心地良い感触を得られる」をコンセプトとして制作した3Dアクションゲームです。
ゲーム紹介動画
アピールポイント
①ゼリーの気持ち良い動きを「フックの法則」を用いて実装
②シャドウマッピングで影描画
③外部ファイルでパラメータの設定をしやすく
制作で苦労したこと
・日本語の関連資料が少なく、英語の動画やコメントが全くないコードを読み解いたこと
・企画が二転三転したこと
企画①
スライムを操作して工場から脱出するゲーム(ゲームイメージ参考)
↓簡易的な企画書とプロトタイプ
スライムの動きとステージギミックのプログラムをアピールポイントとしたゲームを初めは考えていました。しかし、壁との衝突判定でステージに合わせて衝突判定の設定や、衝突時の押し出しなどに苦戦し、開発の進捗がかなり遅くなっていました。このままではゲームの規模感から時間が掛かりすぎてしまうと思い、ソフトボディを作成するときに参考にしていたゲームを参考に、もっとシンプルなゲームにしました。
企画②
ボールを操作してゼリーのステージを走り抜けるゲーム
このゲームでは、既存のゲームを参考にゼリーの上を走っていく気持ち良さを表現したいと思っていました。
このゲームでの問題点は、球体のゼリーの実装において形状を保つ複雑な物理演算を実装できず、ただのボールを操作することになってしまった点です。実装を諦めてしまった理由は、開発の長期化を恐れたためです。これによって、友人や講評していただいた企業様から「ゼリーがステージのギミックの一部になっている」と言われ、ゼリーをメインとすることができませんでした。
このことから、もっとゼリーだらけのゲームにしようと思い企画を変更することとなりました。
企画③
降ってくるゼリーと回転するゼリーバーを避けながら、決められた時間を生き残るゲーム
(参考のゲームは「Fall Guys」の「Jump Showdown」というゲームモード)
↓開発途中のゲーム画面
このゲームは、1つ前の企画で実装したバネの元に戻る力を利用した上下にぼよぼよする床と、360°回転するバーをトランポリンでジャンプして避けるという実際のアトラクションからゲームを考えました。
↓上下にぼよぼよする床
ゲーム内容は、降ってくるゼリーは、バーに当たると飛ばされ、ゼリー壁に当たると跳ね返るものとなっていて、プレイヤーは降っているゼリーに当たるとゼリーに体が飲み込まれて操作が効かなくなるというものです。
このゲームの問題点は表示するゼリーの数が多く処理が重い点です。降ってくるゼリーは起動時にあらかじめ生成しておくようにしていましたが、4方向の壁の頂点数もかなり多く、ロードに時間が掛かってしまっていました。それを解決しようと、壁をなくそうと思いましたが、そうするとゼリーはすぐにどこかへ行ってしまい、ゼリーはあるようで無いものと一緒です。そのため、壁をなくすのであればゼリーはステージ上に残すようにして、ゼリーを集めるゲームにしようと思い、今のゲームになりました。
このように複数回に渡って企画変更を行った影響で、開発の時間が長引いてしまったことが一番の苦労した点であり反省点です。
感想
開発中に企画変更はありましたが、当初目標としていた「ソフトボディでの心地良い動きを表現する」ということは、遊んでくれた友人や講評していただいた方からも「ゼリーが気持ちいい」という意見を多くもらえたので達成できたと思います。このゲームの開発でキャラクターの気持ち良い動きの表現に興味を持ったので、今後はIKなどキャラクターに関する部分を学んでみたいと思います。