本稿ではMOD作成の前提として、xmlに書かれた情報を解析していきます。
今回は遭遇NPC全般を定義した"creatures"テーブルと、
そこから参照されるデータを解析します。
ただし、正確なリファレンスに従ったものではないため、
あくまで"たぶんこうじゃないかな"というレベルであることをご理解ください。
※当然ながら多分にネタバレを含みます。ご注意ください。
サンプルデータ
データの参照元はcreatures.xmlです。
今回はサンプルとして、id2番のLooterのデータを用意しました。
<table name="creatures">columnの解析
<column name="id">2</column>
<column name="strName">Looter</column>
<column name="strNamePublic">Stranger</column>
<column name="strNotes">Biddy personality</column>
<column name="strImg">CreHuman.png</column>
<column name="vEncounterIDs">1328,1362,1345,1335,1399,2241</column>
<column name="nMovesPerTurn">4</column>
<column name="nTreasureID">70</column>
<column name="nFaction">2</column>
<column name="vAttackModes">1</column>
<column name="vBaseConditions">51=0.5,52=0.5,61=0.5,71=0.5,81=0.5,150=0.5,151=1,207=0.5,210=1,210=1,473=1,494=1,535=1</column>
<column name="nCorpseID">402</column>
<column name="vActivities">reading the label on some trash,picking their nose,counting on their fingers,pacing,standing guard</column>
</table>
では、項目ごとに確認していきましょう。
strNameはそのままNPCの名前で、
strNamePublicがStrangerということは、不確定名が入る項目です。
strNotesはメモ用のスペースなので基本的に空欄です(今回は入っていますが)。
例えば同じ名前の複数NPCを作った場合に、ここで分類用のラベルを付けたりします。
strImgも使用する画像だけなので特に言及しません。
vEncounterIDsは、おそらく会話した時に発生するEncounterです。
Dogmanなどのミュータントには用意されていませんが、
会話(少なくともコミュニケーション的な)イベントを設定することも可能でしょう。
詳しくは"encounters"テーブルを参照することになります。
nMovesPerTurnは1ターン分の行動力だと思われます。
Conditionによる増減や地形の影響を受けるかどうかは確認していません。
nTreasureIDはそのNPCが持つ可能性があるアイテムを設定しています。
"treasuretable"テーブルを参照すると、
Random ShirtやRandom Pantsといった名前の別テーブルを参照していました。
服や装備、コンテナ系アイテムといったものが設定されているので、
いわゆるドロップテーブルではなく、NPC生成時に参照されるものだと思われます。
nFactionは"factions"テーブルで定義される所属勢力です。
内容としては、他factionに対する友好・中立・敵対関係を設定しているようです。
vAttackModesは何も持たないときの攻撃方法です。
"attackmodes"テーブルを参照し、人ならばpunchだったり、
Dogmanならclawだったりします。
vBaseConditionsは初期状態で持っているConditionです。
"conditions"テーブルを参照して、
目に見えるものならStrongやToughといったもの、
目に見えない部分では"アイテムを拾う"や"夜行性"といった要素を設定します。
本質的部分は"conditions"テーブルの解説で行います。
nCorpseIDは倒した時に出る死体を"treasuretable"で定義しています。
vActivitiesはログに表示される文章らしく、
"ストレッチをしている"だとか"匂いを嗅いでいる"といった、
いわゆるフレーバー的なものが書かれています。
ざっと見てわかるように、このテーブル内では
キャラクターとしての性能はほとんど記述されていません。
なので、オリジナルのNPCを作成したい場合は、
少なくとも"conditions"と"treasuretable"テーブルを解読する必要がありそうです。
0 件のコメント:
コメントを投稿