以下はボタンの画像を作るためのチュートリアルです。
テクノロジー、ユニット、建造物、文明、指導者、社会制度、宗教、企業などさまざまなボタンがありますが作り方はだいたい同じです。
やっていることはといえば画像サイズ変更→フレームをつける→.ddsで保存→XML改変とたいしたことはありません。
・DDSファイルが扱えるペイントソフト
GIMP ttp://www.gimp.org/ (GIMP DDS plugin ttp://nifelheim.dyndns.org/~cocidius/dds/ が必要)
Paint.NET ttp://www.getpaint.net/redirect/wp/index.html
この2つがお勧め(どちらとも日本語に対応しています)
fanaticsではGIMPを使ってる人が多く、チュートリアルスレなどでもGIMPを使って解説されています。
しかし筆者はGIMPは重くて嫌いなのでPaint.NETを使用しています。なのでこの記事でもPaint.NETを使った方法を紹介しています。
GIMPとPaint.NETではアルファチャンネルの表示方法など若干の違いがありますが、あまり気にする必要は無いと思います。
・元となるボタンの画像
なんでもOK。
ただしゲーム中で表示されるサイズが64*64なので、これより極端に大きいと見栄えが悪くなるかもしれません。
今回は某所で拾ってきたこの上杉謙信の「毘」の旗から新文明「上杉家」のボタンを作ります。
・ボタンのフレームの画像
ボタンのフレームとなる画像です。なくてもまったく問題ないですがほかのボタンとの統一感を出すためには必要になるでしょう。
筆者が使っているものはfanaticsで拾った画像をddsに加工したものです。
端のほうが汚かったりしますが、気にならないという人はどうぞ自由に使ってください。
元となる指導者の画像を開き、まずはトリミングとリサイズをします。
ボタンのサイズは64*64なのでこのサイズにリサイズします。
次はこの画像にフレームをつけます。
「レイヤ」→「ファイルからインポート」でフレーム画像をレイヤーとして追加します。
そして「レイヤの結合」を押して一つのレイヤーにします。
これでボタンの画像が完成です。
できあがった64*64の画像ファイルを.ddsで保存します。
このさい必ずDXT3(明示的アルファ)にしてください。civではこの形式しか認識しません。
これでボタン画像のDDSファイルが完成しました。
画像が出来たら次にXMLを書き換えます。
何のボタンかによって改変する必要のあるXMLファイルは異なりますが、たいていの場合ArtDefines_XXX.xml(画像を定義するXML)とXXXInfos.xml(文明とかユニットとかを定義するXML)の二つを改変することになると思います。
今回の場合は文明のボタンに使うので、改変する必要があるのはCIV4ArtDefines_Civilization.xmlとCIV4CivilizationInfos.xmlの二つだけです。
まずはCIV4ArtDefines_Civilization.xml。
CivilizationArtInfoタグの部分を適当にコピペします。
Typeの部分を「ART_DEF_CIVILIZATION_文明名」に変更。
Buttonに作ったDDSファイルを指定すればOK。
(この記事を作るに当たって参考にしたfanaticsの記事では「カンマをはずしてはいけない」と書かれていたのですが、MODスレなどでは「カンマをはずしても問題ない」、「ゲームが唐突に落ちることがあるがこれはカンマをつけているのが原因」とも報告されています。実際筆者がMODを作った際カンマをつけると必ず落ちるようになってしまったのでカンマはつけないのが正しいと思われます。)
今回の上杉謙信の場合はこのようになります。(旗についてはまた別の機会に触れます)
<CivilizationArtInfo>~ <Type>ART_DEF_CIVILIZATION_UESUGI</Type> <Button>Art/Interface/Buttons/Civilizations/Uesugi.dds</Button> <Path>Art/Interface/TeamColor/uesugi_flag.dds</Path> <bWhiteFlag>0</bWhiteFlag> </CivilizationArtInfo>
次にCIV4CivilizationInfos.xml。
CivilizationInfosで新文明を作り、<ArtDefineTag>に「ART_DEF_CIVILIZATION_文明名」を指定します。残りのタグは「文明の編集」を参考に埋めてください。
これでXMLの改変は終了です。
実際のゲーム中ではこんな感じになります。