ダメージタイプ:防具を無視する19種類と、盾のほうが貫通されやすい理由
26.2には51種類のダメージタイプがあります。そのうち19種類は防具を、30種類は盾を無視しますが、その重複は一般的に考えられているものとは異なります。防具を貫通するタイプはすべて盾も貫通します。
ダメージタイプは単なる死亡メッセージではありません。防具が有効か、構えた盾が有効か、耐性(Resistance)が有効かを決定するフラグを持っており、データパックは#minecraft:bypasses_armorなどを使ってこれらのフラグを読み取ります。以下の数値はすべて、このページで表示されている26.2のMojang公式damage_typeファイルからカウントされたものです。
カウント
51種類のダメージタイプのうち、19種類は防具を無視し、30種類は構えた盾を無視します。
2つ目の数値は直感に反します。盾は攻撃を完全に防ぐため防具より強く見えますが、実際には防具を無視する19種類に対し、盾を無視するタイプは30種類あります。
重複は一方向
これは心に留めておくべき部分であり、傾向というよりも厳格な構造的ルールです。
防具を貫通するダメージタイプはすべて盾も貫通します。例外はありません。
直接カウントすると、「防具は貫通するが盾は貫通しない」というセットは空です。したがって、防具を貫通する19種類のタイプは、盾を貫通する30種類の厳密なサブセットであり、その間の11種類のタイプは、盾は貫通するものの防具によって軽減されます。
cactus, campfire, dry_out, falling_anvil, falling_stalactite, hot_floor, in_fire, lava, lightning_bolt, sulfur_cube_hot, sweet_berry_bush
一覧を見ると理由が分かります。いずれも環境由来か頭上から受けるダメージです。立っている床や頭上から落ちる金床に盾を向けることはできませんが、防具ならダメージの一部を軽減できます。
実用上は、防具を貫通する攻撃なら盾でも防げません。 落下、溺死、凍結、飢餓、/killでは防具も盾も無効です。代わりに落下耐性(Feather Falling)、水中呼吸(Respiration)、氷渡り(Frost Walker)などのエンチャントを使います。これらは上記のフラグでは無効化されません。
すべてを無視するタイプは一つだけ
starveは、防具、盾、そしてステータス効果をすべて無視する唯一のダメージタイプです。そのため、耐性(Resistance)も効果がありません。ゲーム内で空腹(Hunger)バーが空になることから身を守るものは、食べ物以外にありません。
疲労度は二値
ダメージを受けると空腹度が増しますが、その量は予想されるような段階的なものではありません。26.2の全51種類のタイプにおいて、疲労度の値は正確に2つしかありません。0と0.1です。51種類のタイプのうち32種類は0.1を適用し、残りは何も適用しません。
したがって、「大きなダメージほど空腹度が増す」というルールはありません。1ポイントの落下ダメージも、クリーパー(Creeper)の顔面爆破も、同じ疲労度を消費し、19種類のタイプは全く何も消費しません。
スケーリングには2つの設定があり、曲線ではない
scalingは難易度がダメージを乗算するかどうかを決定し、常にwhen_caused_by_living_non_playerまたはalwaysのいずれかの値を取ります。タイプごとに調整する難易度曲線はありません。データパックはタイプを難易度スケーリングに含めるか、含めないかのどちらかです。
コマンドにとってこれが重要な理由
/damage <target> <amount> <type>は51種類のいずれかを取り、間違ったものを選択すると、結果が静かに変わります。
/damage @p 10 minecraft:fall # armour ignored, shield ignored
/damage @p 10 minecraft:lava # shield ignored, armour still reduces it
/damage @p 10 minecraft:starve # armour, shield and Resistance all ignored
3つのコマンドは、同じ対象へ同じ10ダメージを与えても結果が異なります。マップをフルネザライト装備のプレイヤー向けに調整していても、選ぶダメージタイプによって、防具を計算に含めるかどうかが変わります。