バトル
RPGでのメインはバトルである。ユーザーはキャラクターを通じて敵とバトルを行い、ゲームを進める。このページではバトルについて述べる。
基本
状況表示
ユーザーの行動
敵の行動
行動
バトルの終了
バトルは次のいずれかで終了する。
- 敵をすべて倒す。
- 味方がすべて倒される。
- 自分側の退却が成功する。
- 敵が退却する。
- その他、シナリオの都合等による中断
この内、敵をすべて倒した場合、あるいは敵が退却した場合に、敵に応じた経験値(敵の退却で逃した敵を含むかどうかは、ゲームの設定による)、倒した敵がおとしたアイテム、通貨を得ることができる。
クエスト
いよいよゲームの本体とも言えるクエスト・バトルについてである。
クエスト
伝統的なRPGではキャラクターがマップをさまよいながら、敵と遭遇した滝にバトルが発生するが、スマホでのRPGでは時としてクエスト(ゲームによって呼び方はいろいろ)をメニュー等から選択してそこでシナリオやバトルをプレイする場合がある。今回作成するのは後者なので、そちらの方に絞って話をする。
プレイヤーはメニュー等から選択したクエストをプレイするが、クエストは下記で構成される。
- タイトル
- 説明や演出等を目的とした、寸劇や映像
- バトル
- 結果提示
これらはどれも必須というわけではないし複数持っていても問題ない。ただ、さいていでも寸劇的なもの、もしくはバトルについては最低でもどちらか1つは必要となる。
タイトル
タイトルはタイトル。
寸劇とか
状況の説明や、場の盛り上げとかのために、キャラクターを使ったり映像その他で表示する。
バトル
ゲーム本体。実際に敵と戦う。詳細は別途。バトルによってプレイヤーやキャラクターは経験値やアイテムその他を入手する。
結果提示
シナリオやバトル、クエストそのもの等から得られた経験値やアイテムその他を提示し、それによるレベルアップ等を提示する。レベルアップは別に行う場合もある。
パーティー
RPGでは複数のキャラクターでパーティーを組むことがよくある。ここではそれについて少し語る。
構成キャラクター
1番目の自分の手持ちのキャラクターについては特に説明は不要だろう。2番目の自分以外の手持ちのキャラクターというのは、ゲームによっては他のプレイヤーが何らかの形で別のプレイヤーの使用を許している場合にそれを使用できることがある。これはしばしばサポートキャラ等と呼ばれることがある。そして最後のゲームで予め準備されたキャラクタというのは、ゲームのシナリオの都合等でパーティーにキャラクターが加わるもしくは加えることができることがある。これは強制的にパーティーに加わることもあるし、プレイヤーが選択できる場合もある。
陣形
パーティーはバトルの際にキャラクターを陣形に配置する場合がある。例えば次の通りである。
- 一列にならぶ
- 前衛・後衛
- 格子状
- ...etc
この陣形の場所によってキャラクターの攻撃力や防御力に影響をもたせることがある。例えば前衛なら相手に与えるダメージが大きくなる代わりにこちらが与えるダメージも大きくなる。後衛ならその逆。といった具合である。あるいは陣形の場所に特別な効果をもたせる場合もある(特定属性のみ強くなる等)。
キャラクターの位置関係による効果をもたせることも考えられる。位置関係でコンビネーションが発生するとかそういった類のものである。
控え
上記とは別に、控えのキャラクターを設定できるようにする場合もある。この場合は先発のキャラクターが戦闘不能などで陣形から外れた場合はその人数を補充する形で控えのキャラクターが陣形に参加する。
キャラクターについて
RPGを作るアプリを作成する場合次の2通りのアプリについて分析する必要がある。
「RPGを作るアプリそのもの」の制作については、これによって作られるRPGについても知る必要があるので、まずは作られるRPGについて考察する。なお、下記は一般論的に進めては居るが、あくまで今回のアプリの作りを調べるためのものである。
キャラクターについて
RPGで一番重要なものは何か? いろいろな考え方があると思うが、やはりゲームで活躍するキャラクターが重要であると考えられる。というわけでキャラクターについて考える。
ゲームに登場するキャラクターは大別すると3種類に分けられる。一つはプレイヤーが操作をするプレイヤーキャラクター。次にプレイヤーと戦闘する敵キャラクター、最後にノンプレイヤーキャラクータ、いわゆるNPCである。
プレイヤーキャラクター
プレイヤーは1つ、もしくは複数のキャラクターを使ってゲームを進めていく。ここで利用するキャラクターがプレイヤーキャラクターだ。
各キャラクターはそのキャラクターの性質を示す属性を持っている。代表的なものは次の様なものである。
- HP
- 強さ
- 防御力
- MP
- 性別
- エレメント属性(火、水、木のようなもの)
- 職業
- ...etc
キャラクターはクエストなどで戦闘を行うが、そのときに、例えばHPはあとどれだけダメージを負っても大丈夫か? またどの程度の攻撃をするか、魔法(使える場合)はどれだけの魔法が使えるか等を数値化して持っている。なお、HPが0になった時点で行動不能となり、行動可能なキャラクターが居なくなった時点でクエスト失敗となる。
また、エレメント属性や職業などの特性によって、キャラクターは固有の必殺技的なものを使用することができる。例えば剣士なら剣を使った必殺技。僧侶なら祈りで回復、みたいな感じである。
これらが戦闘時にどう具体的に作用するかについては、後に考察したい。
上記とは別に、プレイヤーキャラクターには固有の名前を持つ。プレイヤーはこの名前を使ってキャラクターを識別する。名前はどのようなものでも良いが、基本的には人の名前である場合が多数であろう。
プレイヤーキャラクターは何らかの方法で経験値を得る。例えば戦闘やアイテムの使用によってである。この経験値が一定の量が貯まるとキャラクターはそのレベルが上がり、各属性値が修正される。多くの場合はキャラクターが強くなる方向で属性値が変更される。HPや強さなどは大きくなり、防御力はダメージが小さくなる方向で修正される。
各プレイヤーキャラクターにはレアリティーが設定される。基本的にレアリティーの高いもののほうが性能が良いものとする。キャラクターのレアリティー値が固定か上昇可能かは各ゲームで設定できるようにしたい。
敵キャラクター
戦闘があるということは相手が居るということである。その相手となる敵キャラクターを考える。
敵キャラクターも基本的にはプレイヤーキャラクターと同じく各種属性によってその強さ、性質が決められている。
プレイヤーキャラクターと違うのは、プレイヤーが操作する訳ではない。そして基本的に一過性に出現するので経験値を取得すると言うことはない。そして固有の名前は必ずしも必要ではない(持っていても良いが)。といった違いがある。
ただし、敵キャラクターをプレイヤーキャラクターとして使うことも考慮が必要である。
ノンプレイヤーキャラクター
実際に戦闘に直接関わるキャラクターとは別に、街中で話をするだけだったりのノンプレイヤーキャラクター(以下NPC)もある。これらのキャラクターは情報を提供するためだったりゲームの雰囲気づくりのために活用されたりする。また店舗等で各種アイテムの販売をしたりゲーム内の事務を行うキャラクターもNPCである。
NPCは戦闘を行わないので、上記のような属性は持たない。また名前についても必要になるものではない。村人Aとかには名前は用意されない場合も多い。ただし全てに用意しても良い。重要な役割のNPCには名前を付けることが多い。
以上がキャラクターについての考察である。これらのキャラクターがパーティーを組んでクエストに出かけ戦闘をこなす訳である。
動作環境
前回のエントリーではどのようなアプリを作るか、要件的なことを書いたわけだが、アプリケーションはどの動作環境で動作するか。ここを決めないと開発はできない。
「RPGを作るアプリ」という性質上、そのアプリの動作環境と、そのアプリで作られたRPGの動作環境の療法を決める必要がある。
作成されたRPGについて
こちらの動作環境は割と明確に決めていて、次の通り。
まあ、一般的にありがちな感じ。要はこのアプリでRPGを作成するとWeb、Andoroid機、iOS機(iPhone、iPad)で動作すると。つまりそれぞれに動作するプログラムを作成する必要がある。解像度は1920 * 1080辺りを想定。
RPGを作るアプリ自体
こちらはWeb上で動作すれば十分なのかな? まあAndroidやiOSで動作することに越したことはないけど、ページがレスポンシブルならそんなにネイティブアプリでやる必要はないのかもしれない。
つうか、ゲーム部分がすでに3つのプラットフォームに対応する時点で開発分量は結構多くなりそうなので、とりあえずネイティブアプリは余力ができたらということで...。
ただ、開発ターゲットにiOSを入れるのはいいんだけど、iOSアプリって基本的にはMacがないと開発できないんだよね。しかし手持ちのMacBook Airは2010年の年代物...なかなか辛そうな感じだ。
始めてみよう
なんとなく思い立って、昨今のスマホのソシャゲなんかでやってるRPGを個人でも簡単に作れるツールを作ってみようと思った。
大雑把にはキャラ絵があればあとは簡単なストーリーやキャラ設定をすればゲームになる感じの。
具体的には次みたいな感じ?
- ゲームは各種クエストをメニューから選んでプレイする。
- クエストはある程度の設定ができる(Wave数、敵の数や強さ等)
- 複数キャラでパーティーを組む(3〜6程度)。前衛後衛位の陣形を設定できる。
- ある程度、キャラのタイプ(戦士、僧侶、魔法使い等)を準備する。タイプは製作者も設定できるようにする。
- キャラの立ち絵による会話を実現できるようにする。会話が無くてもゲームは作れる。
- 立ち絵は製作者が普通、喜び、笑い、怒り等を表すキャラ絵を用意する。怒りを表す血管(こういうの→💢)、冷や汗みたいな記号的な絵はこちらで持って(カスタマイズ可)製作者が随時使えるようにする。
- キャラの属性を設定できる。属性としては炎、水、木、光、闇くらいは最初に用意しておく。
- イベントを設定することができる。イベント種別(収集とか)はおいおい考える。イベント報酬を設定できるようにする。
- プレイヤーレベル、キャラレベルを準備しプレイによって成長させる。キャラレベルはプレイとアイテムで成長させる。
- キャラの状態変化をサポートする(強化、弱体化とも)。
- 伝統的なコンピューターRPGにあるマップみたいなのは作るのが大変なのでサポートしない。
- キャラの入手方法はプレイ初期に持つもの、シナリオで入手するもの、プレイの報酬、召喚的なもの(ぶっちゃけガチャ)辺りを考える。
- ゲーム内通貨を何種類か使えるようにする。いわゆる石とかコインとかポイントとかそういうヤツ。ただし当初は課金とかは考えない(しんどいので)。
- ミッション的なもの(ログインしたとか、クエストをこなしたとか)を設定できるようにする。デイリーと累積とイベント辺りで分類する。
- 上記とは別にログインボーナスを設定できるようにする。
- アイテム、ゲーム内通貨、キャラ等はゲーム内、ミッションの報酬、ログインボーナスで入手できるようにする。
- クエスト内で敵とのバトルをする。バトルはコンピューターRPGにある普通のターン制バトル。
- キャラの成長はレベルとレアリティー位にする。あんまり複雑にしない。
- キャラの成長に使うアイテムはレベル上げ用の素材とレアリティーアップ用のアイテムを準備できるようにする。レベル上げ用の素材は汎用素材で属性別/アップ料くらいの分類に。レアリティーアップ用は汎用/キャラ固有の両方をサポートする。
- キャラに簡単な装備を可能にする装備できる数は1〜5くらい。
- 入手できるアイテムは成長用素材、装備アイテム、ゲーム内通貨、キャラ(もしくはキャラ入手用アイテム)、消耗品(薬草とか、巻物とか)辺り。
- 他ユーザーとのコラボについては、他ユーザーのキャラが使えるフレンドてきなものをサポート。
- チュートリアルを作成できるようにする。
- それとは別に、制作用チュートリアルを用意する。段階的に習熟できるようなものを。
ざっと思いつくまま書いてみたけど、結構盛りだくさんだな...。全部できるかどうか判らないし、作っているうちに変更もするだろうけど、まずはできる範囲でやっていこうと思う。