見出し画像

【Cz_mirror】が語るハンカクの世界

犯罪者隔離世界へようこそ。
【制作チームが語るハンカクの世界】vol.2です!
本日はエンジニアのCz_mirrorさんに記事を書いていただきました。
Cz_mirrorさんは、1話のミニゲーム<ロボットシューティングゲーム>を担当してくださっています。
それではどうぞ。
***************

自己紹介と参画のきっかけについて

犯罪者隔離世界のステージ1のロボットシューティングの開発を担当させていただきましたCz_mirrorと申します。私自身はUnityのゲーム開発の業務経験はありませんでしたが、ゲームジャムなどのイベントにも何回か参加していたり、個人的にゲーム開発が好きだったこともあり、普段から週末などでゲーム開発をしていました。
今回犯罪者隔離世界の開発に携わったのはあざみさんが複数人から構成されるゲーム開発者を募集していて、話を伺ったところ大変興味深い内容だったこともあり参画させていただくことになりました。

ロボットシューティングの画面

犯罪者隔離世界は以下のURLから無料で遊ぶことができます

Notionを用いたゲーム開発コミュニケーション

今回ロボットシューティングNotionでゲーム開発のアイデアや用語集などをまとめてみました。チーム開発にあたり重要なのがコミュニケーションロスの軽減なので、お互いに作りたいもののイメージを図解にしたり、単語の認識の共通化が大事だと判断したためです。こちらは実際に活用したNotionの一部をキャプチャにしたものになります

Notionを使うことのメリットとして、今回の開発がどうしても隙間時間の活用になり、期間が空いてしまうこともあったので、Notionで仕様などをまとめておくことでそれを読み返すことで仕様を思い出したり、タスクをリスト化して進捗を管理することもできたりしました。

Notionで定義した内容の目次の一部

用語集の整備

プロジェクトを進めるにあたり、プロジェクトメンバーと共通認識を持つ必要があると考え、作者のあざみさんと打ち合わせをしながら用語集を作ることにしました。
犯罪者隔離世界の世界観をヒアリングしながら、世界観に対してお互いに認識の齟齬がないようにするために、特定の単語の把握、使用する単語の意味の定義などを行なっていきました。

用語集の一部

ゲームの雰囲気の把握

用語集を作りながら、ゲーム全体の雰囲気をヒアリングしていきました。ゲームの全体なストーリーを確認して、次に第一話のミニゲームの役割について、お互いにどのようなゲームにしていくかという打ち合わせをしていき、少しずつ作るゲームの雰囲気を固めていきました。途中あざみさんの方でイメージしていたラフを共有していただき、それを元にプロトタイプを作成していきました。

あざみさんの作成したラフを元にゲームの雰囲気を共有していただきました

ゲーム開発のタスク管理について

今回のミニゲームのタスク管理もNotionを活用しました。Notionのデータベース機能で担当、役割などを作成して可視化することで誰が担当なのか、どのタスクが完了・未完了なのかを把握するためです。
今回のゲーム開発でどの素材が不足しているかなどを作者、ゲーム開発担当、素材担当の間で共通認識として把握することでゲーム開発の進捗を進めていくことができました。
優先的に実現したいものなどを実装目標などを明記することで、特にどの機能や素材が必要なのかをチームメンバーの中で把握できるようになったので、実装漏れを減らす以外に優先的に用意しなければいけないものを把握できるようになったと思います。

ロボットシューティングゲームのタスクの一部

設計の可視化

ゲームの開発にあたり、作るゲームのラフとイメージを元にプロトタイプを作る際に必要な機能の大まかな洗い出しを行いました。
個人開発だとある程度自分の頭の中にあるイメージだけですすめてしまうこともありますが、チーム開発にあたり、作るべきものが剥離していたり、不足してしまう事を少しでも減らすために、機能単位で実装する必要がある機能とそれを実現するためのクラスの一覧を作成しました。
次にクラスの実装にかかる工数を大まかに洗い出し、どれくらいまでに実装できるかという共有を行いました。またその機能の実装に関連して必要となる素材もいつまでに必要かという話もメンバーと共有して、プロジェクトを進めて行きました。

必要と思われるクラスのリストの一部

仕様の記録

実装した仕様についてもキャプチャとともにNotionに記録しました。チームメンバーへの共有と自分の備忘録のためです。
個人の開発と異なり、場合によっては自分がプロジェクトを続けられなくなってしまった場合に誰かに引き継ぎをする必要がでてきたり、開発から少し離れてしまった場合の仕様の把握の時間を少しでも短縮する場合も、ドキュメントが存在することで円滑に仕様や実装方法把握できるようになると考えました。(今回は幸いにも私も最後まで実装をすることができましたが、それでも開発期間が空いてしまうことがあり、改修の際にドキュメント化していたことが後々役に立ちました)

射撃処理についてのドキュメント
レーザービームのバッテリー処理についてのドキュメント

誰でも設定できる環境

難易度調整や敵の動きなどを全てコードに記載してしまうと、少し調整をしたい時にも全てエンジニアが稼働しないといけなくなってしまうため、Unityのエディタ部分だけでも敵の数や難易度、動きなどを調整できるように実装をしてみました。

敵の数の設定

敵の数を設定する際に、ScriptableObjectで難易度ごとに登場する敵キャラの数を設定できるようにしています。ScriptableObjectを使用した理由としては、複数のチュートリアルで難易度の設定をする際にScriptableObjectを増やすだけで定義できるようにするためです。
以下はチュートリアル1の例ですが、以下のように定義することで今後複数のチュートリアルが増えても、敵の数などを定義するだけでステージを増やしていくことが容易になります。

チュートリアル1の敵の数の設定例

敵の動きの設定

敵の動きは事前に定義した動きのパターンを配列で定義することでカスタマイズできるようにしてみました。

ロボットの動きパターンの定義例

定義された動きのパターンをロボットが発生した際に、ロボットにアタッチして、あとは自動的に動くように定義しています。

ロボットの動きについての設計メモ

最後に

今回初めて本格的なチームによるゲーム開発を行ったことで、私自身非常によい経験を得ることができ、犯罪者隔離世界という作品に携わることができたことが本当光栄でした。
作者のあざみさん、素材制作担当の辰砂さんには主に今回の第一話のミニゲーム開発では大変お世話になりました。他のステージについてもクオリティが非常に高く、声優さんの演技力も素晴らしいこともあり、私自身も開発サイドとして参画しながらも、犯罪者隔離世界の完成が楽しみでした。
この後もまだ未公開のステージなどが充実していくと思いますので、引き続き尽力していければと思います。

Cz_mirrorの関連リンク

Twitterで時々開発中のゲームについて呟いています。よかったらフォローしていただけますと嬉しいです。
https://twitter.com/Cz_mirror

Unityroomにも少し参加しています、こちら興味があったらプレイしていただきますと嬉しいです。

DTMも時々作成したりなどしています、ご利用は自由なのでもし気になるものがありましたら、使用いただけると嬉しいです。
https://soundcloud.com/kazushige-mori

いいなと思ったら応援しよう!