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