MC Toolkit

MC Toolkit / 計算機 / ウマの繁殖計算機 / 繁殖予測ツール — ウマの繁殖計算機

繁殖予測ツール — ウマの繁殖計算機

親ウマ2匹の能力値から子ウマの体力、跳躍力、移動速度を予測します。ゲーム内部の子個体生成式をそのまま使用しており、範囲の上限や下限を超えた値を反射(reflect)して収める仕組みまで正確に再現します。

Parents

Parent A

Parent B

有効範囲:体力15〜30 HP、ジャンプ1.09〜5.29ブロック、速度4.74〜14.23 b/s。範囲外の値は、シミュレーション前に最も近い有効値へ補正されます。ゲーム内で繁殖させるには、両方の親に金のリンゴまたは金のニンジンを与える必要があります。

Foal Outlook

Per-Stat Prediction

How This Is Computed

Real Stat Ranges (Java Edition)

StatLegal rangeDisplayed as
Max Health15 – 30HP (2 HP per heart)
Jump Strength1.09 – 5.29Blocks of jump height
Movement Speed4.74 – 14.23Blocks per second

跳躍力と移動速度はブロックおよびブロック毎秒で表示されます。実際のゲームではこれらは生の属性値として保存されます(跳躍力 0.4–1.0、ジャンプ高カーブを通して height = -0.1817v³ + 3.689v² + 2.128v - 0.343、実際のブロック高の下限は0ではなく約1.09になります。移動速度 0.1125–0.3375 ブロック/ティック、20ティック/秒でブロック/秒に変換するにはおよそ ×42.16)。シミュレーションはゲームと同様に生の属性値で実行され、表示のためだけにブロック/ブロック毎秒へ変換されます。ほとんどのステータス表示MODで数値がこう表示されるのはそのためです。

The Offspring Formula

子馬の各能力値 — 体力、ジャンプ力、移動速度 — は、ゲーム内の AbstractHorse.createOffspringAttribute コードと同じ形の式で個別に抽選されます(ロバとラバにも同じ処理が使われます)。

  1. midpoint = (parentA + parentB) / 2
  2. range = statMax - statMin for that stat’s legal range
  3. spread = |parentA - parentB| + 0.3 × range
  4. roll = (random() + random() + random()) / 3 - 0.5 — 0〜1の独立した乱数3個を平均してから、中心が0になるよう補正
  5. foalValue = midpoint + spread × roll
  6. 結果が有効範囲を外れた場合、ゲームは超過分だけ跳ね返します(max - (foalValue - max))。このツールも同様です — だからこそ、最大値の両親を掛け合わせても移動速度は平均約13.84 b/s となり、14.23の上限には決してならないのです。

一様な乱数1個ではなく3個の乱数を平均する(手順4)ため、結果は均等に散らばらず中間値付近へ集まります。大半の子馬は両親の平均に近くなり、まれに両端寄りの値が出ます。

バニラの実際の子馬属性式(両親の中間値 + 差に応じた分散を、3個の乱数の平均で抽選)をブラウザー内のモンテカルロ法でシミュレーションします。結果は多数の試行に基づく確率的な推定であり、1つに確定した答えではありません。ジャンプ力と速度は、生の属性値ではなく、直感的なブロックおよびブロック/秒で表示します。