ダメージの算出

目次へ

(概略)
SFC版での、ダメージを算出する方程式と、その要素です。やったぜ。
解析はatomosさんによるものです。ありがとうございました。やはり技術のある方って素晴らしいです。
あくまでSFC版について調査確認したものであり、SS版、PS版で異なる計算が行われている可能性は否定できません。
さらに詳しい情報が他所様からのピックアップにあります。特にマナコ・アンドウさんによる調査は強烈に素晴らしいのでよろしく。

ていうか、タクティクスオウガにおけるダメージや命中率といった細密なシステムの把握、というテーマに対する伊藤悠の興味パワーは、尽きました。マジックポイント0です。へろへろです。どなたかこのテーマを進めてウェブ上に公開したいという方がおられましたら、これらのデータを委任しますので、URLとメールアドレスを教えてください。クレジット表記をしっかりしてくれれば(そんなに難しいことじゃありません)、伊藤悠以外の方々にもたぶん異存はないかと思います。2001.10.06


au 攻撃ユニット。攻撃を行うユニット。
du 防御ユニット。攻撃を受けるユニット。ダメージを受けるユニット。
w 使用武器。攻撃に使われる武器。
Va 攻撃値。ゲーム中、ユニット状態のウィンドウに表示される数値と同じ
Vd 防御値。ゲーム中、ユニット状態のウィンドウに表示される数値とは違う
DMGb 基本ダメージ値。ゲーム中、攻撃を実行する直前にウィンドウに表示される値。
DMG 最終ダメージ値。実際に防御ユニットに与えられるダメージ。
Ra 攻撃補正値。
Rd 防御補正値。
RESb 基本属性耐性値。クラスごとに定まっている。
RES 最終属性耐性値。
WAY 攻撃手段。
RND 乱数。


攻撃値 Va = (STRau + STRw) + (DEXau + DEXw) / 2
防御値 Vd = VITdu + STRdu / 2

基本ダメージ値 DMGb = {(Va * Ra / 100) - (Vd * Rd / 100)} * RES / 100

最終ダメージ値 DMG = [{DMGb + (LUKau - LUKdu)} + RND] * WAY

注:
基本的に、計算で生じた端数はそのたびごとに切り捨てられる。例外はWAY。
基本ダメージ値は最低でも1になる。
なんだか、理論値が実測値(表示されるダメージ予測値)より1多かったり少なかったりすることがあります。どこか細かい、切り捨てとか四捨五入のところで間違いがあるのかな……
あと、これはSFC版についてのものです。PS版、SS版との間に差異があるかもしれません。


攻撃補正値Raの算出

(1)基本
100。
(2)ノックバック
ノックバックが起きたら、+10。
(3)攻撃ユニットのいるパネルの地形による修正
ゲーム中、地形パネルを指定してヘルプを見たときに表示される「攻撃効果」の値に+50したもの。たとえば道なら、ヘルプでは攻撃効果40と表示されるが、内部的には90という数値が格納されている。注意。
(4)攻撃ユニットのエレメントとパネルのエレメント値との関係による修正
パネルのエレメント値とは、ゲーム中、地形パネルを指定したときウィンドウ右下に表示される数値。たとえば地肌では、水+0、地+2、炎+0、風-2。ただしマップによって、またデフ系呪文やプレイ系呪文によって変化するので注意。
(5)-100
ここで-100される。(1)の基本が100で、ここで-100なら、相殺するではないか、と思った方、まったくその通りです。
(6)使用武器の属性と攻撃ユニットのエレメントとの関係による修正
一致すると、+10。逆だと-10。その他は+0。
(7)天候と攻撃ユニットのアラインメントとの関係による修正
左から、天候値、アラインメントN、L、C。天候値は晴天、曇天、小雨・小雪、雨・雪、豪雨・豪雪に対応している。
00 +0 +1 -3
01 +0 +0 -2
02 +0 -1 -1
03 +0 -2 +0
04 +0 -3 +1
たとえば雪でアラインメントLなら、-2。ということ。
(8)攻撃ユニットのクラスの天候抵抗
アスペクト版攻略本で「強」、ゼスト版攻略本で「A」と表記されているクラスは、+4。同じく、「*」「C」と標記されているクラスは、+2。「弱」「B」は、+0。天候抵抗と書いてあるが、天候は関わらない
(9)使用武器と攻撃ユニットの得意武器
使用武器が得意武器なら、+3。
(10)対竜攻撃効果、恐怖効果
対竜攻撃は、防御ユニットがドラゴンなら、効果一つについて+8。なお火竜の剣を両手に持っても+8であって+16にはならない。恐怖は効果一つにつき、攻撃ユニットのアラインメントがNなら-4、Lなら-8、Cは+0。有効距離3パネル。
(11)支援効果
ビースト、ドラゴン、ゴーレムへの支援効果。効果一つにつき+5。有効距離3パネル。
(12)上限と下限
0未満なら0、200超過なら200になる。


防御補正値Rdの算出

Raとほぼ同じ。違うのは、
  1. 地形パネルの修正値が違う
  2. 使用武器の属性と防御ユニットのエレメントとの関係は影響しない(それは、RESに影響する)
  3. 得意防具というものはない
くらい。
(1)基本
100。
(2)防御ユニットのいるパネルの地形による修正
ゲーム中、地形パネルを指定してヘルプを見たときに表示される「防御効果」の値に+50したもの。たとえば道なら、ヘルプでは攻撃効果20と表示されるが、内部的には70という数値が格納されている。注意。
(3)防御ユニットのエレメントとパネルのエレメントとの関係による修正
パネルのエレメント値とは、ゲーム中、地形パネルを指定したときウィンドウ右下に表示される数値。たとえば草地では、水+1、地-2、炎-1、風+2。ただしマップによって、またデフ系呪文やプレイ系呪文によって変化するので注意。
(4)-100
ここで-100される。(1)の基本が100で、ここで-100なら、相殺するではないか、と思った方、まったくその通りです。
(5)天候と防御ユニットのアラインメントとの関係による修正
左から、天候値、アラインメントN、L、C。天候値は晴天、曇天、小雨・小雪、雨・雪、豪雨・豪雪に対応している。
00 +0 +1 -3
01 +0 +0 -2
02 +0 -1 -1
03 +0 -2 +0
04 +0 -3 +1
たとえば雪でアラインメントLなら、-2。ということ。
(6)防御ユニットのクラスの天候抵抗
アスペクト版攻略本で「強」、ゼスト版攻略本で「A」と表記されているクラスは、+4。同じく、「*」「C」と標記されているクラスは、+2。「弱」「B」は、+0。天候抵抗と書いてあるが、天候は関わらない
(7)対竜防御効果、恐怖効果
対竜防御は、攻撃ユニットがドラゴンなら、効果一つにつき+5。恐怖は効果一つにつき、防御ユニットのアラインメントがNなら-4、Lなら-8、Cは+0。有効距離3パネル。
(8)支援効果
ビースト、ドラゴン、ゴーレムへの支援効果。効果一つにつき+5。有効距離3パネル。
(9)上限と下限
0未満なら0、200超過なら200になる。


最終属性耐性値RESの算出

(1)基本
RESb。クラスごとに決まっている値で、使用武器の属性に対応したもの。防御ユニットの装備アイテムによって修正される。ただしこの時、ゲーム中、アイテムのヘルプに表示される属性RESへの修正は正負逆に読む。注意すること。たとえば「炎RES+5」と書いてあったら、炎のRESbは-5される。攻略本に載っているアイテム紹介のRES修正は正しい(ゲーム中の表示とは符号が逆になっている)ので注意。ちょっとややこしい。
(2)使用武器の属性と防御ユニットのアラインメント・エレメントとの関係による修正
同じなら、-5。逆なら、+5。


RND

疑似正規分布をRND_N()とすると、以下の式で表現される。
フェアリー、グレムリンの場合
RND=RND_N(29)-14
それ以外の場合
RND=RND_N(11)-5
もっとも、全ての場合にこうなるかといわれると、定かではない。
RND_N()の具体的な形だが、[0,A-1]の範囲の一様確率分布をRANDOM(A)とすると、以下の式で導かれている。
RND_N(A)=SUM(RANDOM(A),12)/12
ここでSUM( ,α)は∑記号だと考えてほしい。つまり、RANDOM(A)を12回計算した和になる。
上の式からわかるように、RND_N()はかなり、実際の正規分布とはことなる。特にAが小さい場合は正しい分布から相当ずれる。
補足:
上の式の12は一様分布RANDOMの標準偏差がA/√12であることから来ている。従って、RND_N(A)の標準偏差はA/12になる。もしこれが正規分布であると仮定するならば、平均値の上下A/6の範囲に97%が集まることになる。例えばフェアリー等では、RNDは97%の確率で-5から5の範囲に収まる。しかし、上で述べたRANDOM(A)の離散性などのために、実際にはかなり広い範囲にばらつく。


WAY

普通は、1。素手だと、1 / 2。投石は、1 / 4。手裏剣も、1 / 4(投石とは軌道が違う)。その他は未調査。なぜかこのときのみ、端数は四捨五入される。


古都ライム
曇天
距離7、高低差4。

攻撃ユニット
アラインメント N
エレメント 風
クラス アーチャー
STR 107
DEX 154
LUK  50
攻撃手段 ジィルガの魔弓(属性暗黒、STR+34)
パネル 草地(攻撃効果35、風+2)

防御ユニット
アラインメント C
エレメント 水
クラス リッチ
STR 129
VIT 109
LUK  50
装備アイテム ホーリークラウン(属性神聖、物理RES+7、暗黒RES+5)、死神の甲冑(属性暗黒、物理RES+13、神聖RES+15、恐怖A/B)
パネル 道(防御効果20、水+0)

 まず、攻撃値Vaを出しましょう。これは簡単です。アーチャーのSTRとDEX/2と武器のSTR修正とを足して、Va=107+154/2+34=218です。
 次に、防御値Vdを出しましょう。リッチのVITとSTR/2(端数は切り捨てです)を足して、Vd=129/2+109=173です。防具が関わらないので、Vaよりさらに簡単ですね。
 攻撃補正値Raを出すのはちょっと厄介です。(1)基本が100。(3)草地の攻撃効果で+85。(4)アーチャーのエレメントが風で、草地の風のエレメント値が+7なので、+7。(5)-100。(6)の修正は、ジィルガの魔弓の属性が暗黒ですから、ありません。この修正にはアラインメントは関わらないことに注意してください。アーチャーのエレメントは風なので、使用武器の属性が風か大地なら、修正がかかることになります。(7)天候は曇天ですが、アーチャーのアラインメントがNなので、+0。(8)アーチャーの天候抵抗は強・またはAなので、+4。(9)使用武器はアーチャーの得意武器の弓なので、+3。(10)リッチが装備している死神の甲冑には恐怖効果がありますが、リッチとの距離は7と、十分離れているので、影響は受けません。(11)〜(12)は関係ないので、結局Raは、Ra=100+85+2-100+4+3=94です。
 防御補正値Rdは、けっこう楽に出せます。(1)基本が100。(2)道の防御効果で+70。(3)リッチのエレメントは水で、道の水のエレメント値が+0なので、+0。(4)-100。(5)天候が曇天で、リッチのアラインメントがCなので、-2。(6)リッチの天候抵抗は*・Cなので、+2。(7)〜(9)は関係ないので、結局RdはRd=100+70+0-100-2+2=70です。
 さあ、あと一歩。最終属性耐性値RESを出しましょう。なあに、あっと言う間です。(1)ジィルガの魔弓の属性は暗黒。リッチの対暗黒属性耐性値は85。そこへホーリークラウンの「暗黒RES+5」の修正が加わりますが、符号が逆になって実際には-5されることに注意。RESは低いほど、ダメージも低くなるのです。ホーリークラウンの「物理RES+7」の効果や、死神の甲冑の「物理RES+13」「神聖RES+15」の効果は、今回のダメージに全く影響をおよぼしません。ジィルガの魔弓の属性は暗黒だからです。防具を大量に装備しても、属性が物理以外の攻撃に対しては大きなダメージを被る、ということですね。(2)ジィルガの魔弓の属性は暗黒、リッチのアラインメントがC。よって、-5です。もしLなら、+5ということになります。結局RESは、RES=85-5-5=75です。
 Va、Vd、Ra、Rd、RESがわかりましたので、基本ダメージ値DMGbを出しましょう。DMGb={(Va*Ra/100)-(Vd*Rd/100)}*RES/100ですから(端数は出るたびに切り捨てることに注意してください)、DMGb={(218*94/100)-(173*70/100)}*75/100={204-121}*75/100=62です。
 この62が、攻撃を指定したときにウィンドウに表示されるダメージ値です。実際に攻撃を実行して与えられるダメージは、これにRNDの効果を加えたものになります。


留意点

  1. 攻撃ユニットのアラインメント・エレメントと防御ユニットのアラインメント・エレメントとの関係による影響は、ありません。ウォーレンレポートのヒントでは、ユニット同士のアラインメント・エレメントの関係がダメージに影響する、と書いてありますが、それは誤りです。……私が調べた範囲では。本当でしょうか? ちょっと不安です。
  2. ユニットのエレメントが関わるのは、地形パネルのエレメント値との関係、使用武器の属性との関係だけです。
  3. ユニットのアラインメントが関わるのは、天候との関係、恐怖効果です。また、防御ユニットのアラインメントは使用武器の属性と関わりますが、攻撃ユニットのアラインメントは使用武器の属性と関わらないことに注意してください。
  4. 使用武器の属性はユニットのエレメントと関わりますが、アラインメントとは関わりません。
  5. 防具の属性と防御ユニットのエレメントが関わりそうな気がしますが、関わりません。アラインメントとも関わりません。そもそも、防具の属性はダメージにまったく影響を与えないのです。
  6. クラスごとの天候抵抗は、天候には関わりません。いきなり名称矛盾を起こしていますが、いいんでしょうか? 天候と関わるのはユニットのアラインメントです。
  7. ユニットの相対高度による影響はありません。高台から弓を射っても、ダメージは増えません。……これも、本当かよ? という感じです。
  8. 弓による攻撃のダメージは、距離に影響されません。
  9. 地形パネルの攻撃効果、防御効果の値は、内部的には、ヘルプや攻略本で書いてある値に+50したものが格納されています。注意してください。
  10. ゲーム中、ユニットを指定したときウィンドウの右下に表示される値は、上が、Raの(2)と(3)に-60したもの、下が、Rdの(2)と(3)に-40したものです。
  11. ゲーム中、攻撃が実行される直前にウィンドウに表示されるのは、DMGのRNDを加えていない値です。
  12. ゲーム中、ユニットの攻撃力として表示される値は、Vaです。
  13. ゲーム中、ユニットの防御力として表示される値は、Vd * 100 / 属性物理のRES です。この値は、実際のダメージ算出に用いられる値ではありません。注意してください。
  14. 竜玉石の支援効果が敵ユニットにも及ぶという情報がありましたが、しまじんさんの実験(竜玉石3個装備ユニットの敵ドラゴンへの3パネル範囲内外からの投石ダメージ比較、実戦、天候その他の条件同等、PS版)によると、少なくともダメージに関しては利敵効果はありません。


わかっていないこと

  1. ちょっと、RNDのあたり、ちゃんと確かめていないので自信がない。
  2. 盾。
  3. 落下ダメージ。


調査した方法

コード解析と式
アセンブリコードの解析による。
検証
KARAT製SFC用ProActionReplayで、能力値オール400(LUK50)等々の実験用ユニットをつくり、ID・アラインメント・エレメントなどを書き換えながらダメージがどう変動するか調べた。なお、天候のメモリ位置は7E1EA1で00〜04、マップのエレメント値は風炎地水で7EBE44、7EBE46、7EBE48、7EBE4A。ノックバックは7ED36で01。ターボファイルツインが役に立った。
参考にしたデータ
アスペクト版攻略本。ゼスト版攻略本。改造コードについては、www.ogre.org。


調査した人間

atomos コード解析と式
伊藤悠 FZR02073---a---t---nifty.ne.jp 検証・文責


 複雑なシステムを試行錯誤で調べた結果ですので、確かだとはいえません。間違っていたり、もっと詳しく知っている箇所があったらぜひ教えて下さい。


更新履歴
2000.12.15 ver1.4 しまじんさんの指摘を受け検証、対竜防御効果を+4から+5に訂正。
2000.12.13 ver1.3 しまじんさんの検証から、留意点に支援効果について追記。
2000.12.11 ver1.2 あしずり3号さんの指摘を受け、ダメージ算出例の誤りを訂正。ありがとうございました。
1999.9.2 ver1.1
1999.8.28 ver1.01
1999.8.27 ver1.0


目次へ

Copyright(c) 1999 ITO Yu All rights reserved.
FZR02073---a---t---nifty.ne.jp