- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2017-08-19T15:08:42+09:00","","")
[[MOD/作成方法]]
#author("2017-08-19T15:13:58+09:00","","")
* 指導者アイコンの作り方 [#e78c2c5a]
** 画像の用意 [#gf1bec84]
まずは画像を用意しなくては話になりません。
指導者のアイコンは1辺が256,80,64,55,50,45,32ピクセルのサイズのものが必要になります。
画像の内容としては、バニラだと画像サイズより若干小さい円の中に指導者の顔、という感じになっています。
まずは一番大きな256x256の画像を作ります。フォーマットはdds(無圧縮/ABGR8/ミニマップあり)。
以降の説明ではこの一番大きな画像をICON_LEADER_hogehoge256.ddsとします。
ICON_LEADER_hogehoge256.ddsをリサイズしてほかのサイズを作成し、作り終えたらMOD開発環境のTextureフォルダへ。
ちなみに筆者はGIMPにDDSを扱うプラグインを入れてやっています。
公式の開発者の方々はPhotoshopを使っている様子です。
(後述するtexファイルをみると元ファイル名に.psdとか書かれてますので、きっとそう)
** texファイルの用意 [#z2826bed]
(ファイルを見る限り自動作成できるような感じなんですが・・・すみませんわかりません。なのでバニラのファイルをコピーして改変で対処します。)
まず、モンテスマの指導者アイコンで使われているtexファイルをコピーします。
SDK Assetsから「Montezuma○○.tex」をMOD開発環境のTextureフォルダへコピーして、ファイル名は先ほど作った画像に合わせて変えてください。
この.texファイルは普通にテキストエディタで開くことができますので、中身を開いて二か所ほど作ったファイルに合わせて変更します。
256x256のものを例とすると、以下を変更することになります。
<m_DataFiles>
<Element>
<m_ID text="DDS"/>
<m_RelativePath text="ICON_LEADER_hogehoge256.dds"/> ★
</Element>
</m_DataFiles>
<m_Name text="ICON_LEADER_hogehoge256"/> ★
<m_Description text=""/>
<m_Tags>
<Element text="UserInterface"/>
</m_Tags>
<m_Groups/>
</AssetObjects::TextureInstance>
数が多くて面倒ですが、全サイズ分変更して保存。
** XLPを書く [#u0d63446]
XLPというのは、アイコンを生成するための定義ファイルになります。
これもSDK Assetsからパクって作りましょう。
コピー元は
Sid Meier's Civilization VI SDK Assets\pantry\XLPs\Icons.xlp
です。
指導者以外のアイコンも山ほど登録されていますが・・・モンテスマの指導者アイコンだけ抜き出すと以下になります。
<?xml version="1.0" encoding="UTF-8" ?>
<AssetObjects::XLP>
<m_Version>
<major>4</major>
<minor>0</minor>
<build>252</build>
<revision>195</revision>
</m_Version>
<m_ClassName text="UITexture"/>
<m_PackageName text="UI/hogehoge_Icons"/> ★
<m_Entries>
<Element>
<m_EntryID text="ICON_LEADER_hogehoge256"/> ★
<m_ObjectName text="ICON_LEADER_hogehoge256"/> ★
</Element>
<Element>
<m_EntryID text="ICON_LEADER_hogehoge32"/> ★
<m_ObjectName text="ICON_LEADER_hogehoge32"/> ★
</Element>
<Element>
<m_EntryID text="ICON_LEADER_hogehoge48"/> ★
<m_ObjectName text="ICON_LEADER_hogehoge48"/> ★
</Element>
<Element>
<m_EntryID text="ICON_LEADER_hogehoge50"/> ★
<m_ObjectName text="ICON_LEADER_hogehoge50"/> ★
</Element>
<Element>
<m_EntryID text="ICON_LEADER_hogehoge55"/> ★
<m_ObjectName text="ICON_LEADER_hogehoge55"/> ★
</Element>
<Element>
<m_EntryID text="ICON_LEADER_hogehoge64"/> ★
<m_ObjectName text="ICON_LEADER_hogehoge64"/> ★
</Element>
<Element>
<m_EntryID text="ICON_LEADER_hogehoge80"/> ★
<m_ObjectName text="ICON_LEADER_hogehoge80"/> ★
</Element>
<Element>
<m_EntryID text="ICON_LEADER_hogehoge45"/> ★
<m_ObjectName text="ICON_LEADER_hogehoge45"/> ★
</Element>
</m_Entries>
<m_AllowedPlatforms>
<Element>WINDOWS</Element>
<Element>LINUX</Element>
<Element>MACOS</Element>
<Element>IOS</Element>
</m_AllowedPlatforms>
</AssetObjects::XLP>
変更箇所は
- m_PackageName の text
-- UI/から後ろを任意の名前に変更
- 各Element配下のm_EntryID、m_ObjectName の text
-- どちらもddsファイルと同じものにする
となります。
変更したらファイル名はm_PackageName の textと同じものにして、XLPsフォルダへ保存してください。
** Mod.Art.xmlへの登録 [#f2ec3aef]
Mod.Art.xmlへ「ビルド後に出来上がるblpファイルのパス」を追記します。
blpファイルのファイルパスは「UI/hogehoge_Icons.blp」になります。
<Element>
<libraryName text="UITexture"/>
<relativePackagePaths>
<Element text="UILeaders"/>
<Element text="UI/hogehoge_Icons.blp"/> ★これ追加
</relativePackagePaths>
</Element>
** 開発環境へ登録 [#y5b84475]
作ったdds、tex、xlpをMODの開発環境へ登録します。
登録後の開発環境下はこうなっているはずです。
&ref(LeaderIcon.png);
** xmlを書く [#t9c0839f]
アイコンの定義(xml)を書きます。
NewLeader_Icons.xmlへ追加変更することになります。
<?xml version="1.0" encoding="utf-8"?>
<GameData>
<IconTextureAtlases> ★追加
<Row Name="ICON_ATLAS_LEADER_HOGEHOGE" IconSize="32" IconsPerRow="1" IconsPerColumn="1" Filename="ICON_LEADER_hogehoge32.dds"/> ★追加
<Row Name="ICON_ATLAS_LEADER_HOGEHOGE" IconSize="45" IconsPerRow="1" IconsPerColumn="1" Filename="ICON_LEADER_hogehoge45.dds"/> ★追加
<Row Name="ICON_ATLAS_LEADER_HOGEHOGE" IconSize="50" IconsPerRow="1" IconsPerColumn="1" Filename="ICON_LEADER_hogehoge50.dds"/> ★追加
<Row Name="ICON_ATLAS_LEADER_HOGEHOGE" IconSize="55" IconsPerRow="1" IconsPerColumn="1" Filename="ICON_LEADER_hogehoge55.dds"/> ★追加
<Row Name="ICON_ATLAS_LEADER_HOGEHOGE" IconSize="64" IconsPerRow="1" IconsPerColumn="1" Filename="ICON_LEADER_hogehoge64.dds"/> ★追加
<Row Name="ICON_ATLAS_LEADER_HOGEHOGE" IconSize="80" IconsPerRow="1" IconsPerColumn="1" Filename="ICON_LEADER_hogehoge80.dds"/> ★追加
<Row Name="ICON_ATLAS_LEADER_HOGEHOGE" IconSize="256" IconsPerRow="1" IconsPerColumn="1" Filename="ICON_LEADER_hogehoge256.dds"/> ★追加
</IconTextureAtlases> ★追加
<IconDefinitions>
<Row Name="ICON_BUILDING_LITTER_BOX" Atlas="ICON_ATLAS_BUILDINGS" Index="0"/>
<Row Name="ICON_CIVILIZATION_FELINE" Atlas="ICON_ATLAS_CIVILIZATIONS" Index="0"/>
<Row Name="ICON_LEADER_JASPER_KITTY" Atlas="ICON_ATLAS_LEADER_HOGEHOGE" Index="0"/> ★変更
</IconDefinitions>
</GameData>
ちなみにアイコン画像というのは1サイズにつき複数のアイコンをタイルのように並べて1まとめにしておき、
xmlの定義の中で行数、列数を定めてindex(左上を0として真横が1、その横が2・・・)指定で呼び出せるようになっています。
今回は1アイコン単品なので1行1列のindexは0だけ、という形になります。
** ビルド [#oc218472]
ビルドすると、ModのディレクトリにPlatformsというディレクトリが作られています。
Platforms
├MacOS
│└BLPs
│ ├SHARED_DATA
│ └UI
│ └[任意に決めた名前].blp
└Windows
└BLPs
├SHARED_DATA
└UI
└[任意に決めた名前].blp
こんな感じになっているはずです。
あとはゲームを立ち上げて指導者を選ぼうとしてみてください。作ったアイコンが表示されているはずです。
&ref(LeaderIconSuccess.jpg);
** 備考 [#ofa0846a]
*** ビルドでこける場合 [#s359c591]
MOD開発環境の中に「cooker.log」というのがありますので、そこにエラー内容が書かれています。(正直わかりにくいですけど)
大体の場合はtexファイル内のddsファイル名指定を間違えてるとかです。
*** サンプル [#j0d47538]
ここまで作業したものを以下に上げておきます。