Sexlab Arousedがよくわかってない・2
前回書いた関連コードは、modder向けのPOSTから解説付きで読めます。先に気づけ自分。
http://www.loverslab.com/topic/37652-sexlab-aroused-redux-december-05-2016/?p=945545
それと、たまにプレイ後でもArousalが下がらないことがあって、なんでだろうと思っていたことがあったんだけど、
Bool canHaveOrgasm = False If (animation.HasTag("Anal") || animation.HasTag("Vaginal") || animation.HasTag("Masturbation") || animation.HasTag("Fisting")) canHaveOrgasm = True EndIf
slamainscr.pscの、これが原因な気がする。よく読めば公式にも、
Females can only have orgasm (arousal goes down) only if animation is tagged as Anal/Vaginal/Masturbation/Fisting
と書いてあって、そりゃそうだ、と。
今度下がらなかったらプレイ内容を思い出そう。ああ、こうして人はどんどん没入感から遠ざかっていくのだ……。
閑話休題。
まだTimeRateの話
GetActorTimeRate()のコードが、
Float res = StorageUtil.GetFloatValue(akRef, "SLAroused.TimeRate", 10.0) res = res * Math.pow(1.5, - daysSinceLastSex / slaConfig.TimeRateHalfLife)
になっていたので、ずっと勝手に騙されて悩んでいたけど、実際にはこれは、
Float storedTimeRate = StorageUtil.GetFloatValue(akRef, "SLAroused.TimeRate", 10.0) currentTimeRate = storedTimeRate * Math.pow(1.5, - daysSinceLastSex / slaConfig.TimeRateHalfLife)
ということらしい。まあ自分でもよくやるんだけど、これでstoredの方も更新されると思い込んでた。
実際にはstoredTimeRateはUpdateActorOrgasmDate()、つまり「絶頂を迎えた」ときしか更新されない。このstoredTimeRateはMCMとかには表示されない。表示されるのはGetActorTimeRate()の結果の、↑でいうcurrentTimeRateになる。
currentTimeRateはコードの通り……って書くとこれ書いてる意味がなくなるので、以下のようになる。
保存されてるTimeRate(デフォルト10.0・絶頂しない限り更新されない) × 1.5 に (-絶頂からの経過日 ÷ Decay Rate(デフォルト2.0)) をべき乗したもの
例えば、TimeRateを10.0、Decay Rateをデフォルトの2.0、経過日数を1日にすると、こうなる。
10.0 × 1.5 ^ (-1/2) = 8.164….
なので、前回なんとなく見ていたこのグラフ
を、実際に表にするとDecay Rate = 2.0の時はこうなって、
5.0の時はこうなるわけだ。
Decay Rate後の日に、TimeRate(時間変動率)が大体1/3減っていることになる。よし、つじつまがあったぞ。
結論:Decay Rate = 5.0とか酷い設定だな!
次回こそはExposureRateの話。
コメント
コメントを投稿