MOD/作成方法

ユニーク地形改善 Edit

何にしようか迷いましたが、比較的単純なやつで。
海と沿岸に設置できる「家船」を作ってみることにします。
(これも公開済みMODに(ry

xmlの記述 Edit

NewLeader_Improvement.xml Edit

基本的にユニーク系のものは流れが同じです。種類が違うだけ。
まずは性能を決めてしまいましょう。

新規に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:改善できるタイルの種類

Improvement_ValidBuildUnits:改善を行えるユニット

Improvement_YieldChanges:改善されるボーナス

Improvement_BonusYieldChanges:テクノロジーや社会制度の獲得による追加ボーナス

NewLeader_Felines.xml Edit

他と同じように、ユニークにするならば文明か指導者どちらかに紐付ける必要があります。
今回は文明に紐付けます。

<?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 Edit

他のユニークと同様、文明選択画面への表示部分を追加します。

			<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 Edit

他のユニークと同様、名称や説明などを書きます。

		<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の記述 Edit

地形改善の見た目を表示するための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への登録 Edit

以下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>

アイコンの作成 Edit

地形改善のアクションアイコンは256,80,50,38のサイズが必要になります。
が、今回も使いまわしましょう。とりあえず漁船ので。

\Sid Meier's Civilization VI\Base\Assets\UI\Icons

以下の、Icons_UnitActions.xml内。IconDefinitionsから使いたいアイコンの記述をコピーしてきて、Nameを書き変えるだけです。
NewLeader_Icons.xmlへ追加します。

		<Row Name="ICON_IMPROVEMENT_hogehoge" Atlas="ICON_ATLAS_UNIT_ACTIONS" Index="4"/> ★追加
	</IconDefinitions>
</GameData>

ビルド・動作確認 Edit

これで完成です。
ビルドして確認しましょう。

SelectUI.jpg

LoadingUI.jpg

UI.jpg

備考 Edit

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



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