脳内作文

今更ですが、2020年末に行われたRTA in Japanでテンミリオンの解説として参加しました。RTAイベントでの解説はこれまでにもRTA in Japan Online 2019や第11回ゼルダ駅伝(いずれも大地の汽笛)などにも参加させていただいておりましたが、今回は解説の仕事についていくらか書いてみようと思います。

 

白紙の原稿

実際にRTAイベントで解説として参加された方の中には、解説原稿を公開されている方もいらっしゃるようで、私も原稿を公開してみようかなと思ったことが何度かあります。ところが困った(?)ことに、私は毎回原稿を書かないので、原稿を公開してもただの白紙にしかならないのです。もちろん意図があって原稿を準備していないのですが、こういうことをするのは少数派なのかもしれないですね、知らんけど。

 

解説するという行為

ゲームに限らず、何かを解説しようと思うと、対象に対する深い理解が必要です。よく、「そのことを知らない人に内容が伝わるように説明できるようになって、初めて理解したといえる」というようなことが言われますが、その通りだと私も思います。つまり、勉強にしろゲームにしろ何にしろ、説明できなければ理解できているとは言えませんし、対象を理解していなければ解説者という役目を気安く引き受けるべきではないと私は考えています。

 

本当の意味での解説

さて、私が解説者として参加したということは、少なくともそのゲームに関しては多くのプレイヤーよりも高い水準でそのゲームへの理解があるということになります。しかし、アウトプットが上手くできなければ解説にはなりません。アウトプットが上手くいっているかどうかは、相手が理解できているかどうかと言い換えることができます。そこで、私は初めて解説者として参加したRiJO2019に臨むにあたり、次のようなスタンスで話すことにしました。

視聴者の反応を見ながら、その場で喋る内容を組み立てる

これにより、私は初めての解説から無原稿解説というものに挑戦することになります。ただし、無原稿とはいっても、ある程度話す内容は事前に決めてあったので、これに沿って頭の中で話を組み立てればよかったわけです。けれども、お世辞にも私は話も作文も上手いわけではなかったので、これで本当にうまくいくのかという不安はありました。

その不安は杞憂に終わりました。あがり性にもかかわらず、本番当日、出番が近づいてきても不思議と緊張しませんでした。特にこれといって準備をしたわけでもなく、頭の中に漠然とこういうことを喋ろうというイメージしかなかったにもかかわらずです。そして本番がスタートすると、意外にもするすると喋ることができてしまったのです。視聴者の反応や走者のプレイに応じて臨機応変に話す内容を取捨選択したり、多少の厳密性を欠いてでもわかりやすさを優先したりといった内容構成についてもうまくいき、初めての解説はそれなりの手応えで終えることができました。また、視聴者の反応や走者のプレイを見ながら原稿を見るということは物理的に難しいというのもこの時の経験から感じました。

 

作文力の問題

さて、初の解説はまあまあの手応えで終えることができました。この時、同時に反省点もあったわけで、これは結局リアルタイムでの作文力の不足に帰着するものでした。

ところで、私は一応教育関係に籍を置いている身分でもあるため、子供に勉強を教えるということを日常的に行っています。RTAイベントでの解説とこれには共通点があります。要は、どれだけ相手にわかりやすく物事を伝えられるかということです。また、RTAの解説原稿をいくら練っても、授業計画をいくら練っても、本番になってその計画通りに進むことは基本的にありません。つまり、予定外の変更にその場で対応しなければならないということも同じです。となれば、その予定外への対処能力を向上させることは重要な課題となります。

よく考えてみると、この2つの共通課題の克服にはある能力が共通して必要です。つまり、リアルタイムでの作文力の向上、言い換えれば喋る力です。当たり前の結論ですが。あえてリアルタイムでの作文力とくどく書いていることからもわかる通り、喋る力の根底には作文力が必要です。この当時は次回RTAイベントで解説を担当することがあるとは思ってはいませんでしたが、奇しくもリアルの都合からそれに必要なスキルを磨く必要があったわけです。

そうと決まれば後はそれを練習し続けるだけです。普段の仕事で喋ることのみならず、中学入試や高校入試を控えた子供たちの作文添削を通じてもかなり多くの気づきを得ました。これにより、当初よりもかなりうまくしゃべることができるようになったことを実感した私は、機会があるならばまた解説として参加したいと思うようになります。

ありがたくもそのチャンスはかなりの頻度で巡ってくることになり、さらに解説としての経験を積むことができました。

 

RTA in Japan 2020

さて、時は2020年暮れ、ある報せにテンミリオンRTA走者である緑SM64氏と歓喜することになります。過去何度もRTAイベントに落選したテンミリオンの当選です。これに関しても元から解説は私が担当することになっていましたが、これまでと同様原稿を書くことはしませんでした。むしろRTAチャートをさらに研究してテンミリオンへの理解をさらに深めたり、Flash保全のために奔走したりしていました。このあたりは【RTA in Japan 2020】テンミリオンでタイムと戦ったり、Flash終了と戦ったりした話 - 緑SM64のいろいろメモに詳しいです。

大まかな話す内容は毎回事前に決めていたので、いつも事前打ち合わせは「だいたいこんなことを喋るよ」と走者に簡単に共有するだけで済ませていたのですが、今回は事前リハーサルを行いました。これは今回は英語再配信での英語解説をゲストCもちさんが担当してくれることになったため、詳細な内容共有が必要だったためです。

さて、いざ本番。ほぼ事前リハーサル通りに進んだのですが、リハーサルでは入れていた操作面に関する解説をすべてカットしました。これは視聴者の反応が今ひとつだったために、これ以上内容を増やすとさらに理解が追い付かなくなると判断したためです。そこで、本番での解説はかなり基本的な内容に絞ってさらに丁寧にすることにし、込み入った内容や操作面についての解説は、事前に公開していた解説記事に譲る形にその場で変更しました。この変更は奏功し、おおむね好意的な評価を頂けたと思っております。

ちなみに、当日中に行った反省会(というか打ち上げ)で操作面一切触れなかったねと文句(というと少し大げさだが)を言われましたが、意図的に省いた旨を話すと理解してもらえました。

 

今後の展望

今後も解説として参加するかどうかは未知数ですが、機会があれば参加したいなと思っています。無原稿スタイルもかなり自分の中で確立できてきたので、さらによくしていけるよう精進しようと思っています。

無原稿、みんなもやろうぜ!

テンミリオンRTAをテンミリオン倍楽しむ記事

※この記事はテンミリオンをテンミリオン*1倍楽しむためのやたらマニアックな情報も含んでおり、とても長いです。皆さんのレベルに応じて適宜取捨選択しながら読んでください。なお、リメイク版「テンミリオンZERO」では一部の仕様がこの記事とは異なります。

 

はじめに

テンミリオン」は主に子供向けの良質な無料ゲームを多数公開されているシフトアップネットの1000万アクセス記念として制作され、2003年に公開されたシミュレーションRPGです。最近ではリメイク版の「テンミリオンZERO」も公開されており、こちらはiOSAndroidのアプリとしても配信され、人気を博しています。ゲーム自体はファイアーエムブレム*2*3のようなターン制のシミュレーションRPGとなります。

さて、一般的なRPGにはランダム要素(RTA界隈ではしばしば乱数*4と呼ばれます)がつきもので、運の良しあしで戦闘を有利に進められることもあれば、不利な戦いを強いられ、最悪負けてしまうこともよくあります。ところが、テンミリオンにはこうした運要素が一切なく、決まった行動をすれば必ず相手も決まった行動をしてくるという特性があります。このため、テンミリオンは、あらかじめ作っておいた戦闘手順を丸暗記し、その手順通りにキャラを操作すれば、誰でも簡単に誰でも同じように敵軍に打ち勝ってクリアすることができます。もうお分かりですね、テンミリオンRTAにおいては、操作の腕を磨くことはもちろん、いかに効率的な勝利手順を考案することができるかがタイムに直結します。事実、昨年9月時点では約22分半かかっていたAny%(最速クリア)は、執筆時点で4分16秒にまで短縮されています。

この記事では、テンミリオンRTAの主要種目の紹介から始め、テンミリオンRTAにおける手順構築の考え方や、操作面から見たテンミリオンRTAの難しさなどについて解説していきます。手順構築の考え方では、ゲームの仕様に関するマニアックな話も出てくるため、難しいと感じられた場合は適宜読み飛ばしてください。

 

テンミリオンRTAにおける主要種目紹介

RTA in Japan 2020で走られる「All Dungeons 5 Members」のほかにも多数の種目があります。それぞれの種目において、後で述べる手順構築の考え方も変わってくるので、比較してみてください。

  • Any%
    一番基本となる種目です。特に縛りは設けず、とにかく最速でゲームをクリアすることを目指します。

  • All Dungeons
    その名の通り、全コースをクリアするRTAです。テンミリオンには、クリア後追加ステージがいくつかあるため、それらも含め全クリするタイムを競います。

  • All Dungeons 5 Members
    全クリRTAであるAll Dungeonsに、「ゲーム開始時からいる5人のメンバーだけでクリアする」という条件を足した競技です。普通のAll Dungeons と比較して戦力層が薄くなり、仲間の援護に使える回復アイテムも実質的に1個しか使えないため、早解きが困難な種目です。

  • All Dungeons No Magic
    全クリRTAであるAll Dungeons に、「魔法攻撃を使用しない」という条件を足した競技です。後述しますが、このゲームでは魔法攻撃が非常に強力で、RTAでも普通にクリアする場合でも攻撃の主力を担うのは魔法攻撃です。これを封じることは非常に大きなハンデとなり、早解きが困難な種目です。

  • The Legend of Zelva
    「ジルバ以外は攻撃行動をできない」という条件の下で最速クリアを目指す種目です。なぜジルバが名指しされているのかは、実際にこのゲームをやってみると分かります。テンミリオンRTA最難種目であり、執筆時点で完走できたものは一人もいません*5

 

テンミリオンRTAにおける手順構築の考え方…の前に

本題に移る前に、このゲームの手順を考えるうえで不可欠な基本的知識を整理しておきます。

  • ステータス(能力値)
    個々のキャラには、そのレベルとキャラの種族に応じたステータスが設定されており、本来は自分と相手のステータスの特徴を考えて有利な攻撃を仕掛けるのがセオリーです。「本来は」という枕詞がついている理由は後回しにすることにして、簡単に見ていきましょう。
    • HP
      体力を表します。当然多ければ多いほどいいです。戦士系キャラなど、主に物理攻撃を担うキャラは高め、魔法攻撃や回復役キャラは低めです。

    • 攻撃力・魔攻
      文字通り攻撃の強さを表します。攻撃力は剣や弓などの武器による物理攻撃に対するパラメータ、魔攻は魔導書による魔法攻撃および回復の杖による回復量に対するパラメータです。当然のことながら戦士系キャラでは攻撃力が高め、魔法使い系キャラは魔攻が高めに設定されています。

    • 防御力・魔防
      文字通り打たれ強さを表します。防御力は物理攻撃に対する打たれ強さ、魔防は魔法攻撃に対する打たれ強さを決めます。戦士系キャラでは防御力が高め、魔法使い系キャラでは魔防が高めのことが多いですが、一部比較的魔防の高い戦士系キャラが存在します(ブルースなど)。クロウが属するパラディンは、魔力の高い騎士種族で、物理・魔法関係なく総合的に能力が優れています(ただし魔導書は扱えません)。なお、魔防は魔攻に比べて希少なステータスで、魔族系種族であっても魔防はたいして高くないことがほとんどです。

    • 速さ
      攻撃行動の素早さを決定するパラメータです。攻撃する際に相手の2倍以上あれば2回攻撃ができ、逆に相手の1/2未満であれば相手から2回反撃されることになります。このパラメータは職業間の格差が激しいパラメータで、極端に速く、成長もしやすいキャラがいる一方、極端に遅く、成長も鈍いキャラも存在します。

    • 移動力
      1ターンでそのキャラが移動できる距離を決定するパラメータです。マップ上には茂みやぬかるみなど、進みにくいマスも設定されており、そのような場所では1マス進むのに2を消費し、それ以外の場所では1消費します。移動力以外のパラメータはレベルアップによって増加していきますが、移動力のみレベルに関係なく初期ステータスのままです。移動力4が圧倒的多数ですが、ジルバやオーガーのような鈍重なキャラでは3、リンやガーゴイルのような移動に長けたキャラでは5に設定されています。

    • アイテム
      ステータスではありませんがついでなので書いておきます。そのキャラが装備している武器やアクセサリーです。1人あたり4個まで装備することができ、同じものを複数装備することも(無意味ですが)可能です。なお、アイテムストックはないので、誰も装備しないアイテムがあれば処分しなければなりません。当然処分すると再入手不可です。
      基本的に戦闘中は変更できませんが、特定の敵を倒してアイテムを入手した場合には、戦闘中であっても例外的に装備変更が可能です。

  • 攻撃の種類と職業の関係
    各キャラに装備することのできる武器には、その種類に応じた攻撃属性と、装備可能な職業(≒キャラ)が決められています。簡単に見ていきます。
    • 剣・斧
      物理攻撃に属するもっとも基本的な武器で、攻撃できる範囲は前後左右に1マスです(射程1~1)。剣はブルース・マゼンダ・ルファ・ティンク以外の味方メンバー全員が装備できます。斧はブロント・ジルバ・ミドリのみが装備できます。


    • 物理攻撃に属する武器で、射程1~1です。ただし、投槍と魔人の槍は自分から距離2まで*6の範囲を攻撃できます(射程1~2)。装備できるキャラはブロント・ジルバ・ミドリのみです。


    • 物理攻撃に属する武器で、射程2~2です。つまり、自分自身と隣り合う位置には攻撃できません。装備できるキャラはブルース・ルファ・ミドリのみですが、攻撃力の低いルファに持たせることはまずありません。

    • 素手・爪・牙
      物理攻撃に属する武器で、射程1~1です。装備できるキャラはリンのみで、リンが唯一装備可能な種類の武器です。なお、素手は外せません(逆に外せたら怖いですが、これによりリンのアイテム欄は実質的に3個になります)。

    • 魔導書
      魔法攻撃に属する武器で、炎の書・氷の書・雷の書・メテオの4つがあります。装備できるキャラはマゼンダ・ティンク・ルファのみです。
      射程は炎の書では1~2、氷の書では2~3、雷の書では4~4、メテオでは5~5です。このように射程が大きいアイテムがあることが特徴で、遠距離から先制攻撃を仕掛けたり、安全圏から一方的に攻撃できることから、攻撃の主力を担います。

    • 回復の杖
      魔法攻撃に属する武器(?)で、回復の杖・大回復の杖・遠回復の杖が存在します。射程は0~1ですが、遠回復の杖のみ2~4です(射程0とは自分自身のことです)。
      回復の杖は全員が装備可能ですが、大回復の杖と遠回復の杖はテミ・ティンク・ルファ・クロウのみが装備できます。

  • 行動範囲・攻撃範囲・索敵範囲・安全圏
    いずれも正式な用語ではありませんが、テンミリオンRTAにおいて重要な概念および用語です。例として、以下の図のような状態を想定してみます。なお、現在地は黄色丸印のマス、装備は炎の書(射程1~2)、メテオ(射程5~5)、回復の杖(射程0~1)で、移動力は4とします。濃い緑色のマス(△を付けたマス)は移動力を2消費し、灰色のマス(×を付けたマス)は通行不可のマスです。

    f:id:toriniku334:20201126143146p:plain

    • 行動範囲
      現在の位置から、そのキャラが持っている移動力で移動することができる範囲を表します。ゲーム中では、動かしたいキャラを1回クリックすると水色のマスで表示されます。この例では以下のようになります。

      f:id:toriniku334:20201126143230p:plain

    • 攻撃範囲
      現在の位置から、そのキャラが持っている武器によって攻撃が可能な範囲を表します。ゲーム中ではキャラの移動を確定した後に赤色(攻撃のみ)・青色(回復のみ)・紫色(攻撃回復両方)のマスで表示されます。この例では、例えば現在地における攻撃範囲は以下のようになります。

      f:id:toriniku334:20201126143314p:plain

    • 索敵範囲
      現在の位置から(必要であれば移動を行って)攻撃ができる範囲を表します。ゲーム内で一度に確認する方法はありません。この例では以下のようになります。行動範囲の各地点において攻撃範囲を計算し、足し合わせたものが索敵範囲です。行動範囲は水色の線で囲った内側です。

      f:id:toriniku334:20201126143355p:plain

    • 安全圏
      どの敵の索敵範囲にもなっていない場所です。特定の敵に対して安全圏を定義する場合もあり、その場合は対象となる敵の索敵範囲外の場所です。この例では、上の図で緑色のまま残っているマスが安全圏となります。
      見てわかる通り、メテオのような射程の大きい武器を持っているキャラがいる場合、索敵範囲が非常に広く、安全圏が非常に狭くなります。物理攻撃系の武器は射程が高々2しかないため索敵範囲が狭く、優位性を確保しづらくなります
      なお、特に戦闘終了までどの敵の索敵範囲外でもあり続けるような場所は、絶対安全圏と呼ばれます。通常は自発的に行動しない敵しか存在しない場合に考える概念です。たとえば隠れ里では、初期位置から動かない限りにおいてブロントのいる位置はスライムを全滅させた後であれば絶対安全圏です。

  • 行動タイプ
    テンミリオンの敵には3つの行動タイプが存在し、キャラクターごとに特定のタイプが割り当てられています。なお、ゲーム中にこれらを確認する方法はありません。
    • 積極型
      自ら進軍してくるタイプの敵で、大抵の敵はこのタイプに当てはまります。

    • 消極型
      相手が自分の索敵範囲内に入ってこない限りは進軍してこないタイプの敵です。雪原・鳥の巣・魔王の城に多いタイプの敵で、そのほかのステージでも主にアイテム持ちの敵に多く設定されています。相手の索敵範囲にさえ入らなければ一方的に攻撃できます。

    • 不動型
      その場から一歩も動かないタイプの敵です。相手の攻撃範囲にさえ入らなければ一方的に攻撃できますし、無視することも簡単にできます。
      山あいの村と2周目以降の魔王城以外の敵軍リーダーはすべてこのタイプで、ほかに通常敵でこの設定がされているものが少数存在します(1周目の魔王の城の左半分にいるコボルト2体とガーゴイルなど)。一歩も動かないため、このタイプの敵の行動範囲は移動力にかかわらずその場1マスのみで、攻撃範囲=索敵範囲となります。

テンミリオンRTAにおける手順構築の考え方

ようやく本題に移れます。このゲームをRTAする、すなわち可能な限り早くクリアする場合、ある一つの中心教義(セントラルドグマ)が存在します。

クリアするまでにかかる行動回数を、可能な限り少なくする

ここで、クリアターン数ではなく行動回数となっていることに注意が必要です。公式ランキングの一カテゴリに、クリアターン数ランキングがあります*7が、最少クリアターン数と実時間最速は必ずしも一致しません。なぜならば、ターン数を減らしても合計行動回数が増えてしまうと、その分だけ時間がかかってしまうからです。したがって、テンミリオンRTAにおいては、クリアターン数の削減よりも行動回数の削減が重要な意味を持ちます。ここで、行動回数はそれぞれの場合において以下のように定義されます。

  • 攻撃を伴わない単純な移動=自軍では1キャラにつき1回の行動として計算。敵軍では1ターン分で1回として計算*8
  • 攻撃を伴う移動(その場含む)=1キャラにつき、攻撃回数+0.5回分の行動として計算
  • キャラの死亡演出=1キャラにつき1回の行動として計算
  • ターンの途中終了=1回の行動として計算
  • 装備変更=1個変更するたびに1回の行動として計算
  • 戦闘離脱=1回の行動として計算

さて、クリアターン数を削減しつつ行動回数を削減する場合、以下の点に注意する必要があります。

  • できるだけ手数を掛けずにクリアするために、できるだけ威力の高い攻撃を繰り出す。
  • できるだけ無駄な演出を挟まないよう、無駄死にするキャラを少なくする。
  • 武器選択の手間を省くため、自動攻撃を最大限活用する。
  • 攻撃回数を減らすため、速さのステータス差の大きい組み合わせでの攻撃のやり取りを極力抑える。
  • 敵軍の攻撃回数を減らすため、極力安全圏にとどまる。
  • 第3軍がいる場合、うまく手伝ってもらって総行動回数を減らす。
  • 肉壁目的のキャラクターの反撃手段を没収し、行動回数を減らす。

これらの目的を達成するために、テンミリオンのRTAチャート構築にあたっては、内部仕様を深く理解することが求められます。以下、敵軍の行動決定方法について詳述します。難しい場合は結論だけを読んでいただいたので結構です。

ステップ1: 攻撃を評価する

まず、各キャラクターの可能な攻撃先を検証し、優劣をつけます。この評価は順番に行われ、もっとも評価が高かった行動から優先して行われます。

移動先と攻撃先を検討し、最良手の候補を決定する

まず1つのキャラについて、最良の移動先と攻撃先を検討します。移動先は、そのキャラの行動範囲を左上から右に向かって1マスずつチェックしていきます。1行チェックしたら下の行に移動して同様にチェックします。各移動先で攻撃行動をチェックしてから次の移動先をチェックします。

ある移動先において攻撃(または回復)可能な対象がある場合は、可能なすべての攻撃行動についてランク付けを行います。このとき、チェックする順番は移動後の場所から見て12時の方向から時計回りに、射程の小さい順となります。攻撃行動には、その内容によって次のように評価値が与えられます(小さいほど良い手)。なお、行動タイプが消極型または不動型の敵の場合、索敵範囲内に攻撃可能な対象がなければ探索の対象から除外されます。

  1. 一撃で対象を倒すことができる
  2. 自分はダメージを受けてしまうが、対象を倒しきることができる
  3. 自分は一切ダメージを受けることなく相手を攻撃することができる
  4. 自分はダメージを受けてしまうが、対象にもダメージを与えることができる
  5. 対象を1ポイント以上回復することができる
  6. 自分は死んでしまうが、対象にいくらかのダメージを与えることができる
  7. 上記以外、すなわち相手に攻撃できない(評価対象外)

ここで、評価値3,4,6の行動は、既に見つかっているものより与ダメージが大きいものほど格上となり、評価値2の行動は既に見つかっているものより被ダメージが少ないものほど格上となります。回復行動は最初に見つかったものだけが採用されます。この結果、もっともよいと判断される手が1つだけ決定されます(計算上は同格があり得ますが、この場合は先に見つかったものが格上です)。これを最良候補手として記録しておきます。

実際の攻撃内容を決定する

同様にして全キャラについて候補手を求めていきます。別のキャラクターを検討していくうちに、既に見つかっている候補手よりも良いものが見つかれば、最良候補手をその都度更新していきます。ただし、評価値1となる手が見つかった場合、即座に探索を打ち切ってその行動を実行します。同格の場合は先着優先のルールに従い、最初に見つかったものが採用されます。このようにして1つ目の行動が決まったら、その行動を実行します。

そのほかのキャラの攻撃内容を決定する

ここまでの手続きを再度行い、次々に行動を決定して実行します。行動のために戦況は変化していくため、以前より評価が良くなる手もあれば、悪くなる手も存在しえます。唯一異なるのは、既に行動したキャラクターは探索において除外することだけです。

ステップ2: 移動先を評価する

ステップ1において、行動しないまま残っている積極型の敵があれば、移動を評価することになります。これは以下のように行われます。

手持ちのアイテムをチェックする

行動未完了のあるキャラについて、手持ちのアイテムをチェックして、武器を持っていれば「攻撃可能」、回復アイテムを持っていれば「回復可能」とマークしておきます。

敵との位置関係を測定する

攻撃可能とマークされている場合、現在地から一番近い*9敵軍キャラを調べます。回復可能とマークされている場合、現在地から一番近い1ポイント以上回復可能な味方軍キャラを調べます。両方マークされている場合は、どちらか近い方が優先されます。また、どちらの属性もない場合は評価対象外となります。

実際に移動する

同様にして行動未完了キャラのすべてについて計算し、もっとも近かったものを実際に採用します。この操作を繰り返して全員の行動を確定します。

結論

敵軍の行動内容の要点は以下のようになります。なお、上述した行動決定ロジックの特性上、回復持ちの敵は、自分が1ダメージでも負っていれば、ほかに深手を負っている仲間がいたとしても自己回復を優先します。

  • 索敵範囲内に一撃で倒せるものがいれば最優先
  • 基本的に与ダメ最大化で動く。倒しきれるものがいれば、自分が死にさえしなければ倒しに来る。
  • 回復は優先順位が低く、捨て身タックルよりはマシ程度の扱い。
  • 積極型の場合、自身の索敵範囲外からの進軍は最も近いものを狙う。
  • 消極型および不動型の場合、自身の索敵範囲外からの進軍はしない。

経験値

敵に攻撃したり、仲間を回復したりすると、それに応じた経験値を獲得することができます。これは次の計算式で算出されます。 

  • 攻撃では、(相手のレベル - 自分のレベル + 1) * 5
  • とどめでは、(相手のレベル - 自分のレベル + 3) * 20 をさらに上乗せ
  • 回復では、(相手のレベル - 自分のレベル + 1)2  * 回復量 *10
  • ただし、計算結果が0以下になる場合は一律で1とする
  • 経験値が1000を超える場合には1000に切り捨て

この式からわかる通り、攻撃による獲得経験値はダメージ量に関係なく相手とのレベル差のみによって決まります。また、とどめを刺すと通常の4~5倍程度の経験値が獲得できます。しかし、回復行動では相手のレベル差の2乗と実回復量の両方に比例することから、攻撃よりもはるかに効率的に経験値を稼げることが分かります。そもそも、極端にレベル差のある敵に攻撃して経験値を獲得しようとしても、大抵は反撃によって死ぬだけなので、選択肢にさえならないこともあります。

戦力の決定

ここまでのテンミリオンの内部仕様が理解できて初めて手順構築を行うことができます。基本方針として、可能な限り少ない手数で、自軍の主力メンバーを最大限育成することが主眼となります。

まず、手順を構築するときに制限となるのがブロントの存在です。リーダーである彼が討たれると敗北なので、是が非でも守らなければならないのです。これは、ブロントは否が応でも育成しなければならないということを意味します。育成したからには戦力として活躍してもらわなければ釣り合いません。したがって、全種目においてブロントは主力部隊として前線で活動します。

ブロント一人だけでは心もとないですね。サポートメンバーを準備してあげましょう。ここで、このゲームにおいて魔法は圧倒的な優位性を確保できることを思い出しましょう。これによりサポートメンバーが魔法を扱えるキャラとなることが自動的に導かれます。通常、特に縛りがなければ性能の面から見てティンクが抜擢されます(サポートと言いながら最強キャラです)。

さて、主力は多ければ多い方がいいです。戦闘を有利に進められますからね。ところがひとつ大切なことを忘れています。行動回数は少なければ少ないほどいいのでした。この2つはお互いに矛盾します。主力を多く確保すると経験値が多くのメンバーに分散することになるため、育成効率が悪くなります。育成効率が悪くなることは余計に敵を倒さなければならなくなることを意味し、それはすなわち行動回数の増加です。つまり、この2つの折り合いをつけられる配分を探る必要があります。この配分は、ブロントとティンクのコンビを基本として、All Dungeons 系ではルファが加わります。

なお、特殊な例として、初期メンバーしか使えないAll Dungeons 5 Membersでは、魔法攻撃を担うのはマゼンダとなるので戦力はブロントとマゼンダとなり、魔法を封印するNo Magicではブロント・ブルース・リン・クロウが戦力となります。

基本戦術

さて、戦力が決まったところで戦術を練っていきましょう。といっても簡単です。レベルを上げて魔法で殴る、以上です。

では、それを可能にするための作戦を考えていきましょう。レベルを上げるためには経験値が必要ですから、なるべく一度に多くの経験値を得られればいいわけです。その方法は2つ考えられます。ひとつは、レベルの高い敵にとどめを刺すこと、もうひとつはレベルの高い味方を回復することです。回復役を置くことができないAny%のような短距離種目では、主力が攻撃と回復を兼任することで、素早く成長することができます。一方、All Dungeons系の回復役を置く種目では、主力の育成を重点的に行うように作戦を組みます。なぜなら回復は経験値効率がはるかに良いため、回復役は育成を行わなくても主力と同格まですぐに成長するからです。

次に、主力以外のメンバーの活用方法を考えます。主力メンバーは倒れると困るので、できればダメージを負いたくありません。そこで、戦力外メンバーが身代わりとなって主力を守るという方法が考えられます。このとき、捨て駒となる彼らをいかにして配置すれば主力を守ることができるかを考えるために、敵AIの行動アルゴリズムを理解していることが求められます。

最後に布陣と倒す敵を考えます。敵との相性や敵のステータス、周辺状況から倒すべき敵、放置する敵、切り離して無力化すべき敵を導きます。そして倒すべき敵に対して進軍するわけですが、このときの布陣は、相手の索敵範囲と行動を考慮して決定しなければなりません。ここでも敵AIの行動アルゴリズムを理解していることが求められます。そして、切り離すべき敵には戦力外メンバーを送っておびき寄せ、無力化します。

操作面から見たテンミリオンRTA

ここまで手順構築からテンミリオンRTAを考えてきました。いわば理論の側面です。今度は、操作面すなわち実践の側面から考えてみましょう。理論と実践が一体となって初めてRTAとして結実することができるのです。

テンミリオンは基本的にマウス操作だけでプレイするゲームですから、複雑な操作は一切ありません。戦闘中にスペースキーを押していれば、敵軍の行動やメッセージボックスを最速でスキップできるという知る人ぞ知る仕様はありますが、結局はいかに精確にマウスを操作できるかです。素早く適切な位置にマウスカーソルを動かし、間違いなくクリックするという基本的な技術が最も重要です。

一方で、最大14x14マスのフィールドのうち、画面上に表示されているのは7x7の範囲だけのため、広いマップでは適宜スクロールする必要があります。これはマップ端にマウスカーソルを持っていくことで行うのですが、スクロール速度が遅いためやりすぎるとロスとなります。そこで、テンミリオンRTAの手順を完璧にするためには、このスクロール操作を考慮しなければならないことが分かります。順不同な行動があるならば、できるだけスクロール回数が少なくなるように並び替えたり、そもそもスクロールしなくて済むような作戦を作ることが求められるわけです。

スクロールに関連して、自軍ターン開始時には、リーダーであるブロントが中央になるようにマップが表示されるという仕様があります。つまり、各ターンの手順はこの初期画面位置を考慮したうえで最適な行動順を考えていかなければならないのです。場合によっては何も行わない無駄行動を行うことでスクロールを抑制し、時間短縮につながることもあるのです。

おわりに

以上、テンミリオンRTAについて詳細に見てきました。小学生の時はなんとなく遊んでいたこのゲームですが、私が去年9月に緑SM64氏に誘われて15年ぶりに遊ぶと、非常に奥の深いゲームであると感じました。テンミリオンRTAの発展はそこから始まったわけですが、当初はここまで研究が進むとは誰も思っていませんでしたし、No Magicや5 MembersのようなカテゴリはRTAと胸を張れるほどの手順が存在するとは誰も思っていませんでした。また、Any%の手順の変遷は、テンミリオンRTAの進化の歴史そのものであり、2020年3月末に敵AIの行動が明らかになるまでは暗中模索が続いていました。その後もそれまで当たり前と信じてきた戦術を見直すことによるブレイクスルーもあり、極めつけには、魔法が使えないAll Dungeons No Magicの研究が、魔法が使えるAny%の大更新につながるといった予想外の収穫もあったわけです。Flashは2020年12月で終了してしまいますが、このゲームの研究はまだまだ始まったばかりです。Flashの代替となるRuffleの開発も着々と進んでおり、Flashの灯はこれからも燃え続ける中、テンミリオンRTAがどこまで発展するのか、楽しみでなりません。

*1:ten million; 1000万

*2:ファイーエブレムではない

*3:執筆者は実はプレイしたことがない

*4:本来はさいころを何回か振ったときの出目のようなでたらめな数字。ゲームにおいては計算式を用いてでたらめに見える数字を作り、それがランダム要素の決定に使用される。転じてランダム要素そのものや、実際に起こったランダムな現象そのものを乱数と表現することがある。

*5:いくらでも時間をかけてレベリングしてもよいのであれば、誰でも完走できます。しかしそれではRTAとしてはふさわしくありません。テンミリオンRTAにおいて完走者がいないとは、RTAだと胸を張って言えるほどの効率的な勝利手順を誰も考案できていないということです。

*6:テンミリオンにおける距離は、通常のユークリッド距離ではなくマンハッタン距離です。すなわち対象とする2点のx座標の差とý座標の差の和が距離になります。例えば自分の現在位置から見て距離2の位置は、自分の2マス先、右前、2マス右、右後、2マス後、左後、2マス左、左前の8マスです。

*7:チートによって荒らされてしまっているため、どこまでが真の記録なのか分からなくなっています。おそらく25~27ターンあたりまでが現実味のある記録です。

*8:敵軍ターンは、スペースキーを長押ししているだけで最速で進めることができるため。

*9:この時の距離は平方ユークリッド距離が使用されます。すなわち、x座標の差の2乗とy座標の差の2乗の和です。

*10:相手のレベル - 自分のレベル + 1 が5を超えるときは5に切り捨てる

聖域

※この記事は単なる一般論及び個人的な考えであり、特定のゲームコミュニティ及び特定のプレイヤーを批判したり、中傷したりするものではありません。

「聖域」という言葉を辞書で引くと、神聖な場所という文字通りの意味のほかに、侵してはならない所・事柄、という意味が出てきます。聖域なき改革、などと主に政治分野で耳にすることの多い用法ですね。

さて、ゲームにおける聖域とはなんだろうか、というのが今回の問いかけです。もちろん一般論のことを言っているのであって、特定のゲームに出てくる特定の場所の話ではありません。

考え方は様々あるでしょうし、どれが正解でどれが不正解というようなものでもありませんが、個人的な考えを述べておくと、ゲームシステムへの不介入だと思います。プレイヤーは、各ゲームにおけるそれぞれのゲームシステムという規範の中で、好きなことをさせてもらえるのであって、その規範を逸脱してはならない、それがゲームというものだと私は思います。

これに関連して、私はいわゆる任意コード実行と呼ばれるカテゴリが非常に嫌いです。なぜ嫌いかと訊かれれば、大抵「つまらないから」と答えるのですが、そのつまらなさの本質は、ゲームシステムへの不介入という聖域が侵されていることにあります。任意コード実行という以上、原理的には如何様にもゲームシステムを乗っ取り、作り替えることが出来ます。これは果たしてゲームなのか、と聞かれれば僕は「プログラミングコンテスト」だと答えます。

ゲームシステムという規範を打ち破り、プレイヤーがゲームを支配する立場になったとき、「ゲームをクリアする」という行為は意味を成さなくなります。なぜなら規範を打ち破られたゲームはもはやゲームとしての体を成さないからです。何を以てクリアとみなすのかというところについては、人によって定義の分かれる部分ではありますが、僕に言わせてみればどのような定義を用いたとしても、ゲームという枠組みが崩壊した以上、そこにクリアという概念は存在しえません。もっとも、データ上はクリアしたことにすることは出来ますが。これが「つまらない」理由なのです。

任意コード実行がプログラミングコンテストである以上、ゲームを乗っ取って全く別のゲームを作る、といった試みは多少好意的に受け止めていることを付記して結びとします。

職人技

世の中機械化の時代です。高度な技術を持った職人は年々数を減らし、最近ではいよいよAI化の流れも加速しています。

さて、TAS制作においても自動化、AIの活用は可能なのでしょうか?個人的には、使いどころを考えればできなくもない、という程度だと思っています。少なくとも現状の技術では。

 

全探索の闇

実際のところ、1フレームごとに考えうるすべての入力を虱潰しに調べていけば、そのうち「完全無欠な」TASが出来上がるはずです。さて、この全探索にかかる時間的コストはどのぐらいになるのでしょうか?軽く計算してみましょう。

たとえば、GCの1人用ゲームのTASを、全探索で制作することを考えてみます。GCのコントローラーには、ABXYZとStart、十字キーの10個のボタン、2本のスティック、LRトリガーがあります。ボタン類は、1個につき押しているか、押していないかの2通りの入力パターンがあります。スティックは1本につき、X軸、Y軸とも256段階の入力が可能なため、2562 = 65536通りの入力が可能です。LRトリガーは、256段階のアナログ入力と、カチッとなるまで押しているかどうかのデジタル入力があるため、1個あたり257通りの入力が可能です。よって、1個のGCコンで1Fに可能な入力の総数は、210 * 655362 * 2572 = 290486574011908096 通りとなります。1秒に1回追記できる、つまり1秒に1個の入力を検証できると仮定すると、全部検証するのに 9204964066 年かかることになります。最初の1F目の検証が終わるより前に太陽の寿命(残り約50億年)が尽き、地球は消えてなくなってしまっています。これではとても全探索はできませんね。

参考: Masterjun's SNES Super Mario World "ends input early" in 01:33.26

マリオワールドのクッパ戦を、全探索でクリアするTASです。最初の1Fは約5分半で、次の1Fは2日で、その次は3年目には終わりますが、4F目の探索が終わるのは1491年後です。入力パターンの少ないSNESですら、現実的な時間では探索出来ないという例です。

 

機械学習の限界

全探索は非現実的であることは容易に想像できます。では、今流行りのAIを使って機械学習させれば、人間よりもはるかに高度なTASを生み出せるのでしょうか?これには次の困難が付きまといます。

  • 何世代学習すれば十分に高度な操作を得られるのか
  • 何をもって学習結果の優劣をつけるのか(評価関数の実装の難しさ)
  • 大局的な利益を優先して局所的な損失を受け入れるという判断を正確にできるのか(TASでは非常によくある問題です)

実際に機械学習によってTASを制作するという試みは行われていますが、いずれも人間の下手なプレイの域を出ないものです。これではとてもTAS制作には役に立ちません。

結局のところ

機械(コンピューター)のいいところは、決められた作業を高速に反復実行できるという点にあります。つまり、このコンピューターの長所を生かせる場面では、全探索による自動化、AIによる学習が有効です。もっともわかりやすい例が、いわゆる乱数調整でしょう。あるいは、最適な動作が数学的に計算可能であれば、わざわざ人が入力せずとも機械に丸投げすることができます。かの有名な風のタクトのSuper Swimも、目的地さえ入力してしまえばあとはbotが勝手に作ってくれます。ほかにも多くのゲームで同様の事例があります。要は適材適所ってことですね。全探索についても、ある程度入力の候補をあらかじめ絞ることができるなら、現実的な時間でそこそこの量を探索出来ます。

 

結論

人間ってすごい!!

妥協の産物

丸というものは、よく「完全なもの」のたとえに使われますが、そう都合よく「完全なもの」なんてものは存在しないのが普通です。普通に生活していてもある程度の妥協を余儀なくされる場面というのはたくさん存在するはずです。

さて、同じことはTASにも言える話です。「理論上最速」という建前だけが独り歩きしてしまったがために「完全無欠」「完璧」なんてイメージが定着しちゃっている感じがしなくもありませんが、実際のところTASなんてものは妥協の産物の塊だったりします。今日はTASにおける妥協の産物のうち、最も誤解の多いものだろうと思われるあるものについてお話ししましょう。

 

よく巷で「TASさんは乱数調整できるので運ゲーなんてないに等しい」といった具合の言説を耳にします。きちんとTASと向き合っている人には、この文言に大きな誤解が潜んでいることがよくお解りでしょう。結論から申し上げます。一般に、TASにおいて乱数調整は屈辱的な妥協の産物です。それはなぜか、乱数調整がどのような性質のものであるのかを知ればおのずと理解できるはずです。

まず、そもそも乱数とは何ぞやという話をしましょう。適当に何回かサイコロを振ったとき、たとえば、3,5,1,6,2,2,3,4,1,5,…とランダムに1~6の数字が出てくるはずです。これらの数字は、ランダムに並んでいる、すなわち前後の脈絡がないので、次に何が出るのか完全に予測不可能です。このようなでたらめな数字の並びを(自然)乱数列と呼び、そのそれぞれの数字を乱数と言います。ランダムに発生する事象や、確率的に発生する事象を起こすかどうか(起きるかどうか)の判断に、この乱数を使用することができます。そのため、多くのゲームで、敵からどのアイテムがドロップするか、クリティカルヒットになるかどうか、といった運要素を決定するために乱数が用いられています。一方、サイコロを振り続けて得られるような、真にランダムな乱数列はコンピューターでは生成できないため、ある規則に基づいてランダムに見える数列を生成し、それを乱数として使用します。これは、ある規則に基づいているため、その規則が何であるかさえわかれば、現在の乱数の値をもとにして将来の乱数を完全に知ることができます。このような乱数は、疑似乱数と呼ばれます。ゲームやシミュレーションなどで使用される乱数はすべてこの疑似乱数です。すなわち、ブラックボックスをのぞき見してしまえば「都合のいい」乱数がいつ出るのかを完全に知ることができます

さて、乱数が何であるかが分かったところで、乱数調整とは何ぞやという話をしましょう。先にも述べた通り、ゲーム中の乱数は疑似乱数なので、原理上は将来何が起こるのか完全に予測が可能です。(「原理上は」と書いたのは、実際にそれを知るためには内部のプログラムがどのようになっているかを知らなければ予測ができないためです。)そのため、TASさんたちは、欲しいアイテムを何個も手に入れたり、クリティカルヒットを何度も当てたりするために、「都合のいい」乱数を引き当てる必要が出てきます。そして、一部のゲームではその「都合のいい」乱数が何であるのか、それがいつ出るのかまで知ることもできます。ここまではいいのです。この「都合のいい」乱数は、必要な時にジャストで引き当てたいのですが、この世界でそんな都合のいいことはまず起こらないのです。望んだ時に望んだ乱数を引き当てることは、TASさんの力をもってしてもそもそもほぼ不可能です。そこで、TASさんに残された選択肢は次の2つとなります。

  • あきらめる
  • 目的の乱数が出てくるまで待機する

この2つの選択肢は、そのどちらも採用される可能性があるものです。順にみていきましょう。

 

1. あきらめる

文字通り、乱数を引けなかったままで続行します。もしも望みの乱数を引き当てられていたら得られたはずの短縮は手放すことになるため、基本的にはこの選択はしないのが普通です。ただし、そもそも不要不急で、あとからでも問題がないケース(例えば○○までに××を△△個調達しておきたいので道中でちまちま調達する、といった場合)では、この選択肢を取っても問題ないことが多いです。

2. 目的の乱数が出てくるまで待機する

いわゆる「乱数調整」と呼ばれるのがこの選択です。望みの乱数を引き当てられていれば得られたはずの短縮を手放したくない場合、この選択を検討しなければなりません。しかし、そもそも乱数調整は(何らかのイベント待ちや強制スクロールなどで、操作してもしなくてもタイムが変わらない場面を除けば)単なるロスでしかありません。つまり、(乱数調整ににかかる時間) > (得られる短縮) となってしまえば元も子もありません。赤字になるぐらいならあきらめた方が速いという結論になってしまいます。ただし実際には、よほどの低確率な事象でもない限り赤字になることはあまりないです。しかしながら乱数調整は本来的には不要であるはずの要素であるということは非常に重要です。まさに妥協の産物であることがお解りでしょう。

 

ここまで読んだ方はもうお気づきですね、「TASさんは乱数調整できるので運ゲーなんてないに等しい」のではなく「TASさんですら乱数調整しなければならないほど運ゲーはどうにもならない」のです。

 

やっぱり運ゲーってクソだわ

答のない問い

TASを作っていると、しばしば難題にぶつかることがあります。雑に分けると次のどちらかです。

  • 最適解がわかっているが、それを実現するのが非常に困難
  • 最適解がそもそもわからないので、最適化のしようがない

これは個人的な主観になりますが、実は上の方がTAS制作者にとって数億倍苦痛です。答がわかっているのに解けない問題と格闘しているようなものですから。

さて、今日お話しするのは、2つ目のほうです。TASを作ったことない人や、そもそもTASのことをよく知らない人は、答のない問いに挑む方が苦痛だと考えるかもしれません。たしかに、答のない問いに挑むのは、それはそれで結構しんどいのですが、逆にあれこれ考えることができるためある意味楽しかったりもします。なにより、そのゲームについてさらに深く知ることのできる最高のチャンスでもあります。

TASerとしての成長は、この「答のない問い」なくしてはあり得ません。すでに確立されている最適解をただひたすら追うだけでは、表面的な技術しか身につかないからです。TASとして完成させる以上、「答のない問い」にもある一定の答えを出さなければなりませんが、それには柔軟な発想と、ゲームに対する深い理解が必要となります。そして、そうやってもがいた経験は、使い古されたものをただコピーするだけでは絶対に手に入れることができない最強の武器となるのです。

コミュニティが盛んなゲームのTASでは、しばしば革新的なルートが編み出されることがあります。傍から見れば突飛だったり、「何をどうすればそんなことを思いつくのだ」と言いたくなるようなものが多いと思います。しかしこのような斬新な発想の淵源は、答のない問いに答え続けることによって得られる、「智」にあるのです。

ブログはじめました

つれづれなるまゝに、日くらし硯に向かひて、心にうつりゆくよしなしごとをそこはかとなく書き付くれば、あやしうこそ物狂ほしけれ。

かの有名な徒然草の序段。徒然草自体は高校の古典で少し読んだ程度にすぎませんが、ほんのひとかじりしたぐらいでもこの本が「そこはかとなく書き付」けられたようにはとても見えない、そんな風に思ったりしたものです。

 

さて、古典はサッパリなのでこのぐらいにしておきますが、このブログではTAS制作のあれこれや「心にうつりゆくよしなしごと」を、それこそ「そこはかとなく書き付」けていこうと思います。そしておそらく書いていくうちに「あやしうこそ物狂ほし」くなるんだと思います。