▼ジャンル名:君とゾンビを操るRPG

 キャラゲーと非キャラゲーの明確な線引きの方法は? という内容で記事を書いてたら盛大に秀丸が固まりました。うちの秀丸は滅多に落ちないんですが、そんなカオスな内容だったんかな……


 さておいて、ちこちこと手製RPGを弄っているんですが、参考の為に色々とRPGを立ち上げては仕様を確認しています。メニューの開き方とかカーソルの動き方とかコマンドの順番とか普段は気にならない部分もいざ自分に手綱が委ねられるとどう仕様を切るか悩むものですね。
 で、そこで一つ疑問に思ったことがあったんです。「エルミナージュって攻撃エフェクトあったっけ?」というのがそれで。
 なんだか攻撃エフェクトを思い出そうとしてもさっぱり脳裏に浮かんでこないんですよね。打撃音はあったのは確かだけど、キャラがシェイクだけして終わりじゃなかったっけ? いや、ひょっとしたら最初からなかったのかもしれないぞ? いや、やっぱり簡単な打撃エフェクトはあったような気もする……?
 ……などと思いつつエルミを立ち上げてみるとオプション選択でエフェクトのON/OFFがちゃんとありました。最初から切りっぱなしのまんまだったので印象に残ってなかったんですね、これは。
 で、ゲームを開始してから80時間超の今になって初めてエフェクトを表示させてみたんですが。……うわぁ、なんだこれ、めっちゃチャチい!
 エルミのエフェクトはサイズが小さいのとテンポが悪いのとで実にボソボソとした仕上がりです。エフェクトに必要不可欠な「爽快感」がスコーンと抜け落ちていますね。
 うーん、これは真面目にビックリしました。エルミナージュはごくごく順当に手触りのいいRPGなのに、エフェクト一つ入るだけでまったく印象が変わってしまうんだなー……と。


 エルミのエフェクトを見て自分が思ったのは、興を削ぐエフェクトは削る勇気も必要なのかな、ということです。エフェクトよりもテンポに重きを置く自分としては、じゃあ自作のRPGもエフェクトはSEとシェイクだけでいいよね、と結論づけたくなるところではあります。ただ、最初からエフェクトが用意されていないのは単純に手抜きと見なされるんですよね。ここが難しいところではありまして。
 エルミのエフェクトはゲーム性に寄与せず、むしろテンポを悪化させる一面もあります。それでも(言い方は悪いですが)アリバイ作りのためにわざわざエフェクトを用意しなければならないのかなー、と考えるとなんだか暗澹とした気分にもなります。いや、あのエフェクトを気に入ってる人も中にはいると思うんですが。……いるのかな?
 勿論、ゲームとしてはエフェクト完備でテンポもバッチリなゲームを評価すべきではあります。ただ、開発リソース的に両立が難しい場合にはどうすればいいのか、という問い掛けに対しては、自分も今、回答せざるを得ない場所に立っているので、余計に悩ましく思えます。



 手製RPGは相変わらず戦闘部分を弄っているんですが、一つ新しい要素を組み込むたびに見落としていた欠陥が明らかになって、付随する処理の対応に時間を食われることが多いです。仕様の登載に付随する手間に対して、どうにも見通しが甘すぎるなぁとつくづく思います。
 例えば、キャラクターのHPが何かしらの理由で0になると、そのキャラクターは死亡します。で、キャラクターの生死は専用のフラグを用意してそれで状態を管理するのですが、各所に判定を作ってやらないと様々な場所で怪奇現象が生じることになります。


・その1 死亡済みのキャラなのにコマンド入力ができる
 死んでいるキャラは当然ながらコマンドの入力ができません。コマンド入力の順番が死亡キャラに回ってきたら、そのキャラの入力をパスする必要が生まれます。


・その2 死亡したキャラを挟んでコマンドのキャンセルができない
 3人パーティで2人目が死んでいた場合、3人目のコマンド入力をキャンセルするとコマンド入力の順番は死亡済みの2人目のキャラに回ってきます。で、ここでもう一回手順を巻き戻す処理を入れないと、「このキャラは死んでいるから次のキャラ(=3人目)のコマンドを入力してね」と処理を投げ返されてしまいます。これは見た目には入力を受け付けていないようにも見えます(実際には瞬時に処理を行って3人目の入力待ち状態に再び遷移している)。
 で、これを解決する方法ってなかなか難しかったりします。2人目にコマンドを渡した時、それが1人目から来たものか、3人目から来たものか、どこで判断すればいいのか。あんまり変数を増やしたくないのでできるだけ既存の変数で処理したいところです。
 自分の対応としては、ボタン押下を監視している変数を調べて、中身が決定ボタンなら1人目から遷移してきたと判断、中身がキャンセルボタンなら3人目から遷移してきたと判断するようにしました。コマンドに「一つ前に戻る」みたいな選択肢があるとこの手は使えないんですけどね。
 「一つ前に戻る」とキャンセルボタンと併用するのが親切な作り(DSのタッチペン+十字キー併用なゲームで多いですよね)ではあるんですが、「一つ前に戻る」を用意するとこの辺、作業量がゾワッと増えるワケです。それを採るか捨てるかは作り手の労力と思想次第なのかなと。


・その3 死亡済みターゲットを選択できる
 攻撃コマンドを入力して、さて、誰を標的にしようかな、という段で既に死亡済みの敵キャラまで指定できてしまいます。これが味方の場合、蘇生魔法などの存在があるのでさほど奇妙な動作でもないんですが、標的が敵の場合、既に消滅した敵の位置をカーソルが指し示していたりするのが典型的なバグっぽくて笑えます。


・その4 死亡済みのキャラに追撃をかます
 全員分の攻撃コマンドを入力した後、処理はダメージ解決の手順に移るのですが、1回の攻撃につき死亡判定を行わないと後続のキャラは死亡済みの敵に延々追撃を叩き込むことになります。もうやめて、敵キャラのHPは0よ! というか、下限を設定してないからもう既に-41よ!
 ついでにHPの下限を設定しておかないと、HPバーが反転表示されて画面を突き抜けたりします。
 ドラクエ4以降、ターゲットに指定していた敵キャラが死亡済みだった場合、ターゲットは自動的に生きている敵キャラに振り替えられますが、これを処理するのも何気に面倒だったりします。


・その5 死亡済みキャラが攻撃を行う
 同様にダメージ解決中に逐一死亡判定を行わないと、死んだはずの敵がなぜかこちらに反撃してくる事態が発生します。その様、まさにゾンビの如し。
 MtGのルール的には1度発生したファストエフェクトは発生源を破壊してもキャンセルさせることができない(銃と弾の原理)ので、これはリアリティを反映した仕様なのだ…… と考えるのはただの現実逃避なのでやめた方がいいなと思いました。
 でも、死んだターンも頑張って攻撃してくるゾンビとかがいても面白いなとは思ったり。マザーになんかいましたね、そんなの。死んだ瞬間に爆発する敵キャラって意味ですが。


 この辺はバグというよりも、単純なコード記述不足なんですが、実際走らせてみるまでエラーに気づかない想像力の欠如は大きな問題だなーと思いました。不慣れだから、で済む問題なんだろうか。
 戦闘という箱は予想以上に中身のみっしり詰まっている箱で、自分はそれに気づかず普段気軽に触っていたんだなというのが特に最近強く思うところです。例えば行動順の決定なんかもその一つで、全員が正常なら速度順にソートすればいいだけなんですが、死亡済みのキャラが混じっている場合、それを配列から弾いてしまうか、後の復活を見越して留め置くのか等々、頭を悩ませる部分は多いです。


 まぁ、なんだかんだと言いながら、RPGはロジックで詰められるゲームなだけに、作る側としても技術の壁をさほど感じない点は安心できますね。新納さんはRPGピクロスに例えていましたが、まさにそんな感じで。1マス1マス埋めつつ戻しつつ頑張っています。



 http://www.nicovideo.jp/watch/sm6672658


 ところでこれを見て、物凄く懐かしい気分に浸ってしまいました。SFC版スーパーダンテ経験者ならプレイングやテキストにいちいち笑ってしまうはず。
 それにしてもテキストやらイベントやら中身うっすいなぁ。スーパーダンテは容量制限がとにかくキツくてこれでも相当頑張っている内容なんですけどね。
 まぁ、でもスーパーダンテはターボファイルに対応しているので実質3倍の容量が! さらに以後ソフトを1本買うごとに容量を追加できます。高いHDだなぁ。
 でもまぁ、さすがに今見るとこれでRPG作るのはキツいなぁとしか。音楽は結構よかったなぁと思うんですけども。
 てか、DS版RPGツクールはまだですか?