【ver.3】トークンの獲得量およびベッド修理費の算出式について
「寝て稼ぐ」をコンセプトとし、すべての人々に欠かせない睡眠の質を見直すきっかけを与えてくれる今大注目のプロジェクト、それがSleeFiです。
最近クローズドβ版が先行スタートし、テスターの資格を持っている人はダミーのトークンを使って、実際に寝て稼ぐゲームを体験することができるようになりました。
今回はクローズドβ版の結果から獲得トークンおよびベッド修理費の計算式を推定できたので、記事にまとめることにしました。
なお、この計算式はあくまでクローズドβ版のものであって、オープンβ版では同じ式が使われるとは限らないので注意してください。

背景
SleeFiで詳細な検討を行うためには、獲得できるトークン(SLFT)などの計算式を明らかにする必要がある。
そこで前回は、クローズドβver.2における結果を用い、現段階でのトークン獲得量およびベッド修理費の算出式を明らかにした。
しかしクローズドβver.3およびver.3+では獲得トークンの算出式が変更となったため、改めて検証を行うことにした。
公式リンク
・SleeFi公式サイト
・公式discord(アプリダウンロードはこちらから)
用語集
ベッドパラメータ

Level
ベッドのレベル。高いほどステータスを上げられるが、修理費にも影響を及ぼす。
Efficiency
睡眠で獲得できるトークンに大きく影響するパラメータ。高いほど稼ぎが良くなる。
Resilience
ベッドの耐久性に関わるパラメータ。疎かにすると修理費が高くなってしまう。
Durability
黄色の文字で100/100と書いてある部分、ベッドの耐久値を表す。睡眠を行うと耐久値が減少し、放置していると稼ぎが悪くなってしまう。
本検証では常にDurabilityを100まで回復させた後に睡眠を行うことを前提としている。
Bed type
ベッドにはShort, Middle, Long, Flexibleの4種類が存在し、それぞれ睡眠可能時間が異なる。
種類によって稼ぎや修理費が変化することはないため、本検証では無視している。
Bed Quality
現段階でベッドにはCommon, Uncommonの2種類の品質が設定されている。
Commonが最も一般的で、Uncommonはより稼ぐ性能を高められる。修理費の計算で重要な項目。
Earn

睡眠を行った時の報酬額のこと。図2のようにSLFTを稼ぐことができる。
Score
睡眠スコアのこと。
Repair cost
ベッドのDurabilityを回復させるために支払うコストのこと。
Insurance cost
ベッドは使用後一定確率で破損して2度と使えなくなる。しかし保険に加入してInsurance costを支払うことで、破損する確率を0にできる。
Bed bonus
ベッドを複数台保有することで、獲得できるトークン量を増やすことができる。
Staking bonus
所有するSLFTをステーキングに預け入れすることで金利を得られる他、図3のようにさまざまな特典を受けられる。

獲得できるトークン量の計算について
睡眠を行った後は前述の図2のようにSLFTを獲得できる。
WPによれば、Earnに関係するのはEfficiency, Durability, Score, Insurance cost, Bed bonus, Staking bonus、そして睡眠時間と睡眠の質である。ただし本検証ではDurabilityは常に最大まで回復していることを前提とするため、検証から除外する。
睡眠時間と睡眠の質に関しては、睡眠時間を変化させても同じスコアであれば稼ぎ量は不変だったことから睡眠スコアに統合されているという前提で検証を進めた。
残りの係数のうち以下の係数は、WPや簡単な検証から獲得量に及ぼす関係性が分かっている。
- Insurance cost
Bed Quality | Cost |
Common | 獲得トークンの7% |
Uncommon | 獲得トークンの10% |
- Bed bonus
Bedの個数 | 補正量 |
1 | ×100% |
2 | ×150% |
3 | ×200% |
4 | ×241% |
- Staking bonus
StakingしたSLFT量 | 獲得トークン補正 |
0 | +0% |
0~2500 | +2% |
2500~5000 | +4% |
5000~10000 | +6% |
10000~ | +8% |
以上より、EfficiencyとScore以外の係数に関しては関係性が明らかになった。
Scoreに関してはver.2では比例してEarnは大きくなっていたが、ver.3では比例ではなくなった。
そこでまずはEfficiencyに関して検証を進めることにした。
ver.3でもver.2と同じようにEarnはEfficiencyのn乗に比例していると仮定すると、獲得トークンは以下の式で表される。
$$ \text{Earn} = \text{Efficiency} ^ n \times\text{Bed bonus}\times \text{Score table}\times (1 – \text{Insurance cost}) \times (1+\text{Staking bonus})$$
そこでScoreが58点となったときの睡眠結果を集め、X軸に\( \text{Efficiency} ^ n\)を、Y軸に\(\text{Earn } / { \text{ Bed bonus} / (1 – \text{Insurance cost}) / (1+\text{Staking bonus}) }\)をプロットしたところ、図4のように\(n=0.4637\)のとき以下のように良い相関が得られた。

この結果から、Earnの算出式は以下のように推定された。
$$ \text{Earn} = \text{Efficiency}^{0.4637} \times \text{Bed bonus} \times \text{Score table} \times (1 – \text{Insurance cost}) \times (1+\text{Staking bonus})$$
以上よりEfficiencyとEarnの関係が判明したため、Score tableを調査することにした。
Score tableに関しては、各種補正係数を除去したうえでEfficiencyが1のときに変換したEarn(以降規格化したEarn)と、そのときのScoreをグラフにプロットしたところ、一定の関係性が見られた。

ver2.0ではScoreとEarnは原点を通る線形比例の関係性で表されていたが、今回は58点を境に大きく落ち込む形状となった。またスコアが0点でも規格化したEarnが0ではなくなっている。
図5の結果をフィッティングしたところ、Score tableは以下の表4のようになった。
スコア | 規格化したEarn |
0~39 | 0.054×Score+0.535 |
40~57 | 0.075×Score-0.307 |
58~100 | 0.033×Score+2.127 |
なお、図5は55点付近で規則性から外れた点が数点存在するが、原因は不明である。実際に筆者も同じベッドでの計測結果で51点のときと55点のときで同じEarnだったことがあり、原因は調査中である。
ベッド修理費の計算について
Repair costの計算
睡眠を行った後はベッドのDurabilityが減少する。以下、減少量をDamageと表記する。
Durabilityが最大でない状態で睡眠を行うとEarnが減少するため、必ずDurabilityを最大まで回復させる必要がある。従って睡眠ごとにRepair costが発生する。
Repair costに影響を及ぼす項目はWPに詳細な記載がなく、未知である。
そこで様々なデータを比較したところ、図6のようにCommonベッドかつDamageの値を固定したときのRepair costはレベルごとに略比例していることが分かった。

またRepair costはCommonのときとUncommonのときのRepair costは同じ条件であれば、Uncommonの方が1.5倍高かった。これをBed quality tableとし、以下表5のように表す。
Bed quality | Repair cost effect |
Common | ×100% |
Uncommon | ×150% |
従ってRepair costはLevelとDamageのみが関係、さらにDamageは比例であると予想し、以下の式が成立すると判断した。
$$ \text{Repair cost} = \text{Damage} \times \text{Level} \times \text{Bed quality table}$$
そこでX軸にLevel、Y軸に\( \text{Repair cost } / \text{ Damage}\)をプロットしたところ、規則的な結果が得られた。(図7より表6の方が分かりやすい)

Level | Repair cost / Damage | ΔRepair cost / Damage |
0 | 0.8040 | – |
1 | 0.8308 | 0.0268 |
2 | 0.8576 | 0.0268 |
3 | 0.8844 | 0.0268 |
4 | 0.9112 | 0.0268 |
5 | 0.9648 | 0.0536 |
6 | 0.9916 | 0.0268 |
7 | 1.0184 | 0.0268 |
8 | 1.0452 | 0.0268 |
9 | 1.0720 | 0.0268 |
10 | 1.1524 | 0.0804 |
11 | 1.1792 | 0.0268 |
12 | 1.2328 | 0.0536 |
13 | 1.2864 | 0.0536 |
14 | 1.3400 | 0.0536 |
15 | 1.3936 | 0.0536 |
16 | 1.4472 | 0.0536 |
17 | 1.5008 | 0.0536 |
18 | 1.5544 | 0.0536 |
19 | 1.6616 | 0.1072 |
20 | 1.7688 | 0.1072 |
21 | 1.8492 | 0.0804 |
22 | 1.9296 | 0.0804 |
23 | 2.0100 | 0.0804 |
24 | 2.0904 | 0.0804 |
25 | 2.1708 | 0.0804 |
26 | 2.2512 | 0.0804 |
27 | 2.3316 | 0.0804 |
28 | 2.412 | 0.0804 |
29 | 2.4924 | 0.0804 |
30 | 2.5996 | 0.1072 |
表6を見ると、Repair costは特定のレベルを除き一定の値で増加する傾向にあることがわかる。
以上より、Repair costは以下の式で表されることが推測される。
$$ \text{Repair cost} = \text{Damage} \times \text{Level table} \times \text{Bed quality table} $$
Damageの計算
Repair costの計算式は前述の通り推測できたが、Damageの式を分解できないとベッドパラメータによるRepair costの算出ができない。
こちらも様々な検証を行った結果、Damageに関係するのはResilience、Bed保有台数のみであり、他の係数は一切影響を及ぼさないことが分かった(EfficiencyやScoreは無関係)。
またベッド保有台数が1台のときのDamageは偶数または奇数だったのにも関わらず、ベッド保有台数が2台, 3台のときはDamageは必ず偶数であったことから、ベッド台数補正は線形ではないと考え、2台以上保有しているときは一律に2倍の補正がかかっていると予想した。
この予想を元に、ベッド保有台数が2台, 3台のときのDamageを半分にして、X軸にResilience、Y軸にDamageをプロットしたところ図8のようになった。

Resilienceが一定の基準に達するごとに、Damageが減少していくことが確認できた。
このことから、睡眠を行った際のDamageはResilienceごとに以下の式および表7のように表されると推定できた。
$$ \text{Damage} = \text{Resilience and Bed number table} $$
Resilience | ベッド1台保有 | ベッド2~3台 | ベッド4~9台 | ベッド10~14台 | ベッド15~30台 |
1~4 | 9 | 18 | 40.5 | 54 | 90 |
5 | 8 | 16 | 36 | 48 | 80 |
6 | 7 | 14 | 31.5 | 42 | 70 |
7~9 | 6 | 12 | 27 | 36 | 60 |
10~14 | 5 | 10 | 22.5 | 30 | 50 |
15~19 | 4 | 8 | 18 | 24 | 40 |
20~29 | 3 | 6 | 13.5 | 18 | 30 |
30~50 | 2.5 | 5 | 11.25 | 15 | 25 |
51~100 | 2 | 4 | 9 | 12 | 20 |
ベッド台数が4台以上のときのデータはサンプル数が非常に少ないため、推定の値となる。
結論
検証により、SleeFi攻略に重要なEarn, Repair cost, Damageは以下のように表されることが推定された。
$$ \text{Earn} = \text{Efficiency}^{0.4637} \times \text{Bed bonus} \times \text{Score table} \times (1 – \text{Insurance cost}) \times (1+\text{Staking bonus})\text{(表1, 2, 3, 4参考)}$$
$$ \text{Repair cost} = \text{Damage} \times \text{Level table} \times \text{Bed quality table} \text{(表5, 6参考)}$$
$$ \text{Damage} = \text{Resilience and Bed number table} \text{(表7参考)}$$
ただしこれらの結果はクローズドβver.3および3+における算出式であり、オープンβ版で同様の計算式が使用されるとは限らない。
今後新たなことが分かり次第、更新を続けていく予定である。
更新履歴
- 2022/10/12 初版公開