Sexlab Arousedがよくわかってない
イマイチよくわかっていないSexlab Arousedの値を整理する。街の住人全員が100になったり、全員が0のままピタリとはりついていたりは誰もが通る道だと信じたい。
- Arousal = TimeRate * 絶頂からの経過日数 + Sum(SingleExposure * ExposureRate)
- Arousal = 0~100 (-2は不正かブロック)
- ExposureRate = 0~10、MCMからかModderがいじる
- TimeRate = 0~100、時間で減る・いたすと増える
以上公式から。 28b現在。psc見るとTimeRateのデフォルトは10.0のようだ。
Arousalがモニタウィジットとかで見えるもの。MCM日本語訳だと+の左側は「変動値」、右側が「露出値」。露出値はとりあえず無視する。要は裸見ると興奮するんでしょ?くらいの理解。でもいたした後はガッツリ減る(ログ見てたら-200とか出てた)ので、単なる露出だけの値ではない感じ。
MCMには設定が3つあって、
- Default Exposure Rate = 露出を見た時の初期興奮レベル
- Decay Rate = 時間変動率が減退する日数 ; (TimeRateHalfLife)
- Time Rate Change = 時間変動率の上昇値
1番上は露出値関係なので無視する。要は裸見ると略。
MCMの日本語訳はこう。
- 絶頂後に時間変動率が1/3減退する日数を設定します。時間変動率が12で減退日数が2日の場合、2日間は時間変動率が8になります。0に設定するとPC/NPCの時間変動値は減退しません。デフォルト 2.0
- 絶頂後、時間変動率に追加される値を設定します。
整理をすすめててわかったんだけど、Decay Rateの訳は「2日間」ではなく、「2日後」が正しいようだ。後でしかるべきところ(どこ?)に報告しよう。28bの翻訳ってあるのかな。
それはともかく、Decay Rate(時間変動率が減退する日数)の値による違いは、公式にグラフが上がっている。
左の軸がArousalの右側「TimeRate * 絶頂からの経過日数」(変動値)、下が経過日数。Decay Rate(時間変動率が減退する日数)=Timerate Halflifeが「2.0」の時が緑、以下、3(黄色),4(オレンジ),5(赤)になる。
露出を考えずに変動値=Arousalとすると、
- 2.0(デフォルト)だと40日くらいで0に。ピークは1週間後くらい。
- 5.0だと大体100日くらいで0に。ピークは15日後くらい。
Time Rate ChangeはOrgasm時にそのままTimeRateに+される処理がされてるので、↑の時間で減る値を無視する勢いでOrgasmを発生させれば、Time Rateは上がり続けるわけで……色情魔みたいな状態になる、と。
以下、関連コード抜粋。
Float Function UpdateActorTimeRate(Actor akRef, Float val) If (akRef == None) return -2.0 EndIf val = GetActorTimeRate(akRef) + val Return SetActorTimeRate(akRef, val) EndFunction Float Function GetActorTimeRate(Actor akRef) If (akRef == None) return -2.0 EndIf ; return default value if set not to decay If (slaConfig.TimeRateHalfLife <= 0.1) Return 10.0 EndIf Float res = StorageUtil.GetFloatValue(akRef, "SLAroused.TimeRate", 10.0) Float daysSinceLastSex = GetActorDaysSinceLastOrgasm(akRef) res = res * Math.pow(1.5, - daysSinceLastSex / slaConfig.TimeRateHalfLife) akRef.SetFactionRank(slaTimeRate, res as Int) Return res EndFunction Function UpdateActorOrgasmDate(Actor akRef) If (akRef == None) return EndIf UpdateActorTimeRate(akRef, slaConfig.SexOveruseEffect as Float) StorageUtil.SetFloatValue(akRef, "SLAroused.LastOrgasmDate", Utility.GetCurrentGameTime()) ;Debug.Trace(Self + ": " + akRef.GetLeveledActorBase().GetName() + " had orgasm date updated") EndFunction
ExposureRateのほうも見ないとダメっぽい。
コメント
コメントを投稿