RTA タイマーの自動操作を導入したい!

RTAツール

RTA を行う際にプレイに集中するためだったり、手動でタイマー操作するよりも計測のブレを抑えられる場合があるなどの理由で、タイマー操作を自動化するツールがあります。

タイマー操作の自動化で主に使われているツールが 4 つあります。

  • Auto Splitter(オートスプリッター)
  • RunLeash(旧 AutoSplit Helper)
  • Video Auto Splitter
  • AutoSplit(オートスプリット)

この記事ではこれらのツールの選び方や導入の手順を紹介します。
(Windows 環境を前提としています。)

名前が似ているけどそれぞれ別のツールなので混同しないように注意しましょう。

頭に置いておいて欲しいこと

完璧な設定にするのは難しい

いずれのタイマー操作を自動化するツールにおいても、そのゲームタイトル・カテゴリのルールを完璧に満たしたタイミングでタイマー操作できるとは限りません。

  • タイマー操作のタイミングを検知する仕組み上の制約があります。
  • ルールがタイマー操作の自動化を考慮しているとは限りません。
  • 自動化ツールを使用しても計測ブレを完全になくすことは非常に難しいです。

設定が難しい場合は運用でカバー

完璧な設定にするのは難しいことを理解したうえで、完璧なタイミングでの自動操作を追及するのもよいと思いますが、運用でカバーするという手もあります。

  • スタートやストップのタイミングがズレる分だけ計測したタイムを修正する。
  • タイマーによってはスタート時のタイムを調整する機能があります。

ここでの設定手順はあくまで一例

詳細な導入手順はゲームタイトル・カテゴリごとに異なるため、ここで説明する導入手順はあくまで一例です。

それぞれの自動化ツールは記事執筆時点での最新バージョンを使って動作を確認していますが、バージョンによってはツールの画面や設定項目などが記事と異なる可能性があります。ご了承ください。

どれを選べばよいの?

フローチャートで選ぶ

大まかな流れ

  1. まず始めに、そのゲーム・カテゴリにおいてタイマー操作自動化ツールについての指定があるかを確認します。
  2. 指定がない場合、PC ゲームであればまずはメモリ監視方式の Auto Splitter を検討します。
  3. その次に画像認識方式のツールの中から選びます。

    1. シンプルな機能で十分で、英語でも大丈夫なら Autosplilt を選びます。
    2. 複雑な制御をしたくて、タイマーが LiveSplit で、LiveSplit 内部のクラスに直接アクセスする必要がある場合は Video Auto Splitter を選びます。
    3. それ以外は RunLeash(旧 AutoSplit Helper)がお勧めです。

フローチャート

導入手順の説明へジャンプ

Auto Splitter(オートスプリッター)の導入手順へジャンプ
Autosplit(オートスプリット)の導入手順へジャンプ
Video Auto Splitter の導入手順へジャンプ
RunLeash(旧 AutoSplit Helper)の導入手順へジャンプ

比較表で選ぶ

全体の比較

まずは 4 つのツールのおおまかな比較をしてみます。

ツールAuto SplitterRunLeashVideo Auto SplitterAutoSplit
おすすめ
順位
1. おすすめ234
適用ゲーム
範囲
狭い
PC ゲーの
一部
広い
ゲーム画面が
認識できれば
広い
ゲーム画面が
認識できれば
広い
ゲーム画面が
認識できれば
導入難易度低い中間中間~高い
自分で設定すると
難易度が高い
中間
ソフト
ウェア
種類
LiveSplit の
標準機能
アプリケーション
(要タイマー)
LiveSplit の
プラグイン
アプリケーション
(要タイマー)
検知方式メモリ監視画像認識画像認識画像認識
タイマー
操作方法
直接操作ホットキー送信
or
LiveSplit 連携
直接操作ホットキー送信
or
LiveSplit プラグイン
日本語対応英語のみデフォルトで
日本語対応
英語のみ英語のみ
比較のポイント
検知方式の違い

検知方式で大きく分けると、メモリ監視方式と画像認識方式の 2 つがあります。

  • メモリ監視方式
    現時点では Autosplitter(オートスプリッター)一択で、適用できるゲームの範囲は一部 PC ゲーのみと狭いものの、導入の難易度は最も低いです。
  • 画像認識方式
    3 つの選択肢があり、適用できるゲームの範囲はツールからゲーム画面が認識できれば何でも可ですが、導入の難易度は中~高です。
タイマーの選択肢

タイマーの機能の一部として提供されている自動化ツールもあるため、どの自動化ツールを導入するかによってタイマーの選択肢が変わってきます。

  • LiveSplit 一択のツール
    Auto Splitter(オートスプリッター)と Video Auto Splitter は LiveSplit の中で動くため、使用するタイマーは必然的に LiveSplit となります。
  • タイマーを選べるツール
    RunLeash(旧 AutoSplit Helper)と AutoSplit(オートスプリット)はタイマーにホットキーを送信することでタイマーを操作するため、ホットキーに対応したタイマーであれば好きなタイマーを選ぶことができます。
日本語対応

この中では RunLeash(旧 AutoSplit Helper)のみが国産のツールで、日本語の公式ドキュメントがあり、日本語でのサポートを受けることができます。

画像認識方式での自作スクリプト

スクリプトの自作がほぼ必須だったり自作スクリプトが任意で使用できるタイプの画像認識方式の自動化ツールでは、画像の一致度をトリガーとした単純なタイマー制御だけでなく、スクリプトによる複雑な制御やタイマー制御以外の自作機能を実現できます。

  • Video Auto Splitter
    元からユーザー側が作ったスクリプトによってタイマー操作の制御を行う仕様のため、誰かが完成済みの設定ファイルを配布しているようなケースでないなら、基本的には自分でスクリプトを作ります。
  • RunLeash(旧 AutoSplit Helper)
    v1.96 からスクリプト機能が追加され、必要に応じてスクリプトによるタイマー操作の制御などを行うことができます。

似た立ち位置の RunLeash と AutoSplit の詳細な比較

画像認識方式の中では RunLeash(旧 AutoSplit Helper)と AutoSplit(オートスプリット)がほぼ同じ位置づけにあるため、この 2 つについてもう少し詳細な比較をしてみます。

ツールRunLeashAutoSplit
概要機能が豊富シンプル
UI設定項目が複数画面に
渡っている
ほぼ1画面にまとまっている
(一部設定は別画面)
キャプチャ
対象
ウィンドウ
デスクトップ領域
仮想カメラ
ウィンドウ
デスクトップ領域
仮想カメラ
画像取得 スクショ取得
画像のトリミング
映像をさかのぼってスクショ
スクショ取得
(トリミング不可)
透過画像画像編集アプリが必要画像編集アプリが必要
画像一致
条件設定
区間ごとに設定一括設定
個別設定はスクショ画像の
名前編集で対応
複数画像による
ラップ判定
複数の画像で同時監視して
分岐したり組合わせて判定可能
いちどにひとつの
画像のみ
比較画像の
位置
固定座標
変動座標
固定座標
比較のポイント
多機能な RunLeash、シンプルな AutoSplit
  • RunLeash(旧 AutoSplit Helper)
    多機能で、設定はほぼ UI の中で行うことができます。
    ただし、複数画面に渡って設定を行う必要があるため、初めて触るときは、やりたいことに対してどの画面でできるのか迷うことがあるかもしれません。
  • AutoSplit(オートスプリット)
    ほぼ必要最低限の機能に絞られていて、ほぼ一画面で設定を行うことができます。
    (現時点の最新バージョンでは一部の設定項目が別画面にあります)
    ただし、画像ファイルの名前を編集するなど AutoSplit(オートスプリット)の UI からはできない設定もあり、やや不親切に感じます。

導入手順の説明へジャンプ

数字はお勧め順です。

  1. Auto Splitter(オートスプリッター)の導入手順へジャンプ
  2. RunLeash(旧 AutoSplit Helper)の導入手順へジャンプ
  3. Video Auto Splitter の導入手順へジャンプ
  4. Autosplit(オートスプリット)の導入手順へジャンプ

その他のタイマー操作自動化ツール

ここまでで紹介したツールの他に、特定のゲームタイトルに特化したタイマー操作の自動化ツールもあります。

スーパーマリオ64

スーパーマリオ64 の場合は専用の Autosplit64 というアプリケーションがあります。
スーパーマリオ64のRTAタイマーの使い方(LiveSplit、AutoSplit64)」『こんてんつこうかい』

それぞれの導入手順

Auto Splitter(オートスプリッター)の導入手順

  • バージョン
    この記事では LiveSplit ver1.8.26 にて動作を確認しています。
    バージョンによって異なる場合がありますが、ご了承ください。
  • タイマー
    Auto Splitter(オートスプリッター)は LiveSplit の標準機能であり、使用するタイマーは必然的に LiveSplit となります。
  • 制御ファイルが必要
    Auto Splitter(オートスプリッター)の本体は LiveSplit に標準で付属していますが、ゲームタイトルごとに専用の制御プログラム(.asl ファイルか .dll ファイル)が必要です。
    この制御プログラムのことを Auto Splitter(オートスプリッター)と呼ぶ場合もあります。
  • ツールとゲームの関係
    Auto Splitter(オートスプリッター)は PC のメモリに書き込まれたゲームの情報を監視することでタイマー操作の判定をしています。
    そのため、ゲームが PC ゲーであり、ゲームと LiveSplit の両方を同じ PC で起動する必要があります。

必須アプリケーション・ソフトウェア

  • LiveSplit
  • 制御プログラム
    制御プログラムの詳細は次の導入手順にて説明します。

導入手順

注意
手順の中で設定の保存については基本的に触れませんが、必要に応じて適宜保存しながら進めましょう。

Auto Splitter(オートスプリッター)は 2 通りの導入方法があります。

  1. ラップ表設定画面からの導入
    データベースから制御プログラムを入手
  2. レイアウト設定画面からの導入
    自分で制御プログラムを入手

最初に「ラップ表設定画面からの導入」を試して、これでダメなら「レイアウト設定画面からの導入」を試すとよいです。

その 1. ラップ表設定画面からの導入
  1. LiveSplit 本体を右クリック → Edit Splits でラップ表の設定画面を開きます。
  2. ゲームタイトルを入力します。

    この時、タイトルはデータベースに登録されているタイトルと一致する必要があるため、基本的に英語タイトルを入力します。
  3. Activate ボタンを押します。

    Activate ボタンが押せない場合はこの画面から Auto Splitter(オートスプリッター)を導入できないので、その 2. の方法を試してください。
  4. ゲームによってさらに設定が必要な場合がありますが、ここでは説明しないので各自で調べてください。
  5. OK ボタンを押してラップ表の設定画面を閉じます。
  6. ゲームをプレイしてタイマー操作の条件を満たすと自動的にタイマー操作が行われます。

ラップ表設定画面から導入する場合の注意点

  • 制御ファイルの保存場所
    この方法で Auto Splitter(オートスプリッター)を導入した場合、LiveSplit\Conponents フォルダに制御プログラム(.asl ファイルか .dll ファイル)が自動的にインストールされます。
  • Auto Splitter(オートスプリッター)の設定の保存
    この方法で Auto Splitter(オートスプリッター)を導入した場合、Auto Splitter(オートスプリッター)の設定はラップ表と同じファイル(.lss ファイル)に保存されます。
  • データベース
    この方法で導入できるのは LiveSplit のデータベースに制御プログラムが登録されているゲームタイトルのみです。
    データベースに登録されていない場合は、その 2. の方法を試してください。
その 2. レイアウト設定画面からの導入

まず Auto Splitter(オートスプリッター)の制御プログラム(.asl ファイルか .dll ファイル)を入手して、次に LiveSplit での設定を行います。

制御プログラムの入手

Auto Splitter(オートスプリッター)の制御プログラム(.asl ファイルか .dll ファイル)を入手します。
制御プログラム(.asl ファイルか .dll ファイル)が配布されている場所はゲームタイトル・カテゴリによって異なるため各自で調べてもらう必要がありますが、代表的な配布場所は次の場所です。

  • Speedrun.com のゲームタイトルページ
    主に Resource タブ、Guides タブ、Forum タブ
  • そのゲームタイトルを扱った Discord サーバ内
    Speedrun.com のゲームタイトルページに Discord サーバへのリンクがある場合もありますが、それとは別に日本人コミュニティによる Discord サーバがある場合もあります。
  • GitHub
    使われている言語が asl のものを検索。
  • その他、制御プログラム製作者個人個人による配布
    X(旧 Twitter)、note、ブログ、ホームページ、その他

入手した制御プログラム(.asl ファイルか .dll ファイル)は各自で分かりやすい場所に保存しましょう。
LiveSplit のラップ表データ(.lss ファイル)やレイアウトデータ(.lsl ファイル)などと同じフォルダに保存しておくと分かりやすいかと思います。

LiveSplit での設定
  1. LiveSplit 本体を右クリック → Edit Layout でレイアウト編集画面を開きます。
  2. + → Control → Scriptable Auto Splitter を選択し、レイアウトに追加します。
  3. Layout ボタンを押します。
  4. Scriptable Auto Splitter タブを開きます。
  5. Path 欄で制御プログラム(.asl ファイルか .dll ファイル)を指定します。
  6. ゲームによってさらに設定が必要な場合がありますが、ここでは説明しないので各自で調べてください。
  7. OK ボタンを押して Scriptable Auto Splitter の設定画面を閉じます。
  8. OK ボタンを押してレイアウト編集画面を閉じます。
  9. ゲームをプレイしてタイマー操作の条件を満たすと自動的にタイマー操作が行われます。

この方法で Auto Splitter(オートスプリッター)を導入した場合、Auto Splitter(オートスプリッター)の設定はレイアウトの設定と同じファイル(.lsl ファイル)に保存されます。

制御ファイルを自分で作るという選択肢

制御ファイルがなくて Auto Splitter(オートスプリッター)が導入できない場合、他の自動化ツールの導入を検討するのもひとつの選択肢ではありますが、制御ファイルを自分で作るという選択肢もあります。

もし制御ファイルの作成にご興味があれば、作り方を解説した記事をご確認ください。

RunLeash(旧 AutoSplit Helper)の導入手順

  • バージョン
    この記事では RunLeash V1.95 にて動作を確認しています。
    バージョンによって異なる場合がありますが、ご了承ください。
  • タイマー
    別途タイマーアプリケーションが必要で、ホットキー操作に対応したタイマーであれば好きなものを選べます。
    なお、RunLeash(旧 AutoSplit Helper)には標準で LiveSplit と連携する機能が用意されています。
  • ツールとゲームの関係
    RunLeash(旧 AutoSplit Helper)は画像認識によりタイマー操作するタイミングを判定して、ホットキーを送信することでタイマーを操作するアプリケーションです。
    そのため、RunLeash(旧 AutoSplit Helper)とタイマーを同じ PC で起動し、RunLeash(旧 AutoSplit Helper)がゲーム画面 or 仮想カメラを認識できる必要があります。

必須アプリケーション・ソフトウェア

  • RunLeash(旧 AutoSplit Helper)
  • お好きなタイマー
    推奨は LiveSplit
  • 仮想カメラ(これは必須ではなく推奨)
    推奨は「OBS Studio 標準の仮想カメラ」あるいは「OBS Studio + OBS VirtualCam」

    • OBS Studio
      OBS Studio ver26.0 から標準で仮想カメラ機能があり、これを使用できる場合もあります。
    • OBS VirtualCam
      OBS VirtualCam は OBS Studio のプラグインで、OBS Studio のバージョンによってインストール手順が変わるので注意。
      詳細は RunLeash のドキュメントをご覧ください。

PC ゲーの場合は RunLeash(旧 AutoSplit Helper)が直接ゲーム画面を認識することもできますが、非 PC ゲーの場合はゲーム画面を PC に取り込む必要があります。

導入手順

注意
手順の中で設定の保存については基本的に触れませんが、必要に応じて適宜保存しながら進めましょう。

タイマーの設定
  1. ラップタイムを計測したい区間の数に合わせてラップ表を作ります。
  2. ホットキーの設定をします。
    タイマーが LiveSplit の場合は RunLeash(旧 AutoSplit Helper)に連携機能があるため、ホットキー設定は必須ではありません。

ここではタイマーを設定する具体的な操作手順の説明はしないので、詳細は各自で調べてください。

RunLeash(旧 AutoSplit Helper)の設定

具体的な手順はゲームタイトルごとに変わってくるので、ここで説明する手順はあくまで一例です。
具体的な手順は RunLeash(旧 AutoSplit Helper)の公式ドキュメントや具体例のリンク先を参考にしてください。

  1. File → プロファイルを新規作成 からプロファイルの作成画面を開きます。
    プロファイルは RunLeash(旧 AutoSplit Helper)の設定一組分のようなものです。
  2. 任意のプロファイル名を入力します。

    プロファイルはゲームタイトル・カテゴリごとに分かりやすい名前を付けるとよいです。
  3. OK ボタンを押して、プロファイル名を確定します。
  4. 画面右下の設定ボタン、あるいは Tool → メイン設定画面を開く で設定画面を開きます。
  5. General タブを開きます。
  6. 画面キャプチャ方式の設定をします。
  7. 必要に応じて、自動化の対象で Reset にチェックを入れます。
  8. ゲーム画面のウィンドウをキャプチャする場合は Screen Capture タブを、仮想カメラをキャプチャする場合は Virtual Capture タブを開きます。
  9. キャプチャ設定でゲーム画面のウィンドウ or 仮想カメラを指定します。
  10. ゲーム画面のウィンドウを指定した場合は クロップ設定を初期化する ボタンを押します。
  11. 必要に応じてクロップの設定ボタンを押してクロップ範囲を調整します。
  12. Hotkey/LiveSplit タブを開きます。
  13. タイマーと連携します。

    タイマーが LiveSplit の場合は「LiveSplitと連携する」にチェックを入れれば OK です。
    他のタイマーの場合は、タイマー側で設定したホットキーに合わせて Hotkey(Timer) のホットキーを設定します。
  14. OK ボタンを押して設定画面を閉じます。
  15. Tool → プレビュー/テンプレート画像の作成でプレビュー画面を開きます。
  16. タイマー操作したいタイミングごとに Capture ボタンを押してゲーム画面 or 仮想カメラをキャプチャします。

    最初にリセット用のキャプチャをすることに注意しましょう。
    リセット、スタートと全てのラップをするタイミングでキャプチャします。
    「Capture ボタン」→「範囲選択」の順に操作します。
  17. Back ボタンでメイン画面に戻ります。
  18. 開始ボタンを押して監視スタートします。
  19. ゲームをプレイしてタイマー操作の条件を満たすと自動的にタイマー操作が行われます。
  20. 必要に応じて遅延時間や待機時間を調整します。

導入手順の具体例

Video Auto Splitter の導入手順

  • バージョン
    この記事では Video Auto Splitter ver0.5.2.3 にて動作を確認しています。
    バージョンによって異なる場合がありますが、ご了承ください。
  • タイマー
    Video Auto Splitter は LiveSplit のコンポーネント(プラグイン)であるため、使用するタイマーは必然的に LiveSplit となります。
  • ツールとゲームの関係
    Video Auto Splitter は画像認識と制御プログラムにより LiveSplit を操作する、LiveSplit のコンポーネント(プラグイン)です。
    そのため、Video Auto Splitter から仮想カメラが認識できる必要があります。
  • プロファイル
    Video Auto Splitter では画像認識のための画像と制御プログラムをひとまとめにしたファイルをプロファイルと呼びます。
    設定済みのプロファイルが公開されている場合もありますが、それほど数が多くないため、ここでは自分でプロファイルを用意する前提で説明します。

必須アプリケーション・ソフトウェア

  • LiveSplit
  • Video Auto Splitter
  • 仮想カメラ
    OBS Studio + OBS VirtualCam や XSplit

    • OBS Studio
      OBS Studio ver26.0 から標準で仮想カメラ機能があり、これを使用できる場合もあります。
    • OBS VirtualCam
      OBS VirtualCam は OBS Studio のバージョンによってインストール手順が変わってくるので注意。
      詳細は RunLeash のドキュメントを参考にしてください。
    • XSplit

導入手順

注意
手順の中で設定の保存については基本的に触れませんが、必要に応じて適宜保存しながら進めましょう。

具体的な手順はゲームタイトルごとに変わってくるので、ここで説明する手順はあくまで一例です。
具体的な手順は公式ドキュメントや具体例のリンク先を参考にしてください。

1. Video Auto Splitter のインストール
  1. 配布されている .zip ファイルをダウンロードします。
  2. .zip ファイルを展開します。
  3. 展開した中身全部を LiveSplit\Components フォルダに入れます。
2. プロファイルの作成

Video Auto Splitter では画像認識のための画像と制御プログラムをひとまとめにしたファイルをプロファイルと呼びます。

2-1. 作業フォルダ

画像認識のための画像や制御プログラムはこの中に保存します。

作業フォルダおよびその中に保存するファイルの名前は半角英数字のみを使用します。

  1. 作業フォルダを用意します。
2-2. 画像認識のための画像
  1. スクリーンショットの取得

    タイマー操作したいタイミングごとに仮想カメラの画面のスクリーンショットを取ります。
    Video Auto Splitter そのものにはスクリーンショットを取る機能はないので、仮想カメラと同じ映像のスクリーンショットを各自で取得します。
    画像のファイル名は任意の名前で OK ですが、画像定義ファイル・制御プログラムを作る際に必要になるので分かりやすい名前にしておくとよいです。
  2. 必要に応じてトリミング

    画像をトリミングしたい場合は画像編集アプリケーションを使ってトリミングします。
  3. 画像の座標とサイズをメモ

    トリミング範囲の元々の左上の座標とトリミング後の画像のサイズをメモしておきます。
    トリミングしていない場合は、左上の座標は (0,0) です。
  4. 画像ファイルは「作業フォルダ」に保存します。

    画像の数が多い場合などは、必要に応じて作業フォルダの中に任意名のフォルダを作ってその中で画像を管理してもよいです。
2-3. 画像定義ファイル

画像に関する情報をまとめて管理するためのファイルです。

  1. テキストエディタで新規テキストを作成します。
  2. 次のテンプレートをテキストにコピペします。
    <?xml version="1.0" encoding="utf-8"?>
    <GameProfile xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <!-- ここにゲームタイトルを入力 -->
        <Name>Game Title</Name>
        <Screens>
        <Screen>
            <Name>Game</Name>
            <Geometry>
            <!-- 仮想カメラの出力サイズを入力 -->
            <Width>1280</Width>
            <Height>720</Height>
            </Geometry>
            <WatchZones>
            <!-- ここから個別の監視領域の定義 -->
            <WatchZone>
                <!-- 監視領域の名前 -->
                <Name>aaaa</Name>
                <Geometry>
                <!-- メモした座標とサイズ -->
                <X>000</X>
                <Y>000</Y>
                <Width>00</Width>
                <Height>00</Height>
                </Geometry>
                <Watches>
                <Watcher>
                    <!-- 同じ座標・サイズの比較画像のまとまりの名前 -->
                    <Name>bbbb</Name>
                    <WatchImages>
                    <!-- 同じ監視領域の画像の数だけ WatchImage タグ以下をコピー -->
                    <WatchImage>
                        <FilePath>**.**</FilePath>
                    </WatchImage>
                    <WatchImage>
                        <FilePath>**.**</FilePath>
                    </WatchImage>
                    </WatchImages>
                </Watcher>
                </Watches>
            </WatchZone>
            <!-- ここまで個別の監視領域の定義 -->
            <!-- 必要な数だけ WatchZone タグ以下をコピー -->
            <WatchZone>
                <!-- 省略 -->
            </WatchZone>
            </WatchZones>
        </Screen>
        </Screens>
    </GameProfile>
    
  3. 最初の Name タグにゲームタイトルを入力します。
  4. Screen タグ内の Geometry タグ内の Width と Height に仮想カメラの出力サイズを入力します。
  5. 監視領域に名前を付けて、WatchZone タグ内の Name タグに入力します。
  6. WatchZone タグ内の Geometry タグ内の X と Y にトリミング前の元々の比較画像の左上の座標を入力します。
  7. WatchZone タグ内の Geometry タグ内の Width と Height にトリミング後の比較画像のサイズを入力します。
  8. 同じ座標・サイズの比較画像のまとまりに名前を付けて、Watcher タグ内の Name タグに入力します。
  9. WatchImage タグ内の FilePath に比較画像のファイルパスを入力します。
    この画像定義ファイルからの相対パスを入力することに注意。
  10. 同じ座標・サイズの比較画像の数だけ WatchImage タグを中身ごとコピーして、それぞれの FilePath を書き換えます。
  11. 必要な数だけ WatchZone タグの中身ごとコピペして、手順 5.~10. を繰り返します。
  12. 画像定義ファイルは「作業フォルダ」の直下に保存します。
    任意の名前の .xml ファイルとして保存します。

既存の画像定義ファイルを見ると、Watcher タグ内に Equalize タグと ErrorMetric タグがあるものもありますが、筆者自身はよく分かっていないので各自で調べてください。

2-4. 制御プログラム

タイマーの自動操作を制御するためのプログラムです。

注意
ここでテンプレートとして示している制御プログラムはあくまでサンプルです。
制御プログラムの内容はやりたいことによって変わってくるので、必要に応じて各自で調べてください。

Auto Splitting Language という C# に似た言語で記述します。
この言語の詳細は Auto Splitter のドキュメント(英語資料)や .asl ファイルの作り方を解説した記事を確認してください。

  1. テキストエディタで新規テキストを作成します。
  2. 次のテンプレートをテキストにコピペします。
    /***************************************************
    一致率の取得
    
    現在の画像一致率(0-100 の double 型)
    features["画像ファイル名"].current
    
    ()で指定したミリ秒前の画像一致率(0-100 の double 型)
    features["画像ファイル名"].old((int) ms)
    ***************************************************/
    
    // true を返すとタイマースタート
    start
    {
        // スタート用のしきい値
        // 最初は仮の値にしておき、後で適切な値に書き換えます
        var threshold = 100.0;
        
        return features["スタート用の画像"].current > threshold;
    }
    
    // true を返すとタイマーリセット
    reset
    {
        // リセット用のしきい値
        // 最初は仮の値にしておき、後で適切な値に書き換えます
        var threshold = 100.0;
        
        return features["リセット用の画像"].current > threshold;
    }
    
    // true を返すとラップ、最後の区間にいる時はタイマーストップ
    split
    {
        // ラップ用のしきい値
        // 最初は仮の値にしておき、後で適切な値に書き換えます
        var threshold = 100.0;
        
        // .old() の値もここでは仮の値で、後に動作確認しながら調整します
        return ((features["ラップ用の画像"].current  >  threshold) &&
                (features["ラップ用の画像"].old(500) <= threshold));
    }
    
  3. start, reset, split 各ブロックの features で対応する画像ファイル名を指定します。
    画像ファイル名のみ(拡張子は不要)を入力することに注意。
  4. この時点では適切なしきい値(一致とみなす基準)が分からないため、仮の値 100.0 にしておきます。
    この仮の値は後で適切な値に書き換えます。
  5. 制御プログラムは「作業フォルダ」の直下に保存します。
    任意の名前の .asl ファイルとして保存します。

features のメソッドは .current と .old( ) 以外にもありますが、ここでは説明しません。
詳しくは Video Auto Splitter のソースコードを確認してください。
おそらく、ここで public double のメソッドが利用できるメソッドだと思われます。

2-5. .vas ファイルの作成
  1. 作業フォルダを .zip ファイルに圧縮します。
  2. 圧縮した .zip ファイルの拡張子を .vas に変更します。
    この .vas ファイルをプロファイルとして使用します。
3. LiveSplit の設定
  1. LiveSplit 本体を右クリック → Edit Layout でレイアウト編集画面を開きます。
  2. + → Control → Video Auto Splitter を選択し、レイアウトに追加します。
  3. Layout ボタンを押します。
  4. Video Auto Splitter タブを開きます。
  5. Game Profile 欄でプロファイル(.vas ファイル)を指定します。

    プロファイルに誤りがあった場合はエラーメッセージが表示されるので、メッセージ内容に従って修正します。

    誤りがあってもエラーメッセージが出ない場合もあるので注意。
    Auto Splitter(オートスプリッター)を作る際に利用するデバッグ用アプリケーションを使えば、こちらにはエラーメッセージが表示されるのでエラーに気付けるかもしれません。
  6. Capture Device に仮想カメラを指定します。
  7. Video Auto Splitter タブの中の Scan Region タブを開きます。

    この画面に仮想カメラの映像が表示されない場合は、LiveSplit を再起動してやり直してみてください。
  8. Reset ボタンを押します。
  9. 監視範囲が適切かを確認し、必要に応じて調整します。

    オレンジ色の部分が監視範囲、水色の部分が比較画像範囲だと思います。
  10. Video Auto Splitter タブの中の Features タブを開きます。
  11. それぞれの画像の一致率の値が表示されます。

    タイマー操作の条件を満たすようにゲームをプレイしながら、一致率の値を観察します。
    タイマー操作をしたいタイミングで一致率が「ある値」より高くなり、かつ、タイマー操作したくない時は一致率が「ある値」より低い、そのような「ある値」を決めます。
  12. 観察した一致率の値を参考にして決めた「ある値」を、制御プログラムの仮の一致率に上書きします。
  13. 制御プログラムを上書き保存します。
  14. 改めて .vas ファイルを作成します。
  15. タイマー操作の条件を満たすようにゲームをプレイしながら、動作確認します。
  16. OK ボタンを押して Video Auto Splitter の設定画面を閉じます。
  17. OK ボタンを押してレイアウト編集画面を閉じます。
  18. ゲームをプレイしてタイマー操作の条件を満たすと自動的にタイマー操作が行われます。

導入手順の具体例

複雑な制御の例

AutoSplit(オートスプリット)の導入手順

  • バージョン
    この記事では AutoSplit v2.2.0 にて動作を確認しています。
    バージョンによって異なる場合がありますが、ご了承ください。
  • タイマー
    別途タイマーアプリケーションが必要で、ホットキー操作に対応したタイマーであれば好きなものを選べます。
    なお、AutoSplit(オートスプリット)には LiveSplit と連携するための LiveSplit 用コンポーネント(プラグイン)が用意されています。
  • ツールとゲームの関係
    AutoSplit(オートスプリット)は画像認識によりタイマー操作するタイミングを判定して、ホットキーを送信することでタイマーを操作するアプリケーションです。
    そのため、AutoSplit(オートスプリット)とタイマーを同じ PC で起動し、AutoSplit(オートスプリット)がゲーム画面 or 仮想カメラを認識できる必要があります。

必須アプリケーション・ソフトウェア

  • AutoSplit
  • お好きなタイマー
  • OBS Studio(必須ではないけど、あった方が良さそう)

PC ゲーの場合は AutoSplit(オートスプリット)が直接ゲーム画面を認識することもできますが、非 PC ゲーの場合はゲーム画面を PC に取り込む必要があります。

ゲームによっては AutoSplit(オートスプリット)から直接ゲーム画面のウィンドウをキャプチャしようとしても上手くいかない場合があります。
そのような場合は、OBS Studio などのアプリケーションを通してキャプチャすると上手くいくかもしれません。

導入手順

注意
手順の中で設定の保存については基本的に触れませんが、必要に応じて適宜保存しながら進めましょう。

タイマーの設定
  1. ラップタイムを計測したい区間の数に合わせてラップ表を作ります。
  2. ホットキーの設定をします。
    AutoSplit はホットキーにテンキーが使えないとの情報がありますが、修正済みのようです。
    もしテンキーでは反応しなかった場合は他のキーを設定してみましょう。キー設定の参考

ここではタイマーを設定する具体的な操作手順の説明はしないので、各自で調べてください。

AutoSplit の設定

具体的な手順はゲームタイトルごとに変わってくるので、ここで説明する手順はあくまで一例です。
具体的な手順は AutoSplit の公式ドキュメントや具体例のリンク先を参考にしてください。

  1. 画像認識に使う画像を保存するフォルダを作成します。

    このフォルダの中に AutoSplit の設定ファイル(.toml ファイル)を保存すると上手く動かないようなので注意しましょう。
    ゲームタイトル・カテゴリごとに別々のフォルダを用意するとよいです。
  2. Split Image Folder で画像認識に使う画像を保存するフォルダを指定します。
  3. Select Region ボタンか Select Window ボタンを押してキャプチャ対象を指定します。

    仮想カメラを使う場合の設定手順については後述します。

    キャプチャのプレビュー画面が固まった場合は、File → Settings で設定画面を開いて、Capture Settings タブの Capture method でキャプチャ方法を変えてみます。
  4. タイマー操作したいタイミングごとに Take Screenshot ボタンでスクリーンショットを作成します。

    最初にラップ用のスクリーンショットを取り、最後にリセット用とスタート用のスクリーンショットを取ると、次の工程で楽になります。
    スクリーンショットを取るチャンスが一瞬しかない場合などは、ゲーム画面を録画しておいて動画編集アプリケーションを使ってその瞬間のスクリーンショットを作るなど、工夫が必要な場合があります。
  5. スタートの判定に使う画像の名前を「start_auto_splitter.(拡張子)」に変更します。
  6. リセットの判定に使う画像の名前を「reset.(拡張子)」に変更します。
  7. ラップの判定に使う画像の名前が 001 から始まる連番になるように編集します。
  8. 画像全体ではなく画像の一部だけで比較したい場合は、画像編集アプリケーションを使って透過画像を作成します。
  9. File → Settings で設定画面を開きます。
  10. Hotkeys タブを開きます。
  11. ホットキーを設定します。

    タイマーで設定したホットキーと同じキーを設定するように注意しましょう。
  12. ×ボタンで設定画面を閉じます。
  13. Start Auto Splitter ボタンを押すと監視状態になります。
  14. ゲームをプレイしてタイマー操作の条件を満たすと自動的にタイマー操作が行われます。
  15. 必要に応じて遅延時間や待機時間を調整します。

    全ての画像に対して一括で変更したい場合は設定画面から変更し、画像ごとに別々の設定にしたい場合は画像ファイル名を編集します。
仮想カメラを使用する場合の設定手順

仮想カメラを使用する場合、手順 3. の部分を次の手順に差し替えてください。

  1. File → Settings で設定画面を開きます。
  2. Capture Settings タブを開きます。
  3. Capture method で Video Capture Device を選択します。
  4. Capture device で使用したい仮想カメラを選択します。
  5. ×ボタンで設定画面を閉じます。

導入手順の具体例


さいごに

この記事を執筆するにあたりご協力いただいたみなさま、ありがとうございました。

特に、RunLeash(旧 AutoSplit Helper)の開発者でもあるレモングラス様には筆者からお願いして記事の一部を監修していただきました。
筆者に足りない知識を補っていただくなどしてくださり、非常に助かりました。ありがとうございました。

各ツールの公式サイトおよび公式ドキュメントにあたるページ、GitHub のページ、note のページ、youtube のページにつきましてはリンクフリーのページであると見なしてリンクさせていただきました。

なにかありましたら、お手数おかけしますがこの記事の筆者 Kuhaku_玖白 までご連絡いただきますようお願いいたします。

2024/11/16 追記分について

この記事を書いた当初の想定よりもはるかに多くのかたにご利用いただいているようで、嬉しい限りです。

前半のツールの選び方の部分があまりにも文字ばかりなことがずっと気になっていたため、フローチャートを追加しました。
これまでの比較表もそのまま残しているので、お好きな方を利用していただければと思います。

また、後半の各ツールの導入手順の部分にも少しだけ追記をしており、わずかながらも記事の利便性を向上できたのではないかと思います。

今後ともご活用いただければ幸いです。

コメント

タイトルとURLをコピーしました