『かわいそうな王』のモンスターの設定例・その2

前回の記事(http://d.hatena.ne.jp/kumashige/20070704/1183549395)では、モンスターの能力値をどのように設定しているか、簡略化のための工夫をしたことについて、話をしました。

今回の記事では、値を設定する以前の問題、「モンスターにどのような能力を与えるか」について話します。実はこちらの方が重要で、難しく、個人的には楽しいと感じている部分です。目下最大の課題を抱えている項目です。

能力値を自作することの意味

Desigeonのシナリオ編集では、すべて能力値を自作しなければなりません(サンプルにあるものを使用してもかまいませんが)。コンピュータRPGの世界ではメジャーな能力値、例えば「ヒットポイント」のようなパラメータも、Desigeonの世界では作成しておく必要があります。

ですから、モンスターに値を与える作業よりも先に、なんというパラメータがあるのか、能力値の構成をどのようにするか決めておかねばなりません。能力値の構成は、作者が抱くゲームの設計によって決めていきます。卓上ゲームの例を挙げると、テーブルトークRPGの(数値部分に関する)ルールを定義するようなものです。ルールがなければ値は決められませんから、値の設定方法よりも実は能力値構成を決めることの方が重要なのです。(そして、この能力値構成を編集する部分が、まだ複雑で扱いづらいままです)

『かわいそうな王』では、ウィザードリィを参考にして能力値が定められています。しかし、ウィザードリィに登場した“プレイヤーの目に見える”パラメータのみでは、ゲームは作れません。そこが能力値定義の難しいところです。基礎となる六つの能力値と、アーマークラスと、ヒットポイントと、数個のレジストがあればゲームは作れる、と考えていると、あとで頭を抱えることになります。

編集の順序としては、能力値以外にどのような機能があるかを知ってから、能力値の構成を決めることになります。能力値の大部分は「アクト(旧名:アクション)」という、攻撃や呪文などのコマンドを作るために設定します。能力値構成を考えるためにはアクトを知らねばならず、アクトを設定するためには能力値やステートについて知らねばなりませんから、こうした編集上の知識は、すべてセットで覚えていくことになります。

以前紹介した能力値の設定画面には、「この値の存在意義はなんだ」とクエスチョンを投げたくなりそうな能力値が多数あります。

以下は、画像にある聞き慣れない能力値の例です。

今回の記事では、シナリオ作成初期の時点でイメージしづらい能力値を、必要に応じて追加しながら作品ができている、ということが伝われば十分です。

Speed(スピード)

スピードは、戦闘時の行動順序を表しています。このパラメータは、プレイヤーキャラクタ側も使用しています。

敏捷性を表す「アジリティ(Agility)」があるのに、スピードを別にもうける理由は、「アジリティ」が固定値を表す能力値に過ぎないからです。

戦闘時には、例としてアジリティ11と12のキャラクタのうち、どちらが先制するかという判断を乱数によって決着させる必要があります。Desigeonの戦闘時における行動順序は、単に能力値の大小を比較して順序を決めているだけなので、アジリティを用いて順序を決めようとすると、行動順序が固定化されてしまいます。この例であれば、アジリティ12のキャラクタが必ず先に行動することになりますが、順序が固定になるアジリティを速度の比較に使ってしまうと、大部分のシナリオ作者が困ってしまいます。

スピードは、「アジリティ+1〜11の乱数」という設定にしてあります。乱数変化しますから、スピード同士を比較したときに、行動順序にばらつきが生まれるわけです。

ただしモンスターにはアジリティを与えていませんので、スピードに直接値を与えます。スピードに値を与えた場合は、「スピード+1〜11の乱数」になります。

モンスターにはアジリティを定義しないで(定義してもいいのですが、モンスターにはキャラクタメイキングも罠外しもありませんから、『かわいそうな王』では定義するだけ無駄だと判断しました)、スピードを直接入力しています。無駄な能力値を減らすことも、制作上の工夫として必要になってきます。

Fatal Flag(Fatal抵抗率)

Fatalフラグは、ウィザードリィの「マカニト」を実装するために、やむを得ず定義した能力値です。メイジ呪文「Fatal」の効果については、『かわいそうな王』を参照してください。要はマカニトと同じです。

フォータルフラグには、0か100を設定します。0であればフォータルが効き、100であれば効きません。この値は、純粋に抵抗パーセントを表しているに過ぎません。つまり、50を設定すれば二回に一回は効くことになります。しかし、ウィザードリィにそのような例はありませんから、『かわいそうな王』では0か100に限定しました。

フォータルフラグの場合はわざわざ、一つの呪文を定義するために能力値を一つ割り当てているわけですが、本来このようなアイデアは、シナリオ制作者が独自に考え、隠しパラメータとして定義する能力値です。こうした事例をサンプルで示す必要はありませんでしたが、『かわいそうな王』はウィザードリィに似通わせるという目的を持っていましたので、マカニトについても似通わせてみました。

カニトがいらない人には、無用の能力値です。すぱっと切り捨てることになります。

回避Rate(回避率)

回避Rateは、攻撃に対する回避率を表す能力値です。

『かわいそうな王』の回避性能を表す能力値は、A.C.(アーマークラス)ということになっていますが、それは表向きの話で、実際には回避レートを使用して、命中率を計算しています。

というのも、攻撃の命中率に限らずDesigeonで「率」を計算する際、必要になる情報は百分率です。アーマークラスのように10から始まりマイナスで終わるような値の範囲は、率の計算に使えないのです。

したがって、アーマークラスを百分率に変換する、中間の能力値が必要になりました。これが回避レートです。回避レートは、見かけ上のアーマークラスが10のときに0、0のときに50、−10のときに100になるよう設定されています。つまりアーマークラスが1変化するごとに、5ずつ変化します。

Desigeonには、アーマークラスの概念がありません。アーマークラスのように、ゲームのルールに直接使えない能力値を採用する場合は、それをDesigeonの計算式に適応させる“変換能力値”が必要になります。

ここで注意したいのは、アーマークラスという概念をプレイヤーに浸透させるために、回避レートの存在が秘匿されていることです。プレイヤーは、回避レートの存在を知る必要はありません。アーマークラスのみを、回避力のものさしにしています。したがって、プレイヤーキャラクタにも、モンスターにも、アーマークラスで値を与えて表示し、回避レートには計算のみをさせて非表示にしています。回避レートにも値の入力項目が存在しますし、キャラクタ情報画面に表示することもできるのですが、設定はすべて空欄(ゼロ)にしてあり、非表示に設定しています。

Escape LVLとMusic LVL(逃走レベル、音楽レベル)

逃走レベルと音楽レベルは、特殊な目的を持った能力値の例です。

この二つ(他にもあるのですが、今回は例として二つ)は、前述までの能力値では代替できない機能を持っています。シナリオ作者は、採用するかしないかを決めるのみで、逃走レベルや音楽レベルをたくさん追加することはできません。

逃走レベルは、戦闘中にモンスターが逃げ出す判断を行うために、自動的にチェックされます。個々のモンスターと、プレイヤー側の平均値で逃走レベルを比較して、プレイヤー側の方が大きい場合、そのモンスターは逃げ出す可能性があります。

音楽レベルについては、以下の通りです。まず、『かわいそうな王』には戦闘時のBGMが二種類あります(お気づきになりましたでしょうか!?)。このBGMの切り替えに用いられます。

BGM−AとBGM−B、どちらを演奏するか、音楽レベルを用いて判定されます。プレイヤー側の音楽レベルとモンスター側の音楽レベルを比較して、モンスター側の方が大きければBを、そうでなければAを演奏するというルールです。

『かわいそうな王』では、キャラクタのレベルとモンスターの「エネミーレベル」に応じて、逃走レベルと音楽レベルが比例するようにしてあります。プレイヤーキャラクタのレベルが上がってくれば、自然とBGM−Aが演奏されるケースが増え、やがてBGM−Aだらけになります。

(戦闘時のBGMは、モンスターのパーティごとに二曲まで設定します。すべてのモンスターパーティに一曲しか設定しない場合、音楽レベルを採用する必要はない、ということになります)

他にも、迷路内の視界を表す能力値(値がそのまま視界の歩数になる)、アイテムの所持限界個数を表す能力値(値がそのままアイテム最大個数になる)といったように、特殊な目的を持った能力値が用意されています。その大部分は、プレイヤーキャラクタ側の能力値になります。

迷路内を明るく照らす「ライト(Light)」の呪文では、その能力値に値を加算しています(いつもは1になっている視界歩数の能力値を、3にするステートを付与しています。ステートの持続時間は60ターンにしてあります)。

能力値の定義は、大きなネックになっていること

今のところ、この「能力値」を含め“ゲームのルールを一から設定する”考え方をシナリオ作者にうまく伝えることができないことが、ツールを正式版にアップグレードできない最大の理由になっています。

他のツール、例えばRPGツクールXPでは、能力値が固定化されており、命中率やダメージの計算も固定式です。これを変更する場合、スクリプトプログラミングに頼るようになっています。

Desigeonではスクリプトの実装を今のところ控えているので、編集ツールの画面からいかに簡便に計算式を設定してもらうかが、現在解消中の課題です。


能力値の定義機能は、Desigeonを作成することになった動機の一つです。