スキン
@概要
Aスキンセレクタ
Bスキンの作り方
@概要
スキンファイル
スキンは skin フォルダに入れるだけで使えるものが好ましい。
skinフォルダ以外に配置されたスキンファイルはシステム上必要なスキンとして
スキンセレクタから認識される。
config.iniファイルのSkinセクションにて使用するスキンを定義
[Skin]
Skin0 = SkinFile9.ini
…
Skin9 = SkinFile9.ini
(指定するファイル名は相対パスで記述するので Skin\FileName.ini等も可)
スキンファイルは最大で100個まで定義することが出来る。
Skin0からSkin9まで順番に読み込んでいくので、
同一のファイルが複数のスキンで定義されている場合は
最後に読み込んだ方を有効とする。
・スキン説明
[SkinData]
Name = スキン名
Author = スキン作者
Comment = スキン解説
Image = イメージ画像ファイル名 (128*128のビットマップ限定)
これらはスキン選択プログラムで参照されます。
・リソース記述(各画像ファイルなどの定義を記述)
[Num]
File000=img\num_s.bmp
…
[BaseImage]
File000=img\es_string.bmp
…
[BaseTexture]
File000=img\icon01.png
…
[Image]
File000=img\back.png
…
[Texture]
File000=img\circle.png
…
・フォーマット指定
画像テクスチャのフォーマットを指定できる。
File000 = [D3DFMT_R3G3B2]img\back1.dds
上記のようにファイル名の前に [] で囲んで、フォーマットを指定可能
指定可能なフォーマットは以下の通り
D3DFMT_R8G8B8 , D3DFMT_A8R8G8B8 , D3DFMT_X8R8G8B8 ,
D3DFMT_R5G6B5 , D3DFMT_X1R5G5B5 , D3DFMT_A1R5G5B5 ,
D3DFMT_A4R4G4B4 , D3DFMT_R3G3B2 , D3DFMT_A8 ,
D3DFMT_A8R3G3B2 , D3DFMT_X4R4G4B4 , D3DFMT_DXT1 ,
D3DFMT_DXT2 , D3DFMT_DXT3 , D3DFMT_DXT4 , D3DFMT_DXT5
フォーマットの概要はMSDNライブラリアーカイブ D3DFORMATを参照下さい。
指定するファイル名はABCDの存在するディレクトリからの相対パスなので
スキンの画像を Skinディレクトリに入れてある場合は Skin\file.bmpと記述する。
対応している画像はBMPとPNGのみ。
キラーキーは真緑(0,255,0)でPNGの場合はα値(透明度)が有効。
全てのファイルを定義する必要はなく、必要なファイルだけ定義すれば良い。
全てのスキンで定義されなかった場合はデフォルトの画像が使われる。
どの画像がどのファイルに対応するかは default_skin.ini を参照すること。
自動で適用されるフォーマットでは画像が劣化してしまう場合がある。
その場合は D3DFMT_A8R8G8B8(半透明有り) or D3DFMT_R8G8B8(半透明無し)に変更すると解決される場合がある。
ただし、必要ビデオメモリ量が増えるので注意すること。
また、背景画像など半透明無しでサイズが大きいものは D3DFMT_DXT1 を指定してテクスチャ圧縮を利用すると良い。
多少の画質劣化が生じ、テクスチャ生成が遅くなるが使用ビデオメモリ量は減らすことが出来る。
また、最初から .dds 形式の画像を用意すれば読み込みが早くなる。
Aスキンセレクタ
Version 1.70より添付のスキンセレクタでスキンの管理が出来ます。
スキンセレクタは SkinSelector.exe というファイル名で添付されています。
現在選択中のスキンの情報が画面上部に表示されます。
保持スキンリストに列挙されるのはskinフォルダに存在するファイルのみです。
適用したいスキンを[保持リスト]から選んで、ダブルクリックか[←]ボタンで
左の[適用済みリスト]に移動します。
[適用済みリスト]のスキンをダブルクリックか、[→]ボタンで適用を解除して
右の[保持リスト]に移動します。
※ただし、skinフォルダ以外に存在するスキンは適用解除できません。
それらはシステム上必要なスキンである可能性があるためです。
どうしても、解除したい場合は直接config.iniを編集して下さい。
[適用済みリスト]のスキンを選択して、[↑]と[↓]ボタンで優先度を変更することができます。
上から順番にチェックしていくので下の方が優先度が高いので注意して下さい。
複数のスキンで同一の要素が指定してあった場合、より下の優先度が高い方のファイルが使われます。
プログラムを終了すると自動的に保存されますので、手動で保存や読み込みはできません。
また、起動中のABCDのスキンは変更されません。ABCDを再実行後に変更が適用されます。
Bスキンの作り方
スキンはなるべくskinフォルダの下にフォルダを作って格納して下さい。
ファイル構成例
+ABCDフォルダ
|+SampleSkin (スキン用フォルダ)
|−sample.ini (スキンファイル)
|−xxxxxx.png (スキン用素材ファイル)
1.変更したい画像や音楽のファイルを特定する。
画像ならimgフォルダ , 音楽ならbgmフォルダ、サウンドエフェクトならseフォルダに入っています。
ここでは、タイトル画面の背景と、タイトル画像を差し替えてみます。
タイトル画像はtitle.pngです。
初期添付のdefault_skin.iniを見ると以下のようにtitle.pngが見つけられます。
[Image]
File001=img\title.png
よって、タイトル画像は[Image]セクションのFile001だとわかります。
背景画像はback1.ddsです。
これはdefault_skin.iniでは見つかりませんが、
初期添付のimg\back_dds.iniにて宣言されています。
[Image]
File000=img\back1.png
よって、タイトル画面の背景は[Image]セクションのFile000だと特定できます。
2.差し替えるファイルを用意します。
通常の場合は画像のサイズはなるべく変更しないようにして下さい。
ただし、一部の画像にはサイズを変更できるものもあります。
※タイトル画像はサイズの変更が可能です。
ここではskin\SampleSkinフォルダにTestTitle.bmpとTestBack.jpgを作成します。
ついでにスキンのイメージ画像も作成しておきましょう。
これは、128×128ピクセルのビットマップである必要があります。
強制ではありませんが、サイズ節約のために256色ビットマップにすることをお薦めします。
ここではScreenShot.bmpをskin\SampleSkinフォルダに追加作成します。
3.スキン用INIファイルの作成
スキン定義の入ったINIファイルを作成します。
ここではskin\SampleSkin\フォルダにsample.iniを作成します。
ファイルを作成したらメモ帳などのテキストエディタで編集しましょう。
[SkinData]
Name = サンプルスキン
Author = jxta
Comment = スキン効能のサンプル
Image = skin\SampleSkin\ScreenShot.bmp
[Image]
File000=[D3DFMT_X8R8G8B8]skin\SampleSkin\TestBack.jpg
File001=[D3DFMT_A8R8G8B8]skin\SampleSkin\TestTitle.bmp
[SkinData]セクションのImage項目にはスキンのイメージ画像を指定します。
この画像は128×128のサイズである必要があり、 [ ] を使ってフォーマットを指定することはできません。
というか、ゲーム中は一切使われません。
背景画像はα値(透明度)を使いませんので透明度無しのRGB各8bitの24bitフルカラーを指定しています。
タイトル画像は透過色を指定する必要があるのでαRGB各8bitのフォーマットを指定しています。
4.スキンセレクタでスキンを適用する。
スキンセレクタを起動して右の[保持スキンリスト]に作成したスキンが追加されていることを確認して下さい。
作成したスキンがリストにあれば、それをダブルクリックして追加して下さい。
5.動作確認
ABCD本体を起動してスキンが正常に適用、読み込みされているか確認して下さい。
ファイル名の指定が間違っていたり、読み込めないフォーマットだとエラーが出て
プログラムが終了してしまいます。
正常に作成されたならば、作成したスキンのフォルダをskinフォルダに入れて、
スキンセレクタで適用するだけでスキンを使えるようになっていると思います。
そであれば、作成したスキンフォルダを配布すれば良いので、フォルダごと圧縮して配布することも簡単です。
※サンプルスキン
タイトル画面の背景とタイトルと差し替えるスキンのサンプルです。
ダウンロード後に解凍し、skinフォルダに入れてから、スキンセレクタで適用して下さい。