システム班
青山美月 森本大翔
青山美月 森本大翔
システム班は「ゲームの基礎部分の作成」「各班からの成果物の統合」の2つを課題としています。
ゲームとして動く形にすることはもちろん、各班からの成果物をゲームという形に沿ったものにすることが求められます。
システム班は、他班が人工生成によって出力したものを、ゲームに実装できる形に直し、それをゲームの中に落とし込みます。
Unityを使用し、キャラクターの動き(以下モーション)やイベントの進行などを管理しています。ゲームの土台となる要素の作成や、それの調整等を行いました。
シナリオ班が出力したデータフォーマットをゲーム内で受け取ります。データフォーマットには、イベント情報、背景画像、アイコン、立ち絵の表示等を管理するタグが付いているので、それを読み込み、ゲーム内で反映出来るようにしました。
キャラクター班が出力したセリフをunity上の場所や、キャラクターのアイコン上で場所、アイコン、セリフを紐付け表示させました
3Dモデルは視覚班が作成したものを使い、モーションは一部を除いてアセットから選んで適応させ、また複数あるモデルはほとんどを人型でモデリングしているのでモーション付けを円滑に進められるようになっています。
音響班が作成したSEやBGMを受け取り、それをゲーム内で適切なタイミングで鳴らすことが出来るようにしました。
我々は、ゲームのジャンルを「アクションRPG」としました。このジャンルを選んだ理由として、Unityではアクションゲームの開発がしやすいこと、RPGゲームは日本人にとって馴染みが深いこと等があげられます。
さらに、アクションRPGの具体的なモデルを、「ソウルライクゲーム」としました。自動生成した結果をみることを目的としたアクションゲームではなく、アクションゲームとしての面白さや難しさも感じられるようにしたかったためです。
アクションゲームにおける基本的な動作であるプレイヤーの移動/回避/攻撃といった動作を作成しました。プレイヤーである主人公を自由に移動させるために、Unityの機能の一つであるCharacterControllerを使用し、プレイヤーの回避には、オブジェクトのアニメーションを管理するAnimatorを、プレイヤーの攻撃には前述のAnimatorとコライダを使用しました。さらに、CharacterController の機能を使い、プレイヤーは回避中、敵の攻撃に対して 無敵となるようにしました。
さらに、敵のプログラムも作成しました。敵はCharacterControllerとNavmeshAgentを用い、自分を中心とした一定の値の円の中から一点を目的地として設定して、その場所に向かって動くようにしています。主人公の時と同様に,Animatorとコライダを用いた攻撃を実装し、敵はプレイヤーに十分近づいたら攻撃を仕掛けてきます。
プレイヤーの行動を制限する要素として、スタミナを実装しました。プレイヤーの攻撃、回避といった動作で消費します。スタミナが尽きると、プレイヤーは回避が出来なくなってしまうため、細かいスタミナの管理が必須です。
RPGゲームとして、レベルアップの機能を実装しました。休憩所に触れると、体力が回復し、持っている経験値の量に合わせて 体力/攻撃力/防御力 の3つの要素のうちどれかを強化することが出来ます。
視覚班からマップデザインを受け取り、それに沿ってUnity上でマップを制作しました。マップ作成時には、Unityの機能の一つであり、地形を自由に創造することを支援するツールであるTerrain機能を用いました。Unity Asset Storeのアセット等を活用してマップの制作を進めました。
マップの作成において、テクスチャやライティングを重視しました。設定画の雰囲気をなるべく再現するためにテクスチャを選別し、設定画に沿った空気感を感じられるようなライティングを施しました。
他班から提出された成果物をUnity上で1つのゲームに統合する役割を担いました。成果物を円滑に統合できるよう、各班と綿密に連絡を取り合い、ゲーム内に実装しやすい形式で提出してもらい統合を行いました。
ゲームのバグフィックス
仕上げたゲームをWebで公開します
もっと動かしていて楽しいゲームにする