エンチャントの仕組み

提供: Minecraft Wiki
移動先: 案内検索
この記事は翻訳途中です。
あなたが内容を翻訳してみませんか?

この記事ではエンチャント仕組みについて説明する。

基本的な仕組み[編集 | ソースを編集]

プレイヤーがエンチャントテーブルに適格なアイテムを置くとそのたびに利用可能なエンチャントレベルが、以下の式を使ってランダムに提示される。そのレベルはエンチャントテーブルの近くに設置された本棚の数とそれがどのスロットに位置するかに依存する。

基本エンチャントレベル (base) = (1..8 + floor(b/2) + 0..b),

ここで、b は近くの本棚の数(最大15)で、x..y は x と y の間の均等に分布するランダムな整数を生成する。これはスロット位置に応じて変更される。

一番上のスロットのエンチャントレベル = max (base /3, 1)
中央のスロットのエンチャントレベル = (base × 2) / 3 + 1
一番下のスロットのエンチャントレベル = max (base, b × 2)

max (x, y) は最大の値を出力する。

本棚の数 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
一番上のスロットの最小レベル 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2
一番下のスロットの最大レベル 8 9 11 12 14 15 17 18 20 21 23 24 26 27 29 30
本棚の数 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
一番上のスロットのレベルの範囲 1 - 2 1 - 3 1 - 3 1 - 4 1 - 4 1 - 5 1 - 5 1 - 6 1 - 6 1 - 7 2 - 7 2 - 8 2 - 8 2 - 9 2 - 9 2 - 10
中央のスロットのレベルの範囲 1 - 6 1 - 7 2 - 8 2 - 9 3 - 10 3 - 11 3 - 12 3 - 13 4 - 14 4 - 15 5 - 16 5 - 17 5 - 18 5 - 19 6 - 20 6 - 21
一番下のスロットのレベルの範囲 1 - 8 2 - 9 4 - 11 6 - 12 8 - 14 10 - 15 12 - 17 14 - 18 16 - 20 18 - 21 20 - 23 22 - 24 24 - 26 26 - 27 28 - 29 30 - 30

ここで注意してほしいのは、特定のスロットの経験値コストが高いことは必ずしもそのスロットが他のスロットよりもコストが安いことを意味するわけではないということである。

また、クリエイティブモードではエンチャントで経験値を消費しない。

本棚の設置[編集 | ソースを編集]

本棚をエンチャントテーブルの近くに置くことで利用できるエンチャントレベルを上げることができる。これなしではレベル8を超えるエンチャントは利用できない。

効果を受けるためには下図(
は空気を示す)のように本棚をエンチャントテーブルの外側2ブロックの同じ高さ、もしくはテーブルより1ブロック高くなるように置く必要がある。本棚とエンチャントテーブルの間は空気でなくてはならず、松明や層状の雪、カーペットでさえも設置してはならない。

上から見た図








もしくは








横から見た図




もしくは





最大のレベルまで利用できる配置は数多く存在する。その中でも単純な方法は、エンチャントテーブルの周りを1ブロックあけて四角く囲うことである。

















もう1つの方法としては下の図のように、各本棚が2ブロック分の高さを持った「図書館コーナー」を作ることである。この配置方法は必要以上に16個本棚を置けるスペースを与える。


















エンチャントレベルの変更[編集 | ソースを編集]

エンチャントテーブルから提示されるエンチャントはエンチャントレベルに依存する。そのエンチャントレベルは近くの本棚の数に依存する。エンチャントレベルを変更する最も簡単な本棚とエンチャントテーブルの間に松明を設置することである。そうすれば本棚を壊すことなくエンチャントレベルを変更することができる。レベルを戻したければ松明を撤去すればいい。

Enchantment table bookshelf placement.png

ここに示すレイアウトでは、0~15の任意の数の本棚のエンチャントを簡単に確認できる。

エンチャントの選定の仕組み[編集 | ソースを編集]

「エンチャントレベル」はそのエンチャントを付与するのに必要なレベルのことである。「エンチャントのパワー」は特定のエンチャントのパワーランクである。例として「ダメージ増加 IV」のパワーランクは4である。 エンチャントのアルゴリズムは3段階のプロセスを使用している。

ステップ1 - エンチャントレベルへ補正を適用[編集 | ソースを編集]

最初のステップは基本エンチャントレベルに2つの補正を適用する。 それぞれの補正は一定の範囲に制限されていて、その中央に近い値は両端に近い値よりも発生確率が高くなる。

最初の補正はアイテムの素材とアイテムの種類毎の「エンチャント適性 (Enchantability)」に基づいている。Minecraft は 0 からエンチャント適正の半分までの数値を選び、その値に1を足した数値をエンチャントレベルに加える。弓と本、釣竿はこの目的のために1の適正値を持っている。このランダムな値は三角形の分布(一対のサイコロを振って追加するような)に従うので、エンチャント適正の1/4に近い結果が極端な場合の結果よりもはるかに可能である。

補正済みエンチャントレベル = 基本エンチャントレベル + Random(0, エンチャント適正補正値 / 4) + Random(0, エンチャント適正補正値 / 4) + 1
素材 防具のエンチャント適正補正値 剣、道具類のエンチャント適正補正値
N/A 15
15 N/A
N/A 5
9 14
チェーン 12 N/A
ダイヤモンド 10 10
25 22
1 1

次に、0.75から1.25の値をランダムで補正済みエンチャントレベルに乗算して(つまり15%まで増加または減少する)もっとも近い整数に収められる。

ステップ1の擬似コード[編集 | ソースを編集]

// Returns a uniformly distributed random integer between 0 and n - 1, inclusive
function randomInt(n);

// returns a uniformly distributed random real (fractional) number between 0 (inclusive) and 1 (exclusive)
function randomFloat();


// Generate a random number between 1 and 1+(enchantability/2), with a triangular distribution
enchantability_2 = enchantability / 2;
int rand_enchantability = 1 + randomInt(enchantability_2 / 2 + 1) + randomInt(enchantability_2 / 2 + 1);

// Choose the enchantment level
int k = chosen_enchantment_level + rand_enchantability;

// A random bonus, between .85 and 1.15
float rand_bonus_percent = 1 + (randomFloat() + randomFloat() - 1) * 0.15;

// Finally, we calculate the level
int final_level = (int)(k * rand_bonus_percent + 0.5);
if ( final_level < 1 ) final_level = 1
Source:[1]

ステップ2 - 適用される可能性のあるエンチャントの候補[編集 | ソースを編集]

幾つかのエンチャントを持った剣

次に、補正されたエンチャントレベルに基づいてそれぞれのエンチャントのパワーに従い、対象に適用可能な全てのエンチャント候補が決定される。

各エンチャントのパワーはレベルによって決められ、その値は下記の表になる。エンチャントのパワーはそれぞれ、発生可能な最大/最小レベルが決められている。補正済みレベルがその範囲に入っていると、エンチャントには該当するパワーが割り当てられる。同じエンチャントでレベル範囲が重なっている場合は、高い方が使われる。

防具のエンチャント 補正済みエンチャントレベル
I II III IV V
ダメージ軽減 1–21 12–32 23–43 34–54
火炎耐性 10–22 18–30 26–38 34–46
落下耐性 5–15 11–21 17–27 23–33
爆発耐性 5–17 13–25 21–33 29–41
飛び道具耐性 3–18 9–24 15–30 21–36
水中呼吸 10–40 20–50 30–60
水中採掘 1–41
棘の鎧 10–60 30–80 50–100
水中歩行 10–25 20–35 30–45
氷渡り 10–25 20–35
束縛の呪い 25–50
補正済みエンチャントレベル
I II III IV V
ダメージ増加 1–21 12–32 23–43 34–54 45–65
アンデッド特攻 5–25 13–33 21–41 29–49 37–57
虫特攻 5–25 13–33 21–41 29–49 37–57
ノックバック 5–55 25–75
火属性 10–60 30–80
ドロップ増加 15–65 24–74 33–83
範囲ダメージ増加 5–20 14–29 23–38
弓のエンチャント 補正済みエンチャントレベル
I II III IV V
射撃ダメージ増加 1–16 11–26 21–36 31–46 41–56
パンチ 12–37 32–57
フレイム 20–50
無限 20–50
道具のエンチャント 補正済みエンチャントレベル
I II III IV V
効率強化 1–51 11–61 21–71 31–81 41–91
シルクタッチ 15–65
幸運 15–65 24–74 33–83
釣竿のエンチャント 補正済みエンチャントレベル
I II III IV V
宝釣り 15–65 24–74 33–83
入れ食い 15–65 24–74 33–83
耐久値の設定されたアイテムすべてのエンチャント 補正済みエンチャントレベル
I II III IV V
耐久力 5–55 13–63 21–71
修繕 25–75
消滅の呪い 25–50

Source:[2]

注意:極端に高いエンチャントレベルはアイテムのすべての有効なエンチャントの範囲外になる可能性がある。この場合、そのアイテムはエンチャントされていないが、経験レベルは消費されていないため、再びエンチャントできるようになる。

宝のエンチャント[編集 | ソースを編集]

いくつかのエンチャントは「宝のエンチャント」と呼ばれる。これはエンチャントテーブルからは決して付与されることはなく、チェストや釣り交易で得られるエンチャントの本でのみ付与される。チェストからは本だけでなく、それが付与された装備が見つかることがある。

ステップ3 - 候補からエンチャントの構成を選択[編集 | ソースを編集]

次に、アイテム用のエンチャントの候補が得られたので、実際に適用するエンチャントをいくつか選定される。それぞれのエンチャントには統計的は「出現比」があり、これが高いほど選ばれる確率が高い。

P(enchantment) = (enchantment weight) / ( ∑i=1number of possible enchantments〖enchantment weighti 〗)
防具に付与されるエンチャント 対象 出現比 トレジャーエンチャントかどうか
ダメージ軽減



10 いいえ
落下耐性
5 いいえ
火炎耐性



5 いいえ
飛び道具耐性



5 いいえ
水中採掘
2 いいえ
爆発耐性



2 いいえ
水中呼吸
2 いいえ
水中歩行
2 いいえ
氷渡り
2 はい
棘の鎧
1 いいえ
束縛の呪い






1 はい
剣に付与されるエンチャント 対象 出現比 トレジャーエンチャントかどうか
ダメージ増加

[3]
10 いいえ
虫特攻

[3]
5 いいえ
ノックバック]]
5 いいえ
アンデッド特攻

[3]
5 いいえ
火属性
2 いいえ
ドロップ増加
2 いいえ
範囲ダメージ増加
2 いいえ
道具に付与されるエンチャント 対象 出現比 トレジャーエンチャントかどうか
効率強化



[3]
10 いいえ
幸運


2 いいえ
シルクタッチ


1 いいえ
弓に付与されるエンチャント 対象 出現比 トレジャーエンチャントかどうか
射撃ダメージ増加
10 いいえ
フレイム
2 いいえ
パンチ
2 いいえ
無限
1 いいえ
釣竿に付与されるエンチャント 対象 出現比 トレジャーエンチャントかどうか
宝釣り
2 いいえ
入れ食い
2 いいえ
耐久値の設定されたアイテムすべてに付与されるエンチャント 出現比 トレジャーエンチャントかどうか
耐久力










[3]
[3]
[3]
[3]
[3]
[3]
5 いいえ
修繕















2 はい
消滅の呪い

















1 はい

最低でも1つのエンチャントが得られる。更により多くのエンチャントを得られるかもしれない。追加のエンチャントは次のアルゴリズムに従って選ばれる。

  1. (補正済みレベル + 1) / 50の確率でそのまま続行、さもなくば追加のエンチャント選択は終了。
  2. 既に選ばれたエンチャントと競合する物を候補のリストから外す。
  3. 残りのエンチャント候補から1つを選び(前述したウェイトに従って)適用する。
  4. 補正レベルを半分に割り、小数点以下を切り捨てる(これはステップ2ですべて計算済みのため、エンチャント自体には影響しない)。
  5. 1に戻る。


エンチャントの競合[編集 | ソースを編集]

いくつかのエンチャントは他のエンチャントと競合する。この場合、両方を同じアイテムに付与することはできない。

エンチャントの競合のルール[編集 | ソースを編集]

  • 全てのエンチャントはそれ自身と競合する(そのため、効率強化を2つ持つ道具は得られない)。
  • 全ての防御耐性のエンチャントはお互いに競合する、そのためアイテムには同時に1つしか得られない。
  • 全ての追加ダメージのエンチャント(ダメージ増加、アンデッド特効、虫特効)はお互いに競合する。
  • シルクタッチと幸運はお互いに競合する。
  • 水中歩行と氷渡りはお互いに競合する。
  • 1.11.2から修繕と無限はお互いに競合するようになった。

競合するエンチャントを合わせ持ったアイテムは /give コマンドで現れることがある。そのようなアイテムの振る舞いは期待されないが一般的には

  • 同じエンチャントを複数持つアイテムは最初のものが適用される。
  • ダメージを軽減するエンチャントを複数持っている防具ではそれぞれが効力を発揮する。
  • ダメージを増加するエンチャントを複数持っている武器ではそれぞれが効力を発揮する。
  • シルクタッチと幸運の両方を持っている場合はシルクタッチが優先され、シルクタッチの影響を受けないブロックに対しては幸運が適用される。
  • 修繕と無限の両方が付与された弓では、両方のエンチャントが適用される。
全てのダイヤモンド製の道具に適正なエンチャントのグラフ

注釈[編集 | ソースを編集]

  1. Minecraft 1.8 source code
  2. Minecraft 1.4.6 source code
  3. a b c d e f g h i j エンチャントテーブルでは付与されないが金床を用いてエンチャントの本から付与することができる。

動画[編集 | ソースを編集]

Enchantment Mechanics/video

外部リンク[編集 | ソースを編集]