この記事は https://adventar.org/calendars/12341 の24日目の記事です。
この記事は近畿大学で行われた講演会の内容の再掲も含みます。元動画はこちら。
皆様はRTAとどのような関わり方をしていますか? 走者としてRTAに挑戦したり、RTA配信/動画を視聴したり、人によっては解説を専門とする人もいるでしょう。
どのような関わり方であれRTAコミュニティへ貢献はされていますが、やはり走者というものはその貢献度が高い傾向にあります。
しかし走者はそのゲームについて高い腕前が必要であり、その参入障壁は高い傾向があります。(タイトルによって参入障壁の高さが異なります。)
『視聴者になる』というのは参入障壁が低いですが、視聴者が増えてもタイムは縮まらないのが現実です。 視聴者が多ければタイムが縮むのであれば、各種RTAイベントで自己べ更新ラッシュが発生しないとおかしいです。
そこで今回は、少し特殊な形でのRTAコミュニティへの貢献方法としてTASerという形で貢献する方法、ゲームの解析者という形で貢献する方法の2種類をご紹介いたします。
TASとはなんぞや?
時間が無い方はニコニコ百科のTASの項目を眺めて理解してください。
【改めて】Speedrunとは?
Speedrunとは「ゲームを早くクリアするやりこみプレイ」のことであり、日本ではタイムアタック(TA)やリアルタイムアタック(RTA)のことを示すことが多い。 しかし、Speedrun≒RTAであり、厳密に説明すると、以下のようなベン図で説明されることがある。

講演会で使用したスライド
画像は『星のカービィ夢の泉の物語』『モンスターハンターポータブル2ndG』『ロックマン』『ドラゴンクエストⅢ そして伝説へ…』より
Speedrunの中にRTAの括りがあり、その中に各タイトルの括りがある。そのようなイメージです。 Speedrunでもう一つの大きな括りはTASと言われる不思議な括りです。これは後ほど説明しますが、RTAと深い関わりがありながらも内容は異なるものになります。
どちらの括りにも入らない例として、TAがあります。例えばモンハンのクエスト別TAであったり、マリカシリーズのTAなどが上げられます。
RTAはRealTimeAttackの略で、ロード時間を含めた現実時間でのクリアタイムを競う遊び方です。こちらは和製英語のため、海外では単純にSpeedrunと呼ばれます。最近では海外に浸透しているのか、RTAでも伝わったりします。
TAはTimeAttackの略で、主にゲーム内時間(InGameTime,IGT)を競う遊び方で、こちらも実は和製英語です。英語ではTime Trialですが、IGTと呼ぶことが多いです。
TASの正式名称・定義
では、TASとはなんでしょうか?TASはTool Assited Speedrunというもので、名前の通りツールにより補助されたスピードランです。定義は「A TAS is a set sequence of controller inputs that complete a task in a video game while optimizing for time.」で日本語にすると「TASとは、ゲーム内のタスクを時間的に最適化しながら完了させるための、コントローラーの一連の入力方法のことである。」というような定義になります。
少し難しいですね。前半と後半で2つの事柄を言っているので、それについて理解をしましょう。
” a set sequence of controller inputs“
TASというのは、RTAと異なりその場でコントローラーの入力を行いません。TASというのはmovie fileと呼ばれる、「nフレーム目にXXボタンを押す」というコントローラーの入力が全フレームに渡って記述されたファイルをエミュレーター/TAS-botで再生しているにすぎません。 分かりやすい例で言えば、MIDIファイル(movie file)をMuseScore(エミュ)で再生して、音楽を再生している状態です。ですので、Aさんが再生しようがBさんが再生しようが全く同じプレイが流れます。
movieファイルは様々なツール用いて作成をします。代表的なものとしては、
①SS/SL(QS/QL) –いわゆるどこでもセーブ/どこでもロード
②スロー再生/倍速 –ゲームそのもののスピードを変えられる
③frame advance –1フレームずつゲームを進める
④memory viewer –RAMに格納されている全てのバイナリを確認する
⑤Lua Scripts –Luaというプラグラミング言語で記述したスクリプトを使用する
あたりですかね。他にも様々なツールが存在しますが、今回の記事では趣旨から逸脱しますので省略いたします。これらツールを活用して作成されたmovieファイルというのが、この英文の前半部分になります。
“complete a task in a video game while optimizing for time“
TASにおけるtaskはそのランにてすべきことです。Any%であれば最速でゲームをクリアすることなどです。RTAの”カテゴリ”に近いですね。TASにおいてはAny%がデフォルトのtaskになるので、Any%と明記することは少ないようです。 optimizing for timeは「時間的に最適化された」という意味ですが、RTAと少し事情が異なります。RTAは複数回Speedrunを行い、結果的に一番最短でクリアしたものにて競います。 一方でTASは数~数十フレームのミクロな単位でゲームタスクを分解し、そのミクロな単位での最速のランをし続けるのがTASであり、基本的には理論値に近いものになります。[理論値]ではなく[理論値に近いもの]になるのは、存在しうる入力の場合の数が多いからですね。 例えばマリオブラザーズにおいての入力を考えてみましょう。

講演会で使用したスライド ファミコンの操作画面
コントローラーの絵はパブリックドメインです。
まずは1F当たりに入力できる操作の組み合わせの数を考えます。計算を単純化するために以下の条件で行いましょう。
①左右同時押しは無し(RTAでは禁止されてる)
②十字キーの上下は無し(計算の簡略化)
③START,SELECTは無し(計算の簡略化)
数えられましたか?正解は12通りです。これが1F当たりに入力できる操作の組み合わせ数です。

上下無し、左右同時無し、START SELECT無し
ランの理論値を求めるには全ての入力に対しての結果を全検索すれば解決します。(ブルートフォース探索)
では、3F(0.05秒)全探索すると何通りを試せば良いのでしょうか?
12の3乗なので1728通りです。これは人力でも試せそうですし、流行りのAIにでも全探索作業を依頼すればできそうですね!
でも3Fってそんなにゲームに影響しないですよね。そこで30F(0.50秒)で計算をしてみましょう。 概算するとどれぐらいになるか想像できますか?
いきなり言われても難しいと思いますのでヒントを出します。最初の3桁は”237″です。
237万通り? 2億3700万通り?
↓
↓
↓
↓
正解は2.37×1032通り(2溝3700穰通り)です。たったの0.5秒を全探索するのにこれだけの組み分せ数を探索しないとなりません。
TASは全探索をした結果の成果物ではなく、人間がマクロ単位で最適化を行っているだけであり、別の人間が最適化を行うと更新される場合があります。RTAはゲームの腕前が直結しますが、TASにおいては最適化の考え方や緻密な計算力など別の能力が問われます。
ちなみに、60F(1.00秒)だと、56,347,514,353,166,785,389,812,313,795,980,500,551,139,163,800,306,781,874,894,667,776(5.63×1064)通りです。ちょうど不可思議という数え方のオーダーですね!
RTAと何の関係があるの?
…ところでこの記事が掲載されているサイト名はなんでしょうか?RTAGamersですよね。そう購読者のみなさんはRTAの情報を見に来ているはずです。 では、TASとRTAの関係性はなんでしょうか?
答えは明確でRTAとTASは双方的に参考にし、”ゲームをより早くクリアする”という共通の目的を達成しあう関係性です。
例えばRTAinJapanOnline2020ではHiST氏によりえいご漬けマラソンが披露されました。
その後それに感化されたゲストCもちがTAS語を使用したTASが作成されました。
その後上記2つの動画に感化されたiid氏(正確にはRiJにて感化され挑戦されており、TAS動画より仕様を理解されました。)が上記カテゴリに挑戦をし、素晴らしいタイムを記録されました。
上記は小さなカテゴリでの一例ですが、様々なタイトル・カテゴリで実際に行われている流れになります。
また、full runではなくshowcaseとして一部区間のTASを投稿してRTAコミュニティに貢献する場合や、RTAのルールに準拠したTASを作成し、RTAにおけるある程度の理論値を提示するTASなども存在します。
比べること自体はナンセンスですが、現在どこまでRTAが煮詰まっているかを示すTAS VS RTAの動画などもあります。
TASの始め方(概略)
TASはゲーム自体が下手でも全く問題のない、コミュニティに貢献が可能な方法です。
ではどうすればTASの作成を始められるのでしょうか?
概略は以下の流れになります。
①ROMの入手(法令準拠必須)
②エミュレーターの導入
③各種ツールを使用して入力作業
④エミュレーターでmovieファイルを再生して動画をエンコードする。
以上の流れになります。
著作権法第119条3項には、違法にアップロードされている著作物であることを知りながら、反復・継続してダウンロードした場合は、2年以下の懲役もしくは200万円以下の罰金、またはこれらを併科するとなっているため割れROMの入手は絶対にやめましょう。刑事的責任を伴います。親告罪も犯罪です。
ここでTASVideosが推奨しているエミュレーター一覧(有名ハードのみ)を紹介いたします。詳細
難しければBizhawkというマルチエミュレーターを導入しておけば一旦は問題ないかと思います。
ファミコン:BizHawk、FCEUX
スーパーファミコン:BizHawk、lsnes
PlayStation:BizHawk
Sega Genesis:BizHawk
Sega Saturn:BizHawk
ニンテンドー64:BizHawk
ゲームキューブ:Dolphin
ゲームボーイ:BizHawk、lsnes
ゲームボーイアドバンス:BizHawk、GBAHawk
ニンテンドーDS:BizHawk
Wii:Dolphin
3DS:BizHawk、Citra
ニンテンドーDSに関しては非推奨のエミュレーター(movieの提出はOK)のDeSmuMEの導入については詳しい記事を上げていますので、それを参考にすると良いと思います。
ROMの入手に関しては各種法令を遵守して入手してください。ダウンロードはもってのほかです。不安であれば各種入手用ツールを所持し、アメリカ合衆国などの海外で作業を行うと安全です。
実際の作業に使えるツールなどはエミュレーターによって異なるので、導入したエミュレーターに搭載されているツールや使い方を独自で調査する必要があります。(だいたい誰かが記事にしていると思います。)
解析者とは?
TASを作るのは膨大な時間がかかります。完走せずに失踪することが多発します。(変なpartで止まっている動画とかはだいたい失踪しています・・・)
これだとコミュニティへの貢献は困難です。
そこで、ゲームの仕様について詳しく調査をし、報告をする解析者という役割を紹介します。
ゲームがどのように動いているか?あるいはなぜGlitchが発生しているのか?あるいはそのGlitchは何が起こっているのか? を詳細に検証をし報告をすることはコミュニティに対して大きな貢献があります。
有名どころだとスーパーマリオ64ではPannenkoek2012という方が有名です。彼はこのような動画を投稿されています。
DSなど新しめのハード(20年前のハードですが…)だと、最近はジラーテ氏などがこんなブログもかかれています。
上記の方はTAS兼任ですが、解析だけひたすらするプレイヤーもいます。特に乱数調整がコミュニティ的に盛んなポケモンのプレイヤーでは、解析のみを行うプレイヤーが多数いらっしゃいます。
解析の始め方(概略)
解析の始め方はほぼほぼTASの始め方と同じです。
①ROMの入手(法令準拠必須)
②エミュレーターの導入
③各種ツールを使用して仕様を調査
④必要があれば逆アセンブラ
エミュレーターの導入に関しては、TASを作成しないのであればTASVideosの推奨外のエミュレーターを導入するのは多いにありです。
例えばニンテンドーDSゲームの詳細な仕様を解析したい場合、逆アセンブラのツールやその他解析ツールがあった方が良いので、最新版のDeSmuMEを導入したり、NO$GBA(デバッグバージョン)を導入しておくと楽です。
先ほど紹介した解析者のようなレベルまでゲームをより詳しく見るには必然的に逆アセンブラが必要です。各ハードに搭載されているCPUのアーキテクチャを調べてアセンブリ言語を読む必要がありますが、最近だと生成AIに読み込ませて高級言語に変換させると楽にいけたりします。私の経験ではcopilotとgeminiでは上手くいっているので使っています。
まとめ
今回はRTAを実行する(=走者)以外でRTAコミュニティに貢献する方法の概要を紹介いたしました。ゲームの腕前が求められない代わりに別の能力が求められてしまいますが、コミュニティに多大な貢献をすることは間違いありません。ゲームが上手くなくても参加可能な方法ですので、興味があれば購読者の皆様も始めてみられてはいかがでしょうか?
明日はらど竜さんの記事です。

ちびロボシリーズTASer DSゲームをよく取り扱っています。


コメント