PS版DQ4 3章前掛け転売についてちょっと本気出して考えてみた
きっかけはこれharapan.exblog.jp
1年以上前、DQ3のReTAの調べものだかなんだかしてた時に偶然見つけた記事。
僕がPS4RTA始めたときには、前掛け転売のボーダーは1750Gみたいなのが通説になっていたけど、
この記事を見て「あ、実はボーダー下げて仕入れ増やしちゃってもいい感じなの?」と思ったのを覚えているが、それ以来しばらく詳しい調査はしていなかった。
1. じじいのあたまのめかにずむ
3章のボンモールにいる防具じじいの買い取り金額決定は以下のようになっている。
- [0,16)の一様整数乱数を引く。
- 乱数=0だったらボケ処理、それ以外だったら通常の処理になる。(つまりボケる確率は1/16)
- ボケ処理の場合はSR$0x80117e7c(買値*1.5, 買値*2)がcallされ、[買値*1.5, 買値*2]のほぼ一様な整数乱数が返ってくる。
- 通常処理の場合はSR$0x80117e7c(買値*0.75 買値*1.25)がcallされ、[買値*0.75, 買値*1.25]のほぼ一様な整数乱数が返ってくる。
- 返ってきた乱数を売却額とする。
2. しみゅれ~とけっか
仕組みが分かればシミュレータが組める。
早速実装して、試行回数5万回で調査
ボーダーを1500G~1800Gの50G刻み、必要収入金額(最初の前掛け9個売却スタートの時点の金額から稼がなければいけない金額)を15000G~17500Gの500G刻みでシミュレートし、最初の前掛け9個売却スタートから必要金額稼ぐまでにかかった平均時間を取った。
各パラメータはパンダさんの記事通り、以下のようにしている。
- 売却キャンセル1回分の時間: 3.2s
- 仕入れ1回分の時間: 49s
結果は以下の通りであった。
ボーダー[G]\必要収入[G] | 15000 | 15500 | 16000 | 16500 | 17000 | 17500 |
---|---|---|---|---|---|---|
1500 | 63.726652s | 83.671864s | 102.999864s | 126.046892s | 144.760364s | 163.968864s |
1550 | 63.516972s | 80.639696s | 99.095764s | 122.060024s | 142.025012s | 160.519688s |
1600 | 70.8178s | 78.45748s | 98.012348s | 118.291296s | 142.37878s | 160.922388s |
1650 | 83.6912s | 84.438796s | 100.29976s | 115.452392s | 143.56992s | 165.102504s |
1700 | 102.133312s | 102.133312s | 106.7654s | 119.600952s | 142.54478s | 168.9146s |
1750 | 131.272768s | 131.272768s | 131.284732s | 139.797064s | 150.668804s | 174.821684s |
1800 | 183.177472s | 183.177472s | 183.177472s | 183.837488s | 186.639508s | 197.06948s |
各必要収入額における平均時間の最小値を赤字にしてある。
3. まとめ
3章の前掛け転売では、必要収入が15000G,17000G,17500G付近のときはボーダー1550Gで、15500G,16000G付近の時はボーダー1600Gで、16500G付近のときはボーダー1650Gで売却するのが最適である。
めでたしめでたし。
そんなわけはない。
4. ばいきゃくじかんのぶんぷ
平均時間だけ見ていたのでは、平均こそ速いかもしれないがその実売却時間はブレブレで安定しないみたいなものが分からない。
また、3章は運要素の強い2章終了直後の章であるため、対戦などではタイム差などに応じて取るべき選択肢が変わってくる。
平均時間の最小だけを見てボーダーを選んだものの実はタイムがブレブレだったりする場合には、せっかく2章終了時でリードしていても「じじいツン引いたから遅れて後ろに追いつかれたじゃねえかよクソが」とか言って、挙句の果てにはコントローラーが投げつけれらたりROMが責任を押し付けられたりしてしまう。おおかわいそうに、コントローラーやROMはわるくないのだ・・・
ということで売却図の分布を見てみよう。
全ての分布図を全て載せるわけにもいかないので、抜粋してみてみることにする。
まずは必要金額17500G時の売却時間の確率密度と累積分布。
上の図が確率密度、下の図が累積分布になる。
確率密度を見ると「ある売却時間で終わる確率は何%か」が、累積分布をみると「ある売却時間以下で終わる確率は上位何%か」がわかる。
また、平均だけでなく標準偏差も出してみよう。
標準偏差の値が高いほど、売却時間がぶれやすいことを表す。
ボーダー[G] | 標準偏差 |
---|---|
1500 | 56.15782287 |
1550 | 55.21510188 |
1600 | 59.86279681 |
1650 | 70.60325696 |
1700 | 82.75208663 |
1750 | 88.75131105 |
1800 | 79.92613876 |
なんと必要収入17500Gの場合は、通説となっているボーダー1750Gが一番標準偏差が高く、売却時間がぶれやすいという驚きの結果が得られた。
実際確率密度の図を見てみると、分布がブレブレなのが良くわかる。
一番平均時間が小さいボーダー1550Gは標準偏差も最小となっている。
つまり仕入れを1回増やす覚悟でボーダー下げてどんどん売った方が速くなるということが分かったと思う。
ボーダー1600Gも売却時間150s以内の速い時間が出やすいうえ、極端に遅れることはなさそうなので選択肢に入れられそうだ。
続いて、必要金額16000Gの場合も見てみる。
鋼鎧がボケたりするとこの辺になってくるだろうか。
標準偏差は以下の通り。
ボーダー[G] | 標準偏差 |
---|---|
1500 | 54.23222707 |
1550 | 55.13257586 |
1600 | 54.12659886 |
1650 | 50.08340547 |
1700 | 39.0092605 |
1750 | 38.53368925 |
1800 | 56.27160925 |
平均時間が最小なのはボーダー1600Gであるが、ボーダー1500G~1650Gあたりではボーダー1700G以上に比べて標準偏差が高い。
これは分布図を見ればわかると思うが、仕入れが必要な可能性が増えるために、その場合のタイムロスが足を引っ張っているためだと思う。
ボーダーが1700Gでは平均時間がボーダー1600Gに比べて8sほど上がるが、標準偏差が一気に下がりタイムの安定性が期待できる。
また通説となっているボーダー1750Gは、標準偏差こそ最小値だが平均売却時間が非常に大きくなり、実際はボーダー1700Gに対してほぼ劣っていることが分かる。鋼鎧がボケたらまずボーダーは下げていいだろう。
載せられなかったデータは以下のURLにアップロードしておく。
PSDQ4_resale.xlsx(PSDQ4_resale.xlsx) ダウンロード | DQRTA | uploader.jp
5. はがねのよろいぼけのかそくど
もう一つ、2節の平均売却時間からわかることがある。
最小平均時間周辺のボーダー周辺においては、必要な収入金額が500G下がるごとに平均売却時間が約20sほど下がることが分かる。
3章の序盤に化けキツネからもらった鋼の鎧を転売するのだが、これがボケるかボケないかで約1725Gの収入差が出てくる。(実際にはボケない場合は金額を吟味しているのでもう少し下がるが)
そうすると、鋼の鎧が運よくスムーズにボケると(なんだこの表現)約1分ほどの加速になることがわかる。
またこれも平均値だけでの話になるが、鋼の鎧がボケるまでにかかる時間は約51.2sであるため、鋼の鎧はボケ待ちした方が期待値としてはタイムが速くなる可能性もある。
これについても詳しく調査したいが今回は面倒なのでしない。
6. こんくる~じょん
各必要金額に応じて売却時間の分布と標準偏差を求めた。
欲しいタイムに応じて、各プレイヤーが柔軟にボーダーラインを選択してあげるとよい。
また、鋼の鎧がボケると約1分の加速になることも分かった。
終わりたい。
7. にんげんはかしこい
今回の調査では売却金額に関わらずボーダーラインはずっと一定のままという条件で行っているが、
実際の場合には前半の売却金額を見て以降のボーダーラインを変動させられるはずである。
その場合、「仕入れ挟むつもりだったけど予想外にボケたからボーダー上げて仕入れせずに終わらそう」とか、「予想外にボケたからボーダー下げて早く終わらそう」とかいう知恵が活用できそうなことが予想される。人間は賢い。
さて、このような場合の最適な売り方を求めたいときにはどうするべきだろうか。
詳細はめんどくさいので省略するが、平均売却時間の最小化という観点で見れば、おそらくこれはDPで解けると思われる。というわけで求めてみたいが、やっぱりめんどくさいのと、そもそも求められたとして実際のRTAプレイ中に残りの必要金額と前掛け数に応じてボーダーを変えられそうかというと疑問な点ではある。人間は賢いのか賢くないのかよくわからない。
ということで、モチベーションがあったらやってみるかも。
PS2版DQ5 エンカウント判定周りメモ
ついにPS2にまで手を出してしまった...
取り急ぎ、メモみたいな形で。
歩数が増えるごとに以下の式が評価され、結果が真であればエンカウントが発生する (乱数 mod A) < 閾値 ※ A = 256 - (歩数 - エンカウント最低歩数) * [1,4] エンカウント最低歩数 = 10 - 閾値
-
- 途中計算及び計算結果はIEEE754単精度浮動小数点演算に基づく
- 歩数は戦闘終了時や一部のフロア切り替え時(詳細は後述)に0にリセットされる
- 乱数の詳細な分布は未調査
- 備考
とあるが、PS2版DQ5のエンカウント判定は後者の確率エンカウント方式に該当する。
確率エンカウント方式では、直前のエンカ位置によって歩く場所を変えるなどの工夫が必要になるため、最適化が若干難しい。
とりあえずできることとしてはエンカリセ地点の把握と、エンカリセ入れの最適化か。
またフィールド内でのエンカ係数が異なる地域が確認されているので、境界付近では最適な歩き方が発見される可能性有り。
下みたいな表が完成して、乱数の分布が分かったらまた体系化してブロマガにまとめる予定。
ST大学祭観戦記&PS版DQ4呪文習得判定
こんばんは、研究の逃避気分転換として記事を書いてるMaruです。
今回の内容は以下の2点。
1つ目、ST大のむつめ祭に行ってきました。
目的はもちろんRTA研究会。
自分は2日目の実演会と、3日目のDQ7ReTAの最後の問題だけ観戦しました。
前回はDQ3でナナカさんと並走しましたが、今回はただの観客でした。
2日目は朝一で行って、FF5、FF6、ルイージマンションからずーっと見てました。
午後からはムウさんのPS2版DQ5をまーくさんと一緒に煽ってました見てました。
夢幻斎さんの生DQ2も見れて満足です。やっぱり再現は大変ですね...
3日目は祝日にもかかわらず講義が入っていたので、元々行くつもりはなかったのですが、
その講義が4半期制で最初の回だったので、終わってから急遽駆けつけました。
着いたのが最後の4精霊問題が始まって少し経ったところで、最後だけ見てました。
ラスカルさんが全問クリア、かつ6問中5問で1位と凄まじい結果でした。どれくらい準備したんだろう...
実演中やその後の食事などでも色々な方と交流できてとても楽しかったです。
特にたーひゅさん、ありのさんなどのFF勢の方との交流は新鮮でした。
話を聞いて、エンカ内容とか歩数とかの仕組みとかどうなってるんだろうとか、
歩数調整もう少し簡単に調べられたらいいなーとか勝手に考えてました。
2つ目、PS版DQ4の呪文習得判定に関してブロマガに記事を書きました。
賢さの閾値が呪文ごとに設定されているとばっかり思っていましたが、定数だったのが驚きでした。
ラリホーはたまたまこの賢さ16に引っ掛かってただけだったんですね。
呪文の習得タイプもDQ3とほぼ同じで3種類あると食ってかかっていたんですが、実は2種類しかなかったです。
実はこのルーチンを調べていたのはメタルはぐれの乱数調整のためでした。
撃破後のレベルアップでもステータス成長値と呪文習得判定で乱数を消費するわけですが、呪文習得の方に関しては"50%で覚える"に行きつくまでの条件が分からないと乱数消費するかどうかが分からなかったので、今回これを調べていました。
後は成長値決定の仕組みと成長値の計算方法が分かれば、各キャラのレベル(経験値)と賢さの値と習得状況を入力にすれば、乱数特定を挟まずに連続でメタルはぐれを出現させることができます。
ということで、次は成長値計算について見ていこうと思っています。
ブログ開設&雑感&DQ3ステータス調査の紹介
どうもはじめまして、主にニコニコ生放送でDQシリーズのRTAをしているMaruと申します。
既にニコニコのブロマガの方であれこれ書いてはいたんですが、色々思うところがあってこっちにもブログを作りました。
ブロマガの方には記録レポートや調査・解析についてのまとめ的な多くの人に分かりやすい記事を、こっちの方には調査・解析の詳細な話や、戦術戦略などのアイデア、雑感、その他マニアックな情報のアウトプットとして分離したいと思っています。
早速本題。
といってもほとんど雑感です。
1.今の状況について
大会などが落ち着いたり、卒論で研究が忙しかったりなどで最近放送はしていませんが、RTAについて思っていることは、各作品以下のような感じ。
・SFC版DQ1:鋼剣竪琴有り17竜王、岩山カット竪琴有り18竜王で記録更新したいな
・SFC版DQ2:やる気なし
(タイム向上のビジョンが見えない
練習積み重ねて敵対処が速く正確になって、少しずつ伸びていくんだろうなとは思ってる)
・SFC版DQ3:実は王者カット少し練習してたり
・ PS版DQ4:各種解析と乱数調整ありでの記録狙いしたいな
・PS2版DQ5:4が落ち着いたら解析含めてまた再度取り組んでみたいな
・SFC版DQ6:時間を取るのが厳しいのもあって、あまりやる気なし
・ PS版DQ7:新規作品として取り組んでみたかったり、時間的に厳しかったり
モチベがあるのは1と4。
特に4はいろいろやりたいこともあってかなり高いです。詳細は後述
1は岩山カット銅剣竪琴でLv18竜王でどこまでいけるか面白そう。
他にも取り組んでる人はいるので(最近はあまりやってないかな?)、楽しみですね。
2.PS版DQ4について
メタルスライム・はぐれメタルの乱数調整についてはこちら
今のところ出来るのは以下のような感じ。
・種使って乱数特定する
・不思議な木の実を特定回数空使用して、乱数を進める
・メタルスライム(はぐれメタル)を出現させる
敵の行動・HPまで計算済み、よって確実に逃げない
・呪文習得判定と乱数消費の関係については未調査
・ある程度のLvUP時の消費乱数は分かるので、ホイミの回復乱数で再度特定
・2匹目以降を同様の手順で出す
2章エンドールメタルはセーブ・リセットからメタル出現まで、NPCがいるエリアを挟まないといけないので、今のところ1匹目は種7個くらい使って乱数特定。
2匹目はホイミ1回で乱数特定してるけど、精度の問題だったり、HPの伸び具合だったりあらかじめある程度のダメージもらってないといけなかったりで割と問題有り
あと解析範囲を広げれば、闘技場も乱数調整出来たりするかも?
やる気があればやる(やるとは言っていない)
5章ガーデンはぐれは夜ブランカがNPCによる乱数消費がないので、乱数特定が非常に楽。
LvUPも多いし、ホイミ2回程度で2匹目以降も割と問題なく簡単に出せる。
こっちについては、むしろ問題はチャートの方。
安全だから装備も要らないし(諸刃、身かわし(ガーデン購入)+エンドールカット辺りかな)、
2章メンツ加入直後に狩りに行ってもいい。海鳴りとか事故率落ちる。
ただ間引きの問題がある。
あとははぐれの後も含めたチャートについて。
簡単に狩れるんだから3匹に留まらずそれ以上狩ってもいい訳だけど、どうするのがいいんでしょうかね。
マーニャ最初から間引いて、6匹~8匹くらい狩って、主アクブでレオバル行くのがいいのかなーとか思ってはいます。砂もなくなるだろうし、撃破時間も短縮するだろうし。
ここら辺については、王家の調整が出来るようになるかどうかもあるとは思うけど。
何か案あったらください。
後はツールを公開するとして、どんな感じのインターフェースが使いやすいのかなーとか。
自分のスキル的にJavaのSwingあたりに落ち着くのかなとか思ってたり。
Web系のスキルが欲しい(切実)。
最後にこれはかなり夢のような話になるけど、PSDQ4の場合人間が乱数を追いきれないのは現状NPCの移動くらいだから、最初から最後まで殆ど乱数調整出来るようになったりするんじゃないかという期待もあります。
ただ途方もない解析量が必要でしょうが...
戦闘中の乱数操作も調べていないので、どうなってるんでしょうね(作戦・入れ替えあたり)
3.DQ3ステータスについて
ネットを彷徨っていたらこんなものを発見しました。
RPubs - どらくえ
DQ3の戦士のステータスシミュレートをしてみたという記事。
僕のブロマガを参考にしていただいたみたいで、嬉しいとともに僕のあんな雑な記事でごめんなさいという感じです。
(続きを投稿していないことにも釘をさされていたり...ホントにゴメンナサイ)
実はその続きの記事が10万サンプルシミュレートで分布出した上で僕個人の採用基準やら育成法を簡単に示して終わろうかと思っていたんですが、面倒くさかったり他の事に手出してたりでやっていませんでした。
とか思っていたところに(実は忘れてたとかないよ?)他の方がシミュレートして下さっていてとても嬉しいです。
ぬりかべさん(でいいのかな?)、ありがとうございます。
【追記】
3のステータス回りについて、プレイ面で言いたかったのは
・んん、戦士はタフガイ以外ありえませんぞwwww
・魔法使いは素早さの最終ステはそんなに気にならないから出来れば鉄人、タフガイがいいね
その場合はボストロ撃破後ヘビメタ外し
・盗賊は基本命知らずでいい
ただ魔法使いが頑張りやで盗賊タフガイ引けたら、タフガイ進行でもいいかも?
その場合はスー、エジンベア、ラダトームの素早さの種は絶対回収しておこう
くらいです。