このページではどうやってパンテオンMODを作ったのか記述するだけのページだ。厳密にはプレイレポではない。
MODのページに書くにはあまりにも中途半端で情報がとっちらかってるからプレイレポの続きとして書くことにしたんだ。
まず、筆者はSQLやXMLについて詳しくない。誤用が含まれている可能性が高い。より詳しいことは実際にファイルを開けて専門家に聞け。
さて、MODの作り方だが、ゼロから作ろうとするな。
すでにあるものを改造しろ。望みのものがなければ最も近いやつを探せ。
筆者はMOD/MOD一覧/システム変更にある「Religion Expanded (宗教拡張)」を魔改造して作り上げた。
魔改造とはいえところどころに痕跡が残っている。だから再配布するとなると権利関係がややこしくなるから、当MODの再配布はしないぞ。
「沿岸のダンス」を体験してみたい場合はこのページを参考に自分で作り上げるんだ。
まずパンテオンそのものの追加だ。ここでもゼロからパンテオンの構造を調べようとするな。既存のパンテオンのデータ自体はSteam版なら C:\Program Files (x86)\Steam\steamapps\common\Sid Meier's Civilization VI\Base\Assets\Gameplay\Data\Beliefs.xml に全部書いてあるからそれと同じ挙動をさせれば良い。
「BELIEF_DANCE_OF_THE_AURORA」というのがいかにもオーロラのダンスっぽいな。この程度の英語は読めないと流石にMODは作れないぞ。
ここから「AURORA」という文字列を辿っていけばオーロラのダンスがどういう構造をしているかわかるだろう。
Typesテーブル
Type列,Kind列
BELIEF_DANCE_OF_THE_AURORA,KIND_BELIEF
Beliefsテーブル
BeliefType列,Name列,Description列,BeliefClassType列
BELIEF_DANCE_OF_THE_AURORA,LOC_BELIEF_DANCE_OF_THE_AURORA_NAME,LOC_BELIEF_DANCE_OF_THE_AURORA_DESCRIPTION,BELIEF_CLASS_PANTHEON
Modifiersテーブル
ModifierId列,ModifierType列,SubjectRequirementSetId列
DANCE_OF_THE_AURORA_FAITHTUNDRAADJACENCY,MODIFIER_ALL_CITIES_TERRAIN_ADJACENCY,CITY_FOLLOWS_PANTHEON_REQUIREMENTS
ModifierArgumentsテーブル
ModifierId列,Name列,Value列
DANCE_OF_THE_AURORA_FAITHTUNDRAADJACENCY,DistrictType,DISTRICT_HOLY_SITE
DANCE_OF_THE_AURORA_FAITHTUNDRAADJACENCY,TerrainType,TERRAIN_TUNDRA
DANCE_OF_THE_AURORA_FAITHTUNDRAADJACENCY,YieldType,YIELD_FAITH
DANCE_OF_THE_AURORA_FAITHTUNDRAADJACENCY,Amount,1
DANCE_OF_THE_AURORA_FAITHTUNDRAADJACENCY,Description,LOC_DISTRICT_TUNDRA_FAITH
BeliefModifiersテーブル
BeliefType列,ModifierId列
BELIEF_DANCE_OF_THE_AURORA,DANCE_OF_THE_AURORA_FAITHTUNDRAADJACENCY
※オーロラのダンスは厳密には「ツンドラ」と「ツンドラ丘」の2つからなっている。ここでは「ツンドラ丘」を省略している。
赤と青の文字を使ったが、ここがつながっているという意識を持っておけ。
英語は読めなくても「TERRAIN_TUNDRA」「1」とあるから、ここで地形と値を決めていることがわかるだろう。
他のところは読めなくてもいい。あとは片っ端から「AURORA」と「TUNDRA」を「沿岸」を意味する「COAST」に置き換えていくぞ。
Typesテーブル
Type列,Kind列
BELIEF_DANCE_OF_THE_COAST,KIND_BELIEF
Beliefsテーブル
BeliefType列,Name列,Description列,BeliefClassType列
BELIEF_DANCE_OF_THE_COAST,LOC_BELIEF_DANCE_OF_THE_COAST_NAME,LOC_BELIEF_DANCE_OF_THE_COAST_DESCRIPTION,BELIEF_CLASS_PANTHEON
Modifiersテーブル
ModifierId列,ModifierType列,SubjectRequirementSetId列
DANCE_OF_THE_COAST_FAITHCOASTADJACENCY,MODIFIER_ALL_CITIES_TERRAIN_ADJACENCY,CITY_FOLLOWS_PANTHEON_REQUIREMENTS
ModifierArgumentsテーブル
ModifierId列,Name列,Value列
DANCE_OF_THE_COAST_FAITHCOASTADJACENCY,DistrictType,DISTRICT_HOLY_SITE
DANCE_OF_THE_COAST_FAITHCOASTADJACENCY,TerrainType,TERRAIN_COAST
DANCE_OF_THE_COAST_FAITHCOASTADJACENCY,YieldType,YIELD_FAITH
DANCE_OF_THE_COAST_FAITHCOASTADJACENCY,Amount,1
DANCE_OF_THE_COAST_FAITHCOASTADJACENCY,Description,LOC_DISTRICT_COAST_FAITH
BeliefModifiersテーブル
BeliefType列,ModifierId列
BELIEF_DANCE_OF_THE_COAST,DANCE_OF_THE_AURORA_FAITHCOASTADJACENCY
追加したいテーブルは上記のようになるはずだ(見落としがあったら適宜書き直してくれ)。このテーブルを追加するという作業をすれば良いわけだ。
テーブルの追加には「INSERT INTO」コマンドを使うぞ。INSERT INTOコマンドは以下のように使う。INTOが省略できるだとかあるかもしれないが、より詳しい説明は各自SQLのページで調べてくれ。
INSERT INTO テーブル名 (列1, 列2, ... ) VALUES (値1, 値2, ...);
つまり例えばTypesテーブルを追加する作業は以下を行えば良いとわかるな。残り8行も同様にやればできるだろう。
INSERT INTO Types (Type, Kind) VALUES (BELIEF_DANCE_OF_THE_COAST,KIND_BELIEF);
パンテオンそのものの追加はこれで終わりだ。このSQLコマンドを書いた文章は「Pantheon.sql」とでも名前をつけて保存しておけ。
次にパンテオンの説明の追加だ。これは簡単にできるぞ。まず最初に以下のようにINSERT文を途中まで記述する。
INSERT OR REPLACE INTO LocalizedText (Language, Tag, Text) VALUES
この後に説明文を追加すればOKだ。Language列にはen_USで英語版、ja_JPで日本語が追加されるぞ。Tag列にはさっき緑や黄色で色付けした名前を入れればいい。Textに説明を入れればいい。一例としてこんな感じだ。
('en_US','LOC_BELIEF_DANCE_OF_THE_COAST_NAME','Dance Of The Coast'), ('ja_JP','LOC_BELIEF_DANCE_OF_THE_COAST_NAME','沿岸のダンス'), ('en_US','LOC_BELIEF_DANCE_OF_THE_COAST_DESCRIPTION',''), ('ja_JP','LOC_BELIEF_DANCE_OF_THE_COAST_DESCRIPTION','聖地は隣接する沿岸タイルから信仰力+1を得る。');
SQL文はセミコロン(;)までが一文として解釈されるから複数行に渡って記述しても良い(ことになっているはずだ)。
説明の追加はこれで終わりだ。このSQLコマンドを書いた文章は「Pantheon_Text.sql」とでも名前をつけて保存しておけ。
改造元ではこのデータはXMLで書かれていた。SQL文で片付けていいのかわからんから念の為XMLで書くことにするぞ。
以下の5行を書いておしまいだ。
<GameData> <IconDefinitions> <Row Name="ICON_BELIEF_DANCE_OF_THE_COAST" Atlas="ICON_ATLAS_BELIEFS_PATHEON" Index="7"/> </IconDefinitions> </GameData>
アイコンを変えたければIndexの値を変えればいいぞ。終わったら「Belief_Icons.xml」とでも名前をつけて保存しておけ。
Steam版なら C:\Program Files (x86)\Steam\steamapps\common\Sid Meier's Civilization VI\Base\Assets\Gameplay\Data\Eras.xml に書いてあるぞ。
いかにも怪しい「StartEras」テーブルがあるな。結論から言うとここの「Faith」列に初期信仰力が書いてある。一部時代は書いていないから、他のリソースをもとに計算でもしているんだろう。
つまり「StartEras」テーブルの「Faith」列の値を書き換えればいいとわかる。こんなときはUPDATEコマンドの出番だ。
UPDATE テーブル名 SET 列名=値 WHERE 条件式;
列が存在しないときでもUPDATEコマンドは有効だ。だから太古時代の信仰力を30まで引き上げたいと思うなら以下のように書けばいい。
UPDATE StartEras SET Faith='30' WHERE EraType='ERA_ANCIENT';
他の時代でも同様にすれば初期値をいじることができるぞ。終わったら「Eras.sql」とでも名前をつけて保存しておけ。
ここまでできたら「このファイルを読み込め」という指示を出す、modinfoファイルを作って完成だ。modinfoについてはMOD/作成方法/その他/modinfoや他の人のMODを参考に作って欲しい。
意味がわかっていないテーブルとか列とかあるからうかつに載せられないんだ・・・。
冒頭にも述べたように本人もよく意味がわかっていないから、どういう意味だとか動作しないだとか、MOD作成についての議論は他所でやってくれ。
非常に長文で読みづらい文章だったが、読んでくれてありがとう。感謝だ。
コメントはありません。 Comments/プレイレポ/MOD/自作パンテオンで遊ぼう「沿岸のダンス」/その4_おまけ?