ソラスミゼリ

http://ness.cside2.com/blog/archives/2009/0419_1116.php
すげー。
ミゼリバニシュの最後の部分がへたってるのは、被ダメ199の前にキャップ値があるため。
非線形だとよく言われるけど、DEX上昇とクリティカル率上昇の関係とか、隔と得TPの関係みたいな、多段線形にも見える。
ミゼリバニシュでいえば、被ダメ96,160あたりに境界があるような。もっとあると思うけど。
境界付近のデータが少ないので、これだけだとはっきり確認できない。


ちょっと適当に16の倍数の被ダメに境界があると仮定していろいろ計算してみたけど、どうもこじつけ感が否めない感じになってしまった。
でも非線形なのをそう簡単に導入するとは思えないんだけどなぁ。
線形だと、整数乗算>ビットシフト*1>整数加算という手順で、3命令程度で簡単に出せるけど、非線形となるとそうもいかない。最近のマルチメディア系拡張命令は基本的にSIMDなので、こういった用途で速くなるわけでもないだろう。たぶん。
そうすると……ちょっと擬似コード書いてみたところでは、2次関数の場合で7命令くらい使いそう。つまり、線形な場合に比べて倍以上の計算コストとなる。
まぁでも、ソラス・ミゼリがかかっている状況下で、ホーリー・バニシュを撃つ時のみだから、それほどの負荷でもないし、別にいい、という考えなのかなぁ。
各アビ・魔法の処理頻度なんかの統計もほぼ取れてるだろうし、現状であまり頻度が高くなく、導入したとしてもいきなり頻度が上がるわけではないと考えられる部分については、これからも非線形な式を導入してくるかもしれない。
そういった部分については検証が難しくなるが、頻度が高くないだけに、ユーザ側にとっても、それほど検証意欲はないかもしれない。現にソラスミゼリのボーナスについても、「キャップ値がわかればそれでいいや」とか、「ボーナス狙ってわざわざ撃たないし」と大半の白魔道士は思うのではないだろうか。グラフの細かい係数をちゃんと知りたいと思う人はごく少数なのではないかと思う。



こんなこともできるらしい。おもしろいなー。よく思いつくもんだ。

*1:様々な検証で2^n分率が登場することからも、割り算はビットシフトで行っていると思われる。プログラム上そう書いていなくても、そのようにコンパイルされるようにするために、2^n分率を導入しているはず。