はじめに Edit

montezuma.png このページではどうやってパンテオンMODを作ったのか記述するだけのページだ。厳密にはプレイレポではない。
montezuma.png MODのページに書くにはあまりにも中途半端で情報がとっちらかってるからプレイレポの続きとして書くことにしたんだ。
montezuma.png まず、筆者はSQLやXMLについて詳しくない。誤用が含まれている可能性が高い。より詳しいことは実際にファイルを開けて専門家に聞け。

montezuma.png さて、MODの作り方だが、ゼロから作ろうとするな。
montezuma.png すでにあるものを改造しろ。望みのものがなければ最も近いやつを探せ。

montezuma.png 筆者はMOD/MOD一覧/システム変更にある「Religion Expanded (宗教拡張)」を魔改造して作り上げた。
montezuma.png 魔改造とはいえところどころに痕跡が残っている。だから再配布するとなると権利関係がややこしくなるから、当MODの再配布はしないぞ。
montezuma.png 「沿岸のダンス」を体験してみたい場合はこのページを参考に自分で作り上げるんだ。

パンテオンの追加その1:パンテオンの追加 Edit

montezuma.png まずパンテオンそのものの追加だ。ここでもゼロからパンテオンの構造を調べようとするな。既存のパンテオンのデータ自体はSteam版なら C:\Program Files (x86)\Steam\steamapps\common\Sid Meier's Civilization VI\Base\Assets\Gameplay\Data\Beliefs.xml に全部書いてあるからそれと同じ挙動をさせれば良い。

[添付]

montezuma.png 「BELIEF_DANCE_OF_THE_AURORA」というのがいかにもオーロラのダンスっぽいな。この程度の英語は読めないと流石にMODは作れないぞ。

montezuma.png ここから「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つからなっている。ここでは「ツンドラ丘」を省略している。

montezuma.png 赤と青の文字を使ったが、ここがつながっているという意識を持っておけ。
montezuma.png 英語は読めなくても「TERRAIN_TUNDRA」「1」とあるから、ここで地形と値を決めていることがわかるだろう。
montezuma.png 他のところは読めなくてもいい。あとは片っ端から「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

montezuma.png 追加したいテーブルは上記のようになるはずだ(見落としがあったら適宜書き直してくれ)。このテーブルを追加するという作業をすれば良いわけだ。
montezuma.png テーブルの追加には「INSERT INTO」コマンドを使うぞ。INSERT INTOコマンドは以下のように使う。INTOが省略できるだとかあるかもしれないが、より詳しい説明は各自SQLのページで調べてくれ。

INSERT INTO テーブル名 (列1, 列2, ... ) VALUES (値1, 値2, ...);

montezuma.png つまり例えばTypesテーブルを追加する作業は以下を行えば良いとわかるな。残り8行も同様にやればできるだろう。

INSERT INTO Types (Type, Kind) VALUES (BELIEF_DANCE_OF_THE_COAST,KIND_BELIEF);

montezuma.png パンテオンそのものの追加はこれで終わりだ。このSQLコマンドを書いた文章は「Pantheon.sql」とでも名前をつけて保存しておけ。

パンテオンの追加その2:説明の追加 Edit

montezuma.png 次にパンテオンの説明の追加だ。これは簡単にできるぞ。まず最初に以下のようにINSERT文を途中まで記述する。

INSERT OR REPLACE INTO LocalizedText
(Language, Tag, Text)
VALUES

montezuma.png この後に説明文を追加すれば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を得る。'); 

montezuma.png SQL文はセミコロン(;)までが一文として解釈されるから複数行に渡って記述しても良い(ことになっているはずだ)。
montezuma.png 説明の追加はこれで終わりだ。このSQLコマンドを書いた文章は「Pantheon_Text.sql」とでも名前をつけて保存しておけ。

パンテオンの追加その3:アイコンの追加 Edit

montezuma.png 改造元ではこのデータはXMLで書かれていた。SQL文で片付けていいのかわからんから念の為XMLで書くことにするぞ。
montezuma.png 以下の5行を書いておしまいだ。

<GameData>
<IconDefinitions>
<Row Name="ICON_BELIEF_DANCE_OF_THE_COAST" Atlas="ICON_ATLAS_BELIEFS_PATHEON" Index="7"/>
</IconDefinitions>
</GameData>

montezuma.png アイコンを変えたければIndexの値を変えればいいぞ。終わったら「Belief_Icons.xml」とでも名前をつけて保存しておけ。

時代による信仰力の調整 Edit

montezuma.png Steam版なら C:\Program Files (x86)\Steam\steamapps\common\Sid Meier's Civilization VI\Base\Assets\Gameplay\Data\Eras.xml に書いてあるぞ。

[添付]

montezuma.png いかにも怪しい「StartEras」テーブルがあるな。結論から言うとここの「Faith」列に初期信仰力が書いてある。一部時代は書いていないから、他のリソースをもとに計算でもしているんだろう。
montezuma.png つまり「StartEras」テーブルの「Faith」列の値を書き換えればいいとわかる。こんなときはUPDATEコマンドの出番だ。

UPDATE テーブル名 SET 列名=値 WHERE 条件式;

montezuma.png 列が存在しないときでもUPDATEコマンドは有効だ。だから太古時代の信仰力を30まで引き上げたいと思うなら以下のように書けばいい。

UPDATE StartEras SET Faith='30' WHERE EraType='ERA_ANCIENT';

montezuma.png 他の時代でも同様にすれば初期値をいじることができるぞ。終わったら「Eras.sql」とでも名前をつけて保存しておけ。

modinfoの作成 Edit

montezuma.png ここまでできたら「このファイルを読み込め」という指示を出す、modinfoファイルを作って完成だ。modinfoについてはMOD/作成方法/その他/modinfoや他の人のMODを参考に作って欲しい。
montezuma.png 意味がわかっていないテーブルとか列とかあるからうかつに載せられないんだ・・・。


montezuma.png 冒頭にも述べたように本人もよく意味がわかっていないから、どういう意味だとか動作しないだとか、MOD作成についての議論は他所でやってくれ。
montezuma.png 非常に長文で読みづらい文章だったが、読んでくれてありがとう。感謝だ。

コメント Edit

コメントはありません。 Comments/プレイレポ/MOD/自作パンテオンで遊ぼう「沿岸のダンス」/その4_おまけ?

お名前:


このエントリーをはてなブックマークに追加