In other languages: Deutsch English Español Français 한국어 Русский Українська 简体中文

Damage/ja: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(Undo revision 198361 by Zefard (talk))
(Change "抵抗(力)" to "耐性" ("resistance" in English))
 
Line 4: Line 4:


== 概要 ==
== 概要 ==
Factorioでは、エンティティは耐久力を持ち、死亡もしくは破壊することができ、抵抗力を持っている。
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つの側面がある。
耐性には2つの側面がある。


=== 減衰または "一律"の抵抗 ===
=== 減衰または "一律"の耐性 ===
減衰抵抗は、結果としてダメージが1を下回らない限り、指定した数値だけダメージを減少させる。結果的にダメージが1より小さくなる場合は、別の計算式を用いる。Rを一律の抵抗値、Dを元のダメージ、Mを一律の抵抗を考慮した後の修正ダメージとする。
減衰耐性は、結果としてダメージが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に漸近する。
一律の耐性が修正前のダメージに一致するか、より大きい場合、修正後のダメージは以下の表に示すように0に漸近する。


{| class="wikitable"
{| class="wikitable"
|-
|-
! ダメージ !! 一律抵抗 !! 修正後ダメージ (抵抗 0%の場合)
! ダメージ !! 一律耐性 !! 修正後ダメージ (耐性 0%の場合)
|-
|-
| 5 || 0 || 5
| 5 || 0 || 5
Line 88: Line 88:
|}
|}


=== 割合抵抗 ===
=== 割合耐性 ===


割合抵抗は、ダメージを指定の割合減少させる。両方の抵抗が存在するとき、割合抵抗は一律/減衰抵抗の''後''に適用され、上記の「修正ダメージ」の値を変更し、指定された割合だけ減少させる。
割合耐性は、ダメージを指定の割合減少させる。両方の耐性が存在するとき、割合耐性は一律/減衰耐性の''後''に適用され、上記の「修正ダメージ」の値を変更し、指定された割合だけ減少させる。
この値が100%の場合、そのエンティティはそのダメージに対する耐性を持つ。一律抵抗はダメージを1以下に減らすことができないため、これはエンティティにダメージの種類に対する耐性を持たせる唯一の方法である。
この値が100%の場合、そのエンティティはそのダメージを無効化できる。一律耐性はダメージを1以下に減らすことができないため、これはエンティティが特定のダメージの種類を無効化する唯一の方法である。


例えば、物理ダメージに25%の抵抗をもつエンティティの場合、弾丸が命中して100物理ダメージが発生しても、実際に受けるダメージは100ではなく75になる。
例えば、物理ダメージに25%の耐性をもつエンティティの場合、弾丸が命中して100物理ダメージが発生しても、実際に受けるダメージは100ではなく75になる。


割合抵抗のダメージを計算する式は以下のようになる。
割合耐性のダメージを計算する式は以下のようになる。


Mを一律抵抗による修正後のダメージとし、Pを割合抵抗の値(十進表記。25%ならば0.25)とし、Fを最終的なダメージとする。
Mを一律耐性による修正後のダメージとし、Pを割合耐性の値(十進表記。25%ならば0.25)とし、Fを最終的なダメージとする。


<code>F = M * (1 - P)</code>
<code>F = M * (1 - P)</code>
Line 103: Line 103:
--------
--------


Factorioでは、抵抗はUIで以下のように表記される。
Factorioでは、耐性はUIで以下のように表記される。


減衰抵抗/割合抵抗(ダメージ種類)
減衰耐性/割合耐性(ダメージ種類)


火炎に10/20%抵抗と表示しているエンティティは、火炎に対して一律抵抗 10と 20%抵抗を持っている。このエンティティが30火炎ダメージを受けると、抵抗が適用された結果、耐久力が16ダメージを受ける。
火炎に10/20%耐性と表示しているエンティティは、火炎に対して一律耐性 10と 20%耐性を持っている。このエンティティが30火炎ダメージを受けると、耐性が適用された結果、耐久力が16ダメージを受ける。


上の場合を数式で表すと以下のようになる。
上の場合を数式で表すと以下のようになる。


16<sup>最終ダメージ</sup> = (30<sup>初期ダメージ</sup> - 10<sup>一律抵抗</sup>) * 0.8<sup>20% 抵抗</sup>
16<sup>最終ダメージ</sup> = (30<sup>初期ダメージ</sup> - 10<sup>一律耐性</sup>) * 0.8<sup>20% 耐性</sup>


== 組み合わせた数式 ==
== 組み合わせた数式 ==
D を(適切な種類の)初期ダメージとし、R を(ダメージに対して適切な種類の)一律抵抗値とし、Pを(ダメージと同じ種類の)割合抵抗の10進表記(例 20%=0.2)とし、Fを(適切な種類の)最終的に与えられるダメージとする。
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である(エネルギーシールドを除く)。その他のエンティティの耐久力は、それぞれのエントリに記載されている。

実績

ダメージの概念は、以下の実績と直接関係している。

Run-forrest-run-achievement.png 走れ、フォレスト、走れ

100本のを自動車や戦車の衝突で破壊する

Pyromaniac-achievement.png 放火魔

炎で1万本のを破壊する

Steamrolled-achievement.png ローラー作業

10個のを自動車や戦車の衝突で破壊する

Golem-achievement.png ゴーレム

一撃で500以上のダメージを受け、生存する

Watch-your-step-achievement.png 足元にご注意ください

動いている機関車に轢かれて死ぬ

ダメージの種類

ダメージの種類 ダメージ源
物理 弾薬 (通常/貫通/劣化ウラン), ショットガン弾薬 (通常/貫通), バイター, ディフェンダーカプセル
衝撃 (機関車/自動車/戦車との)衝突
火炎 火炎放射器, 火炎放射タレット
ワーム, スピッター
毒素カプセル
爆発 ロケット弾, 炸裂ロケット弾, グレネード, クラスターグレネード, 長距離砲弾, 地雷
レーザー レーザータレット, ディストラクターカプセル, 携帯レーザー防御モジュール
電気 携帯放電防御モジュール, デストロイヤーカプセル

貫通力

貫通力は戦車の弾薬に存在する。これは弾丸がそれ以上飛翔できなくなるまでに、どれだけの敵の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)