水たまりは希望を写している

Android で Unity 製ゲームのフレームレート制限を回避する【UnityFPSUnlocker】

動くアプリと動かないアプリ

Unity 製アプリであれば動くはず……なんだけど、実際の所実際に使ってみてフレームレート制限がなくなるかどうかチェックしないと分からない。

  • 動作確認が取れたアプリ
    • ウマ娘 プリティーダービー / デレステ / 太鼓の達人+
  • 動作確認できなかったアプリ
    • プリンセスコネクト!Re:Dive / ワールドフリッパー

フレームレート制限を解除してもメモリ改ざんチェック等が行われて強制終了されてしまうような場合は正しく動作しない。

ここでは、ウマ娘 プリティーダービーを例としてフレームレートの制限を回避してみよう。

必要なもの

  • Android 端末 (Magisk で Root 化されていること)
  • Zygisk が有効な Magisk
  • Shamiko (Root 化を隠すために必要。Root 化を検知しないゲームならなくても良い)
  • UnityFPSUnlocker (zygisk_module_ で始まるファイルをダウンロードする)

Magisk モジュールのインストール

Shamiko と UnityFPSUnlocker をダウンロードして、Magisk アプリからインストールする。これで勝ったと思うなよー!

Shamiko の設定

Shamiko の設定をする。DenyList はオフにして、”DenyList を構成” をタップして Root 化検知を回避したいゲームにチェックを入れる。モジュール一覧で Shamiko を探し出して、説明文が “Shamiko is working as blacklist mode” になっているのを確認する。ゲームを開いて、Root 化が検知されることなく遊べたら OK。

UnityFPSUnlocker の設定

GitHub Releases から TargetList.json をダウンロードして、/data/local/tmp ディレクトリ1/data ディレクトリは内部ストレージの Android/data ディレクトリではないことに注意。ルートディレクトリにある /data のこと。にコピーする。必要に応じて設定する。

framerateゲームに設定するフレームレート (数値)。
delayゲームを起動してからフレームレートを設定するまでの秒数 (数値)。
normal_list対象となるゲームのパッケージ名 (文字列)。配列。
mod_list対象となるゲームのパッケージ名 (文字列)。配列。

mod_listnormal_list と違い、ゲーム側がフレームレートを変えようとするのをブロックして任意のフレームレートに書き換えてくれる。ゲーム中にフレームレートが変わるものは mod_list に追加する (ウマ娘もそう)。

設定が終わったら保存する。

アプリを起動して、delay 秒後に設定通りのフレームレートになれば成功!

最後に

無駄なフレームレート制限をするな😡 120 fps でゲームさせろ😡😡😡

  • 1
    /data ディレクトリは内部ストレージの Android/data ディレクトリではないことに注意。ルートディレクトリにある /data のこと。