20XX Training Hack Pack の最新バージョン 4.06 がリリースされました。
 攻撃ヒット時に、本来のふっとびの軌跡とベクトル変更後の実際のふっとびの軌跡を視覚的に表示してくれる「DI Draw」機能や、攻撃判定の色をID毎に異なる色にしてくれる「hitbox display IDs with different colors」などの新機能、フリーズしたりその他軽微なバグのあったステートセーブ&ロード機能の改善など、非常に便利になりました(なお、導入についてはこの記事では一切触れません。TMSO さんの簡易導入記事)。

「Replay recording & playback」機能が特にスゴイ

 新機能の中でも特に素晴らしく便利なものが「Replay recording & playback」機能で、これを使うと思った通りの行動を、ステートロード後に行わせることができます。
 Ver 3.02 で出来ていた、コマンド入力でCPU に一定の行動を繰り返させるものにとって変わる機能はそれ以降のバージョンでなくなりましたが、その上位互換にあたる機能です。
 ただ使い方をちゃんと理解しないと使いこなすのが難しいので、機能解説動画をみてある程度理解した使い方をこの記事にメモしておきます。

 まずは「基本的な機能」を全て理解した上でないと「オプション機能」を使いこなすのは難しいです(私自身完璧に理解していないと思います)。基本機能を理解しないまま先に進むとわけがわからなくなってしまうと思うので、基本機能を使いこなせるようになったらオプション機能を使おうとするのが良いと思います。

 なお、私自身理解が完璧ではないと自覚しているので、理解にズレがあったら(ある気がする、程度でも)コメントで指摘いただけると助かります。

 また、ある程度英語が分かる方は、一次情報の動画チュートリアル「20XX Hack Pack 4.06 – Save States/Replays Tutorial」を見るほうが得られるものが正確かつ多いかもしれません。

前提となる設定

デバッグメニューで下記の設定をしてあることが前提です。
デバッグメニュー > TRAINING CODES > IN-GAME CODE TOGGLES

  • 20XX TOGGLES: ON
  • DEBUG LEVEL: DEVELOP

前提となる知識

 十字右/左による State save/load ですが、ステートセーブが2つ作れるようになりました。
 State save major(十字右/左) と State save minor(A+十字右/A+十字左)の2つです。両者に違いは特になく(多分)、単に二つ保存できるようになったという認識でいいと思います。
 minor は A ボタンをおす関係上、ロードした瞬間にA入力をやめて次のフレームまでに入力をやめておかないと、A 入力が入ってしまうので、そのAがでない何かしらの行動中のセーブ/ロードか、デバッグポーズで 1F 毎に時間を進めているときのロードに使うのがいいかもしれません。

基本的な機能

操作情報メニュー

試合を開始します。
20XX TOGGLES 設定が ON であるならば、十字キー下で画面上にメニューが表示されます。

 青文字になっている所が選択中の項目で、操作はアナログスティックで行います。上下で選択項目の移動、左右でその項目の設定値の変更です。
 この操作中も画面上のキャラは動いてしまうので、スタートボタンを押して、ゲームをデバッグポーズした上で操作するのが良いです。

  • PLAYER:
    どのプレイヤーの設定メニューか。この項目は選択中でなくても、L/Rでも切り替えられます
  • CONTROLLED BY:
    そのプレイヤーの操作権を、どのコントローラポートが持つか。
    例えば、P1・P2両方とも「P1」に設定すれば、ポート1で行った操作が同時に両方のプレイヤーで行われるようになります。
    コントローラが一つしかなく、P2に操作記録・リプレイを設定したい場合に、一旦P1の操作権をポート1から外し、P2の操作権をポート1に渡して設定、操作記録・リプレイができたら、P1の操作権をポート1に戻して、操作をリプレイしているP2を使って練習、といったことができます
  • TYPE:
    そのプレイヤーの操作を、人間(=コントローラ)が行うか、CPU が行うか。
    プレイヤー2を CPU としてゲームを開始しても、後から P2 の TYPE を HUMAN に変えることでコントローラで操作を行えるようになります。
  • CPU TYPE:
    TYPE が「CPU」のとき、その CPU を動かす AI の種類を設定します。
    「20XX」はこの THP でデフォルトになっている無駄によく動く CPU 。
    その他は、トレーニングモードで設定できるものだったり、イベント戦用に用意されているものだったりです。ここでは割愛
  • 20XX CPU TYPE:
    CPU TYPE が「20XX」のときの設定。
    SHIELD-HOLD は、ただシールドを張りっぱなしにします(シールドが減らないようにするには A+十字下 です)。
    SHIELD-OOS は、ガードしたら最速(?)で何かランダムでシールドキャンセル行動をします。
    STAY は受け身などはするものの基本的になにもしません

<REPLAY INFO>

 リプレイ関連設定です。基本機能の説明では「REPLAY STATE」と、設定項目ではないですが表示の「CURRENT FRAME」「END FRAME」のみ説明します。

REPLAY STATE:

 OFF は、記録も再生も、特に何もしません。

RECORDING

 RECORDING は、この状態で次のフレームにすすむと、その瞬間を基準点「0」として、それからの 1F 毎の操作の記録を開始します(デバッグポーズ中のZで次のフレームにいくと、「CURRENT FRAME」と「END FRAME」が 0 になると思います)。
 OFF もしくは PLAYBACK に変更すると、「END FRAME」がその次のフレームで停止し、そのフレームで操作記録が終了したことになります。

PLAYBACK

 PLAYBACK は、RECORDING によって記録した操作を再生します。
 再生するのは、CURRENT FRAME が「0 ~ END FRAME の値」の間のときです。

 RECORDING を開始する直前にステートセーブを行っておくと、そのステートセーブの「CURRENT FRAME」は、操作記録開始が 0 なので、マイナスの値になります。
 例えば、ステートセーブを行った 10F 後に、「RECORDING」にして操作を記録し、記録が終わったら「PLAYBACK」もしくは「OFF」にします。ステートロードを行えば、「CURRENT FRAME」は「-10」になるはずです。操作記録の 0F 目が基準なので、そこからみて CURRENT FRAME は「-10」だということです。
 「PLAYBACK」にしてあれば、ステートロード後、CURRENT FRAME が -10 から 0 に近づいていき、0 になった時点で「RECORDING」のときに行った操作を「END FRAME」まで行ってくれます。

操作記録の上書き

 操作記録を、途中から変更したいときは、なんと操作記録を上書きして修正できます。

 まず、REPLAY STATE を「PLAYBACK」にし、メニューを十字下で閉じ、ステートロードをして、操作を再生させます。
 修正したいフレームが近づいてきたら、スタートボタンでデバッグポーズをします。Zボタンで 1F ずつ進めていき、修正したいフレームの 1F 前までいきましょう(そこまでいったら、使っていない方のステートセーブ(Major/Minor)を行っておくと、またミスったときに同じ地点にすぐ戻れるので便利です)。
 お目当てのフレームまできたら、十字下でまたメニューを出します。
 REPLAY STATE を「RECODRING」に変更すると、その次からの操作で記録されている操作を上書きすることができます。

実際にやってみる

 スピード優先でばーっと書いてるので結構分かりにくい説明になっているかと思います。
 大枠が掴めたら実際に以下の通りやって、その通りになることを確認してみましょう。
 確認できたら、こうしたらこうなるんじゃないか、と各自が思いつく通りにやってみて、理解が正しいかどうかも確認してみましょう。

※コントローラポートには、ポート 1, 2 の両方にコントローラが刺さっていて、プレイヤーは 1 と 2(どちらもフォックス)がステージ上に出現している状況の想定
※Y+十字下で、画面上部に技のモーション名と、そのモーションの現在のフレームを表示できるので、これを出していると操作記録がやりやすい

具体例

  1. 試合開始
  2. スタートボタンでデバッグポーズ
  3. 十字右でステートセーブ(パシュン、という音がする)
  4. Z を 9 回おして、ステートセーブ地点から 9F 時間を経過させる
  5. 十字下でメニューを出し、R で P2 のメニューに切り替える
  6. P2 のメニュー(前提:TYPEは「HUMAN」)で、REPLAY STATE を「RECORDING」に変えて、Zボタンを1回押すと、「CURRENT FRAME」「END FRAME」が 0 になることを確認する。
  7. 十字下でメニューを閉じる
  8. Z ボタンで進めながら、1F 毎の操作を行う(例えば、リフレクター→絶空→リフレクター絶空)
  9. 記録したい操作がおわったら、十字下で P2 のメニューを出して、REPLAY STATE を「PLAYBACK」にする【記録完了】
  10. 十字左でステートロードを行う(「CURRENT FRAME」が -10 になるはず)
  11. Z を 10 回押す(「CURRENT FRAME」は 0 になるはず)
  12. Z でフレームを進める毎に、記録した操作が行われるのを確認する
  13. 【通常速度での再生の確認】
  14. 十字左でステートロード
  15. 十字下でメニューを閉じる
  16. スタートボタンを押してデバッグポーズを解除する
  17. 操作が再生される
  18. ステートロードをする度に、10F 経過後記録した操作が行われる

操作の上書きの例

※上記の記録をした前提

「リフ→絶空→リフ→絶空」という操作記録を、「リフ→絶空→上スマッシュ」という操作記録に変更したいとする。

  1. デバッグポーズ
  2. 十字下でメニューを出して、REPLAY STATE が「PLAYBACK」なのを確認
  3. 十字下でメニューを閉じる
  4. 十字左でステートロード
  5. スタートでデバッグポーズを解除
  6. 操作が再生され、リフレクター→絶空の途中までいったら、再びスタートでデバッグポーズ
  7. Z ボタンで、上書きしたいフレームの直前まで進める(空中回避中着地モーション=10Fの最後のフレームまで)
  8. ※ここで、使っていない方のステートセーブを行っておくと、修正をやり直したいときにこのフレームまで簡単にもどってこれます
  9. 十字下でメニューを出し、REPLAY STATE を「RECORDING」に変更する
  10. 十字下でメニューを閉じる
  11. 上スマッシュ入力をしたまま、Z でフレームを進める
  12. 上スマッシュモーションが始まる。終わるまで Z でフレームを進める
  13. 十字下でメニューをだし、REPLAY STATE を「PLAYBACK」にする
  14. 十字下でメニューを閉じる
  15. スタートボタンでデバッグポーズを解除する
  16. 十字左でステートロードする
  17. 10 F経過後、フォックスは「リフレクター→絶空」のあと、上書きした「上スマッシュ」を行う。

オプション機能についてさらっと

 この機能の基礎中の基礎は以上です!

 ここでは解説しなかったオプション機能を上手く使うと、

  • ガードしたら、など条件となるあるモーションのあるフレームに達したら、記録した操作を行う(TRIGGER)
  • ステートロードを行わなくても同じ操作をずっと繰り返す(マルスの小ジャンプ→空中前2回→着キャン、をずっと繰り返させる、など)(LOOP)
  • 操作記録の間に、ランダムでちょっと遅らせるポイントを忍ばせる(ファルコの小ジャンプ後のブラスター入力をランダムなタイミングで行わせる)(RANDOM HOLD LAST)
  • 操作の再生が終わったら、自分でステートロードを押さなくても自動でステートロードが行われ、無限にその状況を繰り返せる(フォックスに上投げ→空中上されるのを無限に繰り返して、空中上1段目でずらす練習をする、など)(AUTO LOAD STATE)

といったことも行えます!
 また時間のあるとき(+自身の理解が深まったら)書こうと思います。忙しくてあまり時間がとれないので、もちろん先に書ける人がいたら是非書いて欲しいです!

 また、先述の通り指摘、または質問などがあれば、Twitterリプライではなく、この記事のコメントに書いてください(あとから見る人が同じ質問しなくて済みます)。

 では良い 20XX THP 4.06 ライフを。