Damage/ja: Difference between revisions
(Change "抵抗(力)" to "耐性" ("resistance" in English)) |
|||
Line 4: | Line 4: | ||
== 概要 == | == 概要 == | ||
Factorioでは、エンティティは耐久力を持ち、死亡もしくは破壊することができ、耐性を持っている。 | |||
''ダメージ''とは、銃による射撃やバイターに噛まれるなどで、エンティティの耐久力を低下させる概念として定義される。 | ''ダメージ''とは、銃による射撃やバイターに噛まれるなどで、エンティティの耐久力を低下させる概念として定義される。 | ||
エンティティの耐性は、任意の攻撃からエンティティが受けるダメージをどの程度軽減できるかを定義する。 | |||
プレイヤーの最大耐久力は250である([[energy shield/ja|エネルギーシールド]]を除く)。その他のエンティティの耐久力は、それぞれのエントリに記載されている。 | プレイヤーの最大耐久力は250である([[energy shield/ja|エネルギーシールド]]を除く)。その他のエンティティの耐久力は、それぞれのエントリに記載されている。 | ||
Line 43: | Line 43: | ||
貫通力は[[tank/ja|戦車]]の弾薬に存在する。これは弾丸がそれ以上飛翔できなくなるまでに、どれだけの敵のHPにダメージを与えられるかを決定する。敵を貫通するためには、敵が弾丸によって殺される必要があり、殺傷するために与えられるダメージは現在の貫通力以下でなければならない。[https://forums.factorio.com/viewtopic.php?f=5&t=30917]ダメージを与えた分、貫通力も減少する。例えば、耐久力75の中型バイターを貫通力300の砲弾で撃つと、砲弾は4体の中型バイターを貫通して彼らを殺し、さらにもう1体のターゲットを破壊/損傷させることになる。 | 貫通力は[[tank/ja|戦車]]の弾薬に存在する。これは弾丸がそれ以上飛翔できなくなるまでに、どれだけの敵のHPにダメージを与えられるかを決定する。敵を貫通するためには、敵が弾丸によって殺される必要があり、殺傷するために与えられるダメージは現在の貫通力以下でなければならない。[https://forums.factorio.com/viewtopic.php?f=5&t=30917]ダメージを与えた分、貫通力も減少する。例えば、耐久力75の中型バイターを貫通力300の砲弾で撃つと、砲弾は4体の中型バイターを貫通して彼らを殺し、さらにもう1体のターゲットを破壊/損傷させることになる。 | ||
== | == 耐性 == | ||
耐性には2つの側面がある。 | |||
=== 減衰または "一律" | === 減衰または "一律"の耐性 === | ||
減衰耐性は、結果としてダメージが1を下回らない限り、指定した数値だけダメージを減少させる。結果的にダメージが1より小さくなる場合は、別の計算式を用いる。Rを一律の耐性値、Dを元のダメージ、Mを一律の耐性を考慮した後の修正ダメージとする。 | |||
R+1<D の場合 | R+1<D の場合 | ||
Line 61: | Line 61: | ||
<code>M=1/(R+1)</code>. | <code>M=1/(R+1)</code>. | ||
一律の耐性が修正前のダメージに一致するか、より大きい場合、修正後のダメージは以下の表に示すように0に漸近する。 | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! ダメージ !! | ! ダメージ !! 一律耐性 !! 修正後ダメージ (耐性 0%の場合) | ||
|- | |- | ||
| 5 || 0 || 5 | | 5 || 0 || 5 | ||
Line 88: | Line 88: | ||
|} | |} | ||
=== | === 割合耐性 === | ||
割合耐性は、ダメージを指定の割合減少させる。両方の耐性が存在するとき、割合耐性は一律/減衰耐性の''後''に適用され、上記の「修正ダメージ」の値を変更し、指定された割合だけ減少させる。 | |||
この値が100% | この値が100%の場合、そのエンティティはそのダメージを無効化できる。一律耐性はダメージを1以下に減らすことができないため、これはエンティティが特定のダメージの種類を無効化する唯一の方法である。 | ||
例えば、物理ダメージに25% | 例えば、物理ダメージに25%の耐性をもつエンティティの場合、弾丸が命中して100物理ダメージが発生しても、実際に受けるダメージは100ではなく75になる。 | ||
割合耐性のダメージを計算する式は以下のようになる。 | |||
Mを一律耐性による修正後のダメージとし、Pを割合耐性の値(十進表記。25%ならば0.25)とし、Fを最終的なダメージとする。 | |||
<code>F = M * (1 - P)</code> | <code>F = M * (1 - P)</code> | ||
Line 103: | Line 103: | ||
-------- | -------- | ||
Factorioでは、耐性はUIで以下のように表記される。 | |||
減衰耐性/割合耐性(ダメージ種類) | |||
火炎に10/20% | 火炎に10/20%耐性と表示しているエンティティは、火炎に対して一律耐性 10と 20%耐性を持っている。このエンティティが30火炎ダメージを受けると、耐性が適用された結果、耐久力が16ダメージを受ける。 | ||
上の場合を数式で表すと以下のようになる。 | 上の場合を数式で表すと以下のようになる。 | ||
16<sup>最終ダメージ</sup> = (30<sup>初期ダメージ</sup> - 10<sup> | 16<sup>最終ダメージ</sup> = (30<sup>初期ダメージ</sup> - 10<sup>一律耐性</sup>) * 0.8<sup>20% 耐性</sup> | ||
== 組み合わせた数式 == | == 組み合わせた数式 == | ||
D を(適切な種類の)初期ダメージとし、R | D を(適切な種類の)初期ダメージとし、R を(ダメージに対して適切な種類の)一律耐性値とし、Pを(ダメージと同じ種類の)割合耐性の10進表記(例 20%=0.2)とし、Fを(適切な種類の)最終的に与えられるダメージとする。 | ||
=== R+1<D の場合=== | === R+1<D の場合=== |
Latest revision as of 02:15, 7 September 2024
ダメージを受けるとは、敵 やその他のエンティティによって プレイヤーの耐久力が低下することである。
概要
Factorioでは、エンティティは耐久力を持ち、死亡もしくは破壊することができ、耐性を持っている。 ダメージとは、銃による射撃やバイターに噛まれるなどで、エンティティの耐久力を低下させる概念として定義される。 エンティティの耐性は、任意の攻撃からエンティティが受けるダメージをどの程度軽減できるかを定義する。
プレイヤーの最大耐久力は250である(エネルギーシールドを除く)。その他のエンティティの耐久力は、それぞれのエントリに記載されている。
実績
ダメージの概念は、以下の実績と直接関係している。
走れ、フォレスト、走れ 100本の木を自動車や戦車の衝突で破壊する |
放火魔 炎で1万本の木を破壊する |
ローラー作業 10個の巣を自動車や戦車の衝突で破壊する |
ゴーレム 一撃で500以上のダメージを受け、生存する |
足元にご注意ください 動いている機関車に轢かれて死ぬ |
ダメージの種類
ダメージの種類 | ダメージ源 |
---|---|
物理 | 弾薬 (通常/貫通/劣化ウラン), ショットガン弾薬 (通常/貫通), バイター, ディフェンダーカプセル |
衝撃 | (機関車/自動車/戦車との)衝突 |
火炎 | 火炎放射器, 火炎放射タレット |
酸 | ワーム, スピッター |
毒 | 毒素カプセル |
爆発 | ロケット弾, 炸裂ロケット弾, グレネード, クラスターグレネード, 長距離砲弾, 地雷 |
レーザー | レーザータレット, ディストラクターカプセル, 携帯レーザー防御モジュール |
電気 | 携帯放電防御モジュール, デストロイヤーカプセル |
貫通力
貫通力は戦車の弾薬に存在する。これは弾丸がそれ以上飛翔できなくなるまでに、どれだけの敵のHPにダメージを与えられるかを決定する。敵を貫通するためには、敵が弾丸によって殺される必要があり、殺傷するために与えられるダメージは現在の貫通力以下でなければならない。[1]ダメージを与えた分、貫通力も減少する。例えば、耐久力75の中型バイターを貫通力300の砲弾で撃つと、砲弾は4体の中型バイターを貫通して彼らを殺し、さらにもう1体のターゲットを破壊/損傷させることになる。
耐性
耐性には2つの側面がある。
減衰または "一律"の耐性
減衰耐性は、結果としてダメージが1を下回らない限り、指定した数値だけダメージを減少させる。結果的にダメージが1より小さくなる場合は、別の計算式を用いる。Rを一律の耐性値、Dを元のダメージ、Mを一律の耐性を考慮した後の修正ダメージとする。
R+1<D の場合
M=D-R
D>1 の場合
M=1/(R-D+2)
その他の場合
M=1/(R+1)
.
一律の耐性が修正前のダメージに一致するか、より大きい場合、修正後のダメージは以下の表に示すように0に漸近する。
ダメージ | 一律耐性 | 修正後ダメージ (耐性 0%の場合) |
---|---|---|
5 | 0 | 5 |
5 | 1 | 4 |
5 | 2 | 3 |
5 | 3 | 2 |
5 | 4 | 1 |
5 | 5 | 1/2 |
5 | 6 | 1/3 |
5 | 7 | 1/4 |
5 | 8 | 1/5 |
... | ... | ... |
割合耐性
割合耐性は、ダメージを指定の割合減少させる。両方の耐性が存在するとき、割合耐性は一律/減衰耐性の後に適用され、上記の「修正ダメージ」の値を変更し、指定された割合だけ減少させる。 この値が100%の場合、そのエンティティはそのダメージを無効化できる。一律耐性はダメージを1以下に減らすことができないため、これはエンティティが特定のダメージの種類を無効化する唯一の方法である。
例えば、物理ダメージに25%の耐性をもつエンティティの場合、弾丸が命中して100物理ダメージが発生しても、実際に受けるダメージは100ではなく75になる。
割合耐性のダメージを計算する式は以下のようになる。
Mを一律耐性による修正後のダメージとし、Pを割合耐性の値(十進表記。25%ならば0.25)とし、Fを最終的なダメージとする。
F = M * (1 - P)
Factorioでは、耐性はUIで以下のように表記される。
減衰耐性/割合耐性(ダメージ種類)
火炎に10/20%耐性と表示しているエンティティは、火炎に対して一律耐性 10と 20%耐性を持っている。このエンティティが30火炎ダメージを受けると、耐性が適用された結果、耐久力が16ダメージを受ける。
上の場合を数式で表すと以下のようになる。
16最終ダメージ = (30初期ダメージ - 10一律耐性) * 0.820% 耐性
組み合わせた数式
D を(適切な種類の)初期ダメージとし、R を(ダメージに対して適切な種類の)一律耐性値とし、Pを(ダメージと同じ種類の)割合耐性の10進表記(例 20%=0.2)とし、Fを(適切な種類の)最終的に与えられるダメージとする。
R+1<D の場合
F = (D - R) * (1 - P)
D>1 の場合
F = (1 - P) / (R-D+2)
その他の場合
F = (1 - P) / (R+1)