>X2poetさん、FractalFusionさん
ドラクエ5(DoraKue5 つまり DRAgon QUEst 5)は日本では非常に有名で、人気の高いゲームです。Chrono TriggerやDRAGONBALLで有名な鳥山明氏によるイラストや、プロのクラシック作曲家によるBGMが特徴的なゲームです。NDSでは英語版のリメイクも発売されているので、日本語が難しければそちらもお勧めです(お二方なら日本語でも大丈夫そうですが。)
普通にプレイした場合30~40時間程度でクリアできると思います。ニコニコ動画に投稿されているTAS動画はおよそ3時間でクリアしています。FractalFusionさんはアカウントをお持ちでしたよね?リンクを掲載しておきます。
http://www.nicovideo.jp/watch/sm3615548 (ムービーファイルは非公開のようです)
ただし私のTASでは新たに解析された強力なバグを用いるので、1時間半以上早くクリアできる予定です。
教えて頂きありがとうございます。が、既に私はそれを利用しています(>_<)。現在解析作業はほぼすべてGSDで行なっています。ドラクエ5の乱数はRAM上に展開されないようなので、Debuggerを利用してリアルタイムに把握できるのはとても便利です。ですがGSDで録画すると高い確率でdesyncしてしまうので、その辺りが改良されればさらに便利になりそうです。
ちなみに「魔法騎士レイアース」についてはプレイしたことはありませんが、原作の漫画は日本ではかなり有名だと思います。CLAMPという漫画家集団による作品で、彼女たちの作品はどれも高い評価を得ているので、日本の漫画が好みならいくつか読んでみると楽しめると思います。
さて、TASがある程度進んだのでWIPを投稿します。
http://dehacked.2y.net/microstorage.php/info/671828706/DQ5_enfance_fini.smv
幼年期終了までのムービーになります。比較はできませんが動画の再生時間を見るとニコニコ動画の記録より1分半ほど早くなっています。私のTASではキメラのつばさの購入数が少ないので、実際の更新はせいぜい1分程度だと思います。
大まかな戦略と改善点について記しておきます。
・サンタローズ~ドワーフの洞窟
ドワーフの洞窟最深部で素早く自殺して抜け出す(デスルーラ)には、あらかじめボロンゴに布の服を渡しておいてからスカンカー×4もしくはスピニー×4に不意をついてもらうのが最速です(細かいフレームの差については後ほどブログに詳細を書こうかと思います)。ここで乱数調整を行うためには、エンカウント乱数と通常乱数の両方をコントロールしなければなりません。なぜならモンスターの出現数や種類に関してはエンカウント乱数が使われるのに対し、不意をつかれるかどうかには通常乱数が関わってくるからです。
これに関して、今回のテストランではかなり妥協して全く異なるパターンを採用しています。本番ではサンタローズの時点からメッセージ送りのタイミングをずらすことで村の住人の動きを変更し、通常乱数の変化に幅を持たせることで対応しようと思っています。
また、理想のエンカウントを得るために若干の解析を行い、luaスクリプトを作成しました。が、用途が狭すぎる(ドワーフの洞窟地下3回でしか使用できない)ので掲載はしないでおきます。
・氷の館
ザイル戦の前に作戦変更しているのはミスです。親分ゴースト戦の作戦変更の時点で「ガンガンいこうぜ」ではなく「じゅもんつかうな」にしておくべきでした。
ザイル戦は6回の攻撃で、雪の女王戦は22回の攻撃でボロンゴを戦闘不能にさせてから終了させます。
ザイル戦に関してはすべて会心の一撃ならばかなり低めのダメージを連打しても倒せるので、とにかく最速で会心の一撃を出せるパターンを探します。
雪の女王戦はダメージの余裕が17ポイントしかないので、そこそこシビアにダメージ調整を行います。理想を言えば22回の攻撃の内どのタイミングでどの程度のダメージを出すかというのを全て試すことができると良いのですが、恐らく人間や家庭用コンピュータの処理能力では不可能でしょう。どの辺りで妥協すべきかがポイントとなると思います。
ここでブーメランを入手したのは青年時代に必要になる可能性があるためです。具体的には馬車を買うための費用にするか、スライムを仲間にするときに主人公に装備させるか、という可能性を考えています。
・ラインハット~古代の遺跡
古代の遺跡のエンカウント調整はかなり厳しいです。乱数調整のための歩行停止をいつ行うべきかを、全パターンの総当たりを行うluaスクリプトによって判断しようとしました。しかし組み合わせのパターンは膨大であり(100歩進む中で乱数調整をn回行う場合、組み合わせはおよそ100^n通り)、重複するパターンを捨てる手法を採ったとしても家庭用PCではn=3ぐらいが限界だと思います。そこでとりあえず3回の乱数調整について判断できるluaスクリプトを起動して候補を5つぐらい出して、それらに対してさらにそのスクリプトを適用する、といった方法を採用しました。この方法が統計的にどれだけ信頼できるかはわかりませんが、少なくとも全て手動で行うよりは遥かに良い乱数を探し出すことができると思います。そのスクリプトを一応投稿しておきます。が、総当たりを行なっているのでかなり時間がかかると思います。
http://pastebin.com/jySj8d6C
強制戦闘について、パパスの戦闘の前に作戦が「めいれいさせろ」以外になっていると、オート戦闘でもパパスは2回攻撃を行わないようです。そのためパパスの戦闘の直前にエンカウント調整のついでに作戦を変更します。雪の女王戦のラストで変更するより、こちらの方が僅かに速くなります。
ジャミ・ゴンズ戦については、一戦ずつluabotによって500パターンぐらいを試して速かったものを採用しました。しかし、初めて知りましたが、パパスのジャミ・ゴンズとの強制戦闘ではパパスの受けたダメージが引き継がれるようです。そのため現行のパターンよりも良いパターンが存在する可能性があるので、そうしたパターンを意図的に抽出するbotを作成すれば更なる最適化が見込めるでしょう。
それでは、長文でしたが以上になります。