TETRIS 99マージンタイマー自動開始装置の導入方法

この記事は、TETRIS 99マージンタイマー自動開始装置の取り扱い説明書です。 テキスト と同じ内容ですが、それには画像がないため、このページでは画像付きで説明します。


目次

動作要件

  • Windowsを搭載した配信用パソコン
  • HDMIキャプチャボード
    ※カメラなどでNintendo Switchの画面を直撮りしている映像には対応しません
  • OBS Studio (配信用ソフトウェア)
    ※表示言語を日本語にしてください。他の言語では動作しません
    ※OBS Studio以外の配信用ソフトウェア (Streamlabs OBS、XSplitなど) は対応していません
  • OBS Studioの表示言語が日本語であること

導入手順

TETRIS 99用マージンタイマーの導入

マージンタイマーを既に導入済の場合は、 マージンタイマーのソース名を

MarginTimerに変更してから自動開始装置の準備へ進んでください。

ただし、2024/06/15より前に導入したマージンタイマーは古いので、最新のマージンタイマーに更新する必要があります。 既存のマージンタイマーのファイルを最新版に上書きしてください。 タイマー消去のキー操作がESCからDelに変わったため、古いままだとタイマー消去が行えなくなるなど不具合が発生します。

1. マージンタイマーのダウンロード

Rawのコンテキストメニュー

https://github.com/sshock-tetris/Tetris99MarginTimer/blob/master/timer.html にアクセスする。 Rawを右クリックし、名前を付けて保存を選び、timer.htmlを適当な場所に保存する。

2. OBSにタイマーを追加

OBS - ソースの追加 - ブラウザ OBSを起動し、ブラウザソースを追加する。 ソースを作成/選択画面

タイマーの名称を MarginTimer にして、OKをクリックする。 (⚠スペル要注意)

'MarginTimer' のプロパティ画面

'MarginTimer' のプロパティが表示される。

ローカルファイルチェックボックスと各種設定

ローカルファイルにチェックを入れ、ローカルファイルの場所をソースのアドレスに保存したtimer.htmlにする。 幅は600以上を推奨。高さは60あれば十分。変更後、OKをクリックする。

3. タイマーの動作確認

OBS - ブラウザソース - コンテキストメニュー

追加したブラウザソースを右クリックし、[対話]メニューを選択すると'MarginTimer' の相互作用ウィンドウが表示される。 このウィンドウがアクティブ状態の時にキー操作を行うとタイマーが動作する。

'MarginTimer' との相互作用ウィンドウ

キー操作一覧

キー動作
Enterタイマー開始
Spaceタイマー停止・再開 (*1)
Delタイマー消去
12秒後にタイマー開始 (*2)
23秒後にタイマー開始 (*2)
34秒後にタイマー開始 (*2)

(*1) タイマーを再開できるのはタイマーを停止したときのみです。タイマーを消去した後は再開できません。
(*2) キーはゲーム開始時のカウントダウンの数値に合わせています。“Go"が表示される1秒間があるため、数字キーと実際の待ち時間が異なります。

自動開始装置は、この対話ウィンドウに擬似的にキー入力をさせて、 タイマー開始とタイマーリセット&消去を自動的に行うことで実現している。

なお、マージンタイマーはマージンに到達すると色が変わり、最終的に赤くなるようにできている。

マージンタイマーの時間経過と色一覧

「マージン」とは

試合の早期決着を目的に導入されているTETRIS 99固有のシステム。
試合開始から10分が経過すると、ライン消去時の相手に送るライン数から上乗せされるようになる。 30秒ごとに1ラインずつ上乗せされる。たとえば、10分なら+1ライン、11分なら+3ライン。
TETRIS 99ではせり上がり予告の最大ライン数が12ラインのため、15分が経過すると最大となる (1ライン + 11ライン = 12ライン)。相手に送る場合に限定されるため、自陣のせり上がり予告との相殺にはマージンは適用されない。

タイマーの導入ができたら、自動開始装置の準備へ進もう。

自動開始装置の準備

1. 自動開始装置のダウンロード

自動開始装置のReleasesページ

https://github.com/sshock-tetris/autoStartMarginTimer/releases から、最新バージョンの自動開始装置のzipファイル (※3つあるうち、一番上のautoStartMarginTimer_v○.○○.zip) をダウンロードする。

ウェブブラウザ Google Chrome を使用している場合

ダウンロードが終了した後、

このファイルは一般的にダウンロードされているファイルではなく、危害を及ぼす可能性があります。

と表示される場合がある。 ダウンロードバーでの警告表示

ダウンロードマネージャーでの警告表示

この場合は、保存を押して進めて欲しい。

ファイル保存時の確認メッセージ

保存を押したときに上図のような確認メッセージが表示されるが、かまわず続行するを押す。 これは、ダウンロード数が少ないだけで疑われるというChromeのお節介な機能の1つである。

上記URLは自動開始装置の正式な公開場所であり、そこからダウンロードしていれば問題ないはずである。 この圧縮ファイルは公開されたソースコードからGitHubの自動ビルド機能によってできたファイルであり、 危害を加える危険物が含まれないように考慮している。

ダウンロードしたファイルを右クリックしてプロパティを選び、 下のセキュリティ項目の許可するにチェックを入れてファイルのブロック解除を行う。 セキュリティ項目が表示されない場合はブロックが解除されているので、その場合は操作不要である。 自動開始装置ファイルのプロパティ画面

圧縮されているので、適当な場所に展開する。展開すると、次の3ファイルがある。

展開後のファイルリスト

2. OBSの準備

ソースに映像キャプチャデバイス(キャプチャボードの映像)がなければ追加する。

‘MarginTimer’ソースを右クリックし、対話メニューを選択する。 OBS - ブラウザソース - コンテキストメニュー

キャプチャボードの映像ソースを右クリックしてウィンドウ プロジェクター (ソース)メニューを選ぶ。 OBS - 映像ソース - コンテキストメニュー

それぞれ、'MarginTimer' の相互作用ウィンドウ、ウィンドウ プロジェクター (ソース) - 映像キャプチャデバイスウィンドウが表示されていることを確認する。

キャプチャ映像の上下左右に黒縁がある場合

キャプチャ映像の上下左右が黒く額縁状態なっている場合、 そのままではマージンタイマー自動開始装置が場面をうまく認識できないことがある。 以下の要領で額縁状態を解消させる。

  1. キャプチャボードの映像ソースを右クリックして、フィルタを選ぶ。
    映像ソースのフィルタウィンドウ(初期状態)
    映像ソースのフィルタウィンドウが表示される。
  2. ウィンドウ左下(エフェクトフィルタ)の+ボタンをクリックし、クロップ/パッドを追加する。
    エフェクトフィルタ追加 - クロップ/パッド
  3. フィルタの名前を付ける。 フィルタ名入力ダイアログボックス
  4. 追加したクロップ/パッドフィルタをクリックし、黒縁が表示されなくなるまで上下左右の数値を増やす。
    映像ソースのフィルタウィンドウ(クロップ/パッド選択済)

自動開始装置の操作方法

マージンタイマー自動開始装置 (autoStartMarginTimer.exe)を起動する。 起動すると、以下のようなウィンドウが表示される。

起動直後の自動開始装置ウィンドウ

状態

状態説明
[自動開始できません]まだ準備ができておらず、タイマーを自動開始できない。
自動開始装置を起動した時、および状態をリセットした時はこの状態となる。
準備完了。待機中…ゲームが始まるのを待っている。タイマーを自動開始できる状態。
タイマーが表示中の場合は、この状態になった時にタイマーを自動的に消去する。
マッチング/ゲーム開始準備中マッチング中、またはゲーム開始準備中を認識した。
READYマッチングが終わりREADYを認識した。
GO試合が始まり、タイマーを開始した。

OBSを管理者権限で起動している場合

マージンタイマー自動開始装置も管理者権限で実行する。

Windowsの仕様の問題で、管理者権限でなければOBSが起動していることを認識できない。

OBSを探すボタン

このボタンをクリックすると、自動開始装置がOBSのウィンドウ プロジェクター (ソース)ウィンドウと 'MarginTimer' の相互作用ウィンドウを探し、2つのウィンドウが見つかり次第場面認識を開始する。

ウィンドウ プロジェクター (ソース)ウィンドウのウィンドウサイズが変化し、 最大化ボタンと最小化ボタンが消え、外枠が黄色になるが、それらは正常動作である。

準備ができていない場合は、このようなエラーメッセージが表示される。 OBS検出エラーメッセージ

準備ができていれば、このボタンが無効化され、自動的に画像認識により場面を認識するようになる。 場面に応じてタイマーを開始したり消去したりするので、うまく認識できていれば以後操作は不要である。

ウィンドウ プロジェクター (ソース)ウィンドウの注意事項

  1. ウィンドウを画面外に移動してはならない。
    画面外に移動すると映像が更新されず、画像認識が正常に行われなくなる。 ウィンドウが背面に移動するのは問題ない。
  2. コンテキストメニュー(ウィンドウを右クリックした時に表示されるメニュー)のうち、 ウィンドウをコンテンツに合わせるを選択してはならない。

タイマー手動スタートボタン

OBSとの連携ができている状態でこのボタンを押すと、タイマーを手動で開始することができる。 これはタイマーが自動的に開始しないなどのトラブルが発生してタイマーを手動で開始する必要がある場合や 動作テストのためのボタンで、通常は使用する必要はない。

状態をリセット

試合が始まったのに場面を認識できずにタイマーが始まらない、マッチング中の画面を正しく認識できない などの症状を見かけた時は、マージンタイマー自動開始装置の状態のリセットを試してほしい。

自動開始装置のリセット

タイトルバーを右クリックすると、状態をリセットメニューがあるので、それを選択する。 マージンタイマー自動開始装置の状態に関係なく起動直後の状態に戻る。

「状態をリセット」の状態とは自動開始装置のことを指し、マージンタイマーのことではない。 つまり、「状態をリセット」を行っても、表示されているマージンタイマーはそのまま表示されたままとなることに注意する。 マージンタイマーの表示を消したい場合は、'MarginTimer' の相互作用ウィンドウをアクティブ状態にしてからDelキーを押す。

エラーメッセージ

OBSを探すを押したとき

OBS検出エラーメッセージ

自動開始装置に必要なOBSの準備ができていない。特に、以下の点をよく確認する。

  • ウィンドウ プロジェクター (ソース) を表示しているか? 特に、ソースであることを確認する。
  • MarginTimerのスペルが間違っていないか?
  • OBSの表示言語が日本語になっているか?
  • OBSが管理者権限で動作している場合、自動開始装置も管理者権限で動いているか?

タイマー手動スタートを押したとき

対話ウィンドウ未検出エラーメッセージ

先にOBSの準備をする。
※タイマー手動スタートボタンは、OBSの準備ができるまでは無効化されているので、 このメッセージを見ることはまずないだろう。旧バージョンの時の名残である。

Q & A

ゲームが始まっても状態が"準備完了。待機中…“から進みません。

以下、ご確認ください。

  1. 正しいウィンドウ プロジェクターを表示していますか?
    オーバーレイが含まれた映像など、ゲーム映像でない場合は認識できません。
  2. ゲーム映像の色が反転、もしくはグレースケールになっていませんか?
    Switchの設定で色設定を変更している場合は認識できません。元の設定に戻してください。
  3. キャプチャボードの映像の上下左右に黒縁がありませんか?
    額縁状態に縮小されている場合は額縁状態を解消するよう調整してください。
  4. OBSを探す時に、何らかの問題でウィンドウプロジェクターのウィンドウサイズが変化しなかった場合も同様に場面の認識ができません。 この現象が発生した場合は、作者までご連絡ください。
  5. ウィンドウ プロジェクター ウィンドウを画面外に移動していないか確認してください。

想定外のところでタイマーが動いてしまいます。

マージンタイマー自動開始装置は「マッチング中」または「ゲーム開始準備中」の表示部分を色で判断する仕様です。 実際のゲーム画面でなくても(録画であっても)マッチング中などの画面が映ればタイマーが動きます。

たとえば、Switchのアルバムから静止画や動画を再生した場合、 実際のゲーム画面と区別がつかないのでタイマーが誤動作することがあります。

誤動作した場合は、タイマー状態のリセットを試してください。

ウィンドウ プロジェクター (ソース)ウィンドウや対話ウィンドウを閉じてしまった場合はどうする?

ウィンドウを閉じたことを自動開始装置が検知し、状態が[自動開始できません]に戻ります。 この時、無効化されていたOBSを探すボタンが再び有効になります。 ウィンドウプロジェクター ウィンドウや対話ウィンドウをもう一度開いて、OBSを探すボタンを押してください。

ゲームの音は場面認識に関係ありますか?

無関係です。映像さえあれば無音でも問題なく使用できます。

自動開始装置のOBSの準備後にマラソンやCPUバトルをやっても大丈夫?

問題ありません。

ホーム画面に戻っても大丈夫?

まだ部屋に入っていなければ問題ありません。 部屋に入ってから試合が始まるまでの間は、誤作動の原因となるため、できる限り避けてください。

前述の通り、マージンタイマー自動開始装置は「マッチング中」または「ゲーム開始準備中」の表示部分を色で判断する仕様です。 そのため、それらの表示中にホーム画面に戻ると、マージンタイマー自動開始装置はマッチングが終わり試合が開始していると誤認識します。 また、部屋に入った直後にホーム画面に戻り、その間に試合が始まっていた場合も、同様の理由でマージンタイマーは動作しません。

対応しているモードは?

モード対応備考
TETRIS 99
TETRIS 99 VIP (Invictus)
チームバトル
もちよりバトル動作未確認。「ゲーム開始準備中」の表示がなければ動作しないと思います
シェアバトル×動作未確認。他のモードとは異なる画面構成のため、動作しない可能性が高い
CPUバトル×「マッチング中」の表示がないため
マラソン×時間が右側に表示されているのでこのタイマーの出番はありませんよね? : )

v1.12以下からv1.13以上にアップデートしましたが、マージンタイマーが消えなくなりました。

自動開始装置のv1.13のアップデートと同時に、マージンタイマーも更新があります。 マージンタイマーが古いままだと、タイマーが消えない現象が発生しますので、更新をお忘れなく。

サポート

マージンタイマーの導入に関して質問、うまく動作できないなどは、 sshock_tetrisにDMやメンションなどで連絡してください。

マージンタイマー自動開始装置のバグ報告は、Issuesまで。

ただし、個人で気ままにやっているため、サポートできる範囲には限界があります。必ずしも対応できるとは限らないことをご理解ください。