#author("2020-07-03T16:00:53+09:00","","") [[MOD/作成方法]] * 指導者の各種画像表示(文明選択画面/ローディング画面/リザルト画面/外交交渉画面) [#eaf8faa2] 長くなっちゃいますがある意味不可分なものなので、まとめて説明します。 SDKのサンプルを改変していく形で説明します。 ** 用意するもの [#f98cfbe3] - hogehoge_LoadingInfo_Background.dds サイズ:1920x960、フォーマット:非圧縮/ABGR8/ミップマップなし - hogehoge_LoadingInfo_Foreground.dds サイズ:888x1024、フォーマット:非圧縮/ABGR8/ミップマップなし - hogehoge_DiplomacyInfo_Background.dds サイズ:1920x960、フォーマット:非圧縮/ABGR8/ミップマップなし - PORTRAIT_hogehoge.dds サイズ:328x646、フォーマット:非圧縮/ABGR8/ミップマップなし - FALLBACK_NEUTRAL_hogehoge.dds サイズ:888x1024、フォーマット:非圧縮/ABGR8/ミップマップなし - LEADER_hogehoge_NEUTRAL.dds サイズ:888x1024、フォーマット:非圧縮/ABGR8/ミップマップなし ※dds画像を作成するには、画像加工ソフト(「GIMP」等)を利用し、JPG/PNG画像をDDSに変換する。 ※ddsのフォーマットは「非圧縮」「ABGR8」にすること。何らかの圧縮形式(DXT1等)やABGR8以外のカラー形式で作成した場合、dds画像が読み込まれなかったり、表示がバグる場合があるので注意。なお、dds画像が利用できない形式だった場合、ModBuddyでビルドするとcooker.logに"UIErrorTexture"などのエラーが表示される。 ** 下処理 [#m5aa80cc] SDKのサンプルから立ち上げた状態だと、ゲーム内で自分の文明をクリックするとクレオパトラのアニメになっています。 まずはこれを消してしまいましょう。 クレオパトラのアニメを消すのは、既存記事([[勝手に出てくるクレオパトラを消す方法]])を参照してください。 なお、ModBuddyのデフォルトサンプル「Jasper Kitty」は、バグが多いお粗末な代物なので注意すること。 ※「LEADER_JASPER_KITTYの罠」「指導者の定義を変えるとクラッシュする場合の対処」を参照。 ** texファイルの用意 [#qd4ff928] PORTRAIT_hogehoge.dds、FALLBACK_NEUTRAL_hogehoge.dds、LEADER_hogehoge_NEUTRAL.ddsの三つはtexファイルというものが必要です。 自動生成できるっぽいんですけど(Photoshopなら可能?)わかりませんのでサンプルのを改変します。 コピーして中身を2か所ほど変更します。 *** FALLBACK_NEUTRAL_hogehoge.tex [#l2a5997b] FALLBACK_NEUTRAL_JASPERKITTY.texをコピーして作ります。 コピーしたら開いて以下のように書き換えます。 <m_Height>1024</m_Height> ★画像の縦幅。今回の画像は888×1024なので1024 <m_Width>888</m_Width> ★画像の横幅。今回の画像は888×1024なので888 <m_Depth>1</m_Depth> <m_NumMipMaps>0</m_NumMipMaps> ★ミップマップ数。※無い場合は0にする <m_SourceFilePath text="C:\Users\sseckman\Documents\Meow.dds"/> <m_SourceObjectName text=""/> <m_ImportedTime>0</m_ImportedTime> <m_ExportedTime>1951816190</m_ExportedTime> <m_ClassName text="Leader_Fallback"/> <m_DataFiles> <Element> <m_ID text="DDS"/> <m_RelativePath text="FALLBACK_NEUTRAL_hogehoge.dds"/> ★ここ </Element> </m_DataFiles> <m_Name text="FALLBACK_NEUTRAL_hogehoge"/> ★ここ <m_Description text=""/> <m_Tags> <Element text="Leader_Fallback"/> <Element text="Leader"/> <Element text="Fallback"/> </m_Tags> <m_Groups/> </AssetObjects::TextureInstance> *** PORTRAIT_hogehoge.tex [#v90341a2] LEADER_JASPER_KITTY_NEUTRAL.texをコピーして作ります。 コピーしたら開いて以下のように書き換えます。 <m_Height>646</m_Height> ★画像の縦幅 <m_Width>328</m_Width> ★画像の横幅 <m_Depth>1</m_Depth> <m_NumMipMaps>0</m_NumMipMaps> <m_SourceFilePath text="C:\Users\sseckman\Documents\Meow.dds"/> <m_SourceObjectName text=""/> <m_ImportedTime>0</m_ImportedTime> <m_ExportedTime>1144208637</m_ExportedTime> <m_ClassName text="UserInterface"/> <m_DataFiles> <Element> <m_ID text="DDS"/> <m_RelativePath text="PORTRAIT_hogehoge.dds"/> ★ここ </Element> </m_DataFiles> <m_Name text="PORTRAIT_hogehoge"/> ★ここ <m_Description text=""/> <m_Tags> <Element text="UserInterface"/> </m_Tags> <m_Groups/> </AssetObjects::TextureInstance> *** LEADER_hogehoge_NEUTRAL.tex [#ye11e1fa] こちらもLEADER_JASPER_KITTY_NEUTRAL.texをコピーして作ります。 コピーしたら開いて以下のように書き換えます。 <m_Height>1024</m_Height> ★画像の縦幅 <m_Width>888</m_Width> ★画像の横幅 <m_Depth>1</m_Depth> <m_NumMipMaps>0</m_NumMipMaps> <m_SourceFilePath text="C:\Users\sseckman\Documents\Meow.dds"/> <m_SourceObjectName text=""/> <m_ImportedTime>0</m_ImportedTime> <m_ExportedTime>1144208637</m_ExportedTime> <m_ClassName text="UserInterface"/> <m_DataFiles> <Element> <m_ID text="DDS"/> <m_RelativePath text="LEADER_hogehoge_NEUTRAL.dds"/> ★ここ </Element> </m_DataFiles> <m_Name text="LEADER_hogehoge_NEUTRAL"/> ★ここ <m_Description text=""/> <m_Tags> <Element text="UserInterface"/> </m_Tags> <m_Groups/> </AssetObjects::TextureInstance> すべて作成し終えたら開発環境へ登録します。 Modbuddyの画面左にある一覧の「Textures」へドラッグアンドドロップしてください。 元のJASPER_KITTYのは削除してしまいましょう。 画面左にある一覧で選択してからDeleteキーで消せます。 ** XLPファイルの編集 [#he994ad9] XLPフォルダには2つファイルが登録されています。 それぞれ以下のように書き換えます。 *** LeaderFallbacks.xlp [#o2cb9b7b] <?xml version="1.0" encoding="UTF-8" ?> <AssetObjects::XLP> <m_Version> <major>4</major> <minor>0</minor> <build>253</build> <revision>293</revision> </m_Version> <m_ClassName text="LeaderFallback"/> <m_PackageName text="LeaderFallbacks"/> <m_Entries> <Element> <m_EntryID text="FALLBACK_NEUTRAL_hogehoge"/> ★ここ <m_ObjectName text="FALLBACK_NEUTRAL_hogehoge"/> ★ここ </Element> </m_Entries> <m_AllowedPlatforms> <Element>WINDOWS</Element> <Element>LINUX</Element> <Element>MACOS</Element> <Element>IOS</Element> </m_AllowedPlatforms> </AssetObjects::XLP> *** UILeaders.xlp [#e8545765] <?xml version="1.0" encoding="UTF-8" ?> <AssetObjects::XLP> <m_Version> <major>4</major> <minor>0</minor> <build>253</build> <revision>293</revision> </m_Version> <m_ClassName text="UITexture"/> <m_PackageName text="UILeaders"/> <m_Entries> <Element> <m_EntryID text="LEADER_hogehoge_NEUTRAL"/> ★変更 <m_ObjectName text="LEADER_hogehoge_NEUTRAL"/> ★変更 </Element> <Element> ★追加 <m_EntryID text="PORTRAIT_hogehoge"/> ★追加 <m_ObjectName text="PORTRAIT_hogehoge"/> ★追加 </Element> ★追加 </m_Entries> <m_AllowedPlatforms> <Element>WINDOWS</Element> <Element>LINUX</Element> <Element>MACOS</Element> <Element>IOS</Element> </m_AllowedPlatforms> </AssetObjects::XLP> ** FallbackLeaders.artdefの編集 [#zfba9b51] 以下を書き換えるだけです。 <Element class="AssetObjects::BLPEntryValue"> <m_EntryName text="FALLBACK_NEUTRAL_hogehoge"/> ★ここ <m_XLPClass text="LeaderFallback"/> <m_XLPPath text="LeaderFallbacks.xlp"/> <m_BLPPackage text="LeaderFallbacks"/> <m_LibraryName text="LeaderFallback"/> <m_ParamName text="BLP Entry"/> </Element> ** NewLeader_Config.xmlの編集 [#p0b685ce] PORTRAIT画像を指定している以下の箇所を書き換えます。 &ref(PORTRAIT.png); ** ローディング画面、外交交渉画面の設定記述 [#qf545f83] 用意しておいた残りの画像ファイル3つを登録します。 &ref(ImageAdded2.png); さらに、プロジェクトファイル(この画像では、NewLeader6名のもの)のProperty画面から画像のImportを指定します。 &ref(ImportImage.png); そしてここからxmlを書きます。 新規にファイルを追加してもいいですし、どこかに混ぜても構いません。 本例ではNewLeader_JasperKitty.xmlに混ぜ込むことにします。 (新規にファイルを追加した場合はPropertyへのファイル登録を忘れないように。In-Game Actions⇒UpdateDatabaseのところです。) NewLeader_JasperKitty.xml <DiplomacyInfo> <Row Type="LEADER_JASPER_KITTY" BackgroundImage="hogehoge_DiplomacyInfo_Background.dds"/> </DiplomacyInfo> <LoadingInfo> <Row LeaderType="LEADER_JASPER_KITTY" ForegroundImage="hogehoge_LoadingInfo_Foreground.dds" BackgroundImage="hogehoge_LoadingInfo_Background.dds" LeaderText="LOC_LEADER_JASPER_KITTY_DOM_TEXT" PlayDawnOfManAudio="1"/> </LoadingInfo> DiplomacyInfoが外交交渉画面です。 こちらはリーダーの指定と背景画像の指定のみ。 LoadingInfoがローディング画面です。前景、背景を登録します。 LeaderTextはローディング画面にでてくる指導者固有の説明書きの部分です。 必要なければ削除してOK。追加する場合はNewLeader_Text.xmlへ書いてください。 PlayDawnOfManAudioはゲーム開始(再開)時の時代に合わせた文章のナレーションボイス。0にするとボイスオフ。 なお、背景画像のtexファイルを用意して、UILeaders.xlpに追記する場合は、dds画像のImportは不要である。 ** 成功例 [#t1b5028b] 文明選択画面 &ref(BeforeGameStart.jpg); Loading画面 &ref(Loading.jpg); 外交交渉画面 &ref(Diplomacy.jpg); ** 備考 [#n6391db5] 文明選択画面の画像は用意しなくてもいい場合があります。 FALLBACK_LEADER_hogehogeを使っても違和感がない場合はつくらなくてOK。 (たとえばボイスロイドの立絵だときれいに調整されて枠に収まるケースが多いです) また、本手順で実際に作ったものを以下に上げておきます。 https://www.axfc.net/u/3835265