#author("2022-12-30T15:52:51+09:00","","") #author("2022-12-30T15:54:28+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 = 沿岸や海| |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となっています - 改善されるボーナスに設定されていないものに追加ボーナスを与えることはできません。 例えばベースが生産力+3の改善に追加ボーナスで科学力+1とかやりたい場合は、改善されるボーナスに「科学力+0」を設定しておいてください。 *** 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のサイズが必要になります。 が、今回も使いまわしましょう。とりあえず漁船ので。 \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> ** ビルド・動作確認 [#v8a73f05] これで完成です。 ビルドして確認しましょう。 &ref(SelectUI.jpg); &ref(LoadingUI.jpg); &ref(UI.jpg); ** 備考 [#m7278f8c] ここまで作業したものを以下に上げておきます。 https://www.axfc.net/u/3837980