作ったもの
以下のUnityPlayのリンクから遊べます。
はじめに
この記事では、自身が通う大学の構内をモデルにした8番ライク(パロディ)ゲームの紹介と制作過程を振り返ります。
制作背景
普段は機械学習やシミュレーションに関する研究を行っていますが、もともとゲーム好きで、自分でゲームを一から作り上げることに挑戦してみたいという思いがありました。また、ゲーム開発を通じて、興味のあった3DCG技術にも触れ、自分のスキルをさらに広げたいと考えていました。
制作のきっかけとなったのは「8番出口」という作品をプレイしたことです。この作品からインスパイアを得た要素を取り入れることで、初めてのゲーム開発に挑みました。
8番出口の類似作品について
今回制作したゲームは、コタケ氏(X:コタケ/KOTAKE CREATE / Stesm:KOTAKE CREATE)の作品「8番出口」からインスパイアを得たものです。作者自身が二次創作ゲームの制作を基本的に許可しており「8番ライク」としての制作を歓迎する姿勢を表明しています。
ゲーム概要
「理学部6号館」は、真夜中に閉じ込められた校舎から脱出を目指す探索型アドベンチャーゲームです。プレイヤーは異変を探しながら、1階を目指して校舎を降り続けます。
より詳細な概要
ゲームのルール
-
周囲をよく観察すること
校舎の中ではさまざまな「異変」が隠されています。異変に気づくかどうかが脱出のカギとなります。 -
異変を見つけたら
左の階段を降りてください。異変を見逃さずに進むことが大切です。 -
異変が見つからなかったら
右の階段を降りてください。周囲を注意深く観察しつつ進みましょう。 -
1階を目指し続けること
校舎の静寂に呑まれないでください。
チュートリアル
想定クリア時間
5分~30分
動作環境
- OS:Windows 10以上
- メモリ:4GB以上
- 入力:キーボードとマウス
制作概要
制作期間:1ヶ月半
作業内容 | 期間 | 概要 |
---|---|---|
設計・調査・準備 | 1週間程度 | ゲームエンジンの選定 リファレンス収集 blenderの練習 |
3Dモデルの作成 | 3週間程度 | モデリング マテリアルの設定 |
実装・デバッグ | 3週間程度 | ゲームシステムの実装 UIの作成 ライティングの設定 |
ビルド・リリース作業 | 1週間程度 | 公開プラットフォームの選定 テストプレイ |
設計・調査・準備
この期間に8番ライクゲームの制作を思いつき、ゲームの構想を練りました。また、ここで初めてblenderを触りました。好きなゲームの小物などをいくつか作って使い方・ショートカットを覚えました。
3Dモデルの作成
ゲームの雰囲気を表現するうえで重要となる部分なので、プロジェクトの中でも一番時間と労力を要する工程でした。Blenderの操作に慣れてきたとはいえ、細部の調整や質感の表現に多くの試行錯誤を重ねました。
実装・デバッグ
普段の授業でJavaを使っているので、Unityでのスクリプト作成には比較的スムーズに取り組むことができました。イベント処理などUnityの特徴的なスタイルに触れ新たな知見を得るとことができました。
ビルド・リリース作業
開発当初はSteamやAppStoreへの公開を検討していたのですが、ある程度の費用がかかることがわかりUnityPlayでの公開に切り替えました。
技術スタック
カテゴリ | 技術 | 選定理由 |
---|---|---|
ゲームエンジン | Unity | Javaに慣れているのでC#の学習コストが低く、小規模なゲーム開発だから |
DCCツール | Blender | ライセンス費用などがかからないから |
IDE | VSCode | 拡張機能で補えると思ったから。デバッグ作業が煩雑だった |
UI設計・デザインツール | Figma | UI設計やテクスチャの調整などに使えるから |
バージョン管理 | Git,GitHub | 使い慣れていたから。ファイルサイズがでかくて追跡できないものもが多く意味がなかった |
プロジェクト管理 | Notion | タスク管理や進捗管理を行えるから |
振り返り
工夫・意識したこと
今回の制作では、技術的な工夫以上に、意識面での取り組みを大切にしました。
-
最後まで作りきること
「最後まで作りきること」を制作の最優先目標として掲げました。アイデアを追加したくなったり、新しい技術に挑戦して挫折しそうになる場面もありましたが、とにかく形にすることを重視しました。この目標を意識したことで、途中で迷走することを防ぎ、モチベーションを維持して取り組むことができました。
-
トライ&エラーを恐れない
解決できない課題が発生した際、いくつかのアプローチを試す「トライ&エラー」を繰り返しました。初めての技術を触る中で、うまくいかないことも多々ありましたが、そのたびに調査をしスモールスケールでの実験を重ねて解決策を見つけました。これにより、問題解決能力の向上を実感するとともに、自分のスキルの幅を広げることができたと感じています。また、新しい技術に対して前向きに挑戦する姿勢を養う良い機会にもなりました。
詰まったところ・苦労したところ
-
Unityのライトベイク
今回のようなゲームはライティングがゲームのシーン全体の雰囲気や見栄えに大きく影響する要素だと考えています。特に、光源の配置や強度の調整が難しく、リアルな陰影を表現しつつ、プレイヤーが見やすいバランスを取るのに苦労しました。複数のライトの設定や、Unity特有のシェーダーの挙動を理解するのに時間がかかりました。
ゲームの中心的な仕組みとして「無限に続く廊下」の実装に、下図のようにプレイヤーがいる階をn階としたとき、ゲートを通過しことを検出したらn-2階を生成して後方のn+2階は削除することを繰り返すアルゴリズムを考えていました。
しかし、廊下をPrefabsで管理・生成していたのですがこの方法ではベイクドライティングが適用されず、真っ暗な廊下が生成されてしまい意図した表現ができませんでした。
この問題を解決するために、アプローチを大きく変更しました。廊下を動的に生成せず、固定された廊下を使い、プレイヤーを特定の位置へテレポートさせる方法を採用しました。この実装によって、ベイクドライティングを保持しつつ、無限に続くように見える廊下の表現を実現しました。
今後の課題
-
オリジナルアイデアでのゲーム開発
今回のゲーム開発は技術を学ぶ良い機会になった一方で、自分のアイデアや独創性を反映する部分が乏しかったと感じています。もし次にゲームを作る機会があれば、企画段階から完全オリジナルのゲーム開発に挑戦したいです。
-
計画的な設計と開発
ゲーム制作のお作法は知らず、実装周りの設計や考え方、仕様をしっかり詰め切れていないため、結局「自分がわかればいいや」という気持ちで進めてしまい、設計・計画を無視してしまいました。学生個人開発あるある?
おわりに
このプロジェクトを通じて、技術的な学びはもちろんのこと、アイデアを形にしていく創造の楽しさや、完成させたときの達成感を味わうことができました。初めてのゲーム開発という挑戦は大変なことも多かったですが、それ以上に得るものが大きく、充実した経験となりました。
拙い文章ではありますがここまで読んでいただきありがとうございました。
参考にしたサイト等