rain
Unityを用いた個人制作ゲーム。今1番の自信作品です。(制作年月:2020.7-11) (※2021.12-2022.7 仕様追加・既存プログラムをリメイク)
PR映像
タイトル
・「rain」(読み:れいん)
制作期間
・約4か月(※+約3か月)
開発環境
・ゲームエンジン: Unity 2021.3.2f1
・開発言語: C#
・イラスト制作ソフト:MediBang Paint
起動プラットフォーム
・Windows10
担当
・個人制作のため、全てを担当しました。(企画、プログラム、イラスト、動画撮影)
プレイ
・傘を差した執事をプレイヤーとして、動き回るお嬢さまを振ってくる雨粒、水しぶきから身をていして守る役目を遂行します。
目指し
・時間内までお嬢さまを濡らさないこと。
難易度
・一滴でも触れれば即クビになります。慈悲なし!
制作動機
「当たれば終わる」シンプル設計を軸に単調に見せない事、ストーリーを持たせる事を念頭にゲームを作りたいと思い、執事キャラとお嬢様キャラの組み合わせで作りました。
今回個人で制作しました理由には、チームで動く際の他メンバーの進捗によって各職種の動き方が変わると考え、制作するうえでの全体像を把握する為です。またゲームデザインとプログラム設計を突き詰めて実践したいと考えた事も理由の一つです。
制作にあたり困難だった点
[ゲームデザイン]
・作中3段階に分けて難易度が上がっていく中で、トラップの芸が単調であったことです。
[プログラム設計]
・繰り返し処理をするプログラムに「coroutinesコルーチン」を使い過ぎていました。これによりメソッド(文題のようなもの)の数が多くなり見づらいプログラムの中身となってしまい、振り返った時に手直しが難しくなっていました。
・オブジェクトを生成するプログラム「instantiateインスタンティエイト」の処理を続けたことでゲーム動作が重くなってしまいました。
克服
[ゲームデザイン]
・書けるプログラムを増やし、他の人に「雨の日に大変な時とは何?」と質問をしていったことで芸の幅と種類が増え、またトラップがいきなり切り換わるより更に強くし続けた状態を維持させる方が面白く、丁度良いゲームバランスになると考えました。
[プログラム設計]
・「switchスウィッチ文」を使うことでその枠内で繰り返し処理を収めました。それにより条件分岐が明確になり手直しに頓挫することはなくなりました。
・作中「instantiateインスタンティエイト」の処理時間を縮めることで多少の軽減状況にしました。
工夫した点
[ゲームデザイン]
・タイム制限のあるゲームですが、世界観を考えタイムを数字ではなく、画像移動で表現しました。これは、天候が悪くなる予兆をプレイヤー側が感じ取れやすくする為でもあります。
・作中日本語の文章を置いていましたが、世界中のプレイヤーが共通した認識を持ってもらえるよう、画像による意味付けや英文・記号での表記にしました。
・ゲームオーバーとなりリスタートする場合に、操作説明やストーリーをメインプレイ画面までスキップできる操作を搭載しました。
・作中雷を表現するフラッシュによる気分悪化及び目の痛みを想定した注意喚起を2回ほど置き、フラッシュは白色ではなく灰色よりにすることで多少の軽減状況にしました。
[プログラム設計]
・スクリプトの数を多くし過ぎないように、種類あるトラップには「switchスウィッチ文」の中の「条件となる変数」を活用し、Unity上のInspectorにて既定の変数の数字を書き込むことで、1つのスクリプトで2つ以上のトラップ処理を収めました。
導入未定部分
・ゲーム内のBGM及びSE
作品公開URL
・実行ファイル(https://graha6.github.io/rain/)
・unityroom(https://unityroom.com/games/rain_2022)
・GitHub(https://github.com/graha6/rain/tree/re2)
Unity本体
スクリプト(https://github.com/graha6/rain/tree/re2/Scripts)