2015年1月23日金曜日

[Modding]xml解析:attackmodes

本稿ではMOD作成の前提として、xmlに書かれた情報を解析していきます。

今回は攻撃手段とその性能を定義した"attackmodes"テーブルです。
武器の射程や威力は、アイテムデータとしてではなく
ここに記述・参照されることになります。

※多分にネタバレを含みます。ご注意ください。

サンプルデータ

データの参照元はattackmodes.xmlです。
サンプルとして、id4番の.308 rifle(FMJ弾)のデータを参照します。
<table name="attackmodes">
            <column name="id">4</column>
            <column name="strName">scoped .308 rifle FMJ</column>
            <column name="strNotes"></column>
            <column name="nRange">95</column>
            <column name="fDamageCut">1.5</column>
            <column name="fDamageBlunt">0.5</column>
            <column name="strChargeProfiles">4</column>
            <column name="nPenetration">2</column>
            <column name="nType">1</column>
            <column name="strSnd">cueRifle</column>
            <column name="bTransfer">0</column>
            <column name="vAttackerConditions">211x1.0</column>
            <column name="strIMG">AMode308Scoped.png</column>
            <column name="fMorale">0.5</column>
            <column name="strWieldPhrase">peers through their scoped .308, lining up a shot at</column>
            <column name="vAttackPhrases">pops a shot off at,fires their .308 at,takes a shot at,fires at</column>
</table>
column解析

今回も項目ごとに確認していきましょう。

strNameは攻撃方法に付けられた名前、
strNotesはゲーム内で参照されないメモ欄です。

nRangeは有効射程です。
ただし、Rangedスキルがないと実際の射程は半減するようです。

fDamageCutはその攻撃手段の切断属性ダメージ、
fDamageBluntは打撃属性ダメージの強さを表しています。
切断属性のダメージは切り傷を、打撃属性のダメージは内出血や骨折を発生させます。

strChargeProfilesはその武器に対応する電源や弾薬を、
"chargeprofiles"テーブルのidで指定します。
攻撃1回で何発消費するかや、1時間ごとにいくら増減するかを設定可能です。
おそらくこれが残弾表示にも使われていそうです。

nPenetrationはアーマー貫通力です。
実際どう計算されるかは分かりませんが、大きいほど強いと思っていいでしょう。

nTypeはテーブルごとに違う使われ方をしているようです。
一通り確認した感じでは、近接攻撃は0、遠隔攻撃は1が設定されていました。
おそらくここを参照して、Melee Attack/Ranged Attackのうち、
どちらを表示するか判定しているのかもしれません。

strSndは使用するSEです。選択時に鳴っているんじゃないかと思います。

bTransferは未検証のパラメータです。
基本的には0ですが、矢と投石、槍投げだけ1だったので
発射しても弾薬が残るタイプかどうか設定しているのかもしれません。

vAttackerConditions"conditions"テーブルを参照していて、
shardやglass bottleにMinor Cutsが、
銃器系ならLoaded Weaponというconditionが設定されていたので、
攻撃時に(自分に)発生する状態とその確率が記述されているようです。

つまり、shardで攻撃すると手を怪我する可能性があり、
銃を撃った=弾が入っているというアピールになって脅威度が上がる…という感じで
ちょっとしたギミックのある武器が欲しければ、ここを弄ってみるのもよさそうです。

strIMGは選択時に表示される画像です。

fMoraleは"士気"で、脅迫や交渉に影響するパラメータですが、
おそらく構えたときにこの値が適用されているようです。

strWieldPhraseは選択時に表示されるメッセージで、
vAttackPhrasesは攻撃時に表示されるメッセージです。
strは文字列型なので1文ですが、
vは配列なので、","で区切られたメッセージがランダムに選択・表示されるようです。

今回は検証の甘いところが多めですが、
そのうち調査して確認できれば修正します。

0 件のコメント:

コメントを投稿