魔法ジェネレータの企画

はじめに

魔法ジェネレータの企画。
名前ジェネレータとかとあんまり変わらないんだけど、ちょいとパラメータ数が多いのでより厄介。


あと一回作ればいろんなゲームに使えそうだけど、実際はそう簡単な話でもないから、ゲームごとに作った方がいいんじゃないかって議論もある。
ただまあ、汎用的なジェネレータはあっても特に困らないので、一応考えておこうかなと。

魔法のパラメータについて

テーブルトークRPG系が一番使いやすそうな気はする。
手元にソードワールド2.0のルールブックIがあるから、そこからざっと抜粋。
こんな感じ。

名称: 術の名前
対象:1体、術者、任意の地点、半径Xmなど
射程/形状: 効果の対象。術者、術者が接触している相手、○mの射程の中から任意の地点を指定など
時間: 魔法が効果を発揮している時間。3分とか1時間とか1日とか
属性: 純エネルギーとか炎とか風とか

微妙なのでこういうのもある。

抵抗: 抵抗の意思を持つものが抵抗に成功するとどうなるかという値。抵抗に成功すると半減したり、完全に魔法の効力が失われたり、抵抗が出来なかったり、抵抗しようと思えば抵抗できたり

この他、消費(消費MP)とか、レベルとかもある。


発動方法(詠唱XX)、発動条件(金属を身に着けていないとか)とかも必要そう。

種類

魔法って一言に言っても、大体ファンタジー世界では何種類かの魔法がある。
多分俺が一番やりこんだゲームはFF5だと思うんだけど、FF5でもこれだけある。GBAだと予言とかも追加されてるらしいけど未プレイなので除外。

  1. 黒魔法
  2. 白魔法
  3. 召還魔法
  4. 時魔法
  5. 魔法剣
  6. 青魔法
  7. 地形
  8. 動物
  9. 忍術

他にもアビリティとして「りゅうけん」とか「そせい」とかもあるけど、単一コマンドで単一効果のものはとりあえず除外。
いくつかに分類できる。ただFFは魔法に関しては理屈無視なところがあるので、結構分類不能も多い。

  1. 黒魔法、魔法剣、忍術 = 属性魔法
  2. 地形 = 自然魔法?
  3. 召還魔法、動物 = 召還魔法
  4. 白魔法 = なんの力使ってるんだこれ・・。普通は神聖魔法とかに分類される
  5. 時魔法、青魔法 = なんだこれ・・分類不能


ドラクエは3の段階辺りだともうちょいシンプルで、僧侶の魔法と魔法使いの魔法の2種類。


他によくあるのはソードワールド2.0にもある魔導具を使ったマギ系とか、超能力を使うタイプ。
属性魔法もいくつかのタイプがあって、自然の力を借りる系と、異能の力を借りるものが多い。異能の力が基本的には圧倒的に多くて、アストラル界から力を呼び出すとか、地獄の竜の炎を呼び出すとか、シルフの力を借りてかまいたちを起こすとか、世界に散らばるマナという見えない力を使ってどうのとか、まあいろいろ。


自動生成するなら、その辺の設定DBを借りて適当に持ってくる事になると思う。種類に応じて選択可能な属性値が異なったり、発現しやすい魔法の種類が異なったりするけど、これは種類を選んだ時点で自動的に決まってていい。
なお種類を選ぶとその種類の名前の系統は固定化する。名前については後述するけど、例えば英語名の名前で構成される種類だったら英語名だけ、漢字の名前で構成される種類だったら漢字だけ。どういう分類の名前を使うかはランダムでいい。

体系

魔法の種類が決まったら次は体系がある。
例えばFF5の黒魔法だとこんなん。

  • ファイア
    • ファイラ
      • ファイガ
  • サンダー
    • サンダラ
      • サンダガ
  • フレア
  • トード

ドラクエ3だとこんなん。あれ、ヒャダインあったかな・・。


大体上位と下位は3レベルくらいあって、それとは別に単体系のもちらほら。
これはどんなゲームでも大体そう。Diabloみたいなアクション要素があるのだと、効果範囲とか軌道とかも重要になってくるから一概に区別出来ないパターンもあるけど少数。


体系について結構重要なのは属性で、基本魔法が一個あれば、後はその属性で適当に掘れる。
属性を仮に火水風土光闇とするなら、適当に名前生成で踏んで出来たサールドという名前があるんでこれを遣って、火の基本魔法をサールドとするなら、そのサールドにサールド1サールド2サールド3ってやるだけでも体系は作れる。

名前

体系立てたとしても全部が全部1,2,3だと味気ないので、ちゃんと名前をつけるとしよう。


ドラクエの魔法の命名体系をばらすって作業はどっかのえらい人がやってた。
http://d.hatena.ne.jp/dlit/20120215/1329330135
まあ簡単に言うと名前的にはメラだったら、「メラ」であり、メラミだったら「メラ」「ミ」であり、メラゾーマだったら「メラ」ゾーマ」とかやね。


FFの魔法はつまんない名前ばっかだなしかし。ただの英単語とその語尾変化だけ。


ドラクエやらはいったんおいといて、名前自動生成を考えると、一番やりやすいのは単語連結。英語ドイツ語漢字あたりをサポートすればそれなりにそれっぽくはなる。その上でドラクエのような独自名称 + 装飾後のパターンを入れてもいい。
英語ドイツ語漢字系はこういうの。ドイツ語あんまりわかんないから、Google翻訳で適当に同じ言葉を並べてみる。

英語 ドイツ語? 漢字
ファイアストーム Feuer sturm 火嵐
サンダーボルト Donnerkeil
アイスキャノン Eis kanone 氷砲

漢字はもうちょっと工夫できる。
もうちょっとたくさん並べられるし並べた方が魔法っぽくなる。説明省略。


単語連結は非常に使いやすくて、ファイアとストーム、サンダーとボルト、アイスとキャノンでこのくらいのパターンにはなる。

英語 ドイツ語 漢字
ファイアストーム Feuer sturm 火嵐
ファイアボルト Feuer bolzen 火矢
ファイアキャノン Feuer kanone 火砲
サンダーストーム Donner sturm 雷嵐
サンダーボルト Donnerkeil
サンダーキャノン Donner kanone 雷砲
アイスストーム Eis sturm 氷嵐
アイスボルト Eis bolzen 氷矢
アイスキャノン Eis kanone 氷砲

でも無作為に名前つけるとアイスストームという名前の炎系単体攻撃魔法が出来上がることがあるから、属性と効果範囲なんかを見て適当な単語を選ぶ必要あり。


ドラクエ系のは装飾語の世界になるので、この単語系とは少し違う。
さっきのサールドって名前を使うと、「サールマ」とか「マサールド」とか「サールズン」とか、どこかを変化させたり、なんか強そうな響きの文字をくっつけたりする。


ただちょっと難しいのは、例えばイオにマがくっついたとして、すごい強い魔法だとしよう。「マイオ」になるわけだ。希望としては「マヒャド」くらい強そうなのを期待したかったけど、どこか間抜けな名前になってしまう。
でもマヒャドはありでマイオが駄目なんて機械で判定するのは結構むずいので、むずいから時々ださいのはしゃあねぇやって妥協すれば簡単。妥協しないと結構難易度高い。

効果について

でまあ適当に名前と体系作ったとして、最後に効果が残る。
炎の弾を飛ばすとか、ある地点を中心に爆発させるとか。


とりあえず、攻撃魔法は出来る。
だってほとんどパターンないからな。
直線上に飛ばす属性をまとった何かや、爆発する属性をまとった何か、吹き荒れる属性をまとった何か。それだけで少なくともファイアストームからアイスキャノンまでの9種類はサポートできる。


でも、汎用的な魔法だけじゃ難しいっていうのは例えばドラクエバイキルトスクルト、FFのヘイストやスロウといった補助呪文の存在。
補助呪文についてはゲームごとじゃないとちょいとお手上げかなぁと思う。
テンプレートみたいの作って、必ず存在する魔法として「単体の防御力を上昇する」とか「全体のすばやさを2倍にする」とかを先に定義した上で、そこに名前だけ当て込むってのが汎用ジェネレータじゃ限界だと思うな。




企画支援にはあげといた。
https://sub-tsuge.ssl-lolipop.jp/shien/webroot/index.php/plan/view/34
普通は1ヶ月もかかんないんだけど、効果範囲のアニメーションイメージとか、魔法の発動イメージとか自動生成するとかしたくなるかもしれんから、その辺のバッファ込みで。
ま、そのうちそのうち。