【RPGレビュー】英雄伝説 閃の軌跡3

2017年11月08日


発売元日本ファルコム(公式)
機種PS4
発売日2017/09/28
質量物語システムバランス快適性美術音楽平均クリア日
90807060709080772017/11/06


質量/物語


 2004年発売の空の軌跡からかれこれ13年。軌跡シリーズとしては8作目となる。
 続編物なので閃の軌跡1〜2のプレイは必須。ストーリー重視のゲームなので、3からやるのは明らかに無謀。漫画や小説を途中の巻から読むようなものなので。
 主人公リィンも続投なので、過去作をやっているかどうかで感情移入度が全然違うと思う。

 空の軌跡、零&碧の軌跡のキャラがたくさん登場するのもファン感涙。
 特に零&碧の舞台となったクロスベル市も大きく関わってくるので、あちらもできればプレイしておきたい。空の軌跡1〜3も、思ったより関わって来るのでできれば。

 トールズ士官学院を卒業したリィンは、新設された分校の教官として赴任することになる。
 中心となるのが新VII組の生徒達5人であり、感覚は閃1に近い。同じことを繰り返している感はあれど、マンネリ感の漂っていた閃2よりも新鮮に遊べるようになっている。
 とはいうものの、登場人物の大半が既存キャラなのも事実。主要の新キャラ4人や学院関係のキャラを除けば、ほとんどが再登場だと思ってもよいくらい。
 再登場組では、生徒となるアルティナやオーレリア分校長など前作で掘り下げの薄かったキャラにも大きくスポットが当てられている。アルティナに至っては、ほとんどメインヒロイン級の扱いだったのが驚き。

 個人的によかったのは、過去作のサブイベントに関連した生徒達が社会人となって再登場したこと。『個性のあるモブ』くらいのポジションだった彼らが、声付きのイベントシーンで登場してくる。
 過去作で会話をしっかり聞いていたプレイヤーなら、感激できると思う。そうでないプレイヤーにとっては「こいつ誰だっけ?」状態になる可能性もあるけど……。

 キャラクター同士のやり取りは相変わらず充実しており、掘り下げも丁寧。
 新しい環境で四苦八苦している主人公が、過去の仲間達と再会するシーンはとても感慨深いものがある。
 学院や町での会話も、いつも以上に細かく作り込まれている。マップを一通り回って、主要人物の会話を聞くだけで数時間が過ぎていたり。
 ストーリーが進行したらまたサブイベントが刷新されたりで、これまた相当な量になっている。
 サブイベントの大半をこなすようなプレイスタイルで、クリアまで丁度100時間(難易度はノーマル)もかかった。※ただし、料理などは面倒だったので放置。
 閃1〜2はそこまでかからなかったので、ボリュームが増してるかもしれない。

 ……で、そこまではよかったのだけど、ストーリーの本筋には色々と問題も。
 まず気になったのはテンプレ描写の異様な多さ。散々突っ込まれた閃の軌跡2を上回る勢いである。

閃の軌跡3テンプレの数々

  • ピンチになると毎度助っ人が来てくれる。
    「リィン、助けに来たぞ!」
  • 敵キャラはまず最初から本気を出さない。
    戦闘でどれだけフルボッコにしても、敵キャラは余裕しゃくしゃく。
    「少しはやるようだが、その程度で俺は倒せん」
  • 敵であろうと名前付きのキャラが死ぬことは滅多にない。
    敵キャラを何度戦しても退場してくれない。神速のデュバリィとか何回目よ?
  • 人間での戦いが終われば騎神を召喚。とってつけたようにロボ戦が始まる。
    「来い、ヴァリマール!」
  • ただし、騎神召喚と見せかけて助っ人が入るパターンも多数。
    「来い、ヴァリマール!」「その必要はない」
  • 第三者が遠くから高みの見物をしている。
    「あれが噂にあったVII組の連中か……。少しは楽しませてくれそうだな」
  • 実力者はその第三者の気配を感じ取れる。
    「フッ、どうやら観客が来ているようだね」
  • やたらと察しがよい登場人物。基本的に「察しのよさ=キャラの格」である。
    「君達はトールズ士官学院の者だね?」「えっ、どうしてそれを!?」
  • 会話が気まずい時は「あ……(察し)」が基本。
    「俺の親父は五年前に死んだんだ」「あ……」みたいな感じで使う。
    他にも意表を突かれた時など、様々な場面で多用する。
  • 主人公リィンはとりあえずモテる。好意を寄せるキャラは一桁に留まらない。
    特に妹・皇女・ミュゼの三人娘の描写はかなりクドい。

 ここまでくると、もはやネタとしてやっているのかもしれない。
 なお、実際のイベントは↓こんな感じになる。
 ボス「よく来たな。かかってこい」
 主人公「みんな、行くぞ!」
 (ボス戦)
 ボス「まだまだだな。そろそろ本気を出すとしよう」
 (ボス第二形態)
 主人公「くっ、手強い……!」
 (ノーダメージの楽勝でも膝をついて苦戦した雰囲気)
 ボス「なかなかやるな。だがこれで条件はそろったぞ! 来い神機!」
 (敵のロボ登場)
 主人公「くっ、このままではやられる」
 助っ人「助けに来たぞ!」
 主人公「みんなありがとう。今だ、騎神召喚!」
 (味方のロボ登場で騎神戦)
 ボス「思ったよりやるが、想定の範囲内だ。ところでそこに誰か隠れているな?」
 主人公「なに!?」
 (どこからともなく現れる謎の第三者)
 第三者「ふっ、私の存在によくぞ気づいた」
 主人公「いったい何者なんだ!?」
 第三者「相手をしてやりたいところだが、今日は顔見せなので、この辺にしておいてやろう。さらばだ」
 ボス「俺も用事は済んだので、さらばだ」
 主人公「待て、質問に答えろ!」

 やや極端に書いたけど、全体的にこんな感じのイベントが多め。一イベントに詰め込んでいる上に、展開がテンプレかつ決着もつかない、しかも謎は明かさないのでグダグダしている印象を受けた。

 序盤は敵味方ともに怒涛の勢いで人物が登場。多人数の入り乱れる派手なイベントが展開する。……のだけど、冷静になれば、みんな思わせぶりなことを言っているだけで、ロクに話が進んでないなんてことも。
 話を引っ張りまくるシナリオの都合上、すっきりとした解決がなされることが少ない。
 そうやって、後半まで同じような展開を繰り返す。何をやっても、誰かの手の平の上という感覚も否定できない。

 脇の会話はよくできているのに、肝心な部分が色々とまずい。ライターの得意不得意があるのか、分業しているせいなのか……。随分と出来不出来に差がある印象。

 そして、軌跡シリーズといえば、半端な終わり方をすることで悪名高い。
 本作はどうかというと――今までにも増して酷いの一言。

 上記のように何十時間にも渡って「進んでいるような、いないような展開」を繰り返すが、後半になってようやく話が進み出す。閃1〜2で広げた風呂敷を、少しずつ畳む兆候が見えてきて、盛り上がってくる。
 ラストダンジョンで全てが明かされるのか――と、半信半疑に期待したが、案の定そうはならなかった。
 まさしくぶった斬り。
「100時間かけてこれか!」と、中途な終わりを覚悟していた僕ですら唖然となった。
 閃1,2も酷かったけど、今回はそれを軽く上回るレベル。
 起承転結で言えば、転で終わる。DQ11で言えば、本編中盤ぐらいの山場で突如終わるような感じ。
 というか、中盤までのダラダラした展開を省けば一息に終わりまで持っていけたんじゃないだろうか。

 キャラは魅力的だし話の先も気になる分、実にタチが悪い。

システム/バランス/快適性


 ロードに悩まされることはほとんどなく、特に戦闘開始は本当に一瞬。戦闘アニメーションのスキップなども旧作同様に完備されている。
 今回は多くの場面で□ボタンによって移動をショートカットできる。街道を行ったり来たりさせられることは少なくなった。

戦闘システム

 見てくれは閃1〜2と大差ないものの、主に三つの新システムがある。

 一つ目はサブのマスタークオーツ。
 強力な効果を持つマスタークオーツを、一人につき二つまで装備できるようになった。二つ目のマスタークオーツは効果が下がるものの、組み合わせによって今までよりもカスタマイズに幅ができる。
 他のゲームに時折あるサブ職業的なものと思って頂ければ。

 ……で、これまたここまではよかったのだけど、問題は残り二つ。これらが恐るべきバランスブレイカーになっている。

 二つ目は『ブレイク』。
 敵にダメージを蓄積すると、動きが止まってフルボッコにできるようになる。要するにまんまFF13。
 このブレイク状態の敵に攻撃すると、戦術リンク(追撃)が確実に発動する。また、この時にBPというポイントが溜まる。

 そして三つ目は『ブレイブオーダー』。
 上述のBPを消費して、全体へ補助をかけるというもの。
 これがとんでもなく凶悪で……

  • 敵のあらゆる攻撃を反射する。
  • 素早さ三倍強に加速。
  • ブレイク率を+300%強化。
  • 即時に全員へターンが回る。
  • EP消費1/5。

 といったとんでもない効果になっている。
 効果時間はそれほど長くないのだが、それでも凄まじいバランスブレイカー。

 具体的にこれでどんな戦術が成り立つかというと……

  1. ブレイク強化のオーダーで敵を一気にブレイクする。
  2. 動きが止まった敵を加速のオーダーでフルボッコ。消費したBPもすぐ回復。
  3. ようやく立て直した敵をブレイク強化のオーダーで(略)。

 このような流れで「ずっと俺のターン」ができてしまう。
 というか、大抵のボス戦は2.の時点で終わってしまう始末。

 味方の強化に対抗するためか、今作の敵は少し強めに設定されている。そのため、序盤は意外と苦戦させられたりする。
 もっとも、それは序盤だけ。中盤からは味方の強化がそれを遥かに上回る。
 中盤以降の戦闘は、ザコ戦はもちろんボス戦もノーダメージに近い楽勝がほとんどだった。
 というか、ラスボス(騎神戦じゃないほう)がノーダメージで楽勝できてしまった。
 それでいて、HPが減れば強力な攻撃をしかけてくるボスが多い。半端な攻撃をすれば反撃で一気にやられることも。
 そのため、なおのこと敵にターンを回さずハメ殺す戦術が定石となってしまう。

 閃2も極端だったけど、今回はそれ以上。もはや難しいとか簡単とかいう次元ではなく、「これもうバランス取る気ないよね?」というレベル。

  • 敵が動く前にフルボッコ。敵の個性も全然分からない。
  • 属性も気にせず無属性でフルボッコ。
  • 敵の攻撃に対して対処を考える必要もない。防御も回復もいらない。
  • BPが溜まらないのでアーツ(術)も不要。クラフト(技)だけでよい。

 お陰でただ突き進むだけの場面が多くなってしまう。戦闘システムは凝っているはずなのに、実際のプレイ感覚はなんだか単調。
 なんというか、RPGのよさってゲームシステムとストーリーの相乗効果にあると思うわけでして。

  • ストーリー上の宿敵はやはり手強い。
  • 嫌らしい性格のボスは、嫌らしい攻撃をしてくる。
  • 敵は炎の使い手なので、水魔法で対抗すべき。

 ……というようなゲーム性とストーリーの一体感が得られないのは、もったいなく思えた。
 どんな鳴り物入りで現れたボスも、一方的にボコれるのだから盛り上がらない。継ぎ足し過ぎたシステムが返って遊びの幅を狭めていると感じた。

 ストーリー重視のゲームだし、ヌルゲーならヌルゲーでも構わないと思う。けれど、敵の個性すら感じられないバランスは、ちょっと違うんじゃないかと。


 その他で気になったこと。

  • 戦術リンクの重要性が大幅に増加した結果、演出テンポの悪さも無視できなくなった。
  • 騎神戦は相変わらず地味。一応、閃2よりもよくなっている気がするけれど、それでも面白いかと言われれば……。
  • わりと早いうちに色々と頭打ちになってしまう。
    マスタークオーツのレベルがクリアよりかなり早くMAXに。中盤で覚えた技が、そのまま最後の技とは……。
  • カスタマイズが複雑なシステムなのに、イベントでパーティ強制変更を強要される。それなりの長期間だったらいいのだけど、後半はわりと頻繁にある。
    愛用していたキャラがラスダンで抜けたのには困った。
  • 戦闘中、画面右側の文字表示(HP、EP、CPなど)が妙に小さくて困る。FF15もそうだけど、これでなんでOKを出してしまったの。大画面で至近距離からやる想定なんですかね?

美術


 PS3→PS4に機種が変わったとはいえ、大きく変わった印象はない。
 ただ比べてみると明らかに綺麗になっている。頭身の上がった仲間達を見れば、成長を実感できるかもしれない。

 また表情の表現も進歩している。よく使われるジト目が印象的。
 ただ相変わらず、(汗)(!)などのアイコンによる感情表現を、多用しているのが気になった。SFC時代じゃあるまいし、時には表情とセリフだけで見せてもよかったんじゃないかなと。

音楽


 個人的には、要所で碧の軌跡や閃の軌跡2などのボス戦曲(アレンジ?)が使われていたのが嬉しかった。もっとも肝心のボス戦内容がアレなので、相乗効果が足りないかもしれない。

 戦闘以外だとオープニングの海上要塞とか。ファルコム節の炸裂するラストダンジョンなどが良曲。

総評


  • 長いのになかなか進まないストーリー。
  • 必要性のよく分からないダンジョン(主にアインヘル小要塞)。
  • 重要度の低いサブクエスト。
  • 地味な削り合いになりやすい機甲兵教練。
  • 戦闘周りの過剰なシステム。

 この作品に関しては、削るところを削れば、もっと面白くできたんじゃないかと感じる。DQ11のように『引き算』のできる開発者がいれば――とつくづく。

 色々と不満はありながらも楽しめたのは事実。個人的には神ゲー要素も多いと思っているので、次に期待もしています。
 けれど、終わり方だけは擁護できず。1レビュアーとしては、とても万人には勧められない。
 ただエンディングの表示によれば、次の4こそがようやく帝国編の最後になりそう。半端に終わるのが嫌な人は待ったほうがいいと思う。かなりモヤモヤする終わり方なので。
posted by 砂川赳 at 23:04 | RPGレビュー | このブログの読者になる | 更新情報をチェックする

【アイデア】CTBとターン制の夢の融合

2017年10月06日

 前回の記事で予告した通り、新しい行動順序システムを閃きました。アイデアだけですが、書くだけ書いてみます。

 参考:戦闘システム@ 行動順序システム

 以前も書きましたが、新しい行動順序システムを作るのは難しいのが現実です。
 そのため、『リアルタイム制』を除いたコマンド式RPGの戦闘システムとしては、『ターン制』『CTB』のどちらかに類するものを使うのが、一般的でした。
 世に出回るフリゲも市販RPGも、大半がこのどちらかを採用している状況です。
 しかしながら、それだけでは戦闘システムの幅は狭まってしまいます。RPGの歴史の中では『プレスターン』などの新しい試みがされてきましたが、もっと色々とあっていいはず。

 そこで『ターン制』と『CTB』のいいとこ取りができないかと考えました。

  • 同時に多人数の行動を決める緊張感あるターン制
  • 素早さの重要性が高いCTB

 このような特徴を融合できないか――というわけです。

 素早さの価値を高めたターン制といえば、ブレスオブファイア3のEXターンが挙げられます。
 これは『素早さが敵平均より二倍高いキャラ』に限り二回行動できるというものです。ただ極端過ぎる嫌いはありますし、逆に条件を満たさない限りはシステムとして空気です。
 あれよりも明確にシステムとして組み込みたいところです。

試案


 ではどうするのか――というと、具体的にはCTBを『何らかの行動回数』で区切って、ターン制のような挙動にします。
 ※CTBの実装については、前回の記事を参照

 まず思いついたのは『戦闘に参加している人数』で区切ることです。

20171006.png

 画像は既存のCTBをいじったイメージです。緑の矢印から上がそのターン内での行動者です。
 味方3人、敵3体なので1ターンの行動回数は全員合わせて6回となります。
 遅い敵はそのターン中は行動できなくなる代わりに、2回行動できる味方が発生します。遅いキャラの出番を速いキャラが奪い取るようなイメージですね。

 これで一応の形ができました。
 ターン制とCTBの特徴を併せ持った行動順序システムが設計できたような気がしないでもありません。

 ……が、問題もありました。
 遅いキャラの行動を速いキャラが乗っ取るという仕様上、遅いキャラが想定以上に足を引っ張ることになります。

 例を挙げると、CTB(4人参加)で以下の順番であった場合……

 A→B→C→AD→B→C→A
 ※アルファベットがキャラクターに該当します。

 新システムでは……

  • 1ターン目:A→B→C→A
  • 2ターン目:D→B→C→A

 という行動ターンになります。
 素早さの低いDの1ターン目が、Aによって奪われていることが分かります。
 Aが敵でB〜Dが味方ならば、1ターン目に2回の攻撃をされてしまうわけです。

  • 1ターン目:A→B→C
  • 2ターン目:A→B→C

 上記のように、Dを除いた3人の戦いならば、2回攻撃は発生しません。下手すれば、鈍足のDを戦闘不能にしておくような戦術が有利になってしまいます。
 遅いキャラが不利なのはCTBの宿命とはいえ、これはやり過ぎでしょう。何だかいびつなシステムに思えてしまいます。

改良案


「1ターンの行動を限定する」という方向性は悪くないように思いますが、どうにもしっくりきません。
 ならば、その条件を変えてはどうでしょうか?
 思いついたのは、『最も速いキャラ』を基準にすることです。
 具体的には『同じキャラ』の順番が2回来たら、その手前でターンを区切ります。
 ※大抵は『最も速いキャラ』が対象になりますが、補助・異常などで複雑に変化することもありえます。そのため『同じキャラの順番が2回』を条件にしたほうが汎用的です。

 A→B→CA→D→B→C

  • 1ターン目:A→B→C
  • 2ターン目:A→D→B→C

 というようにAを基準に区切ります。
 1ターン目だけ最も遅いキャラ――すなわちDが脱落していることが分かるでしょう。
 ターン毎に参加人数が可変になるという点が特徴的ですね。

 他の例も考えてみます。
 A→B→CA→D→B→CA→B→C→D

  • 1ターン目:A→B→C
  • 2ターン目:A→D→B→C
  • 3ターン目:
  • 4ターン目:A→B→C→D

 見ての通り、毎ターン行動するキャラと順序が流動的に変わっていきます。
 順序については、ターン内で再び素早さで並び替えるのもよいかもしれません。かなり雰囲気がターン制に近づくと思います。
 CTBにおけるキャラの連続行動は、そのキャラ単独のターンとなります。この場合では3ターン目のAが該当します。単独ターンではなく、前後のターンと合併して2回行動にするのも面白そうです。

 このルールならば、鈍足のDが大きく足を引っ張ることもないので、不公平感はなさそうですね。

 A→B→CA→D→BA→CA→B→D

  • 1ターン目:A→B→C
  • 2ターン目:A→D→B
  • 3ターン目:A→C
  • 4ターン目:A→B→D

 一つ気になるとすれば、このパターンです。
 2ターン目に『鈍足のD』は動けるのに『Dより速いC』が動けない逆転現象が発生しています。3ターン目も同様で、Bは動けないのに『Bより遅いC』は動ける状況になっています。
 もっとも、場合によっては遅いキャラが有利なのは、ターン制時点からの伝統です。あまり気にする必要はないかもしれませんが。

 ……というわけで、ここに新しい行動順序システムが完成しました。プログラムとして実装したわけではありませんが、ここまで設計できれば十分だと思います。
 特に調べてはいませんが、アイデアとしては自分が初めてのはず。
 というか、CTBだけでもわりと面倒なのに、その上で細工しようと考える人はあまりないと思います。

 命名はカウントターンバトル――にしようかと思いましたが、略称がかぶるので思い留まりました。
 カウントタイムターンバトル――略してCTTBとしておきます。

CTTBまとめ


利点

  • 素早さの価値が高い。
  • ターン制独自の緊張感や戦術性を持ち込める。
  • サガシリーズの連携など、ターン制向きのシステムも使える。
  • ターン毎に状況が流動的に変わっていくので刺激的。
  • 今までにないシステムなので新鮮さがある。
  • それでいて感覚はターン制に近いので馴染みやすい。

 まんま、いいとこ取りですね。まさに夢の融合!

 欠点としては、実装がCTBよりもさらに大変なことです。プログラミングの問題もありますし、ターンの区切りを明確にしたUIも考える必要があります。
 何より、最大の強敵は「別にCTBでよくね?」というツッコミかもしれません。
 ターン制に関しては『素早さ』という明確な差別化ができるので心配いりませんが、問題はCTBを相手にした場合でしょう。
 ターン制的な面白さを持ち込めないなら、わざわざCTBを余計な劣化させただけになりかねません。夢の融合どころか下手すりゃ中途半端の誕生です。

 これを書いた当人も、CTBより面白いかと言われると確信はありません。面白いかどうかは、実際には調理次第といったところでしょう。
 とはいえ、新システムというのはゲームデザイナーのロマンです。機会があれば挑戦してみたいと思います。
 ※絶対にやるとは断言しません。やってみてつまらなかったら意味がないので。

 そんなわけで、ターン制とCTBの両方が好きで、プログラミング技能に自信があるという方は、CTTBに挑戦してみてはいかがでしょうか?
 ※微妙にハードル高くてすみません……。
posted by 砂川赳 at 22:41 | RPG制作講座 | このブログの読者になる | 更新情報をチェックする

【プログラミング】CTBの実装方法

2017年09月19日

 微妙に需要がありそうなので、経験者としてCTB(カウントタイムバトル)の実装方法を解説してみます。

20140705_1.png

 参考:戦闘システム@ 行動順序システム

 内容はもろにプログラマ向けです。プログラムを組んだり、ツクールで自作システムを組んだりした人以外はピンとこないかもしれませんので、あらかじめお断りしておきます。

 なお、拙作ミスティックスターのCTBは、ツクール2000で実装していますが、アルゴリズム(処理手順)自体は汎用的に使えるはずです。ある程度の自由度がある開発環境ならば、流用可能です。

 作り方はいくつかありますが、まずは最も簡単な『素早さ加算方式』の実装方法から紹介します。

素早さ加算方式


 イメージとしては、FF7〜9のATBを思い浮かべてみれば、分かりやすいと思います。
 ATBゲージが満タンになったキャラが行動できるようになるアレですね。素早いキャラほど、ゲージが溜まる速度が上昇します。あれのリアルタイム性をなくしたものと思って頂ければ。
 ※FF4〜6は仕様が異なるので除外しています。興味がある人は調べてみてください。

  • 素早さ40のキャラ1
  • 素早さ50のキャラ2

 の二人がいた場合を想定すると……

  • キャラ1:40→ 80→120→160→……→ 800
  • キャラ2:50→100→150→200→……→1000

 というように、時間が立つごとに素早さ分だけゲージが増えていきます。
 ゲージ値が1000以上になったキャラがいれば、ターンが回ってきます。この場合はキャラ2の行動ターンが先に来ますね。
 ※もちろん、条件となるゲージ値は1000でも10000でも何でもいいです。ただし、あまり小さすぎると計算誤差が出るので注意です。

 キャラ2の行動が終われば、ゲージ値を−1000します。0にリセットしないのは、1000を超えた値が無駄にならないようにするため。毎回、ピッタリ1000になるわけではありませんので。

  • キャラ1:800→840→880→920→960→1000
  • キャラ2:  0→ 50→100→150→200→ 250

 後はこれの繰り返しです。
 その内に、素早さで勝るキャラ2が連続で行動するターンが発生します。それこそが、CTBの特色です。

 走る速さがバラバラな選手達が、何度もゴールを目指し、到達する度に最初から走り直すようなイメージでしょうか。
 ここで終わるなら、実のところCTBの実装は簡単です。一人ずつキャラの順番を処理すればよいという点では、ターン制よりも容易だと言えます。

 ところが、この『素早さ加算方式』には欠点があります。それは行動順序の予想が難しいことです。
 先程は計算が簡単な例で挙げましたが、これはどうでしょう?

  • 素早さ32のキャラ1 現在のゲージ値は300
  • 素早さ41のキャラ2 現在のゲージ値は150

  • キャラ1:300→332→364→……
  • キャラ2:150→191→232→……

 どちらが先にターンが回るか、即答できる人は少ないはずです。
 これが5人10人と増えていくと、もっと大変になります。
 CTBの実装に挫折する第一の関門はここでしょう。

 そんなわけで、『素早さ加算方式』では行動順序の表示が困難となります。
 そもそも、CTBとはFF10が呼称した方式であり、それに則れば順序表示がないものは厳密にCTBとは言えません。
 真のCTBを実装するためには、行動順序を把握できるような処理を考える必要があります。

WT減算方式


 ではどうするか――というと、もっと計算の簡単な形に変えてしまいます。
 『ゲージが溜まる速度』を比較するのではなく、『ゲージが溜まる時間』を比較すればよいのです。
 これは小学校レベルの知識で十分可能ですが、すんなりと思いつく人は意外と少ないと思います。自分も当初はここで詰まっていて、ある日ふと解決法を思いつきました。

 距離÷速さ=時間

 つまり……

 ゲージの長さ÷ゲージが溜まる速さ=ゲージが溜まる待ち時間(WT)

 となります。

  • 素早さ32のキャラ1: 1000÷32=31WTでゲージ満タン
  • 素早さ41のキャラ2: 1000÷41=24WTでゲージ満タン
  • 素早さ50のキャラ3: 1000÷50=20WTでゲージ満タン

 待ち時間(WT)が0になる度にターンが回ります。行動が終われば、再び元の待ち時間にリセットします。
 ※以降、待ち時間をWTと表記します。

 次の表は下に向かって時間が経過していくイメージです。

  キャラ1 キャラ2 キャラ3
↓ 31   24   20
↓ 11   04   00
↓ 07   00   16
↓ 00   17   09
↓ 22   08   00

 上記のように、各キャラのWTが遷移していきます。
 当然ながら、次に動くのはWTが最も小さなキャラです。どこを切り取っても、次に誰が行動するかは一目瞭然ですね。

 ※実際にCTBを実装する際には、『ゲージの長さ=1000』の部分にはもっと大きな値を設定することを勧めます。やはり小さすぎると計算誤差が出るためです。

 何のことはありません。既にタクティクスオウガなどでやっている手法です。
 タクティクスオウガではターンが回るまでの待ち時間(WT)をキャラが保有しており、レベルが上がる度に減少するようになっています。
 つまり、この方式は従来の素早さ方式をWT方式に変換しているだけとも言えます。

 ※タクティクスオウガのように最初からWTを使う方法でもよいのですが、プレイヤーには分かりにくいのが難点となります。また、ツールによっては実装自体が困難です。なんせ、レベルと共に減少するステータスなんてあまり見ませんので。

 ここで終わりたいところですが、そうはいきません。
 CTBの実装には第二の関門があります。

 今までの方法では、キャラ1とキャラ2のどちらが次に動くかが分かるようになりました。ですが、これではまだ二人の行動回数の差を表現することはできません。

20170919.png

 例:上の画像では、素早いキャラの順番が何度も表示されるようになっています。

  • キャラ1の素早さは25
  • キャラ2の素早さは20

 キャラ1が4回行動する間に、キャラ2は5回行動できる――ということは、何となく予想がつくと思います。
 しかしながら、その行動回数の差を画面上へ表示するにはどうすればよいでしょうか?

 例によって、まずは素早さをWTに変換します。

  • キャラ1:100 ÷ 25 = 4WT
  • キャラ2:100 ÷ 20 = 5WT

 これらが各キャラの基本WTとなります。
 これが減って0になれば行動。
 行動が終われば、またこの値にWTが戻ります。

 試しに、まずは人力で計算してみましょう。

  • 4WT後 → キャラ1のターン

 まずは最も早いキャラ1が動きます。これは簡単ですね。
 次に来るのはキャラ2か、あるいはキャラ1の二回目の行動か?
 人間なら直感的にキャラ2だと判断できますが、コンピュータはそうではありません。

  1. キャラ1の2回目の行動WT8 > キャラ2の1回目の行動WT5
  2. 従って、キャラ2の1回目の行動のほうが早い。

 というように、きちんと比較するよう指示せねばなりません。
 人数が増えてくると、それだけ手間も増えていきます。頭が痛くなるので考えたくもありません。

 もう少し、簡単な方法はないものか。
 というわけで、まずはキャラ1のターンだけを考えてみましょう。 
 10回まで行動順序を表示するシステムならば、10回分の行動を計算します。

  •  4WT後 → キャラ1のターン
  •  8WT後 → キャラ1のターン
  • 12WT後 → キャラ1のターン
  • 16WT後 → キャラ1のターン
  • 20WT後 → キャラ1のターン
  • 24WT後 → キャラ1のターン
  • 28WT後 → キャラ1のターン
  • 32WT後 → キャラ1のターン
  • 36WT後 → キャラ1のターン
  • 40WT後 → キャラ1のターン

 単なる掛け算なので、難しいことは何もありません。

 次にキャラ2がキャラ1のターンにどう割り込めるかを考えていきます。
 キャラ2のターンを同じように求めると……

  •  5WT後 → キャラ2のターン
  • 10WT後 → キャラ2のターン
  • 15WT後 → キャラ2のターン
  • 20WT後 → キャラ2のターン
  • 25WT後 → キャラ2のターン
  • 30WT後 → キャラ2のターン
  • 35WT後 → キャラ2のターン

 ちなみに40WT以降はどうあっても割り込めないので計算不要です。

 ここまでやれば後一歩。
 キャラ1のターンの隙間に、キャラ2のターンを挟んでいきます。
 具体的には、この二つをWT順でソート(並び替え)して合体させればよいでしょう。ソート後は表示に必要な10件までを保持します。

 より正確に書けば、
 『キャラクターID』と『WT』の組を構造体として保持し、『WT』をキーとして昇順でソートを行う。
 という感じになります。

 プログラム経験者以外にはわけわからんことを書いてる感じがしますが、そこはすみません。
 ただソート処理というのは、非常にありふれたものです。どの言語にせよ、ググればやり方はすぐに見つかるので、適当にパクってください。
 ツクールXP以降ではRuby、ツクールMVではJavaScriptなども使えるらしいので、問題ないかと思います。
 なお、ツクール2000でやるのは、それなりに大変でした。なんせ構造体も配列も何もない直接番地指定です。作者的にはもう二度と見たくないスパゲッティです。

 以下がソート結果です。

  •  4WT後 → キャラ1のターン
  •  5WT後 → キャラ2のターン
  •  8WT後 → キャラ1のターン
  • 10WT後 → キャラ2のターン
  • 12WT後 → キャラ1のターン
  • 15WT後 → キャラ2のターン
  • 16WT後 → キャラ1のターン
  • 20WT後 → キャラ1のターン
  • 20WT後 → キャラ2のターン
  • 24WT後 → キャラ1のターン

 ※20WTの時に、二人の行動がかぶっていますが、適当に優先順位をつけてください。普通にソートすれば、番号が若いキャラが優先されるはずです。

 これにて完了です。後はこの順番でキャラのアイコンなり名前なりを画面に出力するだけ。
 キャラ3以降が増えた場合も、同じように合体ソートすればよいだけなので問題ないでしょう。

 以上で解説終わりです。
 次はCTBを改造した新しい行動順序システムを発表したいと考えています。できれば、もう少し一般的に分かる内容で……。
posted by 砂川赳 at 09:47 | RPG制作講座 | このブログの読者になる | 更新情報をチェックする