「クラッシュ・バンディクー ブッとび3段もり!」RTA用タイマーとLoad Remover/AutoSplitterの導入について(noteはじめました)

【ご挨拶】

はじめまして。セレナーデ☆ゆうきと言います。
普段はゲームのRTAをしたり、クイズをやったり、お酒を飲んだり、仕事をしてなかったりします。

今回、この「RTA」の中で、「クラッシュ・バンディクー ブッとび3段もり!」というゲームの、「タイマー」というものに関するお話をさせていただきます。
なかなかニッチなnoteですが、この記事で「こんなものもある」と初めて知った方なんかは、RTA配信でタイマー見るのが少し楽しくなるかもしれない……?
また、導入の手順中にあるいくつかの事柄には、別のゲームでも流用できる知見があるかもしれません。なにかのお役に立てれば幸いです。

今回はタイマーの導入手順が主題なので、見る方向けというよりは「これから走るかもしれない方」に向けたものとなりますが……よろしければ読んでいってください。

「タイマーとは何ぞや?」ほどではないかもしれませんが、タイマーをダウンロードするところくらいから説明しようと思います。初心者の方で、この記事を読んで分からないところがある方などはぜひ、筆者TwitterのDMなど開放しておりますので、ご連絡頂けると助かります。


【本題に入る前の説明と雑談(長い)】

先述の通り、筆者が主にRTAをしているゲームが「クラッシュ・バンディクー ブッとび3段もり!」というものなのですが、こちらのゲーム、「Nintendo Switch」「PlayStation 4」「Xbox One」「PC(Steam)」という4つのプラットフォームから発売されています。(長いので、以後は英語版に倣い、タイトルをクラッシュNSTと略します。)

プラットフォームが違うということは、処理周りの機能が違うというわけです。ステージ間のロードの長さが違えば、当然クリア時のタイムに差が出ます。特定の機種を選択した時点で遅いことが確定する、というのは不公平と言わざるを得ません。


では、どうするか?


答えは「ロード中はタイマーを動かないようにする」です。

これにより、どの機種を選んでいてもロードの処理時間が悪さすることなく、自分が動かしている(≒実力が必要な)ところだけを計測することができます。これで公平になりました。めでたい話です。

…………とはいえ、唯一60fpsで動作するPC版でのRTAが強く推奨されますが。

現状、Speedrun.comのクラッシュNSTランキングではTime without Load(ロードなしタイム)での順位付けがなされていますので、ロードなしのタイムを把握することは必須となっています。

というわけで「画像認識を用いてロード中の画面を把握し、その間はタイマーを止める」という一連の流れを自動でやってくれるという、夢のような機能があります。Thomas Neffさんという方が作ってくれました。すごい!

名前を「CrashNSTLoadRemoval」と言います。

これに限らず、これらの機能は「Load Removal」なんて呼ばれたりします。英語が苦手な筆者としては、LとRの発音で苦しみそうな名前です。

さて、何周もする陸上競技や車のレースなんかでは、1週ごとや区間ごとにラップがとられますよね。RTAでも同じようにラップをとることが出来ます。
でも、今回使うタイマーはPCのキーボードで操作するんですよ。ロード中にコントローラーから手を離してラップとって、急いでコントローラー持って操作して……ってめんどくさくないですか?

お察しの方もいらっしゃるかとは存じますが、なんとこちら、自動でラップとってくれる「AutoSplitter」という機能も搭載されちゃっています。

これにより、クラッシュNSTのRTAでは最初と最後以外タイマーの操作が要らなくなります。ラップのとり忘れなどが減るうえ、手が空くのでとても楽です。

ここまで読んでくれた方は、もうそんな便利なタイマーを使ってみたくてたまらなくなっているのではないでしょうか。

では、次項より導入手順の説明に入ります。
今回は1のAny%を想定してお話しますが、1・2・3のどのカテゴリーでもすぐ応用できると思います。

……あ、ちなみにですがこちらの記事は僕と同じくクラッシュNST走者、ぐにむすさんのnoteを結構パクってます。許可は貰いました!



【タイマーをダウンロードしよう】

まずは大元となるタイマーをダウンロードしましょう!

今回使うのは「LiveSplit」というタイマーです。日本語はサポートされていませんので英語ですが、難しい設定はそう無いので大丈夫だと思います。

① LiveSplit公式サイトにアクセスする

② 画面上部「DOWNLOADS」より、LiveSplit 1.x.xxをダウンロードする

画像1

③ ダウンロードしたzipファイルを展開し、その中にある全てを任意の場所にフォルダ作って入れておく(どこに作ったか覚えておいてくださいね)

④ このフェイズは終了!お疲れさまでした。なお、タイマーはフォルダ内の「LiveSplit.exe」で起動できます。


【CrashNSTLoadRemovalをダウンロード/導入しよう】

タイマー素材集めの長い旅は終わりを告げ、このダウンロードで最後となります。

今回はあくまで「クラッシュNSTを走るために」という名目なので、それ用にタイマーを設えていきます。

このフェイズは、タイマーを起動する前に行ってください。好奇心旺盛な方や起動チェックしたい方などがいらっしゃった場合、先に起動しても全然大丈夫です!が、下部手順を行ったらタイマーの再起動をよろしくお願いいたします。

このフェイズが終わったら、あとは実際にタイマーを起動し設定していく形になります。出来る限り詳しく書くつもりでいますので、詰まった際はゆっくり読み返して、それでもダメなようならご一報頂けると幸いです。

① CrashNSTLoadRemovalがあるページにアクセスする(なお、このような外部ソフトウェアなどは、そのゲームのSpeedrun.comResourcesにリンクがあることが多いです)

② 2.4 - Moreなんちゃらのところの下部、Assetsから上のdllファイルをダウンロードする

画像3

③ 先程ダウンロードし、任意の場所に保存したLiveSplitのフォルダを開く

画像3

④ 「Components」フォルダに、ダウンロードしてきたLiveSplit.CrashNSTLoadRemoval.dllを入れる

画像4

⑤準備完了!


【タイマーを起動しよう】

では実際にタイマーを起動しましょう!ここからは手順というよりも「ここ変えたかったらここ選んでね」の雑記みたいなものになるので、適宜不必要な部分は読み飛ばして大丈夫です。

ではタイマーを実際に起動しましょう。起動は先述の通り、フォルダ内「LiveSplit.exe」から。赤青緑のアイコンが目印かもしれません。

画像7


【初めての起動】

初めて起動した際は、以下の画像のような形で立ち上がります。

画像5

これはまだタイマーの中身(Splits)も、タイマーの見た目(Layout)も設定していない状態です。

今回、これらを「こう」します。

あ

なかなかいい感じでしょ?「こう」と「もしくはこう」の違いは、背景に画像を設定したか否かです。これらは同じ設定画面で2クリックで変更できるので、労力は実際変わらないと思っていいです。

なんで2枚の画像を並べたかというと、背景に画像を設定するかどうかは割と好みな部分があると思っていて……
硬派にタイマーのみを見せることも、好きな画像とかを貼って個性を出すこともできるとお伝えしたかったからです。自由度高めなので自分だけのタイマーを作って戦おう!

また、CrashNSTLoadRemovalを入れた状態での初回起動時、このようなウィンドウが出ることがあります。

画像8

これは、つまりアップデートがあるよということなので、大体Yesでいいです。


さて、では先述の「こう」「もしくはこう」のように中身(Splits)と見た目(Layout)を整えましょう。

この記事では、このあと設定方法について記述しますが、最後の方にGoogle driveで「こう」のSplitsとLayoutのファイルを置いておきます。ファイルを適用すれば人の使っている見た目を自分が使うことも出来るので、設定がめんどくさい方はどうぞ。適用方法もそちらに書いておきます。

余談ですが、LiveSplit内の用語などについてはこちらのブロマガなんかも参考になります。あくまでこの記事は導入手順なので、詳しい機能などはいくらか端折っています。



【タイマー設定① 中身を入れよう!Splits編】

タイマー上で右クリックをすると、このようなメニューが出てきます。

今回は一番上の「Edit Splits...」をクリックしましょう!

画像9

そうすると、こんな感じの画面が出てきます。

画像10

中身はここから設定します!

色々設定出来るところはありますが、とりあえず必要最低限の解説をします。まずは左の欄から。

Insert Above = 選択している欄のに新しいSegmentを入れる

Insert Below = 選択している欄のに新しいSegmentを入れる

Remove Segment = 選択しているSegmentを消去する

Move Up、Move Down = 選択しているSegmentを1段上に(下に)移動する

Comparisonはタイムの比較に関することなので、今はまだいいです。あと筆者があんまり分かっていないので……必要な方は先程のブロマガなどに詳しい説明が載っていますし、筆者が書くより有益でわかりやすい情報がネット上にはごまんとあるはずです……!探してみてね

ここでやることは、ステージ名を「Segment Name」に入れることです。

隣のSplit Timeはそのテイクの中での累計タイム、Segment Timeはそのテイクの中での区間ごとのタイム、Best Segmentは今まで出した区間の理論値です。これらは実際に走っているうちに蓄積していくものなので、入力の必要はないです。

注意すべきこととして、ステージ名は半角英数字で入力するのが大事です。これは、Load Removal並びにAutoSplitterの適切な挙動を維持するために必要です。

また、最後にまとめますが、RTAとしてプレイする場合は上記と同じ理由で英語版でプレイすることが求められます。画像認識を使う関係上、ロード画面の「Loading」の文字が「ロードちゅう」になったりするだけで適切に動かなくなります。

(2020/11/02追記)
Steam版クラッシュバンディクーを英語版でプレイする際の、言語変更の方法についてを記載していませんでした。長らく悩まれた方、検索の手間をとらせてしまって大変申し訳ありません。

画像32

まずはSteamのライブラリから、左の欄でクラッシュ・バンディクーNSTを選び、右クリックで「プロパティ」を選びます。

画像33

「言語」のタブで変更することができます。

また、Steam版以外のプレイヤーの方は、おそらくゲームではなく本体設定を英語に変えることで言語の変更が可能かと思います。


さて、Segmentの名前を画面上部でGame Nameを入れた場合、登録されているものであればRun Categoryもプルダウンメニューから選べるはずです。また、クラッシュNSTの場合Run Categoryが「1・2・3のどれか」しか選べず、Any%と100%の違いなどはそれらのちょっと下にある「Additional Info」から設定できます。

設定したものがこちらです。

画像12

画像12

今回Segment Nameに関しては英語版の名前を入れていますが、例えば最初のステージ「めざめのビーチ」を「mezame no beach」と入れていても全然大丈夫。先程申し上げた通り、半角英数字であれば問題はないです。

設定を終えると、こんな感じになると思います。

画像13

1のAny%は通るステージが全て一本道で決まっているので、通るステージすべてを記入します!先程も言いましたが、めんどくさい方にはあとでファイルそのまま渡します。大丈夫です。

それにしてもまだ味気ないので、レイアウトをいじくりましょう。

と、その前に、出来上がったSplitsは保存しておきましょう!Edit Splits...の3つ下、「Save Splits As...」から任意の場所に保存できます。タイトルなどを記入してあれば、保存する際名前は自動的についていると思います。これは変更してもいいですし、そのままでもいいです。lssというファイル形式で保存されますが、これはLiveSplitのSplitsということだと思います。


【タイマー設定② 見た目を変えよう!Layout編】

先程のようにタイマーを右クリックし、今度は中央ちょっと下の「Edit Layout」を選びましょう。

画像14

そうすると、こんな感じの画面が出てきます。

画像15

このウィンドウの左にあるプラスとマイナスのボタンから、機能を追加したり外したりします。

先に例として筆者が使っているレイアウトをご紹介します。

画像16

というのも、この辺は完全に好みの範疇であり、正解がないからです。自分が好きな見た目にしていきましょう!また、そのような理由から、筆者は筆者自身が使っている機能から適当にかいつまんで解説する形になります。出来ることはたくさんあるので、好きに弄ってみるといいと思います。

1個いいのが出来たらSplitsと同じく保存が出来るので、同じくタイマー上での右クリックから「Save Layout As...」を選びましょう。保存しておけば弄ったあとで「最初のが良かったな~」を減らすことが出来ます。

ちなみに、筆者のLayoutにはTimerとDetailed Timerの2つのタイマーが存在していますが、上部のTimerはリアルタイム、Detailed Timerはロードなしタイマーを測っています。TimerとDetailed Timerの違いは、区間タイムが表示されているか否かの違いとかです。(先述の「こう」「もしくはこう」で確認いただけると思います)

あ

まずはプラスボタン→Controlより、Crash NST Load Removalを入れましょう。これは先程ダウンロードしたアレです。アレを有効化しないことには始まりません。

画像17

この一覧にあるものはそれぞれドラッグ&ドロップで上下の位置を入れ替えられるので、一番下にでも入れておきましょう。

ここからは好みの範疇エリアですが、いくつか筆者が使っているものを書いておきます。

Timer→Detailed Timer = ちょっとだけ詳細なタイマーが表示されます。邪魔になったTimerはマイナスボタンで消しちゃいましょう。その代わりに置いておけば安心!

Other→Separator = 仕切り線を入れます。「こう」「もしくはこう」ではDetailed Timerの上下に1本ずつあるものがそうです。なお、上記の画像ではさらに上にもう1本あるように見えますが、これはPAPUPAPUとN.CORTEX (END)の間にまだセグメントが残っているからで、一番下まで進んでいけば自動的に消えます。(下記参照)

画像19


Informationより3つご紹介します。筆者がタイマーの下部に設置してるやつです。

Possible Time Save = SplitsのBest Segmentと自己ベスト時の記録を比較して、その区間でどれほど短縮出来るかを表示します。

LiveSplitは自己ベスト記録が自動で登録されていきますが、自己ベストのときに全ての区間で理論値が出ているとは限りません。そのため、「前の自己べスト記録だとここで30秒ミスったから、ミスらなければ30秒巻けるよ!」というのを表示してくれます。

Sum of Best Segments =  タイマー上の理論値の合計です。「Best Segment通りに進んだ場合、この記録が出るよ~」ということを表示してくれます。

Best Possible Time = 「そこからの」タイマー上の理論値の合計です。Sum of Bestと違うのは、「こっから理論値で行けば~」を表示してくれている点です。タイマーで前よりかなり遅かったとしても、ここが自己ベストより早ければ、まだ希望はあるかもしれないということです。


この3つのうち、特に注意してほしいのは「Best Possible Time」です。これ、この名前で存在しません

Informationより「Run Prediction」を追加し(自動でCurrent Paceという名前に変わります)、それをダブルクリックすることで設定画面を開きます。

画像20

こんな画面が出るので、画像のプルダウンメニューよりBest Segmentsを選ぶことでBest Possible Timeを見ることが出来ます。

上部にタブが出ていることで分かると思いますが、これらのレイアウトたちは設定画面で色んな設定が出来ます。

特にいじってて楽しいのはLayout(レイアウト全体)とSplitsですね。

画像21

Layoutタブ、一番上のBackgroundエリアからプルダウンメニューで「Solid」を選ぶことで「こう」、「Image」を選び任意の画像を設定することで「もしくはこう」の見た目になります。とってもかんたん

また、中央「Fonts」ではフォントを変えられたり、中央下部「Colors」では、タイムが遅いとき、早いとき、区間新記録が出たときの表示色を変えたりも出来ます。「Use Rainbow ~」にチェックを入れれば区間新記録が出たときに虹色に輝いてくれます。

Splitsタブでも出来ることはたくさんあります。例えば「Total Splits」の数値を変えると、タイマー上でセグメント何個表示するかが変えられます。ものにもよりますが、16個もなくていいんじゃないかな……?

「Split Height」ではそれぞれのスプリットの高さが変えられます。また、そのちょっと上にある「Display 2 Rows」ではSplitを二段に出来ます。Segment Nameが長いときなどに、タイムで見えなくなることが減ります。

「Accuracy」では小数点第2位まで表示することも出来るなど、設定項目は多岐にわたります。ぜひ理想を追い求めてください。

最後に、Timer→Timer。これは先程1回消しましたが、とりあえず追加して、ダブルクリックで開いて、Timing Methodを「Real Time」にしておいてください。
これをやったあとnoteを最後まで読んでいい感じに設定して走ることで、タイマー上にリアルタイムとロードなしタイムを同時に表示することができます。


さて、次項に移りますが、Layoutからやるという点は変わりません。画面はこのままでお待ち下さい。


タイマー設定③ 自動操作を設定しよう!Crash NST Load Removal編

おそらく最後の項目です。
実際にLoad Removalを動作させましょう!

まずは、「どのウィンドウがクラッシュNSTか」をRemovalくんに教えます。

先程のLayout画面でCrash NST Load Removalをダブルクリックし、設定画面を開きます。

画像22

こんな画面が出ると思います。

上部「Capture:」のところにはDISPLAY1とありますが、ここをクラッシュNSTに設定します。
クラッシュNSTを実際に起動した状態で、プルダウンメニューからクラッシュNSTを選びます。

画像23

実際のクラッシュNSTの画面は別にどうなっててもいいので、CrashBandicootNSaneTrilogy~を選びます。画像ではなんかいっぱいありますが、とりあえずCrashBandicootNSaneTrilogy~があればいいです。

そうするとこうなります。

画像24

大体の場合、これでOKです。
Nintendo SwitchやPS4、Xbox Oneなどでやっている方は、AmaRecTVならAmaRecTV、OBSならOBSなどをキャプチャーし、ピンクの枠があるところで枠をゲームに合わせましょう。(下部参照)
左上の角を左クリック&ドラッグで、右下の角を右クリック&ドラッグで移動させることが出来ます。

画像25

こんなかんじ。よく見ると左がちょっとキャプチャ出来てませんので、ホントはピッタリ合わせたほうがいいと思います。
とりあえずこれでLoad Removalは動くと思います。
出来なかったとしてもあとでこの画面戻ってくればキャプチャ範囲の設定をもう一度行えますし、AutoSplitterの設定にいきましょう。

AutoSplitterの設定です。
上部のSetupタブをAutoSplitterタブに変え、Enable AutoSplitterにチェックを入れます。

画像26

これだけです。

これだけとは言いましたが、一つ注意点があります。
その区間のロードの数に応じて右側のNumber of Loads per Splitの数を変えなければならないということです。

例えば、最初のN.sanity beachはステージ入場とステージ退場の2回のロードがありますが、ステージ入場の前にオープニングムービーがあります。オープニングムービーを飛ばした際にもロードがありますので、2のままだとオープニングムービーとステージ入場でラップがとられてしまい、適切に作動しません。この場合は「3」にすると良いです。

また、1のAny%においては、とかげで大ジャンプ(The Lost City)のみパーフェクトダイヤを取ることが推奨されています。このステージはタウナのボーナスステージとニトラス・ブリオのボーナスステージがありますので、それらの入場と退場で2回ずつロードが入ります。

なので、ステージの入場~退場の中に2回×2ボーナスのロードが入り、この区間は6に設定する必要があります。

これで大体の設定は完了です!あとはタイマー自体をちょちょいと設定してプレイできるようになりますよ!


タイマー設定④ 仕上げの最終調整編

ここではロードなしタイムの表示や操作方法を説明し、実際の本走に備えます。
また、僕の配るlssファイルとかの適用方法もここで説明いたします。


【操作方法編】

右クリックより、下から3番目「Settings」を選びます。

画像27

そうすると、こんなような画面が出てきます。(既に入っているのは筆者がいつも使っているキー配置です。)

画像28

上部のそれぞれの解説をします。

Start/Split = タイマーのスタートおよび、ラップをとるボタンです。僕はクラッシュNSTのNEW GAMEがEnterで押せるので、EnterでNEW GAMEを選択すると共にタイマーがスタート出来るようにしています。

Reset = リセットボタンです。最初からやりなおす際に使います。

Undo Split = Splitを一つ戻すボタンです。間違えてSplitボタンを押してしまったときなどに使います。

Skip Split = Splitを一つスキップするボタンです。間違えてUndo Splitしたときなどに、つじつまを合わせるために使ったりします。あとルート変えたのに前のタイマー使っちゃって混乱したときなどにも。

Pause = 一旦タイマーを止めるボタンです。ロード中にタイマーが止まるのは実質これをやっている感じなんですが、手動でやることはほぼないと言っていいでしょう。

Switch Comparison(Previous, Next) = タイマーの表示を、「自己ベスト」「理論値」「今までの平均」のループで変更してくれるボタンです。Previousはこれの反対のループです。

Toggle Global Hotkeys = グローバルホットキーをON/OFFに出来ます。後述しますが、このグローバルホットキーというのが大事な要素なので、設定してもいいかもしれません。僕は違うところで設定するので、誤爆防止で入れてないです。

これらを設定したら、次はロードなしタイム表示の設定をします。

タイマー上で右クリックし、Compare Againstから「Real Time」を「Game Time」に変えるだけです。

画像29

なんてかんたんなんでしょう。

最後に、グローバルホットキーについての説明をします。
これを履修すれば晴れて走れるはずです!

本来、このタイマーはタイマーのウィンドウがアクティブでないとキーボードを押しても作動しないようになっています。(文章打ってる途中にいきなり動いたりしても怖いですしね)

が、それをどんな場合でも動くようにしているのがグローバルホットキーです。これにより、クラッシュNSTをアクティブにしていてもタイマーのスタート/ストップが出来るということです。

これのON/OFFは、先程リアルタイムをロードなしタイムに変えた際のCompare Againstの上にControlというのがあるので、そこからGlobal HotkeysをONにするだけです!
操作設定のところでToggle Global Hotkeysを設定した人は、タイマーをアクティブにした状態でそのキーを押せばONになります。ON/OFFが一見分かりづらいので、筆者個人的には右クリックで設定するほうが好きです。頻繁に変えるものでもないですしね。


あ、lssファイルとlslのファイルを配布しておきます。
ダウンロードはこちら → Google Drive

導入は割とかんたんで、タイマー上で右クリック → 「Open Splits (Layout)」 → 「From File...」を押し、先程ダウンロードしたLSLファイル・LSSファイルを適用するだけです。

画像30

Open SplitsであればLSSファイル(赤青緑のアイコンのやつ)、Open LayoutであればLSLファイル(黒っぽいアイコンのやつ)を適用しましょう。そうすると、先述の「こう」と同じものが出来上がります。

また、ここまで読みながらやった方は問題ないと思いますが、LSLファイルはCrashNSTLoadRemovalをComponentsに入れる前に適用しようとすると、「CrashNSTLoadRemovalがないよ~」という注意書きが出て適用されないのでご注意ください。Componentsに入れてから再起動しよね


【最後に】

いかがでしたか?
ってまとめに言いたくなりますよね。

最後に、注意事項をまとめておきます。

・Segment nameは半角英数字で書く

・クラッシュNSTは英語版で起動する

・タイマーのスタートとストップだけは手動でやる(タイミングは後述)

・ランキングの記録提出はロードなしタイム換算なので、ロードなしタイムとリアルタイムをどちらも確認出来るようにしておく

・グローバルホットキーをオンにしておく

といった感じでしょうか。

タイマーのスタートとストップのタイミングは、NEW GAMEを選んでゲームが始まると同時にスタート、コルテックスに最後の一撃を当てたらストップです。

画像31

筆者の自己べのストップはこんな感じでした。ライフが減っていないように見えますが、当てた瞬間なので多分許されると思います。

多少タイミングがおかしかったとしても、記録の精査をしてくれるモデレーターの方が指摘してくれたりするので、あまりここを気にしすぎてミスるようなことがあると困りますし、心を安らかにプレイするといいでしょう。

以上で説明は終わりとしますが、改めて読み返してみて追記・修正があるようであればこっそりやっておきます。

ご連絡は筆者TwitterのDMなどまで!匿名がよければマシュマロ質問箱でも大丈夫です!よろしくおねがいいたします。

誰かのお役に立てますように。

この記事が気に入ったらサポートをしてみませんか?