- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2017-08-23T00:49:15+09:00","","")
#author("2017-08-23T02:45:32+09:00","","")
[[MOD/作成方法]]
* ユニーク地形改善 [#o1a91266]
何にしようか迷いましたが、比較的単純なやつで。
海と沿岸に設置できる「家船」を作ってみることにします。
(これも公開済みMODに(ry
** xmlの記述 [#q8505e17]
*** NewLeader_Improvement.xml [#x28afc2f]
基本的にユニーク系のものは流れが同じです。種類が違うだけ。
まずは性能を決めてしまいましょう。
新規にxmlを追加してください。ファイル名はNewLeader_Improvement.xmlとしましょう。作ったらPropertyへの登録をお忘れなく。
海の地形改善ですので、ベースは漁船を使います。定義名は「IMPROVEMENT_FISHING_BOATS」。
コピペしてきて改変したものがこちら。
<?xml version="1.0" encoding="utf-8"?>
<GameInfo>
<Types>
<Row Type="IMPROVEMENT_hogehoge" Kind="KIND_IMPROVEMENT"/>
</Types>
<Improvements>
<Row ImprovementType="IMPROVEMENT_hogehoge" Name="LOC_IMPROVEMENT_hogehoge_NAME" Description="LOC_IMPROVEMENT_hogehoge_DESCRIPTION" Icon="ICON_IMPROVEMENT_hogehoge" PlunderType="PLUNDER_HEAL" PlunderAmount="100" Buildable="true" PrereqTech="TECH_SHIPBUILDING" TraitType="TRAIT_CIVILIZATION_IMPROVEMENT_hogehoge" Housing="1" TilesRequired="1" Domain="DOMAIN_SEA"/>
</Improvements>
<Improvement_ValidTerrains>
<Row ImprovementType="IMPROVEMENT_hogehoge" TerrainType="TERRAIN_COAST"/>
<Row ImprovementType="IMPROVEMENT_hogehoge" TerrainType="TERRAIN_OCEAN"/>
</Improvement_ValidTerrains>
<Improvement_ValidBuildUnits>
<Row ImprovementType="IMPROVEMENT_hogehoge" UnitType="UNIT_BUILDER"/>
</Improvement_ValidBuildUnits>
<Improvement_YieldChanges>
<Row ImprovementType="IMPROVEMENT_hogehoge" YieldType="YIELD_GOLD" YieldChange="1"/>
<Row ImprovementType="IMPROVEMENT_hogehoge" YieldType="YIELD_PRODUCTION" YieldChange="1"/>
</Improvement_YieldChanges>
<Improvement_BonusYieldChanges>
<Row Id="51" ImprovementType="IMPROVEMENT_hogehoge" YieldType="YIELD_PRODUCTION" BonusYieldChange="1" PrereqTech="TECH_MASS_PRODUCTION"/>
</Improvement_BonusYieldChanges>
</GameInfo>
Types:親定義
Improvements:地形改善の性能詳細
|ImprovementType|親定義の指定|
|Name|名称|
|Description|説明|
|Icon|改善アクションのアイコン|
|PlunderType|略奪で得られるボーナスの種類|
|PlunderAmount|略奪で得られるボーナスの値|
|Buildable|建造可能か。通常はtrue(国立公園の監視塔などはfalseになっています)|
|PrereqTech|解禁に必要なテクノロジー|
|TraitType|紐付くTrait ユニークにするならば必須。|
|Housing|住宅|
|TilesRequired|+1されるのに必要なタイル数|
|Domain|所属ドメイン DOMAIN_SEA = 沿岸や海|
Improvement_ValidTerrains:改善できるタイルの種類
- TERRAIN_COAST = 浅瀬
- TERRAIN_OCEAN = 海
Improvement_ValidBuildUnits:改善を行えるユニット
- UNIT_BUILDER = 労働者
Improvement_YieldChanges:改善されるボーナス
- 本例ではゴールド+1、生産力+1となっています
Improvement_BonusYieldChanges:テクノロジーや社会制度の獲得による追加ボーナス
- 本例ではTECH_MASS_PRODUCTION(大量生産)で生産力+1となっています
*** NewLeader_Felines.xml [#e9faf8c4]
他と同じように、ユニークにするならば文明か指導者どちらかに紐付ける必要があります。
今回は文明に紐付けます。
<?xml version="1.0" encoding="utf-8"?>
<GameData>
<Types>
<Row Type="CIVILIZATION_FELINE" Kind="KIND_CIVILIZATION" />
<Row Type="TRAIT_CIVILIZATION_BUILDING_LITTER_BOX" Kind="KIND_TRAIT" />
<Row Type="TRAIT_CIVILIZATION_FELINE" Kind="KIND_TRAIT" />
<Row Type="TRAIT_CIVILIZATION_DISTRICT_hogehoge" Kind="KIND_TRAIT" />
<Row Type="TRAIT_CIVILIZATION_IMPROVEMENT_hogehoge" Kind="KIND_TRAIT" /> ★追加
</Types>
<Civilizations>
<Row>
<CivilizationType>CIVILIZATION_FELINE</CivilizationType>
<Name>LOC_CIVILIZATION_FELINE_NAME</Name>
<Description>LOC_CIVILIZATION_FELINE_DESCRIPTION</Description>
<Adjective>LOC_CIVILIZATION_FELINE_ADJECTIVE</Adjective>
<StartingCivilizationLevelType>CIVILIZATION_LEVEL_FULL_CIV</StartingCivilizationLevelType>
</Row>
</Civilizations>
<CivilizationLeaders>
<Row CivilizationType="CIVILIZATION_FELINE" LeaderType="LEADER_JASPER_KITTY" CapitalName="LOC_CIVLIZATION_FELINE_CITY_1" />
</CivilizationLeaders>
<CivilizationCitizenNames>
<Row CivilizationType="CIVILIZATION_FELINE" CitizenName="LOC_CITIZEN_FELINE_MALE_1" Female="0"/>
<Row CivilizationType="CIVILIZATION_FELINE" CitizenName="LOC_CITIZEN_FELINE_MALE_2" Female="0"/>
<Row CivilizationType="CIVILIZATION_FELINE" CitizenName="LOC_CITIZEN_FELINE_MALE_3" Female="0"/>
<Row CivilizationType="CIVILIZATION_FELINE" CitizenName="LOC_CITIZEN_FELINE_MALE_4" Female="0"/>
<Row CivilizationType="CIVILIZATION_FELINE" CitizenName="LOC_CITIZEN_FELINE_FEMALE_1" Female="1"/>
<Row CivilizationType="CIVILIZATION_FELINE" CitizenName="LOC_CITIZEN_FELINE_FEMALE_2" Female="1"/>
<Row CivilizationType="CIVILIZATION_FELINE" CitizenName="LOC_CITIZEN_FELINE_FEMALE_3" Female="1"/>
<Row CivilizationType="CIVILIZATION_FELINE" CitizenName="LOC_CITIZEN_FELINE_FEMALE_4" Female="1"/>
<Row CivilizationType="CIVILIZATION_FELINE" CitizenName="LOC_CITIZEN_FELINE_FEMALE_5" Female="1"/>
</CivilizationCitizenNames>
<CivilizationInfo>
<Row CivilizationType="CIVILIZATION_FELINE" Header="LOC_CIVINFO_BINOMIAL_NAME" Caption="LOC_CIVINFO_FELIS_CATUS" />
</CivilizationInfo>
<CivilizationTraits>
<Row CivilizationType="CIVILIZATION_FELINE" TraitType="TRAIT_CIVILIZATION_BUILDING_LITTER_BOX" />
<Row CivilizationType="CIVILIZATION_FELINE" TraitType="TRAIT_CIVILIZATION_FELINE"/>
<Row CivilizationType="CIVILIZATION_FELINE" TraitType="TRAIT_CIVILIZATION_DISTRICT_hogehoge"/>
<Row CivilizationType="CIVILIZATION_FELINE" TraitType="TRAIT_CIVILIZATION_IMPROVEMENT_hogehoge"/> ★追加
</CivilizationTraits>
<Traits>
<Row TraitType="TRAIT_CIVILIZATION_BUILDING_LITTER_BOX" Name="LOC_PLACEHOLDER" Description="LOC_PLACEHOLDER" />
<Row TraitType="TRAIT_CIVILIZATION_FELINE" Name="LOC_TRAIT_CIVILIZATION_FELINE_NAME" Description="LOC_TRAIT_CIVILIZATION_FELINE_DESCRIPTION"/>
<Row TraitType="TRAIT_CIVILIZATION_DISTRICT_hogehoge" Name="LOC_TRAIT_CIVILIZATION_DISTRICT_hogehoge_NAME" />
<Row TraitType="TRAIT_CIVILIZATION_IMPROVEMENT_hogehoge" Name="LOC_TRAIT_CIVILIZATION_IMPROVEMENT_hogehoge_NAME" /> ★追加
</Traits>
*** NewLeader_Config.xml [#p1116028]
他のユニークと同様、文明選択画面への表示部分を追加します。
<SortIndex>30</SortIndex>
</Row>
<Row> ★追加
<Domain>StandardPlayers</Domain> ★追加
<CivilizationType>CIVILIZATION_FELINE</CivilizationType> ★追加
<LeaderType>LEADER_JASPER_KITTY</LeaderType> ★追加
<Type>IMPROVEMENT_hogehoge</Type> ★追加
<Name>LOC_IMPROVEMENT_hogehoge_NAME</Name> ★追加
<Description>LOC_IMPROVEMENT_hogehoge_DESCRIPTION</Description> ★追加
<Icon>ICON_IMPROVEMENT_hogehoge</Icon> ★追加
<SortIndex>40</SortIndex> ★追加
</Row> ★追加
</PlayerItems>
</GameData>
*** NewLeader_ConfigText.xml [#t6e1bbab]
他のユニークと同様、名称や説明などを書きます。
<Row Tag="LOC_IMPROVEMENT_hogehoge_NAME" Language="en_US"> ★追加
<Text>House Boat</Text> ★追加
</Row> ★追加
<Row Tag="LOC_IMPROVEMENT_hogehoge_DESCRIPTION" Language="en_US"> ★追加
<Text>Unlocks the Builder ability to construct a House Boat, unique to Majestic Felines.[NEWLINE][NEWLINE]+1 [ICON_Gold] Gold, [ICON_Production] Production and +1 [ICON_Housing] Housing. Can be built on Coasts and Oceans.</Text> ★追加
</Row> ★追加
<Row Tag="LOC_TRAIT_CIVILIZATION_IMPROVEMENT_hogehoge_NAME" Language="en_US"> ★追加
<Text>Majestic Felines unique Improvement: House Boat</Text> ★追加
</Row> ★追加
<Row Tag="LOC_PEDIA_BUILDINGS_PAGE_IMPROVEMENT_hogehoge_CHAPTER_HISTORY_PARA_1" Language="en_US"> ★追加
<Text></Text> ★追加
</Row> ★追加
</LocalizedText>
</GameData>
** Artdefの記述 [#a6d75af5]
地形改善の見た目を表示するためのArtdefを記述します。
ファイル名は「hogehoge_Improvement.artdef」とします。
内容はバニラのArtdefから漁船のものをコピーしてきましょう。
ファイルは
Sid Meier's Civilization VI/Base/Artdefs/Improvements.artdef
です。また、漁船の定義名は「IMPROVEMENT_FISHING_BOATS」です。
必要最小限をコピーして改変したものが以下となります。
<?xml version="1.0" encoding="utf-8" ?>
<AssetObjects:ArtDefSet>
<m_Version>
<major>4</major>
<minor>0</minor>
<build>250</build>
<revision>203</revision>
</m_Version>
<m_TemplateName text="Improvements"/>
<m_RootCollections>
<Element>
<m_CollectionName text="Improvement"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
<Element>
<m_Fields>
<m_Values/>
</m_Fields>
<m_ChildCollections>
<Element>
<m_CollectionName text="Audio"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
<Element>
<m_Fields>
<m_Values>
<Element class="AssetObjects:StringValue">
<m_Value text="FishingBoat"/>
<m_ParamName text="XrefName"/>
</Element>
</m_Values>
</m_Fields>
<m_ChildCollections/>
<m_Name text="XrefName"/>
<m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
</Element>
</Element>
<Element>
<m_CollectionName text="StrategicView"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
<Element>
<m_Fields>
<m_Values>
<Element class="AssetObjects:ArtDefReferenceValue">
<m_ElementName text="FishingBoats_Pillaged"/>
<m_RootCollectionName text="Improvements"/>
<m_ArtDefPath text="StrategicView.artdef"/>
<m_CollectionIsLocked>false</m_CollectionIsLocked>
<m_TemplateName text="StrategicView"/>
<m_ParamName text="XrefName"/>
</Element>
<Element class="AssetObjects:ArtDefReferenceValue">
<m_ElementName text="Pillaged"/>
<m_RootCollectionName text="BuildStates"/>
<m_ArtDefPath text="Improvements.artdef"/>
<m_CollectionIsLocked>true</m_CollectionIsLocked>
<m_TemplateName text="Improvements"/>
<m_ParamName text="State"/>
</Element>
</m_Values>
</m_Fields>
<m_ChildCollections/>
<m_Name text="StrategicView002"/>
<m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
</Element>
<Element>
<m_Fields>
<m_Values>
<Element class="AssetObjects:ArtDefReferenceValue">
<m_ElementName text="FishingBoats"/>
<m_RootCollectionName text="Improvements"/>
<m_ArtDefPath text="StrategicView.artdef"/>
<m_CollectionIsLocked>false</m_CollectionIsLocked>
<m_TemplateName text="StrategicView"/>
<m_ParamName text="XrefName"/>
</Element>
<Element class="AssetObjects:ArtDefReferenceValue">
<m_ElementName text="Completed"/>
<m_RootCollectionName text="BuildStates"/>
<m_ArtDefPath text="Improvements.artdef"/>
<m_CollectionIsLocked>true</m_CollectionIsLocked>
<m_TemplateName text="Improvements"/>
<m_ParamName text="State"/>
</Element>
</m_Values>
</m_Fields>
<m_ChildCollections/>
<m_Name text="StrategicView001"/>
<m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
</Element>
</Element>
<Element>
<m_CollectionName text="Landmark"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
<Element>
<m_Fields>
<m_Values>
<Element class="AssetObjects:ArtDefReferenceValue">
<m_ElementName text="LM_FISHING_BOATS"/>
<m_RootCollectionName text="Landmarks"/>
<m_ArtDefPath text="Landmarks.artdef"/>
<m_CollectionIsLocked>true</m_CollectionIsLocked>
<m_TemplateName text="Landmarks"/>
<m_ParamName text="Xref"/>
</Element>
<Element class="AssetObjects:BoolValue">
<m_bValue>true</m_bValue>
<m_ParamName text="SuppressResource"/>
</Element>
<Element class="AssetObjects:ArtDefReferenceValue">
<m_ElementName text="ANYTHING"/>
<m_RootCollectionName text=""/>
<m_ArtDefPath text=""/>
<m_CollectionIsLocked>true</m_CollectionIsLocked>
<m_TemplateName text=""/>
<m_ParamName text="WhenAdjacentTo"/>
</Element>
<Element class="AssetObjects:ArtDefReferenceValue">
<m_ElementName text="NONE"/>
<m_RootCollectionName text=""/>
<m_ArtDefPath text=""/>
<m_CollectionIsLocked>true</m_CollectionIsLocked>
<m_TemplateName text=""/>
<m_ParamName text="Fence"/>
</Element>
<Element class="AssetObjects:IntValue">
<m_nValue>0</m_nValue>
<m_ParamName text="Priority"/>
</Element>
</m_Values>
</m_Fields>
<m_ChildCollections>
<Element>
<m_CollectionName text="WhenAffectedBy"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
</Element>
</m_ChildCollections>
<m_Name text="Landmark1"/>
<m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
</Element>
</Element>
<Element>
<m_CollectionName text="Clutter"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
</Element>
<Element>
<m_CollectionName text="Lighting"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
</Element>
<Element>
<m_CollectionName text="Activity"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
</Element>
<Element>
<m_CollectionName text="GreatWall"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
</Element>
</m_ChildCollections>
<m_Name text="IMPROVEMENT_hogehoge"/> ★ここを「IMPROVEMENT_FISHING_BOATS」から変更
<m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
</Element>
</Element>
<Element>
<m_CollectionName text="BuildStates"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMergedCollectionElements>
<Element>
<m_Fields>
<m_Values/>
</m_Fields>
<m_ChildCollections/>
<m_Name text="Completed"/>
<m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
</Element>
<Element>
<m_Fields>
<m_Values/>
</m_Fields>
<m_ChildCollections/>
<m_Name text="Pillaged"/>
<m_AppendMergedParameterCollections>false</m_AppendMergedParameterCollections>
</Element>
</Element>
</m_RootCollections>
</AssetObjects:ArtDefSet>
** Mod.Art.xmlへの登録 [#c911a046]
以下3か所に作ったArtdefを登録するとちゃんと見えるようになります。
<Element>
<consumerName text="Improvements"/>
<relativeArtDefPaths>
<Element text="hogehoge_Improvement.artdef"/> ★追加
</relativeArtDefPaths>
<libraryDependencies/>
<loadsLibraries>false</loadsLibraries>
</Element>
<Element>
<consumerName text="WorldView_Translate"/>
<relativeArtDefPaths>
<Element text="hogehoge_Districts.artdef"/>
<Element text="hogehoge_Improvement.artdef"/> ★追加
</relativeArtDefPaths>
<libraryDependencies/>
<loadsLibraries>false</loadsLibraries>
</Element>
<Element>
<consumerName text="StrategicView_Translate"/>
<relativeArtDefPaths>
<Element text="hogehoge_Districts.artdef"/>
<Element text="hogehoge_Improvement.artdef"/> ★追加
</relativeArtDefPaths>
<libraryDependencies/>
<loadsLibraries>false</loadsLibraries>
</Element>
** アイコンの作成 [#ad803a41]
地形改善のアクションアイコンは256,80,50,38のサイズが必要になります。
が、今回も使いまわしましょう。とりあえず漁船ので。
以下をNewLeader_Icons.xmlへ追加します。
<Row Name="ICON_IMPROVEMENT_hogehoge" Atlas="ICON_ATLAS_UNIT_ACTIONS" Index="4"/> ★追加
</IconDefinitions>
</GameData>
** ビルド・動作確認 [#v8a73f05]
これで完成です。
ビルドして確認しましょう。
&ref(SelectUI.jpg);
&ref(LoadingUI.jpg);
&ref(UI.jpg);