- 1.はじめに
- 2.マイコンボードの配線、フォームウェア導入
- 3.キャプチャボードの選定
- 4.Nx Macro Controllerのインストール
- 5.Nx Macro Controllerの設定
- 6.映像の取り込み
- 7.映像を720×480で取り込む方法
- 8.おわりに
1.はじめに
この記事は Pokémon Past Generation Advent Calendar 2023 の255日目の記事です。
ここ最近では、ポケモン3世代の自動化プログラムが大量に作られており、それに伴いGC自動化を導入している方が着々と増えているのを感じています。
自動化ツールは画像認識など汎用的な機能を備えたPoke-ControllerとNx Macro Controllerが使われることが多く、Poke-Controllerを主軸に置いた導入記事はジュナリさんが公開して下さっていますが、Nx Macro Controllerの導入・設定についても解説しておくべきだと感じたので、今回の記事で紹介させていただきます。
私自身、Nx Macro Controller用の自動化プログラムを数多く公開しており、最近ではプログラムについて質問されることが増えてきました。その内の多くは「解像度が合わなくて画像認識がうまくいっていない。」という内容ですので、対処法についても紹介します。
2.マイコンボードの配線、フォームウェア導入
まずは、GCを操作するマイコンボードの配線及びフォームウェアの設定です。(要はシリアル信号をGCコントローラーとして認識させるための準備です。)
こちらについてはジュナリさんのPoke-Controller導入記事の「必要な機材等(緑文字はリンク付き)」の「2.操作関連(マイコン等)」で紹介されているものを購入し、「導入手順」の「2.操作側の配線」、「3.ファームウェアの導入」をもとに配線&フォームウェア書き込みすればよいです。
ただし、「1.映像出力関連」はPoke-ControllerとNx Macro Controllerで違ってくる部分もあるので、次項で解説します。
3.キャプチャボードの選定
画像認識が必要となる他人が作成した自動化プログラムを動かすには、ツールに出力する解像度を合わせる必要があります。例えば私が作ったプログラムを動かす場合、720×480で映像を取り込む必要がありますが、種類によっては映像が引き延ばされるなどして、うまく認識できない場合があります。
情報を持っているキャプチャーボードの仕様をまとめましたので、自分に合わせたものを選定して下さい。
GV-USB2
HDMIではなくアナログ出力のキャプボです。コンバーターが不要となりますので、USB3.0 Capture + GCPlugを買うよりも安く済みます。やはりHDMI出力に比べて、画質は落ちますが、画像認識がうまくいかなかったという話はほぼ聞きません。また、S端子ケーブル(500円くらい)を使えば多少は画質を上げれます。
問題点としてはPoke-Controllerには直接映像を出力できないため、OBS-Cameraを通す必要がありラグが生じます。(OBS-Cameraについては後述。)
ジュナリさんのストーリー自動化では問題なく動きますが、他のプログラムでもうまくいく保証はありません。Nx Macro Controllerだけ使うのであれば気にならないです。
USB3.0 Capture
ジュナリさんの記事で紹介されている格安キャプボです。Poke-Controllerを動かす場合であれば問題はありませんが、Nx Macro Controllerとはあまり相性が良くありません。
こちらのキャプボはNx Macro Controllerに映像を直接取り込むと映像は引き延ばされてしまいますので、一般的な720×480で想定している自動化プログラムを使おうとすると、画像認識がうまくいかなくなります。
OBS-Cameraを使えば解像度を720×480に直してから取り込むことができますが、映像にラグが生じるため、私の作成したプログラムが正常に動作しない場合があり、その場合は待機時間に余裕を持たせるなど、各自での修正が必要になります。(正直、Nx Macro Controllerで使うにはオススメしません。)
GC553
Nx Macro Controller、Poke-Controller共に直接映像を所得でき、低遅延で画質も良い素晴らしいキャプボです。GC自動化に使うにはオーバースペックすぎるかもしれませんが、お金に余裕がある方にはオススメです。私は古いモデルのGC551(現在は生産終了)を使っており、こちらも両対応できるキャプボとなります。中古でも良いという方はコチラも候補に上がるかもしれません。個人的には高価なキャプボは自動化で動かすには勿体ないので、使うとしてもGC551かなと思っています。
GV-USB3
こちらもNx Macro Controller、Poke-Controller共に直接映像を所得できるキャプボです。GC553ほど性能は高くありませんが、こちらも画質が綺麗で良いキャプボです。ただ、GC自動化で使うにはやはりオーバースペックかなと思います。
※ 他にもNx Macro Controller、Poke-Controllerの両方で既存のプログラムを問題なく動かせるキャプボがあれば、ぜひとも教えて下さい。情報をお待ちしております。
4.Nx Macro Controllerのインストール
自動化プログラムを実行するNx Macro Controllerについては、開発者である、ぼんじり様の記事の「2)ダウンロード」の項からダウンロードできます。
記事内の必要環境に記載されている内容は「Switch自動化」を想定したものですので、「CH552-SERIAL」や、「Bluetoothドングル」を用意する必要はありませんので、ここではツールのダウンロード&インストールだけすれば大丈夫です。
5.Nx Macro Controllerの設定
インストール後すぐにツールを使うことができますが、事前にやるべきだと感じる設定を紹介します。
LINE Notifyトークンによる通知
Nx Macro ControllerではLineNotifyコマンドを使うことで、自分のLINEに通知することができます。プログラムの終了や、進捗状況を確認するのに便利な機能です。
設定の手順としては以下のLINE Notify公式サイトにアクセスし、通知させたいLINEにログイン&連携します。その後、マイページに移動し、ページ下部の「トークンを発行する」を選択します。
その後、トークン名を指定し,グループを選択すると発行することができます。
発行したトークンを「ツール」→「オプション」→「環境設定」にある「LINE Notifyトークン」の欄に入力すればOKです。
フォーカス合わせ
プログラムの実行中に実行しているコマンドにフォーカスを合わせる機能です。この機能を有効にすると、実行中のコマンド(グレーで着色されている行)に合わせて、自動でスクロールしてくれます。
「ツール」→「オプション」→「環境設定」にある「実行中の行にフォーカスを合わせるを選択する」にチェックを入れるだけでOKです。
6.映像の取り込み
こちらはジュナリさんの記事の「1.映像出力側の配線」を参考に配線します。キャプチャーボードが変わっても、つなぎ方は基本的に変わりませんが、GV-USB2はHDMIに変換しないため、コンバーターは不要です。
配線が終わったら、赤枠部分からキャプチャーボードを選択して、接続を押せばツールに取り込みができます。マイコンの接続は緑枠から可能、自動化プログラム(.nxc)の読み込みは青枠の「ファイル」を選択して、「マクロの読み込み」から可能です。
7.映像を720×480で取り込む方法
USB3.0 Captureなどのキャプボを使用して、直接720×480で映像を取り込めない場合の手順となります。(問題なく取り込める方は作業不要です。)
なお、この方法を使うと、画像認識はうまくいきますが、OBSを経由するため、ラグが生じるので注意です。
OBSのダウンロード
OBSは以下のサイトよりダウンロードできます。(筆者は古いバージョンを使用しているので、若干画面に差異があるかもしれません。)
OBSの設定
手順としてはまず「ソース」の「+」をクリックして、「映像キャプチャデバイス」を選択します。
デバイスはNx Macro Controllerに読み込ませるキャプチャーボードを選択してOKを押します。すると映像をOBSに取り込むことできます。
次に右側の「設定」から「映像」タブを開きます。そこから「基本(キャンバス)解像度」および「出力(スケーリング)解像度」を720×480に設定します。(キャンバスを右クリック+出力サイズ変更(ソースサイズ)の方が楽かも?)
次に「仮想カメラ開始」をクリックして、OBSの出力をカメラ映像として認識させます。
カメラ映像として認識できるようにしたら、Nx Macro Controllerで「OBS-Camera」を選択します。これで720×480で映像を取り込めますが、うまく映像を送れないという方は次に説明する方法を試してみて下さい。
仮想カメラで映像を取り込めない場合
新しいバージョン(ver28.0以降)で仮想カメラを使ってうまくいかないという方はOBSに「VirutualCam」のプラグインを入れる or 古いバージョンのOBSを使って、VirutualCamを使うことでうまくいく可能性があります。(私もこのパターンです。)
プラグインを入れる場合の参考記事または、古いOBSのダウンロード先のリンクを貼りましたので、こちらの方法を試してみてください。
OBSにプラグインを入れる
Ver27.2.4のOBSダウンロード
プラグインまたは古いバージョンのOBSインストール後、「ツール」→「VirutualCam」から「OBS-Camera」を選択して「Start」を押せばOKです。Nx Macro Controllerで映像が映れば成功です。
8.おわりに
以上となります。自動化導入で苦戦している方の助けになれば幸いです。何か不明点がありましたら筆者のXアカウント(@Natu5307051)を送っていただければと思います。
また、ポケモン3世代に自動化プログラムは下記のサーバーに集約されていますので、自動化を動かしてみたいという方は是非ともご参加下さい。