技術的な話

NoxPlayerのスクリプトを微調整する

NoxPlayer上にある操作を記録しておいてそれを再生するスクリプトという機能を普段活用してアプリを自動で動かしたりしているのですが、アプリのアップデートでUIが大幅・微妙に変更になることによってスクリプトも修正しなければなりません。

再度同じ操作をするのは面倒だし、微妙な変更でイチから作成し直すなんて面倒なことはしたくない…と思ったので設定ファイルみたいなのないかなぁと思っていたら普通にインポート・エクスポート機能があるやないか…。

ファイル修正する上で気づいた点、ちょっとした楽ポイントを纏めていきます。

スクリプトはこんな機能

  • 自身でNox Playerを操作してその内容を記録する
  • 記録した操作を繰り返し実行可能
  • 倍速実行も可能

私はこれでアプリを自動操作したり、開発したアプリをテストしたり、色々活用可能です。

スクリプトファイルの所在

以下に記録したスクリプトファイル、設定ファイルがあります。
<User Name>は自身の環境に置き換えてください。

C:\Users\<User Name>\AppData\Local\Nox\record

AppDataというフォルダが表示されていない場合は下記設定から隠しファイルを表示するように設定してください。

個人的には以下理由によりエクスポート、インポート機能を使用するより、ここを直接操作した方がやりやすかったです。

  • インポート形式が7z形式なので一々圧縮しないといけない

7z形式を解凍、圧縮するには7zipという圧縮ツールがおすすめです。

https://sevenzip.osdn.jp/

スクリプトファイルの仕様

現在時点での仕様になるので変更になる可能性があることに注意してください。

ファイル構成は画像の通りで

  • UUIDのファイル名:実際のスクリプトファイル(中に操作内容が記録されています)
  • records: Nox Player上で設定した操作名等がjson形式で記載されています

recordsファイルについて

最初の要素のUUIDは、別ファイルのUUIDファイル名と一致している必要があります。
操作内容はこちらのファイルは関係ないですが、新たに操作を追加したい場合はUUIDを変更する必要があります。

{
    "e4ace5da13744f85934ddb9ed1e243bd": {
        "combination": "false",
        "name": "操作の記録1",
        "needShow": "true",
        "new": "true",
        "playSet": {
            "accelerator": "1",
            "interval": "0",
            "mode": "0",
            "playOnStart": "false",
            "playSeconds": "0#0#0",
            "repeatTimes": "1",
            "restartPlayer": "false",
            "restartTime": "60"
        },
        "priority": "0",
        "time": "1630765491"
    }
}

もし、操作を追加したい場合は設定ファイルをコピーして、UUIDを少し変更します。
追加で変更したUUIDのファイル名称のファイルを用意します。

下記の例ではUUIDの末尾を'a'に変更しています。

{
    "e4ace5da13744f85934ddb9ed1e243bd": {
        "combination": "false",
        "name": "操作の記録1",
        "needShow": "true",
        "new": "true",
        "playSet": {
            "accelerator": "1",
            "interval": "0",
            "mode": "0",
            "playOnStart": "false",
            "playSeconds": "0#0#0",
            "repeatTimes": "1",
            "restartPlayer": "false",
            "restartTime": "60"
        },
        "priority": "0",
        "time": "1630765491"
    },
    "e4ace5da13744f85934ddb9ed1e243ba": {
        "combination": "false",
        "name": "操作の記録2",
        "needShow": "true",
        "new": "true",
        "playSet": {
            "accelerator": "1",
            "interval": "0",
            "mode": "0",
            "playOnStart": "false",
            "playSeconds": "0#0#0",
            "repeatTimes": "1",
            "restartPlayer": "false",
            "restartTime": "60"
        },
        "priority": "0",
        "time": "1630765491"
    },
}

UUIDファイル名の操作ファイルについて

  • タップ操作行はMULTI:1:0です。
  • タップ位置はMULTI:1:0以降の823:422(Y座標:X座標)になります。
  • Y座標、X座標については画面右上を0:0としているようです。

タップ位置を微調整、変更したい場合はこちらの数値を変更することで即反映されます。

0ScRiPtSePaRaToR1280|720|MULTI:1:0:823:422ScRiPtSePaRaToR1594
0ScRiPtSePaRaToR1280|720|MULTI:0:6ScRiPtSePaRaToR1694
0ScRiPtSePaRaToR1280|720|MULTI:0:6ScRiPtSePaRaToR1694
0ScRiPtSePaRaToR1280|720|MULTI:0:1ScRiPtSePaRaToR1694
0ScRiPtSePaRaToR1280|720|MSBRL:0:0ScRiPtSePaRaToR1694
0ScRiPtSePaRaToR1280|720|MULTI:1:0:473:476ScRiPtSePaRaToR3170
0ScRiPtSePaRaToR1280|720|MULTI:0:6ScRiPtSePaRaToR3277
0ScRiPtSePaRaToR1280|720|MULTI:0:6ScRiPtSePaRaToR3277
0ScRiPtSePaRaToR1280|720|MULTI:0:1ScRiPtSePaRaToR3278
0ScRiPtSePaRaToR1280|720|MSBRL:0:0ScRiPtSePaRaToR3278

まとめ

ちょっとしたNox Playerのスクリプト編集にはこちらが比較的便利です。

-技術的な話
-,