#author("2019-12-25T19:17:04+09:00","","")
#author("2019-12-25T22:14:45+09:00","","")
[[MOD/作成方法]]

* 文明特性 [#waa679f8]

お試しで以下のような効果を実装してみたいと思います。
 雪原から信仰力+1、文化力+1、科学力+1を得る

なお、参考(コピー元)にしているのはロシアの特性です。
基本バニラからコピーして書き換えるのが楽ですし間違いがありません。
あちらはツンドラからボーナスを得ますので、地形を雪原に変更、得られるものも変更という形です。

** NewLeader_Felines.xml [#u7d3671c]

文明の特性そのものの記述はSDKのサンプルだと「NewReader_Felines.xml」が該当します。
ここに効果を書き加えます。

<Types>に以下追加
 <Row Type="TRAIT_CIVILIZATION_FELINE" Kind="KIND_TRAIT" />

&lt;CivilizationTraits>に以下追加
 <Row CivilizationType="CIVILIZATION_FELINE" TraitType="TRAIT_CIVILIZATION_FELINE"/>

&lt;Traits>へ以下追加
 <Row TraitType="TRAIT_CIVILIZATION_FELINE" Name="LOC_TRAIT_CIVILIZATION_FELINE_NAME" Description="LOC_TRAIT_CIVILIZATION_FELINE_DESCRIPTION"/>
NameとDescriptionは特性名とその説明です。内容は別ファイルに書かれています。(後述)

ここまではすでにある要素への追加ですが、ここから要素丸ごと追加です。
(サンプルには文明特性自体がない、かつ雪原からボーナスを得るような特性はバニラにはございませんので・・・)

まずModifier系。以下のように追加します。
 	<TraitModifiers>
 		<Row>
 			<TraitType>TRAIT_CIVILIZATION_FELINE</TraitType>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_FOOD</ModifierId>
 		</Row>
 		<Row>
 			<TraitType>TRAIT_CIVILIZATION_FELINE</TraitType>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_CULTURE</ModifierId>
 		</Row>
 		<Row>
 			<TraitType>TRAIT_CIVILIZATION_FELINE</TraitType>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_SCIENCE</ModifierId>
 		</Row>
 		<Row>
 			<TraitType>TRAIT_CIVILIZATION_FELINE</TraitType>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_HILLS_FOOD</ModifierId>
 		</Row>
 		<Row>
 			<TraitType>TRAIT_CIVILIZATION_FELINE</TraitType>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_HILLS_CULTURE</ModifierId>
 		</Row>
 		<Row>
 			<TraitType>TRAIT_CIVILIZATION_FELINE</TraitType>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_HILLS_SCIENCE</ModifierId>
 		</Row>
 	</TraitModifiers>
 	<Modifiers>
 		<Row>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_FOOD</ModifierId>
 			<ModifierType>MODIFIER_PLAYER_ADJUST_PLOT_YIELD</ModifierType>
 			<SubjectRequirementSetId>PLOT_HAS_SNOW_REQUIREMENTS_FELINE</SubjectRequirementSetId>
 		</Row>
 		<Row>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_CULTURE</ModifierId>
 			<ModifierType>MODIFIER_PLAYER_ADJUST_PLOT_YIELD</ModifierType>
 			<SubjectRequirementSetId>PLOT_HAS_SNOW_REQUIREMENTS_FELINE</SubjectRequirementSetId>
 		</Row>
 		<Row>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_SCIENCE</ModifierId>
 			<ModifierType>MODIFIER_PLAYER_ADJUST_PLOT_YIELD</ModifierType>
 			<SubjectRequirementSetId>PLOT_HAS_SNOW_REQUIREMENTS_FELINE</SubjectRequirementSetId>
 		</Row>
 		<Row>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_HILLS_FOOD</ModifierId>
 			<ModifierType>MODIFIER_PLAYER_ADJUST_PLOT_YIELD</ModifierType>
 			<SubjectRequirementSetId>PLOT_HAS_SNOW_HILLS_REQUIREMENTS_FELINE</SubjectRequirementSetId>
 		</Row>
 		<Row>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_HILLS_CULTURE</ModifierId>
 			<ModifierType>MODIFIER_PLAYER_ADJUST_PLOT_YIELD</ModifierType>
 			<SubjectRequirementSetId>PLOT_HAS_SNOW_HILLS_REQUIREMENTS_FELINE</SubjectRequirementSetId>
 		</Row>
 		<Row>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_HILLS_SCIENCE</ModifierId>
 			<ModifierType>MODIFIER_PLAYER_ADJUST_PLOT_YIELD</ModifierType>
 			<SubjectRequirementSetId>PLOT_HAS_SNOW_HILLS_REQUIREMENTS_FELINE</SubjectRequirementSetId>
 		</Row>
 	</Modifiers>
 	<ModifierArguments>
 		<Row>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_FOOD</ModifierId>
 			<Name>YieldType</Name>
 			<Value>YIELD_FOOD</Value>
 		</Row>
 		<Row>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_FOOD</ModifierId>
 			<Name>Amount</Name>
 			<Value>1</Value>
 		</Row>
 		<Row>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_CULTURE</ModifierId>
 			<Name>YieldType</Name>
 			<Value>YIELD_CULTURE</Value>
 		</Row>
 		<Row>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_CULTURE</ModifierId>
 			<Name>Amount</Name>
 			<Value>1</Value>
 		</Row>
 		<Row>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_SCIENCE</ModifierId>
 			<Name>YieldType</Name>
 			<Value>YIELD_SCIENCE</Value>
 		</Row>
 		<Row>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_SCIENCE</ModifierId>
 			<Name>Amount</Name>
 			<Value>1</Value>
 		</Row>
 		<Row>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_HILLS_FOOD</ModifierId>
 			<Name>YieldType</Name>
 			<Value>YIELD_FOOD</Value>
 		</Row>
 		<Row>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_HILLS_FOOD</ModifierId>
 			<Name>Amount</Name>
 			<Value>1</Value>
 		</Row>
 		<Row>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_HILLS_CULTURE</ModifierId>
 			<Name>YieldType</Name>
 			<Value>YIELD_CULTURE</Value>
 		</Row>
 		<Row>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_HILLS_CULTURE</ModifierId>
 			<Name>Amount</Name>
 			<Value>1</Value>
 		</Row>
 		<Row>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_HILLS_SCIENCE</ModifierId>
 			<Name>YieldType</Name>
 			<Value>YIELD_SCIENCE</Value>
 		</Row>
 		<Row>
 			<ModifierId>TRAIT_FELINE_INCREASED_SNOW_HILLS_SCIENCE</ModifierId>
 			<Name>Amount</Name>
 			<Value>1</Value>
 		</Row>
 	</ModifierArguments>


これはなにかといいますと文明特性の効果そのものです。
6項目ありますが、
- 雪原(平地)から食糧+1
- 雪原(平地)から文化+1
- 雪原(平地)から科学+1
- 雪原(丘陵)から食糧+1
- 雪原(丘陵)から文化+1
- 雪原(丘陵)から科学+1

となっています。

さらにRequirements系。これもごっそりと追加になります。
 	<RequirementSets>
 		<Row>
 			<RequirementSetId>PLOT_HAS_SNOW_REQUIREMENTS_FELINE</RequirementSetId>
 			<RequirementSetType>REQUIREMENTSET_TEST_ALL</RequirementSetType>
 		</Row>
 		<Row>
 			<RequirementSetId>PLOT_HAS_SNOW_HILLS_REQUIREMENTS_FELINE</RequirementSetId>
 			<RequirementSetType>REQUIREMENTSET_TEST_ALL</RequirementSetType>
 		</Row>
 	</RequirementSets>
 	<Requirements>
 		<Row>
 			<RequirementId>REQUIRES_PLOT_HAS_SNOW_FELINE</RequirementId>
 			<RequirementType>REQUIREMENT_PLOT_TERRAIN_TYPE_MATCHES</RequirementType>
 		</Row>
 		<Row>
 			<RequirementId>REQUIRES_PLOT_HAS_SNOW_HILLS_FELINE</RequirementId>
 			<RequirementType>REQUIREMENT_PLOT_TERRAIN_TYPE_MATCHES</RequirementType>
 		</Row>
 	</Requirements>
 	<RequirementArguments>
 		<Row>
 			<RequirementId>REQUIRES_PLOT_HAS_SNOW_FELINE</RequirementId>
 			<Name>TerrainType</Name>
 			<Value>TERRAIN_SNOW</Value>
 		</Row>
 		<Row>
 			<RequirementId>REQUIRES_PLOT_HAS_SNOW_HILLS_FELINE</RequirementId>
 			<Name>TerrainType</Name>
 			<Value>TERRAIN_SNOW_HILLS</Value>
 		</Row>
 	</RequirementArguments>
 	<RequirementSetRequirements>
 		<Row>
 			<RequirementSetId>PLOT_HAS_SNOW_REQUIREMENTS_FELINE</RequirementSetId>
 			<RequirementId>REQUIRES_PLOT_HAS_SNOW_FELINE</RequirementId>
 		</Row>
 		<Row>
 			<RequirementSetId>PLOT_HAS_SNOW_HILLS_REQUIREMENTS_FELINE</RequirementSetId>
 			<RequirementId>REQUIRES_PLOT_HAS_SNOW_HILLS_FELINE</RequirementId>
 		</Row>
 	</RequirementSetRequirements>
これは「雪原からボーナスを得る」という部分の設定になります。

さらに、このままではテストしづらいですので、ロシアの特徴である「ツンドラスタートになりやすい」もコピーしてきます。
 	<StartBiasTerrains>
 		<Row CivilizationType="CIVILIZATION_FELINE" TerrainType="TERRAIN_TUNDRA" Tier="3"/>
 		<Row CivilizationType="CIVILIZATION_FELINE" TerrainType="TERRAIN_TUNDRA_HILLS" Tier="3"/>
 	</StartBiasTerrains>

以上でこのファイルの追加はおわり。
** NewLeader_ConfigText.xml [#a1ca9287]

また、ゲーム開始時の文明選択で表示されるように、文明の概要を書き換えます。
書き換えるのはLOC_TRAIT_CIVILIZATION_FELINE_DESCRIPTIONです。

 		<Row Tag="LOC_TRAIT_CIVILIZATION_FELINE_DESCRIPTION" Language="en_US">
 			<Text>+1 [ICON_Food] Food, +1 [ICON_Culture] Culture and +1 [ICON_Science] Science from Snow.</Text>
 		</Row>

以上ですべておわり。ビルドして反映させましょう。



** 効果確認 [#hfb62424]
うまくいっていれば、文明選択時に特性がちゃんと表示されます。
&ref(20170817211644_1.jpg);

実際に何のボーナスもない平地の雪原を含めて都市出ししてみると・・・
&ref(20170610190903_1.jpg);

こうなります(笑)
&ref(20170610190923_1.jpg);

** 備考 [#hbf783b5]


上記サンプルでは雪原、雪原丘陵/文化、食料、科学をサンプルしていますが、それ以外はおおよそ。

|地形/特徴	|--		|丘陵		|山岳		|||
|草原		|GRASS		|GRASS_HILLS	|		|||
|平原		|PLAINS		|PLAINS_HILLS	|		|||
|砂漠		|DESERT		|DESERT_HILLS	|		|||
|ツンドラ	|TUNDRA		|TUNDRA_HILLS	|		|||
|雪原		|SNOW		|SNOW_HILLS	|		|||
|沿岸		|COAST		|--		|		|||
|海		|OCEAN		|--		|		|||


|食料		|YIELD_FOOD		|
|生産力		|YIELD_PRODUCTION	|
|ゴールド	|YIELD_GOLD		|
|文化力		|YIELD_CULTURE		|
|科学力		|YIELD_SCIENCE		|
|信仰力		|YIELD_FAITH		|



もっと詳しく知りたい方は、

 \Sid Meier's Civilization VI\Base\Assets\Gameplay\Data

以下の、Terrains.xml及びYields.xml内に定義が書かれています。


** 効果確認 [#hfb62424]
うまくいっていれば、文明選択時に特性がちゃんと表示されます。
&ref(20170817211644_1.jpg);

実際に何のボーナスもない平地の雪原を含めて都市出ししてみると・・・
&ref(20170610190903_1.jpg);

こうなります(笑)
&ref(20170610190923_1.jpg);

** 備考 [#hbf783b5]

ここまで作業したものを以下に上げておきます。
https://www.axfc.net/u/3835502


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