nox - 41semicolon/41semicolon.github.io GitHub Wiki

はじめに

Nox 上での操作を自動化をさせたい(例:ゲームの各種ルーティン)。いくつか方法を調べた結果をまとめる。これは、一般に マクロ作成 とかスクリプト作成 と呼ぶらしい。

概要

3つの選択肢がある。

  • 仮想キーマクロ: Ctrl+1 もしくは「仮想キー」アイコン押下
  • スクリプトレコード: 「スクリプトレコード」アイコン押下
  • nox_adb.exe: \Path\to\Nox\bin\ にインストールされているプログラム

仮想キーマクロは キーボードショートカットのような機能。例えば「キーボードの A を押下する」と 「座標(123, 234) をタップする」が実行される。スクリプトレコード は 一連の動作を定義し それらを必要な時に呼び出す。例えば「ここをタップしてちょっと待ってから あそこをタップして あっちからこっちにドラッグして ここをタップ」という操作を 実際にやるとそれが記録され、後からそれを何回も呼び出せる。nox_adb は Nox 用の Android SDK Bridge の略。パスを通せば コマンドプロンプトから使える実行ファイルで、 nox_adb shell input touchscreen tap 418 205 を実行すると、起動中の Nox の座標(418 205)がタップされる。

使い分けのイメージ。「使い捨てでいいので サクッと作れてサクッと実行」するのには スクリプトレコード機能で十分。「微調整もしつつ 長く使いたい」という用途には、仮想キーマクロが最適。「画像認識や 条件分岐などの制御ロジックを使った複雑な操作」をしたいならば、adb を使うしかない。

スクリプトレコード

直観的に使えるので言うことはない。

作ったスクリプトをエクスポートして、7zipで解凍するとテキストファイルでスクリプトを読むことができ、微調整してからインポートすることも可能であるが、目で見るには少し辛い。そこまでやるなら、後述の仮想キーマクロの形に翻訳した方が後のためになる。

スクリプトの文法は非公開だが、以下を参考に解読できる・・・かも:

仮想キーマクロ

Ctrl+1 でパレットを開く。キーパッド(Aのアイコン)とキーエディット(</>のアイコン)をよく使う。後者の方が高機能。

キーパッドは単なる ショートカット である。

キーエディットが、命令を記載する プログラミング言語 とみなせる。作るのが結構めんどくさいので、労力がペイするかに注意。スクリプトレコードでやる操作をこの形式にすると、非常に調整がしやすくなる。

nox_adb

UWSC等 自動化ツールの制御スクリプトから nox_adb を呼び出すことで、複雑な制御構造や画像認識と連携できる。以下の記事が参考になる: