作者: 機械伯爵
日時: 2002/8/3(11:09)
「P は Python の P <実戦編>」
 〜やるぞ作るぞRPG!〜


NP-7 クラスシステム

 「クラス」という言葉を聞くと、このMLにお集まりの方々は当然、
オブジェクト指向言語のクラスをまず真っ先に考えられることと思
いますが、今回取り上げるのはそちらのクラスではなく、RPGにおけ
る「キャラクター・クラス」と呼ばれるシステムについてのお話で
す。

 もともと、RPG(Role Playing Game)が、コンピュータゲームがオ
リジナルではなく、ボードゲームのような形式でプレイしていたと
いうお話は何度かいたしました。

 RPGは、タクティカル・ウォー・シミュレーションゲームという、
戦争ゲーム*1が源流で、その兵士一人一人を一人のプレイヤーが演
じることによってゲームするというコペルニクス的発想からうまれ
ました。

 しかし、新たなゲームシステム構築は容易ではなかったようです。

 さまざまな問題(たとえば、勝敗はどうするか、など)がありま
したが、その中に、プレイヤー同士がどんな「役割(Role)」を持つ
か、という非常に深刻なものがありました。

 例えば、同じ種類の能力を持ったキャラクターが複数存在すれば、
その差異はキャラクターの能力のみ、ということになり、当然、低
い能力値を持つキャラクターをプレイするプレイヤーは楽しくない、
というわけです。

 そこで、能力によってプレイヤーキャラクターの役割を明示する
「クラス(階級)」というシステムが導入されました。

 たとえば、初代RPGのD&D(R)では、戦士(Fighter)、魔法使い(Magic
User)、聖職者(Cleric)、盗賊(Thief)という基本的なクラスがあり
ます*2。

 戦士は物理的手段を用いた戦闘のプロフェッショナル、魔法使い
は攻撃魔法を主体とした魔法攻撃のエキスパート、聖職者は神への
祈りから生まれる治療・支援の技を持ち、盗賊はドアや宝箱の鍵を
はずし、罠を見抜きます。

 このように「1プレイヤー1キャラクター」のRPGのルーツが生ん
だクラスシステムですが、コンピュータRPGの時代になって、1パー
ティ(登山のパーティと同じ)を1プレイヤーが指揮するようにな
ると、この関係に微妙な変化が現れてきます*3。

 プレイヤー間の役割を明確にするためのクラスが、役割分担の必
要性の無いコンピュータRPGではあまり重要視されなくなり、複数の
役割を一人で担うキャラクターが登場しだします。

 一つの方向性としては、各種の能力をパラメータ化して「スキル
(Skill 熟練度)」として扱うスキルシステムが生まれました*4。

 これはキャラクターを「クラス」という枠でなく、さまざまな特
殊技能の組み合わせとして表現することによって個別化するシステ
ムです。

 もう一つの方向性としては、複数のクラスを兼ねることができる
マルチクラスという概念がうまれました*5。

 マルチクラスでは、たとえば「魔法戦士*6」のように、剣と魔法
のどちらも使えるスーパーキャラクターというものが可能になりま
す。

 さらにスキルシステムとクラスシステムの両方を統合して、大枠
のクラスに対して個々のキャラクターがそのクラスの制限内でスキ
ルを習得する方法や、スキルのセットとしてのクラスを複数兼ねる
ことによってよりバラエティーに富んだキャラクターを作り上げる
方法も生み出されました*7。

 さて、コンピュータRPGはオリジナルのRPGから分離した後、コン
ピュータならではの独自のシステムを生み出してきましたが、実は
それには「プログラミングの困難さ」という、隠された要因が存在
したことはあまり知られていません。

 アセンブラが当たり前だった一昔前のゲーム機で、D&Dと同様のシ
ステムを採用したWizardryがファミコンに移植*8された時は、かな
り話題になりました。

 実は、当時私はほとんどプログラミングなどしていなかったので、
なぜ難しいのか見当がつかなかったのですが、今考えてみればなる
ほどな、と思います。

 Wizardryは初代AppleII版で開発された当時、開発言語にはPascal
を使っていたそうです。

 RPGはキャラクターデータ、アイテムデータ、マジックデータ、モ
ンスターデータ等データ構造が命ですので、データの表現力に乏し
い言語での開発は非常に困難なのです。

 やがてC言語がANSI-Cに移行すると、構造体などのデータ構造が自
由に使えるようになり、Wizardryはさまざまな機種へと移植されて
いきました。

 さて、各種能力が並列なスキルシステムは、キャラクター用のデー
タ構造が一つで済むのでコンピュータに非常になじみやすいものと
いえます。

 逆にクラスシステムは、特にマルチクラスの概念まで入ってくる
と、非常にややこしくなり、今までのプログラミングでは困難を極
めます。

 オリジナルのRPGの方では、マルチクラスを応用したタイプのRPG
は結構広まっていますが、それはこのタイプのほうが「人間がイメー
ジしやすい」という長所を持っているからです。

 並列にスキルが並んだキャラクター表を見ても個性を分析できま
すが、直感的ではありません。

 しかし、たとえば「戦士1レベル、盗賊2レベル、船乗り2レベ
ル」といった表記があると、直感的に「ああ、このキャラクターは
海賊でもしてたんだなぁ」とかわかるわけです。

 さて、クラスシステムをコンピュータゲームに導入するにはどう
すればいいか・・・もうお分かりですね?

 そう、クラスにはクラス。

 オブジェクト指向的手法を用いて、キャラクタークラスをそっく
りそのままクラスで表現してやれば、直感に背くことなくプログラ
ムを組み立てることが出来るわけです。

 もともと、現実や幻想世界での現実(笑)をシミュレートするの
がRPGですから、人間の感覚によって分析しやすいようなデザインが
好まれるわけです。

 つまり出発点はオブジェクト指向プログラミングと全く同じなの
で、この両者が相性が悪いわけはありません。

 そんなわけで、クラスシステムを使ったRPGでも、オブジェクトさ
え使えば怖くない、というのが私の持論なのですが・・・

 う〜ん、コンピュータゲームプログラミングを解説してる本で、
こういう話が殆ど無いのは、やはりオリジナルのRPGをやってきてな
いからなのかな、と思ったりしています。

 それでは今回はこの辺で。

 次回は・・・魔法か、アイテムか、あるいはモンスターかな?



*1 戦争ゲーム
 なんだか非常にヤな語感のゲームですが、囲碁や将棋だってもと
もとは戦争をシミュレートしたゲームですから、普通のゲームです。
「全ての戦争の兵士が生身でなく鉛のゲームの駒になったら、戦争
は無くなるだろう」とゆーのはSF作家のHGウェルズの言葉(うろ覚え
だから正確ではないけど)にあったりしますが、競い合う人間の本能
を、スポーツやゲームにうまく昇華できれば、世界は平和になるだ
ろう、なんて願いがこめられてます。異論はあるけど、私はそうい
う考え方が好きです。

*2 基本的なクラス
 これはD&Dのようなファンタジー世界を舞台とした冒険RPGの話で
あって、他のRPGでは違うクラス体系のものもあります(宇宙船のゲー
ムなら船長とかパイロットとか)し、全くクラスシステムを採用して
いないもの(現代のホラー物など)もありますが、プレイヤーがゲー
ムの中で役割分担(Role Play)するのは、基本的に同じです。

*3 微妙な変化
 時代はめぐるというか、そもそもRPGをする人数が揃わなかったと
きの代替品として考案された一人用RPGのコンピュータRPGが、イン
ターネットの発達により、自宅にいて多人数と自由にプレイできる
ネットワークゲームへと進化しました。そのことによって、再び1
プレイヤー1キャラクターの本来のRPGの姿に戻ったわけです。

*4 スキルシステム
 歴史的事実から言えば、スキルシステムはRPGの多様性の中から生
まれたもので、コンピュータゲームがきっかけとなって生まれたも
のではありません(有名なスキルシステムのゲームとしてはRune Quest
などがあります)。しかし、コンピュータRPGでこのシステムが積極
的に採用されていったのは事実です。

*5 マルチクラス
 日本では「兼職」とよばれますが、もともとクラスは「職業」で
なく「階級」なので、兼ねられるという概念はかなり妙な気がしま
す。

*6 魔法戦士
 不思議なようですが、実は英語圏に魔法戦士に相当する言葉はあ
りません。これは、巨大な剣をぶん回して戦う肉体派の戦士と、秘
密の呪文を駆使する知性派の魔法使いのイメージがマッチしないか
ら、かもしれません。日本では、実在でいえば沖田総司、小説なら
眠 狂四郎のような、優男の剣士がいます(ヤマトタケルもかな?)
ので、魔法を使ってもあまり違和感は無いのですが。そのせいか、
たとえば、Wizardrに於いて魔法使いと戦士を兼ねる職業はSamurai
と呼ばれます(汗)

*7 バラエティーに富んだキャラクター
 紙と鉛筆タイプのオリジナルのRPGを経験されたことの無い方は
「なぜこんなややこしい方法を?」と不思議に思われるかもしれま
せんが、キャラクターの個別化というのは、実際にRPGを行うときに
は非常に重要なファクターになるため、各システムともかなり力を
いれてデザインされています。ちなみに、クラスを定めてからスキ
ルを取る方法は、Role Master(難解なシステムで有名)や、最新版の
DD3(Dungeons & Dragons 3rd Edition)など、スキルセットとしての
クラスを兼ねるシステムは、War Hammer Fantasy RPG(クラスを「キ
ャリア」と言い切って、積極的に転職することによって成長するシ
ステム)や、わが国でのソードワールドRPGなどがあります。

*8 ファミコンに移植
 日本人はよほどWizが好きらしく、ゲーム機やコンピュータで、Wiz
の動かないものはほとんどありません。余談ですが、ファミコンは
AppleIIと同じCPUを採用していますが、ファミコンのROMカセット版Wiz
は、FDDベースの当時のパソコン版RPGより遥かに動作が速く、古いWiz
ファンに驚異の目で見られました。つまり、CPU(演算速度)より、デー
タの出し入れ(入出力)のほうが、RPGには重要、ということになりま
すね。