#author("2017-08-19T21:54:59+09:00","","") [[MOD/作成方法]] * ユニークユニットの作成 [#gc085049] 特殊能力を持たない単純なユニークユニットの作成例です。 ** ユニットのデータ記述 [#k6aae4c1] まずは性能等を決めてしまいましょう。 大砲とロケット砲の間ぐらいの性能を持つ攻城兵器「自走榴弾砲」を作ってみます。 (すでに公開済み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_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:ユニットのステータス詳細設定 - ロケット砲からコピーしてきて値を変えています。 |UnitType|Typeで定義したもの| |BaseMoves|移動力| |Cost|生産コスト| |AdvisorType|助言者の設定?| |BaseSightRange|視界| |ZoneOfControl|ZOC:false = なし| |Domain|ユニットが属するドメイン:DOMAIN_LAND = 陸上ユニット| |FormationClass|よくわかりません・・・たぶんユニットの見た目にかかわるものかと思います。| |PromotionClass|よくわかりません・・・ユニットが何のタイプなのか、かな???(SIEGEだと攻城兵器)| |Maintenance|維持費| |Combat|近接戦闘力| |Range|射程| |TraitType|何のTraitに紐付くか。ユニークユニットならば必須です。後述します。| |PrereqTech|ユニット作成に必要な解禁技術:TECH_ADVANCED_BALLISTICS = 高度な弾道学| |Bombard|都市砲撃力| *** <Units>に設定できる値について [#x908a0de] 設定できる値の定義は 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文そのものです。 どの要素を変えるとどうなるのかは全部理解できていません・・・。 ** ユニットのアイコン作成 [#i79a9fd7] ユニットは独自の2つのアイコンを持っています。 - Flag - Portrait ** ユニットの見た目 [#rfd22984] ここまでの作業を行えば、実際にゲーム内でユニークユニットを作成することはできます。 が、このままだと見た目が労働者になってしまいます。それはユニットの見た目の設定を何もしていないからです。 本来ならば3Dデータを作ってゲームで使えるように変換して・・・というのを書くのが筋なのですが・・・ あいにくのところ筆者は3Dデータを作る技術を持ち合わせておりません。よって既存の使いまわし方を記載します。 既存のデータを使いまわすにはArtdefファイルを書けばよいです。 書くといっても、使いまわしですのでバニラからもってきて定義を変えるだけ、です。 ** 備考 [#h77c4167]