Civilization6(Civ6 シヴィライゼーション6) 攻略Wiki
-
MOD/作成方法/新文明・指導者/UU
をテンプレートにして作成 |
新規
|
子ページ作成
|
ページ一覧
|
最終更新
|
モバイル表示に変更
|
開始行:
[[MOD/作成方法]]
* ユニークユニットの作成 [#gc085049]
特殊能力を持たない単純なユニークユニットの作成例です。
** xmlの記述 [#ye435edb]
*** ユニットのデータ記述 [#jdcc1138]
まずは性能等を決めてしまいましょう。
大砲とロケット砲の間ぐらいの性能を持つ攻城兵器「自走榴弾...
(すでに公開済みMODで実装しているものです)
新規にxmlファイルを作成します。で、適当にリネームしましょ...
ここではNewLeader_UU.xmlとします。
Propertyを右クリック⇒Add⇒NewItemと選択
&ref(Menu.png);
Database(xml)を選択し、右下のAddをクリック
&ref(NewXML.png);
これで新しくxmlファイルが出来上がりますので、適当にリネー...
ここではNewLeader_UU.xmlとします。
内容は以下のようにします。
<?xml version="1.0" encoding="utf-8"?>
<GameData>
<Types>
<Row Type="UNIT_hogehoge_UU" Kind="KIND_UNIT"/>
</Types>
<UnitAiInfos>
<Row UnitType="UNIT_hogehoge_UU" AiType="UNITAI_COMBAT...
<Row UnitType="UNIT_hogehoge_UU" AiType="UNITTYPE_RANG...
<Row UnitType="UNIT_hogehoge_UU" AiType="UNITTYPE_SIEG...
<Row UnitType="UNIT_hogehoge_UU" AiType="UNITTYPE_LAND...
</UnitAiInfos>
<TypeTags>
<Row Type="UNIT_hogehoge_UU" Tag="CLASS_SIEGE"/>
<Row Type="UNIT_hogehoge_UU" Tag="CLASS_FORWARD_OBSERV...
</TypeTags>
<Units>
<Row UnitType="UNIT_hogehoge_UU" BaseMoves="3" Cost="5...
BaseSightRange="2" ZoneOfControl="false" Domain="DOM...
Name="LOC_UNIT_hogehoge_UU_NAME" Description="LOC_UN...
PromotionClass="PROMOTION_CLASS_SIEGE" Maintenance="...
PrereqTech="TECH_ADVANCED_BALLISTICS" Bombard="88"/>
</Units>
</GameData>
Types:ユニットの親定義
UnitAiInfos:AIがユニットを動かす際の指標
- 他の攻城ユニットから丸コピーです。上から戦闘ユニット、...
TypeTags:ユニットが持つTagの設定
- 他の攻城ユニットから丸コピーです。
-- CLASS_SIEGE:攻城兵器という指定
-- CLASS_FORWARD_OBSERVER:観測気球が隣接していると射程+1
(つまり観測気球自身は射程+1にする効果を持っていません。対...
Units:ユニットのステータス詳細設定
- ロケット砲からコピーしてきて値を変えています。
|UnitType|Typeで定義したもの|
|BaseMoves|移動力|
|Cost|生産コスト|
|AdvisorType|助言者の設定?|
|BaseSightRange|視界|
|ZoneOfControl|ZOC:false = なし|
|Domain|ユニットが属するドメイン:DOMAIN_LAND = 陸上ユニ...
|FormationClass|よくわかりません・・・たぶんユニットの見...
|PromotionClass|よくわかりません・・・ユニットが何のタイ...
|Maintenance|維持費|
|Combat|近接戦闘力|
|Range|射程|
|TraitType|何のTraitに紐付くか。ユニークユニットならば必...
|PrereqTech|ユニット作成に必要な解禁技術:TECH_ADVANCED_B...
|Bombard|都市砲撃力|
*** <Units>に設定できる値について [#x908a0de]
設定できる値の定義は
Sid Meier's Civilization VI/Base/Assets/Gameplay/Data/Sc...
に書かれています。
CREATE TABLE "Units" (
・
・
・
FOREIGN KEY (ObsoleteTech) REFERENCES Technologies(Techn...
の部分がユニットのデータ定義です。
データベースを知っている方ならわかると思いますが、SQLのCr...
どの要素を変えるとどうなるのかは全部理解できていません・...
*** 指導者に紐付ける [#kf7221f4]
後述する、と書いたTraitについてはここで説明します。
そのユニットが指導者(ないし文明)固有のものであることを...
そのTraitを定義します。
今回は指導者に紐付けますのでNewLeader_JasperKitty.xmlを開...
<GameData>
<Types>
<Row Type="LEADER_JASPER_KITTY" Kind="KIND_LEADER" />
<Row Type="TRAIT_LEADER_JASPER_KITTY" Kind="KIND_TRAIT...
<Row Type="TRAIT_LEADER_UNIT_hogehoge_UU" Kind="KIND_T...
</Types>
<Leaders>
<Row>
<LeaderType>LEADER_JASPER_KITTY</LeaderType>
<Name>LOC_LEADER_JASPER_KITTY_NAME</Name>
<InheritFrom>LEADER_DEFAULT</InheritFrom>
</Row>
</Leaders>
<LeaderQuotes>
<Row LeaderType="LEADER_JASPER_KITTY" Quote="LOC_LEADE...
</LeaderQuotes>
<LeaderTraits>
<Row LeaderType="LEADER_JASPER_KITTY" TraitType="TRAIT...
<Row LeaderType="LEADER_JASPER_KITTY" TraitType="TRAIT...
</LeaderTraits>
<Traits>
<Row TraitType="TRAIT_LEADER_JASPER_KITTY" Name="LOC_T...
<Row TraitType="TRAIT_LEADER_UNIT_hogehoge_UU" Name="L...
</Traits>
<TraitModifiers>
<Row TraitType="TRAIT_LEADER_JASPER_KITTY" ModifierId=...
</TraitModifiers>
こうすることで、LEADER_JASPER_KITTYはTRAIT_LEADER_UNIT_ho...
UNIT_hogehoge_UUというユニットはTRAIT_LEADER_UNIT_hogehog...
*** 文明選択時の表示 [#o5ead484]
文明・指導者の特性や固有のユニット等はゲーム開始前の文明...
それを記述しましょう。編集するのはNewLeader_Config.xmlに...
<?xml version="1.0" encoding="utf-8"?>
<GameData>
<Players>
<Row>
<Domain>StandardPlayers</Domain>
<CivilizationType>CIVILIZATION_FELINE</CivilizationTy...
<LeaderType>LEADER_JASPER_KITTY</LeaderType>
<CivilizationName>LOC_CIVILIZATION_FELINE_NAME</Civil...
<CivilizationIcon>ICON_CIVILIZATION_FELINE</Civilizat...
<LeaderName>LOC_LEADER_JASPER_KITTY_NAME</LeaderName>
<LeaderIcon>ICON_LEADER_JASPER_KITTY</LeaderIcon>
<CivilizationAbilityName>LOC_TRAIT_CIVILIZATION_FELIN...
<CivilizationAbilityDescription>LOC_TRAIT_CIVILIZATIO...
<CivilizationAbilityIcon>ICON_CIVILIZATION_FELINE</Ci...
<LeaderAbilityName>LOC_TRAIT_LEADER_JASPER_KITTY_NAME...
<LeaderAbilityDescription>LOC_TRAIT_LEADER_JASPER_KIT...
<LeaderAbilityIcon>ICON_LEADER_JASPER_KITTY</LeaderAb...
<Portrait>PORTRAIT_hogehoge</Portrait>
</Row>
</Players>
<PlayerItems>
<Row>
<Domain>StandardPlayers</Domain>
<CivilizationType>CIVILIZATION_FELINE</CivilizationTy...
<LeaderType>LEADER_JASPER_KITTY</LeaderType>
<Type>BUILDING_LITTER_BOX</Type>
<Name>LOC_BUILDING_LITTER_BOX_NAME</Name>
<Description>LOC_BUILDING_LITTER_BOX_DESCRIPTION</Des...
<Icon>ICON_BUILDING_LITTER_BOX</Icon>
<SortIndex>10</SortIndex>
</Row>
<Row> ★追加
<Domain>StandardPlayers</Domain> ★追加
<CivilizationType>CIVILIZATION_FELINE</CivilizationTy...
<LeaderType>LEADER_JASPER_KITTY</LeaderType> ★追加
<Type>UNIT_hogehoge_UU</Type> ★追加
<Name>LOC_UNIT_hogehoge_UU_NAME</Name> ★追加
<Description>LOC_UNIT_hogehoge_UU_DESCRIPTION</Descri...
<Icon>ICON_UNIT_hogehoge_UU</Icon> ★追加
<SortIndex>20</SortIndex> ★追加
</Row> ★追加
</PlayerItems>
</GameData>
*** 説明文を書く [#efc35d7d]
実際に表示される説明文をNewLeader_ConfigText.xmlへ記述し...
必要なのは
- ユニット名(ゲーム内等)
- ユニットの説明
- ユニット名(Trait用)
- ユニットのCivilopediaの内容
の4項目です。
例によってサンプルが英語ですので英語で書いておきます。
<Row Tag="LOC_UNIT_hogehoge_UU_NAME" Language="en_US">
<Text>Howitzer</Text>
</Row>
<Row Tag="LOC_UNIT_hogehoge_UU_DESCRIPTION" Language="...
<Text>Jasper Kitty unique Atomic era unit.</Text>
</Row>
<Row Tag="LOC_TRAIT_LEADER_UNIT_hogehoge_UU_NAME" Lang...
<Text>Jasper Kitty unique unit: Howitzer</Text>
</Row>
<Row Tag="LOC_PEDIA_UNITS_PAGE_UNIT_hogehoge_UU_CHAPTE...
<Text></Text>
</Row>
** Propertyに登録する [#x78b020b]
作ったxmlファイルはpropertyへ登録しましょう。
In-Game ActionsのUpdateDatabaseの中です。
&ref(AddXMLtoProperty.png);
** ユニットのアイコン作成 [#i79a9fd7]
ユニットは独自の2つのアイコンを持っています。
- Flag(ユニットにくっつく抽象的な見た目のアイコン)
- Portrait(ユニットをクリックすると右下に出てくるやつ)
これらも作る必要があります。
それぞれ必要なサイズは以下となります。
- Flag:256,80,50,38,32,22
- Portrait:256,200,95,70,50,38
基本は指導者や文明のアイコンと同じで、
- 画像を用意
- texを用意
- xlpファイルへ追記
です。
texのコピー元は指導者のアイコンと同じでOK。(文明アイコン...
そしてxmlの定義の書き方が少し特殊です。これは命名規則が決...
まずFlagは4種類必要です。
|ICON_[ユニット名]|256,80,50,38,32,22のサイズを登録する|
|ICON_[ユニット名]_FOW|32のサイズのみを登録する|
|ICON_[ユニット名]_WHITE|80,32,22のサイズを登録する|
|ICON_[ユニット名]_BLACK|32のサイズのみを登録する|
Portraitはさらに面倒くさくて以下のようになります。
|ICON_[ユニット定義名]_PORTRAIT|256,200,95,50,38のサイズ...
|ICON_ETHNICITY_ASIAN_[ユニット定義名]_PORTRAIT|95,75のサ...
|ICON_ETHNICITY_MEDIT_[ユニット定義名]_PORTRAIT|95,75のサ...
|ICON_ETHNICITY_SOUTHAM_[ユニット定義名]_PORTRAIT|95,75の...
|ICON_ETHNICITY_AFRICAN_[ユニット定義名]_PORTRAIT|95,75の...
具体的には以下のように・・・(長いです)。
*** 開発環境への画像登録 [#jdc6ca85]
&ref(ImageAddUU.png);
*** hogehoge_Icons.xlp [#sd4428db]
以下を追加。
<Element>
<m_EntryID text="ICON_UU_hogehoge22"/>
<m_ObjectName text="ICON_UU_hogehoge22"/>
</Element>
<Element>
<m_EntryID text="ICON_UU_hogehoge32"/>
<m_ObjectName text="ICON_UU_hogehoge32"/>
</Element>
<Element>
<m_EntryID text="ICON_UU_hogehoge38"/>
<m_ObjectName text="ICON_UU_hogehoge38"/>
</Element>
<Element>
<m_EntryID text="ICON_UU_hogehoge50"/>
<m_ObjectName text="ICON_UU_hogehoge50"/>
</Element>
<Element>
<m_EntryID text="ICON_UU_hogehoge80"/>
<m_ObjectName text="ICON_UU_hogehoge80"/>
</Element>
<Element>
<m_EntryID text="ICON_UU_hogehoge256"/>
<m_ObjectName text="ICON_UU_hogehoge256"/>
</Element>
<Element>
<m_EntryID text="ICON_UU_hogehoge_PORT38"/>
<m_ObjectName text="ICON_UU_hogehoge_PORT38"/>
</Element>
<Element>
<m_EntryID text="ICON_UU_hogehoge_PORT50"/>
<m_ObjectName text="ICON_UU_hogehoge_PORT50"/>
</Element>
<Element>
<m_EntryID text="ICON_UU_hogehoge_PORT70"/>
<m_ObjectName text="ICON_UU_hogehoge_PORT70"/>
</Element>
<Element>
<m_EntryID text="ICON_UU_hogehoge_PORT95"/>
<m_ObjectName text="ICON_UU_hogehoge_PORT95"/>
</Element>
<Element>
<m_EntryID text="ICON_UU_hogehoge_PORT200"/>
<m_ObjectName text="ICON_UU_hogehoge_PORT200"/>
</Element>
<Element>
<m_EntryID text="ICON_UU_hogehoge_PORT256"/>
<m_ObjectName text="ICON_UU_hogehoge_PORT256"/>
</Element>
*** NewlLeader_Icons.xml [#j06b8d0d]
<?xml version="1.0" encoding="utf-8"?>
<GameData>
<IconTextureAtlases>
<Row Name="ICON_ATLAS_LEADER_HOGEHOGE" IconSize="32" ...
<Row Name="ICON_ATLAS_LEADER_HOGEHOGE" IconSize="45" ...
<Row Name="ICON_ATLAS_LEADER_HOGEHOGE" IconSize="50" ...
<Row Name="ICON_ATLAS_LEADER_HOGEHOGE" IconSize="55" ...
<Row Name="ICON_ATLAS_LEADER_HOGEHOGE" IconSize="64" ...
<Row Name="ICON_ATLAS_LEADER_HOGEHOGE" IconSize="80" ...
<Row Name="ICON_ATLAS_LEADER_HOGEHOGE" IconSize="256" ...
<Row Name="ICON_ATLAS_CIVILIZATION_HOGEHOGE" IconSize=...
<Row Name="ICON_ATLAS_CIVILIZATION_HOGEHOGE" IconSize=...
<Row Name="ICON_ATLAS_CIVILIZATION_HOGEHOGE" IconSize=...
<Row Name="ICON_ATLAS_CIVILIZATION_HOGEHOGE" IconSize=...
<Row Name="ICON_ATLAS_CIVILIZATION_HOGEHOGE" IconSize=...
<Row Name="ICON_ATLAS_CIVILIZATION_HOGEHOGE" IconSize=...
<Row Name="ICON_ATLAS_CIVILIZATION_HOGEHOGE" IconSize=...
<Row Name="ICON_ATLAS_CIVILIZATION_HOGEHOGE" IconSize=...
<Row Name="ICON_ATLAS_CIVILIZATION_HOGEHOGE" IconSize=...
<Row Name="ICON_ATLAS_CIVILIZATION_HOGEHOGE" IconSize=...
<Row Name="ICON_ATLAS_HOGEHOGE_UNITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_UNITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_UNITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_UNITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_UNITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_UNITS_FOW" ...
<Row Name="ICON_ATLAS_HOGEHOGE_SYMBOLS_WHITE" ...
<Row Name="ICON_ATLAS_HOGEHOGE_SYMBOLS_WHITE" ...
<Row Name="ICON_ATLAS_HOGEHOGE_SYMBOLS_WHITE" ...
<Row Name="ICON_ATLAS_HOGEHOGE_SYMBOLS_BLACK" ...
<Row Name="ICON_ATLAS_HOGEHOGE_UNIT_PORTRAITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_UNIT_PORTRAITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_UNIT_PORTRAITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_UNIT_PORTRAITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_UNIT_PORTRAITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_ASIAN_UNIT_PORTRAITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_ASIAN_UNIT_PORTRAITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_MEDITERRANEAN_UNIT_PORT...
<Row Name="ICON_ATLAS_HOGEHOGE_MEDITERRANEAN_UNIT_PORT...
<Row Name="ICON_ATLAS_HOGEHOGE_SOUTH_AMERICAN_UNIT_POR...
<Row Name="ICON_ATLAS_HOGEHOGE_SOUTH_AMERICAN_UNIT_POR...
<Row Name="ICON_ATLAS_HOGEHOGE_AFRICAN_UNIT_PORTRAITS"...
<Row Name="ICON_ATLAS_HOGEHOGE_AFRICAN_UNIT_PORTRAITS"...
</IconTextureAtlases>
<IconDefinitions>
<Row Name="ICON_BUILDING_LITTER_BOX" Atlas="ICON_ATLAS...
<Row Name="ICON_CIVILIZATION_FELINE" Atlas="ICON_ATLAS...
<Row Name="ICON_LEADER_JASPER_KITTY" Atlas="ICON_ATLAS...
<Row Name="ICON_UNIT_hogehoge_UU" ...
<Row Name="ICON_UNIT_hogehoge_UU_FOW" ...
<Row Name="ICON_UNIT_hogehoge_UU_WHITE" ...
<Row Name="ICON_UNIT_hogehoge_UU_BLACK" ...
<Row Name="ICON_UNIT_hogehoge_UU_PORTRAIT" ...
<Row Name="ICON_ETHNICITY_ASIAN_UNIT_hogehoge_UU_PORTR...
<Row Name="ICON_ETHNICITY_MEDIT_UNIT_hogehoge_UU_PORTR...
<Row Name="ICON_ETHNICITY_SOUTHAM_UNIT_hogehoge_UU_POR...
<Row Name="ICON_ETHNICITY_AFRICAN_UNIT_hogehoge_UU_POR...
</IconDefinitions>
</GameData>
** ユニットの見た目を定義する [#m6a602da]
ここまでの作業を行えば、実際にゲーム内でユニークユニット...
が、このままだと見た目が労働者になってしまいます。それは...
本来ならば3Dデータを作ってゲームで使えるように変換して・...
あいにくのところ筆者は3Dデータを作る技術を持ち合わせてお...
既存のデータを使いまわすにはArtdefファイルを書けばよいで...
使いまわしですのでバニラからもってきて定義を変える、とい...
とりあえず見た目を戦車と同じにしてみましょう。
まずArtdefの空ファイルを作成します。xmlと同じように新規追...
なのでtxtファイルにして拡張子ごとリネームします。
「hogehoge_Units.artdef」としてください。
次にバニラのArtdefから戦車の定義部分を持ってきます。
バニラのユニットのArtdefファイルは
Sid Meier's Civilization VI/Base/Artdefs/Units.artdef
です。
戦車のユニット定義名は「UNIT_TANK」です。
探し当てたら必要最小限抜き出してユニット定義名を書き換え...
作業後の内容は以下になります。
<?xml version="1.0" encoding="UTF-8" ?>
<AssetObjects:ArtDefSet>
<m_Version>
<major>4</major>
<minor>0</minor>
<build>256</build>
<revision>893</revision>
</m_Version>
<m_TemplateName text="Units"/>
<m_RootCollections>
<Element>
<m_CollectionName text="Units"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
<!-- ↓ここから「UNIT_hogehoge_UU」の定義開始 -->
<Element>
<m_Fields>
<m_Values>
<Element class="AssetObjects:ArtDefReferenceValue">
<m_ElementName text="Scattered"/>
<m_RootCollectionName text="UnitFormationTypes"/>
<m_ArtDefPath text="Units.artdef"/>
<m_CollectionIsLocked>false</m_CollectionIsLocked>
<m_TemplateName text=""/>
<m_ParamName text="Formation"/>
</Element>
<Element class="AssetObjects:ArtDefReferenceValue">
<m_ElementName text="Tank"/>
<m_RootCollectionName text="UnitCombat"/>
<m_ArtDefPath text="Units.artdef"/>
<m_CollectionIsLocked>true</m_CollectionIsLocked>
<m_TemplateName text="Units"/>
<m_ParamName text="UnitCombat"/>
</Element>
<Element class="AssetObjects:ArtDefReferenceValue">
<m_ElementName text=""/>
<m_RootCollectionName text="UnitFormationTypes"/>
<m_ArtDefPath text="Units.artdef"/>
<m_CollectionIsLocked>true</m_CollectionIsLocked>
<m_TemplateName text=""/>
<m_ParamName text="EscortFormation"/>
</Element>
<Element class="AssetObjects:ArtDefReferenceValue">
<m_ElementName text="UNIT_MODERNEMBARK"/>
<m_RootCollectionName text="Units"/>
<m_ArtDefPath text="Units.artdef"/>
<m_CollectionIsLocked>true</m_CollectionIsLocked>
<m_TemplateName text="Units"/>
<m_ParamName text="EmbarkedUnit"/>
</Element>
<Element class="AssetObjects:BoolValue">
<m_bValue>false</m_bValue>
<m_ParamName text="DoNotDisplayCharges"/>
</Element>
<Element class="AssetObjects:ArtDefReferenceValue">
<m_ElementName text=""/>
<m_RootCollectionName text="UnitCulture"/>
<m_ArtDefPath text="Cultures.artdef"/>
<m_CollectionIsLocked>true</m_CollectionIsLocked>
<m_TemplateName text=""/>
<m_ParamName text="Culture"/>
</Element>
<Element class="AssetObjects:ArtDefReferenceValue">
<m_ElementName text=""/>
<m_RootCollectionName text="Era"/>
<m_ArtDefPath text="Eras.artdef"/>
<m_CollectionIsLocked>true</m_CollectionIsLocked>
<m_TemplateName text=""/>
<m_ParamName text="Era"/>
</Element>
<Element class="AssetObjects:ArtDefReferenceValue">
<m_ElementName text=""/>
<m_RootCollectionName text="Units"/>
<m_ArtDefPath text="Units.artdef"/>
<m_CollectionIsLocked>true</m_CollectionIsLocked>
<m_TemplateName text=""/>
<m_ParamName text="ProxyUnit"/>
</Element>
<Element class="AssetObjects:BoolValue">
<m_bValue>false</m_bValue>
<m_ParamName text="PlayDeathOnDestroy"/>
</Element>
<Element class="AssetObjects:IntValue">
<m_nValue>0</m_nValue>
<m_ParamName text="DisplayLevel"/>
</Element>
</m_Values>
</m_Fields>
<m_ChildCollections>
<Element>
<m_CollectionName text="Members"/>
<m_ReplaceMergedCollectionElements>false</m_Replac...
<Element>
<m_Fields>
<m_Values>
<Element class="AssetObjects:FloatValue">
<m_fValue>1.000000</m_fValue>
<m_ParamName text="Scale"/>
</Element>
<Element class="AssetObjects:IntValue">
<m_nValue>1</m_nValue>
<m_ParamName text="Count"/>
</Element>
<Element class="AssetObjects:ArtDefReferenceVal...
<m_ElementName text="Tank"/>
<m_RootCollectionName text="UnitMemberTypes"/>
<m_ArtDefPath text="Units.artdef"/>
<m_CollectionIsLocked>false</m_CollectionIsLoc...
<m_TemplateName text=""/>
<m_ParamName text="Type"/>
</Element>
</m_Values>
</m_Fields>
<m_ChildCollections/>
<m_Name text="Members1"/>
<m_AppendMergedParameterCollections>false</m_Appe...
</Element>
</Element>
<Element>
<m_CollectionName text="Audio"/>
<m_ReplaceMergedCollectionElements>false</m_Replac...
<Element>
<m_Fields>
<m_Values>
<Element class="AssetObjects:StringValue">
<m_Value text=""/>
<m_ParamName text="XrefName"/>
</Element>
</m_Values>
</m_Fields>
<m_ChildCollections/>
<m_Name text=""/>
<m_AppendMergedParameterCollections>false</m_Appe...
</Element>
<Element>
<m_Fields>
<m_Values>
<Element class="AssetObjects:StringValue">
<m_Value text="Tank"/>
<m_ParamName text="XrefName"/>
</Element>
</m_Values>
</m_Fields>
<m_ChildCollections/>
<m_Name text="TANK"/>
<m_AppendMergedParameterCollections>false</m_Appe...
</Element>
</Element>
</m_ChildCollections>
<m_Name text="UNIT_hogehoge_UU"/> ★ここを「UNIT_TANK...
<m_AppendMergedParameterCollections>false</m_AppendM...
</Element>
<!-- ↑ここで「UNIT_hogehoge_UU」の定義終了 -->
</Element>
<Element>
<m_CollectionName text="UnitMovementTypes"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
<Element>
<m_CollectionName text="UnitFormationTypes"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
<Element>
<m_CollectionName text="MemberCombat"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
<Element>
<m_CollectionName text="UnitCombat"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
<Element>
<m_CollectionName text="CombatAttack"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
<Element>
<m_CollectionName text="UnitFormationLayoutTypes"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
<Element>
<m_CollectionName text="CombatFormation"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
<Element>
<m_CollectionName text="UnitAttachmentBins"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
<Element>
<m_CollectionName text="UnitMemberTypes"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
<Element>
<m_CollectionName text="UnitTintTypes"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
<Element>
<m_CollectionName text="UnitGlobals"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
<Element>
<m_CollectionName text="UnitDomainTypes"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
</m_RootCollections>
</AssetObjects:ArtDefSet>
作成したArtdefをMod.Art.xmlへ登録します。
・
・
・
</id>
<artConsumers>
<Element>
<consumerName text="Units"/>
<relativeArtDefPaths>
<Element text="hogehoge_Units.artdef"/> ★追加
</relativeArtDefPaths>
・
・
・
** ビルド・動作確認 [#e5a8f688]
以上で完成です。
ビルドして動作確認してみましょう。
文明選択画面
&ref(SelectUU.jpg);
Loading画面
&ref(LoadingUU.jpg);
今回作ったユニットはかなり後半の時代のものです。(原子力時...
上位ユニットもありませんので、情報時代でスタートして確認...
こんな感じでちゃんとユニットが作成されればOKです。
&ref(UU.jpg);
** 備考 [#h77c4167]
*** 何かのユニットと差し替えたい [#p5e03d7a]
大砲の置き換えにしたい場合は以下のように記述します。
<UnitReplaces>
<Row CivUniqueUnitType="UNIT_hogehoge_UU" ReplacesUnit...
</UnitReplaces>
※このままだと技術レベルが釣り合いませんので、ユニットの詳...
*** サンプル [#t452cff6]
ここまで作業したものを以下に置いておきます。
https://www.axfc.net/u/3836465
終了行:
[[MOD/作成方法]]
* ユニークユニットの作成 [#gc085049]
特殊能力を持たない単純なユニークユニットの作成例です。
** xmlの記述 [#ye435edb]
*** ユニットのデータ記述 [#jdcc1138]
まずは性能等を決めてしまいましょう。
大砲とロケット砲の間ぐらいの性能を持つ攻城兵器「自走榴弾...
(すでに公開済みMODで実装しているものです)
新規にxmlファイルを作成します。で、適当にリネームしましょ...
ここではNewLeader_UU.xmlとします。
Propertyを右クリック⇒Add⇒NewItemと選択
&ref(Menu.png);
Database(xml)を選択し、右下のAddをクリック
&ref(NewXML.png);
これで新しくxmlファイルが出来上がりますので、適当にリネー...
ここではNewLeader_UU.xmlとします。
内容は以下のようにします。
<?xml version="1.0" encoding="utf-8"?>
<GameData>
<Types>
<Row Type="UNIT_hogehoge_UU" Kind="KIND_UNIT"/>
</Types>
<UnitAiInfos>
<Row UnitType="UNIT_hogehoge_UU" AiType="UNITAI_COMBAT...
<Row UnitType="UNIT_hogehoge_UU" AiType="UNITTYPE_RANG...
<Row UnitType="UNIT_hogehoge_UU" AiType="UNITTYPE_SIEG...
<Row UnitType="UNIT_hogehoge_UU" AiType="UNITTYPE_LAND...
</UnitAiInfos>
<TypeTags>
<Row Type="UNIT_hogehoge_UU" Tag="CLASS_SIEGE"/>
<Row Type="UNIT_hogehoge_UU" Tag="CLASS_FORWARD_OBSERV...
</TypeTags>
<Units>
<Row UnitType="UNIT_hogehoge_UU" BaseMoves="3" Cost="5...
BaseSightRange="2" ZoneOfControl="false" Domain="DOM...
Name="LOC_UNIT_hogehoge_UU_NAME" Description="LOC_UN...
PromotionClass="PROMOTION_CLASS_SIEGE" Maintenance="...
PrereqTech="TECH_ADVANCED_BALLISTICS" Bombard="88"/>
</Units>
</GameData>
Types:ユニットの親定義
UnitAiInfos:AIがユニットを動かす際の指標
- 他の攻城ユニットから丸コピーです。上から戦闘ユニット、...
TypeTags:ユニットが持つTagの設定
- 他の攻城ユニットから丸コピーです。
-- CLASS_SIEGE:攻城兵器という指定
-- CLASS_FORWARD_OBSERVER:観測気球が隣接していると射程+1
(つまり観測気球自身は射程+1にする効果を持っていません。対...
Units:ユニットのステータス詳細設定
- ロケット砲からコピーしてきて値を変えています。
|UnitType|Typeで定義したもの|
|BaseMoves|移動力|
|Cost|生産コスト|
|AdvisorType|助言者の設定?|
|BaseSightRange|視界|
|ZoneOfControl|ZOC:false = なし|
|Domain|ユニットが属するドメイン:DOMAIN_LAND = 陸上ユニ...
|FormationClass|よくわかりません・・・たぶんユニットの見...
|PromotionClass|よくわかりません・・・ユニットが何のタイ...
|Maintenance|維持費|
|Combat|近接戦闘力|
|Range|射程|
|TraitType|何のTraitに紐付くか。ユニークユニットならば必...
|PrereqTech|ユニット作成に必要な解禁技術:TECH_ADVANCED_B...
|Bombard|都市砲撃力|
*** <Units>に設定できる値について [#x908a0de]
設定できる値の定義は
Sid Meier's Civilization VI/Base/Assets/Gameplay/Data/Sc...
に書かれています。
CREATE TABLE "Units" (
・
・
・
FOREIGN KEY (ObsoleteTech) REFERENCES Technologies(Techn...
の部分がユニットのデータ定義です。
データベースを知っている方ならわかると思いますが、SQLのCr...
どの要素を変えるとどうなるのかは全部理解できていません・...
*** 指導者に紐付ける [#kf7221f4]
後述する、と書いたTraitについてはここで説明します。
そのユニットが指導者(ないし文明)固有のものであることを...
そのTraitを定義します。
今回は指導者に紐付けますのでNewLeader_JasperKitty.xmlを開...
<GameData>
<Types>
<Row Type="LEADER_JASPER_KITTY" Kind="KIND_LEADER" />
<Row Type="TRAIT_LEADER_JASPER_KITTY" Kind="KIND_TRAIT...
<Row Type="TRAIT_LEADER_UNIT_hogehoge_UU" Kind="KIND_T...
</Types>
<Leaders>
<Row>
<LeaderType>LEADER_JASPER_KITTY</LeaderType>
<Name>LOC_LEADER_JASPER_KITTY_NAME</Name>
<InheritFrom>LEADER_DEFAULT</InheritFrom>
</Row>
</Leaders>
<LeaderQuotes>
<Row LeaderType="LEADER_JASPER_KITTY" Quote="LOC_LEADE...
</LeaderQuotes>
<LeaderTraits>
<Row LeaderType="LEADER_JASPER_KITTY" TraitType="TRAIT...
<Row LeaderType="LEADER_JASPER_KITTY" TraitType="TRAIT...
</LeaderTraits>
<Traits>
<Row TraitType="TRAIT_LEADER_JASPER_KITTY" Name="LOC_T...
<Row TraitType="TRAIT_LEADER_UNIT_hogehoge_UU" Name="L...
</Traits>
<TraitModifiers>
<Row TraitType="TRAIT_LEADER_JASPER_KITTY" ModifierId=...
</TraitModifiers>
こうすることで、LEADER_JASPER_KITTYはTRAIT_LEADER_UNIT_ho...
UNIT_hogehoge_UUというユニットはTRAIT_LEADER_UNIT_hogehog...
*** 文明選択時の表示 [#o5ead484]
文明・指導者の特性や固有のユニット等はゲーム開始前の文明...
それを記述しましょう。編集するのはNewLeader_Config.xmlに...
<?xml version="1.0" encoding="utf-8"?>
<GameData>
<Players>
<Row>
<Domain>StandardPlayers</Domain>
<CivilizationType>CIVILIZATION_FELINE</CivilizationTy...
<LeaderType>LEADER_JASPER_KITTY</LeaderType>
<CivilizationName>LOC_CIVILIZATION_FELINE_NAME</Civil...
<CivilizationIcon>ICON_CIVILIZATION_FELINE</Civilizat...
<LeaderName>LOC_LEADER_JASPER_KITTY_NAME</LeaderName>
<LeaderIcon>ICON_LEADER_JASPER_KITTY</LeaderIcon>
<CivilizationAbilityName>LOC_TRAIT_CIVILIZATION_FELIN...
<CivilizationAbilityDescription>LOC_TRAIT_CIVILIZATIO...
<CivilizationAbilityIcon>ICON_CIVILIZATION_FELINE</Ci...
<LeaderAbilityName>LOC_TRAIT_LEADER_JASPER_KITTY_NAME...
<LeaderAbilityDescription>LOC_TRAIT_LEADER_JASPER_KIT...
<LeaderAbilityIcon>ICON_LEADER_JASPER_KITTY</LeaderAb...
<Portrait>PORTRAIT_hogehoge</Portrait>
</Row>
</Players>
<PlayerItems>
<Row>
<Domain>StandardPlayers</Domain>
<CivilizationType>CIVILIZATION_FELINE</CivilizationTy...
<LeaderType>LEADER_JASPER_KITTY</LeaderType>
<Type>BUILDING_LITTER_BOX</Type>
<Name>LOC_BUILDING_LITTER_BOX_NAME</Name>
<Description>LOC_BUILDING_LITTER_BOX_DESCRIPTION</Des...
<Icon>ICON_BUILDING_LITTER_BOX</Icon>
<SortIndex>10</SortIndex>
</Row>
<Row> ★追加
<Domain>StandardPlayers</Domain> ★追加
<CivilizationType>CIVILIZATION_FELINE</CivilizationTy...
<LeaderType>LEADER_JASPER_KITTY</LeaderType> ★追加
<Type>UNIT_hogehoge_UU</Type> ★追加
<Name>LOC_UNIT_hogehoge_UU_NAME</Name> ★追加
<Description>LOC_UNIT_hogehoge_UU_DESCRIPTION</Descri...
<Icon>ICON_UNIT_hogehoge_UU</Icon> ★追加
<SortIndex>20</SortIndex> ★追加
</Row> ★追加
</PlayerItems>
</GameData>
*** 説明文を書く [#efc35d7d]
実際に表示される説明文をNewLeader_ConfigText.xmlへ記述し...
必要なのは
- ユニット名(ゲーム内等)
- ユニットの説明
- ユニット名(Trait用)
- ユニットのCivilopediaの内容
の4項目です。
例によってサンプルが英語ですので英語で書いておきます。
<Row Tag="LOC_UNIT_hogehoge_UU_NAME" Language="en_US">
<Text>Howitzer</Text>
</Row>
<Row Tag="LOC_UNIT_hogehoge_UU_DESCRIPTION" Language="...
<Text>Jasper Kitty unique Atomic era unit.</Text>
</Row>
<Row Tag="LOC_TRAIT_LEADER_UNIT_hogehoge_UU_NAME" Lang...
<Text>Jasper Kitty unique unit: Howitzer</Text>
</Row>
<Row Tag="LOC_PEDIA_UNITS_PAGE_UNIT_hogehoge_UU_CHAPTE...
<Text></Text>
</Row>
** Propertyに登録する [#x78b020b]
作ったxmlファイルはpropertyへ登録しましょう。
In-Game ActionsのUpdateDatabaseの中です。
&ref(AddXMLtoProperty.png);
** ユニットのアイコン作成 [#i79a9fd7]
ユニットは独自の2つのアイコンを持っています。
- Flag(ユニットにくっつく抽象的な見た目のアイコン)
- Portrait(ユニットをクリックすると右下に出てくるやつ)
これらも作る必要があります。
それぞれ必要なサイズは以下となります。
- Flag:256,80,50,38,32,22
- Portrait:256,200,95,70,50,38
基本は指導者や文明のアイコンと同じで、
- 画像を用意
- texを用意
- xlpファイルへ追記
です。
texのコピー元は指導者のアイコンと同じでOK。(文明アイコン...
そしてxmlの定義の書き方が少し特殊です。これは命名規則が決...
まずFlagは4種類必要です。
|ICON_[ユニット名]|256,80,50,38,32,22のサイズを登録する|
|ICON_[ユニット名]_FOW|32のサイズのみを登録する|
|ICON_[ユニット名]_WHITE|80,32,22のサイズを登録する|
|ICON_[ユニット名]_BLACK|32のサイズのみを登録する|
Portraitはさらに面倒くさくて以下のようになります。
|ICON_[ユニット定義名]_PORTRAIT|256,200,95,50,38のサイズ...
|ICON_ETHNICITY_ASIAN_[ユニット定義名]_PORTRAIT|95,75のサ...
|ICON_ETHNICITY_MEDIT_[ユニット定義名]_PORTRAIT|95,75のサ...
|ICON_ETHNICITY_SOUTHAM_[ユニット定義名]_PORTRAIT|95,75の...
|ICON_ETHNICITY_AFRICAN_[ユニット定義名]_PORTRAIT|95,75の...
具体的には以下のように・・・(長いです)。
*** 開発環境への画像登録 [#jdc6ca85]
&ref(ImageAddUU.png);
*** hogehoge_Icons.xlp [#sd4428db]
以下を追加。
<Element>
<m_EntryID text="ICON_UU_hogehoge22"/>
<m_ObjectName text="ICON_UU_hogehoge22"/>
</Element>
<Element>
<m_EntryID text="ICON_UU_hogehoge32"/>
<m_ObjectName text="ICON_UU_hogehoge32"/>
</Element>
<Element>
<m_EntryID text="ICON_UU_hogehoge38"/>
<m_ObjectName text="ICON_UU_hogehoge38"/>
</Element>
<Element>
<m_EntryID text="ICON_UU_hogehoge50"/>
<m_ObjectName text="ICON_UU_hogehoge50"/>
</Element>
<Element>
<m_EntryID text="ICON_UU_hogehoge80"/>
<m_ObjectName text="ICON_UU_hogehoge80"/>
</Element>
<Element>
<m_EntryID text="ICON_UU_hogehoge256"/>
<m_ObjectName text="ICON_UU_hogehoge256"/>
</Element>
<Element>
<m_EntryID text="ICON_UU_hogehoge_PORT38"/>
<m_ObjectName text="ICON_UU_hogehoge_PORT38"/>
</Element>
<Element>
<m_EntryID text="ICON_UU_hogehoge_PORT50"/>
<m_ObjectName text="ICON_UU_hogehoge_PORT50"/>
</Element>
<Element>
<m_EntryID text="ICON_UU_hogehoge_PORT70"/>
<m_ObjectName text="ICON_UU_hogehoge_PORT70"/>
</Element>
<Element>
<m_EntryID text="ICON_UU_hogehoge_PORT95"/>
<m_ObjectName text="ICON_UU_hogehoge_PORT95"/>
</Element>
<Element>
<m_EntryID text="ICON_UU_hogehoge_PORT200"/>
<m_ObjectName text="ICON_UU_hogehoge_PORT200"/>
</Element>
<Element>
<m_EntryID text="ICON_UU_hogehoge_PORT256"/>
<m_ObjectName text="ICON_UU_hogehoge_PORT256"/>
</Element>
*** NewlLeader_Icons.xml [#j06b8d0d]
<?xml version="1.0" encoding="utf-8"?>
<GameData>
<IconTextureAtlases>
<Row Name="ICON_ATLAS_LEADER_HOGEHOGE" IconSize="32" ...
<Row Name="ICON_ATLAS_LEADER_HOGEHOGE" IconSize="45" ...
<Row Name="ICON_ATLAS_LEADER_HOGEHOGE" IconSize="50" ...
<Row Name="ICON_ATLAS_LEADER_HOGEHOGE" IconSize="55" ...
<Row Name="ICON_ATLAS_LEADER_HOGEHOGE" IconSize="64" ...
<Row Name="ICON_ATLAS_LEADER_HOGEHOGE" IconSize="80" ...
<Row Name="ICON_ATLAS_LEADER_HOGEHOGE" IconSize="256" ...
<Row Name="ICON_ATLAS_CIVILIZATION_HOGEHOGE" IconSize=...
<Row Name="ICON_ATLAS_CIVILIZATION_HOGEHOGE" IconSize=...
<Row Name="ICON_ATLAS_CIVILIZATION_HOGEHOGE" IconSize=...
<Row Name="ICON_ATLAS_CIVILIZATION_HOGEHOGE" IconSize=...
<Row Name="ICON_ATLAS_CIVILIZATION_HOGEHOGE" IconSize=...
<Row Name="ICON_ATLAS_CIVILIZATION_HOGEHOGE" IconSize=...
<Row Name="ICON_ATLAS_CIVILIZATION_HOGEHOGE" IconSize=...
<Row Name="ICON_ATLAS_CIVILIZATION_HOGEHOGE" IconSize=...
<Row Name="ICON_ATLAS_CIVILIZATION_HOGEHOGE" IconSize=...
<Row Name="ICON_ATLAS_CIVILIZATION_HOGEHOGE" IconSize=...
<Row Name="ICON_ATLAS_HOGEHOGE_UNITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_UNITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_UNITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_UNITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_UNITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_UNITS_FOW" ...
<Row Name="ICON_ATLAS_HOGEHOGE_SYMBOLS_WHITE" ...
<Row Name="ICON_ATLAS_HOGEHOGE_SYMBOLS_WHITE" ...
<Row Name="ICON_ATLAS_HOGEHOGE_SYMBOLS_WHITE" ...
<Row Name="ICON_ATLAS_HOGEHOGE_SYMBOLS_BLACK" ...
<Row Name="ICON_ATLAS_HOGEHOGE_UNIT_PORTRAITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_UNIT_PORTRAITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_UNIT_PORTRAITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_UNIT_PORTRAITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_UNIT_PORTRAITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_ASIAN_UNIT_PORTRAITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_ASIAN_UNIT_PORTRAITS" ...
<Row Name="ICON_ATLAS_HOGEHOGE_MEDITERRANEAN_UNIT_PORT...
<Row Name="ICON_ATLAS_HOGEHOGE_MEDITERRANEAN_UNIT_PORT...
<Row Name="ICON_ATLAS_HOGEHOGE_SOUTH_AMERICAN_UNIT_POR...
<Row Name="ICON_ATLAS_HOGEHOGE_SOUTH_AMERICAN_UNIT_POR...
<Row Name="ICON_ATLAS_HOGEHOGE_AFRICAN_UNIT_PORTRAITS"...
<Row Name="ICON_ATLAS_HOGEHOGE_AFRICAN_UNIT_PORTRAITS"...
</IconTextureAtlases>
<IconDefinitions>
<Row Name="ICON_BUILDING_LITTER_BOX" Atlas="ICON_ATLAS...
<Row Name="ICON_CIVILIZATION_FELINE" Atlas="ICON_ATLAS...
<Row Name="ICON_LEADER_JASPER_KITTY" Atlas="ICON_ATLAS...
<Row Name="ICON_UNIT_hogehoge_UU" ...
<Row Name="ICON_UNIT_hogehoge_UU_FOW" ...
<Row Name="ICON_UNIT_hogehoge_UU_WHITE" ...
<Row Name="ICON_UNIT_hogehoge_UU_BLACK" ...
<Row Name="ICON_UNIT_hogehoge_UU_PORTRAIT" ...
<Row Name="ICON_ETHNICITY_ASIAN_UNIT_hogehoge_UU_PORTR...
<Row Name="ICON_ETHNICITY_MEDIT_UNIT_hogehoge_UU_PORTR...
<Row Name="ICON_ETHNICITY_SOUTHAM_UNIT_hogehoge_UU_POR...
<Row Name="ICON_ETHNICITY_AFRICAN_UNIT_hogehoge_UU_POR...
</IconDefinitions>
</GameData>
** ユニットの見た目を定義する [#m6a602da]
ここまでの作業を行えば、実際にゲーム内でユニークユニット...
が、このままだと見た目が労働者になってしまいます。それは...
本来ならば3Dデータを作ってゲームで使えるように変換して・...
あいにくのところ筆者は3Dデータを作る技術を持ち合わせてお...
既存のデータを使いまわすにはArtdefファイルを書けばよいで...
使いまわしですのでバニラからもってきて定義を変える、とい...
とりあえず見た目を戦車と同じにしてみましょう。
まずArtdefの空ファイルを作成します。xmlと同じように新規追...
なのでtxtファイルにして拡張子ごとリネームします。
「hogehoge_Units.artdef」としてください。
次にバニラのArtdefから戦車の定義部分を持ってきます。
バニラのユニットのArtdefファイルは
Sid Meier's Civilization VI/Base/Artdefs/Units.artdef
です。
戦車のユニット定義名は「UNIT_TANK」です。
探し当てたら必要最小限抜き出してユニット定義名を書き換え...
作業後の内容は以下になります。
<?xml version="1.0" encoding="UTF-8" ?>
<AssetObjects:ArtDefSet>
<m_Version>
<major>4</major>
<minor>0</minor>
<build>256</build>
<revision>893</revision>
</m_Version>
<m_TemplateName text="Units"/>
<m_RootCollections>
<Element>
<m_CollectionName text="Units"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
<!-- ↓ここから「UNIT_hogehoge_UU」の定義開始 -->
<Element>
<m_Fields>
<m_Values>
<Element class="AssetObjects:ArtDefReferenceValue">
<m_ElementName text="Scattered"/>
<m_RootCollectionName text="UnitFormationTypes"/>
<m_ArtDefPath text="Units.artdef"/>
<m_CollectionIsLocked>false</m_CollectionIsLocked>
<m_TemplateName text=""/>
<m_ParamName text="Formation"/>
</Element>
<Element class="AssetObjects:ArtDefReferenceValue">
<m_ElementName text="Tank"/>
<m_RootCollectionName text="UnitCombat"/>
<m_ArtDefPath text="Units.artdef"/>
<m_CollectionIsLocked>true</m_CollectionIsLocked>
<m_TemplateName text="Units"/>
<m_ParamName text="UnitCombat"/>
</Element>
<Element class="AssetObjects:ArtDefReferenceValue">
<m_ElementName text=""/>
<m_RootCollectionName text="UnitFormationTypes"/>
<m_ArtDefPath text="Units.artdef"/>
<m_CollectionIsLocked>true</m_CollectionIsLocked>
<m_TemplateName text=""/>
<m_ParamName text="EscortFormation"/>
</Element>
<Element class="AssetObjects:ArtDefReferenceValue">
<m_ElementName text="UNIT_MODERNEMBARK"/>
<m_RootCollectionName text="Units"/>
<m_ArtDefPath text="Units.artdef"/>
<m_CollectionIsLocked>true</m_CollectionIsLocked>
<m_TemplateName text="Units"/>
<m_ParamName text="EmbarkedUnit"/>
</Element>
<Element class="AssetObjects:BoolValue">
<m_bValue>false</m_bValue>
<m_ParamName text="DoNotDisplayCharges"/>
</Element>
<Element class="AssetObjects:ArtDefReferenceValue">
<m_ElementName text=""/>
<m_RootCollectionName text="UnitCulture"/>
<m_ArtDefPath text="Cultures.artdef"/>
<m_CollectionIsLocked>true</m_CollectionIsLocked>
<m_TemplateName text=""/>
<m_ParamName text="Culture"/>
</Element>
<Element class="AssetObjects:ArtDefReferenceValue">
<m_ElementName text=""/>
<m_RootCollectionName text="Era"/>
<m_ArtDefPath text="Eras.artdef"/>
<m_CollectionIsLocked>true</m_CollectionIsLocked>
<m_TemplateName text=""/>
<m_ParamName text="Era"/>
</Element>
<Element class="AssetObjects:ArtDefReferenceValue">
<m_ElementName text=""/>
<m_RootCollectionName text="Units"/>
<m_ArtDefPath text="Units.artdef"/>
<m_CollectionIsLocked>true</m_CollectionIsLocked>
<m_TemplateName text=""/>
<m_ParamName text="ProxyUnit"/>
</Element>
<Element class="AssetObjects:BoolValue">
<m_bValue>false</m_bValue>
<m_ParamName text="PlayDeathOnDestroy"/>
</Element>
<Element class="AssetObjects:IntValue">
<m_nValue>0</m_nValue>
<m_ParamName text="DisplayLevel"/>
</Element>
</m_Values>
</m_Fields>
<m_ChildCollections>
<Element>
<m_CollectionName text="Members"/>
<m_ReplaceMergedCollectionElements>false</m_Replac...
<Element>
<m_Fields>
<m_Values>
<Element class="AssetObjects:FloatValue">
<m_fValue>1.000000</m_fValue>
<m_ParamName text="Scale"/>
</Element>
<Element class="AssetObjects:IntValue">
<m_nValue>1</m_nValue>
<m_ParamName text="Count"/>
</Element>
<Element class="AssetObjects:ArtDefReferenceVal...
<m_ElementName text="Tank"/>
<m_RootCollectionName text="UnitMemberTypes"/>
<m_ArtDefPath text="Units.artdef"/>
<m_CollectionIsLocked>false</m_CollectionIsLoc...
<m_TemplateName text=""/>
<m_ParamName text="Type"/>
</Element>
</m_Values>
</m_Fields>
<m_ChildCollections/>
<m_Name text="Members1"/>
<m_AppendMergedParameterCollections>false</m_Appe...
</Element>
</Element>
<Element>
<m_CollectionName text="Audio"/>
<m_ReplaceMergedCollectionElements>false</m_Replac...
<Element>
<m_Fields>
<m_Values>
<Element class="AssetObjects:StringValue">
<m_Value text=""/>
<m_ParamName text="XrefName"/>
</Element>
</m_Values>
</m_Fields>
<m_ChildCollections/>
<m_Name text=""/>
<m_AppendMergedParameterCollections>false</m_Appe...
</Element>
<Element>
<m_Fields>
<m_Values>
<Element class="AssetObjects:StringValue">
<m_Value text="Tank"/>
<m_ParamName text="XrefName"/>
</Element>
</m_Values>
</m_Fields>
<m_ChildCollections/>
<m_Name text="TANK"/>
<m_AppendMergedParameterCollections>false</m_Appe...
</Element>
</Element>
</m_ChildCollections>
<m_Name text="UNIT_hogehoge_UU"/> ★ここを「UNIT_TANK...
<m_AppendMergedParameterCollections>false</m_AppendM...
</Element>
<!-- ↑ここで「UNIT_hogehoge_UU」の定義終了 -->
</Element>
<Element>
<m_CollectionName text="UnitMovementTypes"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
<Element>
<m_CollectionName text="UnitFormationTypes"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
<Element>
<m_CollectionName text="MemberCombat"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
<Element>
<m_CollectionName text="UnitCombat"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
<Element>
<m_CollectionName text="CombatAttack"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
<Element>
<m_CollectionName text="UnitFormationLayoutTypes"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
<Element>
<m_CollectionName text="CombatFormation"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
<Element>
<m_CollectionName text="UnitAttachmentBins"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
<Element>
<m_CollectionName text="UnitMemberTypes"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
<Element>
<m_CollectionName text="UnitTintTypes"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
<Element>
<m_CollectionName text="UnitGlobals"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
<Element>
<m_CollectionName text="UnitDomainTypes"/>
<m_ReplaceMergedCollectionElements>false</m_ReplaceMe...
</Element>
</m_RootCollections>
</AssetObjects:ArtDefSet>
作成したArtdefをMod.Art.xmlへ登録します。
・
・
・
</id>
<artConsumers>
<Element>
<consumerName text="Units"/>
<relativeArtDefPaths>
<Element text="hogehoge_Units.artdef"/> ★追加
</relativeArtDefPaths>
・
・
・
** ビルド・動作確認 [#e5a8f688]
以上で完成です。
ビルドして動作確認してみましょう。
文明選択画面
&ref(SelectUU.jpg);
Loading画面
&ref(LoadingUU.jpg);
今回作ったユニットはかなり後半の時代のものです。(原子力時...
上位ユニットもありませんので、情報時代でスタートして確認...
こんな感じでちゃんとユニットが作成されればOKです。
&ref(UU.jpg);
** 備考 [#h77c4167]
*** 何かのユニットと差し替えたい [#p5e03d7a]
大砲の置き換えにしたい場合は以下のように記述します。
<UnitReplaces>
<Row CivUniqueUnitType="UNIT_hogehoge_UU" ReplacesUnit...
</UnitReplaces>
※このままだと技術レベルが釣り合いませんので、ユニットの詳...
*** サンプル [#t452cff6]
ここまで作業したものを以下に置いておきます。
https://www.axfc.net/u/3836465
ページ名:
Tweet