#author("2017-08-19T15:47:06+09:00","","") [[MOD/作成方法]] * 指導者アイコンの作り方 [#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] ここまで作業したものを以下に上げておきます。 https://www.axfc.net/u/3836141