MOD/作成方法

ユニークユニットの作成 Edit

特殊能力を持たない単純なユニークユニットの作成例です。

ユニットのデータ記述 Edit

まずは性能等を決めてしまいましょう。
大砲とロケット砲の間ぐらいの性能を持つ攻城兵器「自走榴弾砲」を作ってみます。
(すでに公開済みMODで実装しているものです)

新規にxmlファイルを作成します。で、適当にリネームしましょう。
ここではNewLeader_UU.xmlとします。

Propertyを右クリック⇒Add⇒NewItemと選択

Menu.png

Database(xml)を選択し、右下のAddをクリック

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_RANGED"/>
		<Row UnitType="UNIT_hogehoge_UU" AiType="UNITTYPE_SIEGE"/>
		<Row UnitType="UNIT_hogehoge_UU" AiType="UNITTYPE_LAND_COMBAT"/>
	</UnitAiInfos>
	<TypeTags>
		<Row Type="UNIT_hogehoge_UU" Tag="CLASS_SIEGE"/>
		<Row Type="UNIT_hogehoge_UU" Tag="CLASS_FORWARD_OBSERVER"/>
	</TypeTags>
	<Units>
		<Row UnitType="UNIT_hogehoge_UU" BaseMoves="3" Cost="550" AdvisorType="ADVISOR_CONQUEST" 
			 BaseSightRange="2" ZoneOfControl="false" Domain="DOMAIN_LAND" FormationClass="FORMATION_CLASS_LAND_COMBAT" 
			 Name="LOC_UNIT_hogehoge_UU_NAME" Description="LOC_UNIT_hogehoge_UU_DESCRIPTION" PurchaseYield="YIELD_GOLD" 
			 PromotionClass="PROMOTION_CLASS_SIEGE" Maintenance="7" Combat="65" Range="2" TraitType="TRAIT_LEADER_UNIT_hogehoge_UU" 
			 PrereqTech="TECH_ADVANCED_BALLISTICS" Bombard="88"/>
	</Units>
</GameData>

Types:ユニットの親定義

UnitAiInfos:AIがユニットを動かす際の指標

TypeTags:ユニットが持つTagの設定

Units:ユニットのステータス詳細設定

UnitTypeTypeで定義したもの
BaseMoves移動力
Cost生産コスト
AdvisorType助言者の設定?
BaseSightRange視界
ZoneOfControlZOC:false = なし
Domainユニットが属するドメイン:DOMAIN_LAND = 陸上ユニット
FormationClassよくわかりません・・・たぶんユニットの見た目にかかわるものかと思います。
PromotionClassよくわかりません・・・ユニットが何のタイプなのか、かな???(SIEGEだと攻城兵器)
Maintenance維持費
Combat近接戦闘力
Range射程
TraitType何のTraitに紐付くか。ユニークユニットならば必須です。後述します。
PrereqTechユニット作成に必要な解禁技術:TECH_ADVANCED_BALLISTICS = 高度な弾道学
Bombard都市砲撃力

<Units>に設定できる値について Edit

設定できる値の定義は

Sid Meier's Civilization VI/Base/Assets/Gameplay/Data/Schema/01_GameplaySchema.sql

に書かれています。

CREATE TABLE "Units" (
・
・
・
FOREIGN KEY (ObsoleteTech) REFERENCES Technologies(TechnologyType) ON DELETE SET DEFAULT ON UPDATE SET DEFAULT);

の部分がユニットのデータ定義です。

データベースを知っている方ならわかると思いますが、SQLのCreate文そのものです。
どの要素を変えるとどうなるのかは全部理解できていません・・・。

ユニットのアイコン作成 Edit

ユニットは独自の2つのアイコンを持っています。

ユニットの見た目 Edit

ここまでの作業を行えば、実際にゲーム内でユニークユニットを作成することはできます。
が、このままだと見た目が労働者になってしまいます。それはユニットの見た目の設定を何もしていないからです。

本来ならば3Dデータを作ってゲームで使えるように変換して・・・というのを書くのが筋なのですが・・・
あいにくのところ筆者は3Dデータを作る技術を持ち合わせておりません。よって既存の使いまわし方を記載します。

既存のデータを使いまわすにはArtdefファイルを書けばよいです。
書くといっても、使いまわしですのでバニラからもってきて定義を変えるだけ、です。

備考 Edit



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