UWSCを使ってエルミナージュ DS Remixを自動化してみた

Tips

はじめに

ニンテンドーDS用ゲームソフト『エルミナージュ DS Remix ~闇の巫女と神々の指輪~』は、ウィザードリィライクな硬派ダンジョンRPGとして知られています。
キャラ育成の自由度が非常に高く、やり込み要素も膨大ですが――その分、「経験値稼ぎ」や「レベル上げ」といった単純作業に膨大な時間を要します。

そこで今回は、Windows上で動作する自動化ツール UWSC を活用し、エミュレータ上で戦闘を自動化するスクリプトを作ってみました。
UWSC自体の導入や基本的な使い方については、以前の記事をご参照ください。

エルミナージュ DS Remix向け自動戦闘スクリプト

前提環境

今回のスクリプトを動かすための環境は以下の通りです。

  • エミュレータ:melonDS
  • UWSC:最新版(フリー版でOK)

なお、エミュレーターはmelonDS以外でも、エルミナージュ DS Remixが正常に動作するものであれば問題ありません。

自動戦闘スクリプトの概要

今作成したスクリプトは、非常にシンプルです。
停止するまでAボタンを連打し続ける だけの内容になっています。

想定している使いどころは、たとえば以下のような場面です。

  • 「記憶された歴史」で登場する ドラゴンケンタウロス2世 を延々と狩るとき
  • 経験値がカンストしたキャラを宿屋でレベルアップさせるとき

こうした単純な繰り返し作業を、放置状態で進められるようになります。

実際のスクリプト

DIM sleepTime_KeySend = 0.00001  // スリープ時間
DIM circleBottom = "VK_Z"        // Aボタン(Zキー)

ACW(GETID("melonDS 1.0","Qt683QWindowIcon"),1215,0,706,1129,0)  // ウィンドウをアクティブ化
// 停止するまでキー連打
WHILE TRUE
    KBD(circleBottom, DOWN)
    SLEEP(sleepTime_KeySend)
    KBD(circleBottom, UP)
WEND

Aボタンはキーボードの「Z(VK_Z)」に割り当てています。
連打の間隔は sleepTime_KeySend の値を調整することで制御可能です。
環境によっては、0.001~0.01秒程度にすると安定する場合もあります。

おわりに

実際にスクリプトを動かしてみたところ、戦闘を完全に放置でこなしてくれました。
『エルミナージュ』では獲得経験値の上限が 4,294,967,295(約43億) と桁外れに高く、ドラゴンケンタウロス2世を相手にしてもカンストまでには相当な時間がかかります。
そのため、こうした自動化は経験値稼ぎの効率を大幅に改善してくれます。

ただし、宿屋でのレベル上げ時には 老衰や体力低下によるロスト が発生することがあるため、定期的に確認・セーブを行うことをおすすめします。

UWSCは非常にシンプルながら、マウス操作やキーボード入力を自在に自動化できる強力なツールです。
今回のように「連打」だけでも十分便利ですが、条件分岐や画面判定を組み合わせれば、より複雑な自動戦闘も実現可能です。

チートを使わず、あくまで“手動の延長線上”として自動化を活用するスタイルに共感できる方は、ぜひ試してみてください。
退屈な作業をツールに任せ、自分は探索や育成に集中――そんな快適な冒険が待っています。

コメント