Sound Player Lilith for Unicode OSs (仮称) フェイス定義仕様書
Ver. 2011/12/26

【０】フェイス定義のファイル名について

拡張子は、.ini が標準ですが、それ以外の拡張子でもかまいません。
ただし、フェイスセレクタには拡張子 .ini のものしか表示されませんので、
.ini 以外の拡張子を用いる場合には、それを読み込ませる何らかの手段を用意する必要があります。
スタート画面となるべき基本形フェイスのみ拡張子 .ini にし、
変形パターンなどは、それ以外の拡張子にして、
フェイス上のボタンで切り替え可能にするなどといったことも可能です。


【１】定義済みフィールドについて

現時点では、必須のフィールド名はたった１つです。
これらのフィールドがないと、フェイス定義ファイルとみなされません。

● [Preference] フィールド

uLilith のフェイスであることを示す署名文字列や、
フェイス全体に対する設定などを書くフィールドです。
このフィールドの名前は変更できません。

・Signature キー
uLilith の定義ファイルであるかどうか見分けるためのキーです。
必ず、"uLilith Face File" と記述してください。
なお、uLilith は仮称ですので、
ソフトウェア名の変更があった場合、
Signature キーに書くべき文字列も変更される可能性があります。

・DefaultMessage キー
後述のタイトル文字列アイテムで、表示すべき文字列が無いとき
すなわち、どのファイルも読み込まれていないときに表示される文字列です。
主に、uLilith の起動直後などに表示されます。

・InitCommandCount キー
フェイスロード直後に実行するコマンドの数を指定します。
状態連動ではないアイテムで、初期状態で非表示にしたい項目があれば、
ここで任意アイテムの非表示化コマンドを使用して
非表示にする必要があります。
状態連動でないアイテムは、標準ではすべて表示状態で始まります。
他にも、フェイス定義中で使用できるすべてのコマンドを使用できます。
複数のコマンドを実行させたい場合は、後述の
Command キー、CommandParamType キー、CommandParam キーの３つの組み合わせを
実行させたい数分記述していく必要があります。
コマンドの詳細については、別途 フェイスコマンド仕様書 を参照してください。

・Command キー
実行したいコマンドの名前を記述します。
[Preference] フィールドでは、複数のコマンド群の実行に対応しているので、
実際のキー名は、Command のあとに続けて、順番を表す連番をつける必要があります。
具体的なコマンドの一覧については、別途 フェイスコマンド仕様書 を参照してください。

具体例：　このように、キー名のあとに連番をつけます。
InitCommandCount = 5
Command1 = ShowItem
CommandParamType1 = String
CommandParam1 = StopButton
Command2 = HideItem
：
：
Command5 = ShowItem

・CommandParamType キー
実行するコマンドがパラメータを必要とするものの場合、
パラメータの種類を指定します。
後述の CommandParam キーは、ここの指定に従って内容が解釈されます。
ほとんどのコマンドは特定の種類のパラメータしか受け付けませんが、
複数の種類のパラメータを使いわけられるものもあります。
パラメータの種類を指定していない場合、
または、使用できない種類が指定されている場合、
ほとんどの場合コマンドは何のアクションも起しません。
[Preference] フィールドでは、Command キーと同様、連番を付加する必要があります。
パラメータの種類は、以下のとおりです。
Int : 整数値 (頭に 0x をつけることで、16 進数指定も可能 0xFF2244AA など)
String : 文字列
Double : 小数値
Bool : True または False (Enable / Disable または、0 / 1 でも認識します)
RandomInt : 最小値-最大値 の表記で、値の範囲を指定します。10 進数の整数しか使用できません。
　　　　　　Int が使用できるすべてのコマンドで使用できます。
RandomString : 文字列１, 文字列２, 文字列３, ... のように半角カンマやスペースで区切って、
　　　　　　　 複数の文字列を指定します。指定したものの中から毎回ランダムに選択されて使用されます。
　　　　　　　 String が使用できるすべてのコマンドで使用できます。

・CommandParam キー
実行するコマンドのパラメータの内容を指定します。
CommandParamType キーで指定した内容に従って解釈されます。
[Preference] フィールドでは、Command キーと同様、連番を付加する必要があります。

・CommandTargetWindow キー
コマンドを実行するサブフェイス名を指定します。
キーを省略するか、空のキーを作成した場合、
自分自身に対してコマンドを送信します (従来の動作)
[Preference] フィールドでは、Command キーと同様、連番を付加する必要があります。
メインフェイスをターゲットとしたい場合には uLilith::MainWindow を指定してください。

・CommandTargetPlugin キー
コマンドを送信するプラグインを指定します。
キーを省略するか、空のキーを作成した場合、
uLilith 本体がコマンドを処理します (従来の動作)
[Preference] フィールドでは、Command キーと同様、連番を付加する必要があります。
プラグインの識別は、プラグインのファイル名部分でのみ行われます。
例： SampleAlbumJacket.gpi
違うパスに同名のファイル名のプラグインがあり、両方が有効の場合、
先に見つかった方に送られます。
現時点では、このときの CommandParamType は、String でなければなりません。
それ以外を指定した場合、空の文字列がプラグインに送られます。
このコマンドを実際に使用するには、コマンド受信に対応したプラグインが必要です。
また、指定すべきコマンドラインの内容は、プラグイン毎に異なります。
使用したいプラグインのドキュメントを参照してください。
このキーでプラグインを指定した場合も、CommandTargetWindow は有効で、
そのサブフェイスがプラグインに対して指名されます。


2008/11/04 追加

・FaceName キー
フェイスの名前を文字列で指定します。
今後実装されるフェイスセレクタで使用される予定

・PreviewImage キー
フェイスのプレビュー画像が入ったファイル名を指定します。
今後実装されるフェイスセレクタで使用される予定
サイズはいくつでもかまいませんが、ある程度自重すること。
フェイス定義の内容から動的生成してもいいんだけど、
棒状の細長いのとか、扱いに困るし、
複数形態がある場合とかもあるので、
フェイス宣伝の Pop と思って、
どんなフェイスなのか一目で魅力が伝わるような
イメージを作成してください。

・ThumbnailImage キー
フェイスのサムネイル画像が入ったファイル名を指定します。
今後実装されるフェイスセレクタで使用される予定
大きさは固定にする予定ですが、まだサイズは決めていません。
最近のディスプレイの解像度から考えると、
200x150 くらいがちょうどよい？
意見募集します。

・GlobalOffsetX キー
フェイス定義に登場する BackImage を除く 全アイテムの X 座標を、
指定した値だけ増減します。
増減値を整数値で指定してください。
フェイスの背景画像だけを差しかえる場合など、
全アイテムの座標を一律に変更したい場合に
大変便利です。

・GlobalOffsetY キー
フェイス定義に登場する BackImage を除く 全アイテムの Y 座標を、
指定した値だけ増減します。
増減値を整数値で指定してください。
フェイスの背景画像だけを差しかえる場合など、
全アイテムの座標を一律に変更したい場合に
大変便利です。

・UseWindowRegion キー
旧 Lilith フェイスとの互換性のためのキーです。
True または False を指定してください。
True を指定すると、ベース画像で α = 0 となっている部分には、描画を行いません。
デフォルトは、False です。

・NeedPluginCount キー
アニメーションを使用しているフェイスなど、uLilith 本体の機能だけでは
正しい表示ができないフェイスで、必要なプラグインを制御するためのキーです。
必要とするプラグインの数を指定してください。
その後、指定数分の NeedPlugin キーを記述し、
必要なプラグインの『ファイル名』を指定してください。

・NeedPlugin キー
必要なプラグインの『ファイル名』を指定します。
※ SampleAnimationFace.gpi など。拡張子までちゃんとつけてください。
NeedPlugin1= などのように、末尾に 1 から始まる連番をつける必要があります。

・NeedPluginAutoEnable キー
対応する連番の必要なプラグインを自動的に有効化するかどうかを決定します。
True または False を指定してください。
True を指定すると、指定したファイル名のプラグインが存在する場合、
自動的に有効化してからフェイスを読み込みます。
False を指定すると、有効にするかどうかの確認画面が表示されます。
キーを省略した場合は、False が指定されたとみなされます。
NeedPluginAutoEnable1= などのように、末尾に 1 から始まる連番をつける必要があります。

・NeedPluginUrl キー
対応する連番の必要なプラグインが見つからないときに、
ダウンロード先を表示したい場合に指定します。
http:// をきちんとつけて、URL を指定してください。
ブラウザでこの URL を開くかどうか確認画面が表示されます。
確認画面の表示/非表示にかかわらず、そのままフェイスがロードされてしまいますので、
利用者はプラグインをダウンロードしてインストールした後、uLilith を再起動する必要があります。
＃現在の uLilith の仕様では、再起動しないとプラグイン追加できないです。
このキーが存在しないか、中身が空の場合は、
必要なプラグイン名のみを表示して、フェイスの読み込みが続けられます。
NeedPluginUrl1= などのように、末尾に 1 から始まる連番をつける必要があります。

・AllowFaceStateSave キー
フェイス状態の記憶を有効化します。
True を指定すると、フェイスアンロード時にアイテムの表示/非表示や、
PosX/PosY/Width/Height などの座標や、フォントなどが保存されます。
デフォルトでは False です。
ここで保存される項目は、ModifyItem または、ModifyPlayList コマンドで
変更できる項目のみです。
フェイス状態のロードは、InitCommand が処理される前に行われます。
このため、初期非表示にするためだけに InitCommand で、
HideItem コマンドを実行したりすると、正しい状態ではなくなってしまう可能性があります。
ModifyItem / ModifyPlayList コマンドとの間の整合性を取り、
問題が起こらないようになっているフェイスでのみ、
このキーを True にし、フェイス状態の記憶の有効化を行ってください。

・PlayListIsAfterMainWindow キー
True を指定すると、ドッキングプレイリストを、メインウィンドウの裏に回します。
デフォルトでは False です。
当然、プレイリスト表示部分が少なくとも半透明でないと、
プレイリストは見えなくなります。
この状態だと、完全透明でない部分をクリックしても、
本来プレイリストの方は操作できないのですが、
基本的なマウス操作をリダイレクトすることで、
ある程度操作可能にしました。
ただし、スクロールバーは一切操作できません。
このキーを使用する場合には、スクロールバー部分だけでも
完全透明にして操作可能にするか、
スクロールバーは使えない旨を注記するなどしてください。
今後も、スクロールバーの操作を可能にすることはできないと思ってください。

・CanvasWidth キー
・CanvasHeight キー
初期状態のキャンバスのサイズおよびウィンドウのサイズを指定します。
整数でキャンバスの幅を指定してください。
これらのキーは省略可能です。
どちらかでも省略した場合、または、0 以下を指定した場合、
BackImage カテゴリのアイテムの幅と高さが代わりに使用されます。
初期状態で、BackImage カテゴリのアイテムより小さいサイズにしたい
場合のみ、指定する必要があります。

・DocumentFile キー
フェイスの説明などを記載した、ドキュメントのファイル名を指定します。
このキーを指定していない場合、2009/10/28 現在では、ReadMe.txt ファイルを探しに行きます。

・NeedVersion キー
フェイスの完全な表示に必要な uLilith のバージョンを記述します。
YYYY/MM/DD 形式で指定します。
フェイスの動作確認に使った uLilith の設定を開き、
バージョン情報に表示される日付を記載してください。
このバージョンより古い場合、読み込み時に警告が表示されます。

・MinWidth / MinHeight キー
Type = WindowResizer のアイテムのドラッグによりフェイスサイズが変更されるとき、
最低限保証するフェイスの最小幅/高さを正の整数で指定します。
省略された場合、どちらのキーも 1 に設定されます。
フェイスコマンドによるフェイスサイズの変更の際には、これらのキーは無視されます。

・MaxWidth / MaxHeight キー
Type = WindowResizer のアイテムのドラッグによりフェイスサイズが変更されるとき、
広げることのできる最大幅/高さを正の整数で指定します。
省略された場合、無制限に広げることが可能になります。
フェイスコマンドによるフェイスサイズの変更の際には、これらのキーは無視されます。

・InflateUnitX / InflateUnitY キー
Type = WindowResizer のアイテムのドラッグによりフェイスサイズが変更されるとき、
サイズ計算の最小単位となる数値を正の整数で指定します。
フェイスの幅は、InflateUnitX キーで指定した数値の整数倍、
フェイスの高さは、InflateUnitY キーで指定した数値の整数倍になることが保証されます。
フェイスの四辺や中央をタイリング画像を用いて表現する場合、
画像の縦横サイズに合わせると、半端な位置で繰り返しが打ち切られるのを防ぐことができます。
省略された場合、どちらのキーも 1 に設定されます。
フェイスコマンドによるフェイスサイズの変更の際には、これらのキーは無視されます。

・SaveWindowPoint キー
AllowFaceStateSave キーにより、フェイスの状態セーブが有効になっている場合に、
ウィンドウ座標も同時に保存するかどうか指定します。
True を指定すると、フェイスの状態セーブファイルに座標が保存され、
状態ロード時にウィンドウ座標が復元されます。
False を指定すると、常に CreateSubFace キーによる相対座標指定が優先されます (サブウィンドウのとき)
キーを省略した場合は、False と解釈されます。
これは主にサブウィンドウで、開いたり閉じたりしても同じ場所に表示されるように使用します。

・IsHidden キー
初期状態で非表示でフェイスが作成されます。
(HideSubFace コマンドで非表示にした状態です)
表示するには、ShowSubFace コマンドを使用してください。

【２】必須アイテムについて

2009/03/12 の修正により、必須アイテムはなくなりました。
BackImage カテゴリのアイテムは、存在しなくても動作するようになりました。
便宜上、BackImage アイテムについての説明をここに残しておきます。

● BackImage アイテム

Category キーの内容が、BackImage のアイテムです。
このアイテムは、フェイスの背景に使用されます。
優先度などに関係なく、常にどのアイテムよりも後ろに描画されます。
ウィンドウのベースとなるものと考えてください。
CanvasWidth / CanvasHeight のどちらかのキーを指定しなかった場合、
キャンバスとウィンドウのサイズは、BackImage のサイズと同じに調整されます。
Category = BackImage のアイテムは１つしか存在できません。
２つめが登場した時点で、エラーが発生します。

旧 Lilith では、BackImage に相当するアイテムには、
αチャネルが使えませんでしたが、uLilith ではαチャネルを扱えます。
半透明または完全透明な領域を作ることが出来、
今まで以上に自由な形のウィンドウを形成することが出来ます。
フォトショップなどで作成した、エッジにアンチエイリアスがかかった
画像をそのまま使用できますので、不定形ウィンドウでも
滑らかな表示が可能です。
なお、ウィンドウの当たり判定 (クリックしたときに反応するかどうか)は、
BackImage アイテムだけではなく、すべてのアイテムの表示を
合成した最終的な結果にあわせて行われます。
BackImage 上で完全透明な領域であっても、
その上になんらかのアイテムが描画された場合、
その位置は当たり判定を持ちます。
逆に言えば、当たり判定は表示内容に依存して動的に変化します。
当たり判定を持つ範囲は、最終的な合成結果で、
αチャネルが 0 ではない(すなわち、完全透明ではない)部分です。
完全透明な部分をクリックした場合、背後に表示されている
別のアプリケーションの方が反応します。
BackImage アイテムは、これらの特性以外は、
後述の Category = StaticImage のアイテムとまったく同じ動作をします。

【３】任意アイテムについて

(1) フィールド名

uLilith で使用できるフェイス上のアイテムは、
すべて任意のフィールド名を使用することが出来ます。
旧 Lilith のように、特定のフィールド名でないとダメなアイテムはありません。
ただし、フィールド名の重複は許されていませんので、
重複しないように注意してください。

(2) Category キー

アイテムの概要を決めるキーです。
Category には、以下のようなものがあります。

・BackImage
ウィンドウの背景画像です。

・StaticImage
表示内容がアプリの状態などによって変化しないイメージです。

・StaticString
表示内容がアプリの状態などによって変化しない文字列です。

・DynamicImage
表示内容がアプリの状態によって変化するイメージです。
コマンドボタンなどのマウス操作で表示の変わるもの、
シークバーなどのアプリの状態で位置の変わるもの、
再生モードの切り替えなどのアプリの状態によって表示/非表示の切り替わるものなど、
フェイス上の多くのアイテムはこのカテゴリに属することになります。

・DynamicString
表示内容がアプリの状態によって変化する文字列です。
再生時間表示などの状態に応じて変化する内容の文字列などが
このカテゴリに属することになります。
時間のほかにもタイトル文字列や、フォーマットの表示、タグの内容表示など、
情報系のアイテムはほとんどがこのカテゴリに属します。

・PlayList
ドッキングモードプレイリストを表示するためのプレイスホルダです。
フェイスの描画システムでは描画されません。
したがって、プレイリストは常にフェイスより上に表示されています。
オーナードローを使用した、完全なドッキングモードが実現できませんでしたので、
リストは別ウィンドウとなっています。
本体ウィンドウと連動して動くようになっているだけで、
あくまでも別ウィンドウです。
PlayList カテゴリで使用できるキーは、かなり限定されますが、
独自のキーもたくさんあります。

・PluginFrameBuffer
汎用プラグインから書き込み可能な描画領域です。
汎用プラグインは、フィールド名で書き込み対象を検索しますので、
プラグイン作者とフェイス作者の間で、目的に応じたフィールド名を
一意に決定する必要があります。
このカテゴリでは、以下のキーが必須です。
・PosX キー
・PosY キー
・Width キー
・Height キー
また、その他には、次のキーしか使用できません。
・SubCategory キー
・Type キー
・ViewType キー
・ActiveType キー
・Enable キー
・ConstAlpha キー
・Priority キー
・TipHint キー
・CommandCount キー
・Command キー
・CommandParamType キー
・CommandParam キー
・IsHided キー
・DisablePartialUpdate キー
・FrameBufferWidth
・FrameBufferHeight
なお、Enable = True にしたときの当たり判定は、
常に PosX/PosY/Width/Height で示される矩形が使用されます。

・Parameters
複数のパラメータを必要とするコマンドのために、
パラメータを記述するためのカテゴリです。
使用できるキーは、コマンドごとに異なります。
必要なキー/使用できるキーについては、
フェイスコマンド仕様書を参照してください。

・Container
複数のターゲットに対して、一括でコマンドを処理するために使用するカテゴリです。
フィールド名を複数指定して、複数のフィールドをグループ化することができます。
フィールド名をパラメータとするいくつかのコマンドで、
フィールド名の代わりにコンテナ名を指定して、
一括処理させることが可能です。
コンテナの対象アイテムを指定するには、Category = Container とし、
FieldList キーに、対象フィールドを列挙してください。
フィールド名の区切りには、半角スペースと半角カンマが使用できます。
フィールド名に記号が含まれている場合、うまく動かない場合がありますので、注意してください。
Container を引数とすることができるコマンドは、現在のところ以下の３つです。

ShowItem / HideItem / ModifyItem

これらのコマンドの引数にコンテナを指定すると、
コンテナで指定しておいたフィールド名すべてについて、
本来のパラメータの String 部分を置き換えて、順次コマンドを発行します。
※ BackImage カテゴリのアイテムは、コンテナに含めることができません。含めても、無視されます。

・PluginEffectArea
汎用プラグインでエフェクト処理可能な領域です。
汎用プラグイン名を指定して、対象汎用プラグインで決められている
キーを作成し、パラメータを受け渡す必要があります。
対象プラグインが存在しない or 有効化されていない場合、
処理はスキップされます。
プラグインによるエフェクトが行われないと、
正しい表示ができない場合には、[Preference] フィールドの NeedPlugin キーで、
プラグインの読み込みを指示しておいてください。
このカテゴリでは、以下のキーが必須です。
・SubCategory キー
・PluginFileName キー
・PosX キー
・PosY キー
・Width キー
・Height キー
また、その他には、次のキーしか使用できません。
・ViewType キー
・ActiveType キー
・Priority キー
・IsHided キー
・DisablePartialUpdate キー

・CommandContainer
ExecuteAsyncCommand および CallSubRoutine コマンドから起動するための
コマンドシーケンスを記述するカテゴリです。
記述方法は、通常のアイテムにコマンドを割り当てるときと同様です。
このカテゴリでは、以下のキーが必須であり、またこれ以外のキーは無視されます。
・CommandCount キー
・CommandParamType キー
・CommandParam キー
・Command キー
また、オプションで以下のキーを追加することができます。
・IsTerminatable キー
True を指定すると、中断可能な非同期コマンドシーケンスになります。
False の場合、このシーケンスの実行中には、uLilith を終了したり、
フェイスを変更したりできなくなります。
省略した場合、JumpTo コマンドを含むシーケンスでは True に、
含まないシーケンスでは False に指定されます。

(3) Type キー

アイテムの種類を決めるキーです。
Category = DynamicImage または DynamicString で必要となります。
具体的にどの状態に応じて表示/非表示が切り替わるか、
あるいは、表示される文字列の内容が変化するのか、
それを決定付ける重要なキーです。
以下に、DynamicImage および DynamicString で使用できる Type の一覧をあげます。
StaticImage や、StaticString、BackImage では、
標準で StaticItem が設定されます。
これらの Category では、明示的に他の Type を指定しても、その Type に応じた動作はしません。
PlayList カテゴリでは、無視されます。

● DynamicImage で使用できる Type

・StaticItem
ステータス表示を兼ねているわけではないコマンドボタンなどの、
マウス操作以外では状態の変化しないアイテムに使用します。
また、後述の ViewType キーや ActiveType キーによってのみ
状態の変化するイメージも、この Type を使用します。

・VolumeBar
ボリューム調整をするスライダです。
後述の専用キー (IsVertical) により、横方向または、縦方向の表示の選択が行えます。

・PanControl
パン(左右の音量バランス)を調整するスライダです。
後述の専用キー (IsVertical) により、横方向または、縦方向の表示の選択が行えます。

・SeekBar
再生位置に連動して移動し、ドラッグによってシーク操作も行えるスライダです。
後述の専用キー (IsVertical) により、横方向または、縦方向の表示の選択が行えます。

・CrossFade
再生切り替えモードが、クロスフェードになっているときのみ表示されるアイテムです。
NonStopMix とは排他表示になります。

・NonStopMix
再生切り替えモードが、ノンストップミックスになっているときのみ表示されるアイテムです。
CrossFade とは排他表示になります。
※ uLilith では、NonStopMix モードが標準となり、通常切り替えは廃止されました。

・PlayModeNormal
再生モードが通常のときに表示されるアイテムです。
PlayModeRepeat や PlayModeShuffle、PlayMode1Shot とは排他表示になります。

・PlayModeRepeat
単曲リピートモードのときに表示されるアイテムです。
PlayModeNormal や PlayModeShuffle、PlayMode1Shot とは排他表示になります。

・PlayModeShuffle
シャッフル再生モードのときに表示されるアイテムです。
PlayModeNormal や PlayModeRepeat、PlayMode1Shot とは排他表示になります。

・PlayMode1Shot
単曲再生モード(再生が終わったら次の曲に進まず停止)のときに表示されるアイテムです。
PlayModeNormal や PlayModeRepeat、PlayModeShuffle とは排他表示になります。

・SpectrumAnalyzer
スペクトラムアナライザを表示するアイテムです。
後述の Range、Reduction、Step という専用キーが存在します。

・EqualizerOn
イコライザが ON のときのみ表示されるアイテムです。
EqualizerOff とは、排他表示になります。

・EqualizerOff
イコライザが OFF のときのみ表示されるアイテムです。
EqualizerOn とは、排他表示になります。

・PitchScaleOn
ピッチスケーラ(音程変更) が ON のときのみ表示されるアイテムです。
PitchScaleOff とは、排他表示になります。

・PitchScaleoff
ピッチスケーラ(音程変更) が OFF のときのみ表示されるアイテムです。
PitchScaleOn とは、排他表示になります。

・FreqScaleOn
周波数変更が ON のときのみ表示されるアイテムです。
FreqScaleOff とは、排他表示になります。

・FreqScaleOff
周波数変更が OFF のときのみ表示されるアイテムです。
FreqScaleOn とは、排他表示になります。

・TimeExpandOn
タイムエキスパンダ(再生速度変更) が ON のときのみ表示されるアイテムです。
TimeExpandOff とは、排他表示になります。

・TimeExpandOff
タイムエキスパンダ(再生速度変更) が OFF のときのみ表示されるアイテムです。
TimeExpandOn とは、排他表示になります。

・PlayListLoopOn
プレイリストループが On のときのみ表示されるアイテムです。
PlayListLoopOff とは、排他表示になります。

・PlayListLoopOff
プレイリストループが Off のときのみ表示されるアイテムです。
PlayListLoopOn とは、排他表示になります。

・TopMostOn
最前面表示が On のときのみ表示されるアイテムです。
TopMostOff とは、排他表示になります。

・TopMostOff
最前面表示が Off のときのみ表示されるアイテムです。
TopMostOn とは、排他表示になります。

・WindowResizer
ウィンドウの四隅に相当するウィンドウリサイズ用のドラッグアイテムです。
TopLeftAnchor キーで指定した基準隅のドラッグに相当する働きをします。
アイテムの座標はきちんと考慮されますので、
四隅より内側にあっても正しく動作します。
2009/12/19 現在、TopLeftAnchor が四隅 (TopLeft/TopRight/BottomLeft/BottomRight) を
示す時のみ、サイズ変更アイテムとして動作します。
TopLeftAnchor が四辺を示す時には、本来上下または左右のみへのサイズ変更として
動作すべきですが、現状その動作は実装されていません。
また、TopLeftAnchor が、None または Center のときには、
サイズ変更方向を決定できないので、動作しません。
このタイプのアイテムのドラッグにより、ウィンドウサイズが変更された場合、
ウィンドウサイズに合わせてキャンバスサイズとウィンドウエリアが設定されます。
このため、これらのタイプのアイテムが存在するサイズ変更可能なフェイスでは、
キャンバスサイズと異なるクリッピング境界を設定することはできません。

・EqualizerSlider
イコライザの特定のバンドの設定を変更するためのスライダです。
EQBand キーにて、対象とするイコライザバンドまたはプリアンプを指定します。
プリアンプを指定するには、EQBand を -1 に、
イコライザバンドを指定するには、0 〜 17 までを指定してください。
後述の専用キー (IsVertical) により、横方向または、縦方向の表示の選択が行えます。

● DynamicString で使用できる Type

・TitleString
書式制御されるタイトル文字列が表示されるアイテムです。
タグのタイトルをそのまま表示したい場合は、後述の Title の方を用いてください。

・PlayTime
再生中のファイルの現在の再生時間を秒単位で表示するアイテムです。
※ 旧 Lilith と異なり、クリックしても RemainTime と表示が切り替わりません。
切り替えをしたい場合は、SwitchShowItem コマンドを使用してください。

・RemainTime
再生中のファイルの残りの再生時間を秒単位で表示するアイテムです。
※ 旧 Lilith と異なり、クリックしても PlayTime と表示が切り替わりません。
切り替えをしたい場合は、SwitchShowItem コマンドを使用してください。

・TotalTime
再生中のファイルの総演奏時間を秒単位で表示するアイテムです。

・PlayTimeMs
再生中のファイルの現在の再生時間をミリ秒単位で表示するアイテムです。

・RemainTimeMs
再生中のファイルの残りの再生時間をミリ秒単位で表示するアイテムです。

・TotalTimeMs
再生中のファイルの総演奏時間をミリ秒単位で表示するアイテムです。

・Bitrate
再生中のファイルのビットレートを表示するアイテムです。
ビットレートは、#### kbps といった書式で表示されます。
kbps が自動で付加されますので、ご注意ください。
可変ビットレートのファイルの場合、平均ビットレートが表示されます。
可逆圧縮などのビットレートの意味がないフォーマットでも、
ファイルサイズと演奏サイズから計算した、平均ビットレートが表示されます。

・BitrateNoUnit
再生中のファイルのビットレートを表示するアイテムです。
ビットレートは、kbps 単位で表示されます。
こちらは数値のみの表示で、単位は付加されません。
可変ビットレートのファイルの場合、平均ビットレートが表示されます。
可逆圧縮などのビットレートの意味がないフォーマットでも、
ファイルサイズと演奏サイズから計算した、平均ビットレートが表示されます。

・Channels
再生中のファイルのチャネル数を表示するアイテムです。
# ch などと、数字＋ch で表示されます。
Monaural、Stereo などの表示をするには、後述の ChannelMode を使用してください。

・ChannelsNoUnit
再生中のファイルのチャネル数を表示するアイテムです。
チャネル数の数字のみを表示し、単位は付加されません。
Monaural、Stereo などの表示をするには、後述の ChannelMode を使用してください。

・BitDepth
再生中のファイルのビット深度を表示するアイテムです。
## bits (int) または、## bits (float) などと型もつけて表示されます。

・BitDepthNoUnit
再生中のファイルのビット深度を表示するアイテムです。
数値のみを表示し、単位は付加されません。
このため、32bit (float) と 32bit (int) の区別がつきませんのでご注意を。

・Samplerate
再生中のファイルのサンプリングレートを表示するアイテムです。
##### Hz などと Hz を付加して表示されます。

・SamplerateNoUnit
再生中のファイルのサンプリングレートを表示するアイテムです。
数値のみを表示し、単位は付加されません。

・BitrateMode
再生中のファイルのビットレートモードを表示するアイテムです。
CBR または、VBR と表示されます。
VBR と ABR の区別はつきませんので、ABR のときも VBR と表示されます。

・ChannelMode
再生中のファイルのチャネル数を文字列で表示するアイテムです。
Monaural / Stereo / JointStereo / 5.1 Channels などと表示されます。
チャネル数の数値そのものを表示したい場合は、
前述の Channels の方を使用してください。

・CodecString
再生中のファイルのコーデック名を表示するアイテムです。
比較的長い表示名のものが多いので、表示領域は多めにとってください。

・ListCurrentIndex
再生中のファイルのプレイリスト上でのインデックス番号を表示するアイテムです。
これは、リスト上での先頭からのオフセットで、No. カラムの内容ではありません。
プレイリスト上にないファイルの場合、何も表示されません。

・ListNumber
再生中のファイルのプレイリスト上でのナンバーを表示するアイテムです。
プレイリスト上の No. カラムの内容になります。
プレイリスト上にないファイルの場合、何も表示されません。

・ListPlayed
プレイリスト上の再生済みファイル数を表示するアイテムです。
※ 2008/10/11 現在、未実装

・ListTotalCount
プレイリスト上の全ファイル数を表示するアイテムです。

・ListTotalTime
プレイリスト上の全ファイルの総演奏時間を表示するアイテムです。

・ListTotalFormat
プレイリスト上の全ファイルの総演奏時間を表示するアイテムです。
書式を指定して自由な形式で表示が可能です。
書式は、PlayTimeFormat と同一です。

・Title
再生中のファイルのタグ情報の、タイトルを表示するアイテムです。
タグがない場合、または、タグのタイトルが空の場合、
ファイル名から拡張子を取り除いたものが表示されます。

・Artist
再生中のファイルのタグ情報の、アーティストを表示するアイテムです。
タグがない場合、または、タグのアーティストが空の場合、何も表示されません。

・Album
再生中のファイルのタグ情報の、アルバムを表示するアイテムです。
タグがない場合、または、タグのアルバムが空の場合、何も表示されません。

・Date
再生中のファイルのタグ情報の、日付(または年号)を表示するアイテムです。
タグがない場合、または、タグの日付(または年号)が空の場合、何も表示されません。

・TrackNumber
再生中のファイルのタグ情報の、トラック番号を表示するアイテムです。
タグがない場合、または、タグのトラック番号が空の場合、何も表示されません。

・Genre
再生中のファイルのタグ情報の、ジャンルを表示するアイテムです。
タグがない場合、または、タグのジャンルが空の場合、何も表示されません。

・Comment
再生中のファイルのタグ情報の、コメントを表示するアイテムです。
タグがない場合、または、タグのコメントが空の場合、何も表示されません。

・VolumeValue
現在のボリューム設定を、数値で表示します。
## % などと % が付加されて表示されます。

・VolumeValueNoUnit
現在のボリューム設定を、数値で表示します。
% 単位での数値のみを表示し、% 記号は付加しません。

・PanValue
現在のパン(左右の音量バランス)を、数値で表示します。

・FormatedString
書式制御可能な文字列を表示します。
後述の FormatString キーで、書式を指定してください。
指定する書式の内容は、本体のタイトル文字列や、曲名お知らせなどと同様のものです。
書式処理を行うため、内容の更新処理が遅いです。
タイトルだけやアーティストだけなど、書式を使用しなくても
表現できる内容のときには、使用しないでください。

・PlayTimeNoHour
再生中のファイルの現在の再生時間を秒単位で表示するアイテムです。
PlayTime と異なり、60 分以上の場合でも分表示のままで、時間表示を行いません。
※ 旧 Lilith と異なり、クリックしても RemainTime と表示が切り替わりません。
切り替えをしたい場合は、SwitchShowItem コマンドを使用してください。

・RemainTimeNoHour
再生中のファイルの残りの再生時間を秒単位で表示するアイテムです。
RemainTime と異なり、60 分以上の場合でも分表示のままで、時間表示を行いません。
※ 旧 Lilith と異なり、クリックしても PlayTime と表示が切り替わりません。
切り替えをしたい場合は、SwitchShowItem コマンドを使用してください。

・TotalTimeNoHour
再生中のファイルの総演奏時間を秒単位で表示するアイテムです。
TotalTime と異なり、60 分以上の場合でも分表示のままで、時間表示を行いません。

・PlayTimeMsNoHour
再生中のファイルの現在の再生時間をミリ秒単位で表示するアイテムです。
PlayTimeMs と異なり、60 分以上の場合でも分表示のままで、時間表示を行いません。

・RemainTimeMsNoHour
再生中のファイルの残りの再生時間をミリ秒単位で表示するアイテムです。
RemainTimeMs と異なり、60 分以上の場合でも分表示のままで、時間表示を行いません。

・TotalTimeMsNoHour
再生中のファイルの総演奏時間をミリ秒単位で表示するアイテムです。
TotalTimeMs と異なり、60 分以上の場合でも分表示のままで、時間表示を行いません。

・CurrentQueryName
プレイリストの現在選択されているビューの名前を表示します。

・EqualizerValue
イコライザの特定のバンドの設定を表示するためのアイテムです。
EQBand キーにて、対象とするイコライザバンドまたはプリアンプを指定します。
プリアンプを指定するには、EQBand を -1 に、
イコライザバンドを指定するには、0 〜 17 までを指定してください。
単位の dB は表示しませんので、必要であれば別途別アイテムで表示してください。

・EqualizerCurrentPreset
イコライザで現在選択されているプリセット名を表示します。

・PlayListName
読み込まれているプレイリストのファイル名を表示します。

・CrossFade
再生切り替えモードが、クロスフェードになっているときのみ表示されるアイテムです。
NonStopMix とは排他表示になります。

・NonStopMix
再生切り替えモードが、ノンストップミックスになっているときのみ表示されるアイテムです。
CrossFade とは排他表示になります。
※ uLilith では、NonStopMix モードが標準となり、通常切り替えは廃止されました。

・PlayModeNormal
再生モードが通常のときに表示されるアイテムです。
PlayModeRepeat や PlayModeShuffle、PlayMode1Shot とは排他表示になります。

・PlayModeRepeat
単曲リピートモードのときに表示されるアイテムです。
PlayModeNormal や PlayModeShuffle、PlayMode1Shot とは排他表示になります。

・PlayModeShuffle
シャッフル再生モードのときに表示されるアイテムです。
PlayModeNormal や PlayModeRepeat、PlayMode1Shot とは排他表示になります。

・PlayMode1Shot
単曲再生モード(再生が終わったら次の曲に進まず停止)のときに表示されるアイテムです。
PlayModeNormal や PlayModeRepeat、PlayModeShuffle とは排他表示になります。

・EqualizerOn
イコライザが ON のときのみ表示されるアイテムです。
EqualizerOff とは、排他表示になります。

・EqualizerOff
イコライザが OFF のときのみ表示されるアイテムです。
EqualizerOn とは、排他表示になります。

・PitchScaleOn
ピッチスケーラ(音程変更) が ON のときのみ表示されるアイテムです。
PitchScaleOff とは、排他表示になります。

・PitchScaleoff
ピッチスケーラ(音程変更) が OFF のときのみ表示されるアイテムです。
PitchScaleOn とは、排他表示になります。

・FreqScaleOn
周波数変更が ON のときのみ表示されるアイテムです。
FreqScaleOff とは、排他表示になります。

・FreqScaleOff
周波数変更が OFF のときのみ表示されるアイテムです。
FreqScaleOn とは、排他表示になります。

・TimeExpandOn
タイムエキスパンダ(再生速度変更) が ON のときのみ表示されるアイテムです。
TimeExpandOff とは、排他表示になります。

・TimeExpandOff
タイムエキスパンダ(再生速度変更) が OFF のときのみ表示されるアイテムです。
TimeExpandOn とは、排他表示になります。

・PlayListLoopOn
プレイリストループが On のときのみ表示されるアイテムです。
PlayListLoopOff とは、排他表示になります。

・PlayListLoopOff
プレイリストループが Off のときのみ表示されるアイテムです。
PlayListLoopOn とは、排他表示になります。

・TopMostOn
最前面表示が On のときのみ表示されるアイテムです。
TopMostOff とは、排他表示になります。

・TopMostOff
最前面表示が Off のときのみ表示されるアイテムです。
TopMostOn とは、排他表示になります。

・PlayTimeFormat
再生中のファイルの現在の再生時間を表示するアイテムです。
書式を指定して自由な形式で表示が可能です。
FormatedString と同様の書式を用いますが、
下記の識別子を使用します。

Hour / HourZ / HourF / HourZF
Minute / MinuteZ / MinuteF / MinuteZF
MinuteN / MinuteNZ / MinuteNF / MinuteNZF
Second / SecondZ / SecondF / SecondZF
Milisecond / MilisecondZ / MilisecondF / MilisecondZF

末尾に Z がつくものは、１文字の場合、先頭に 0 を追加します。
末尾に F がつくものは、0 のときに 0 を表示します。
末尾に ZF がつくものは、0 のときに 00 を表示します。
何もつかないものは、先頭への 0 の追加がなく、0 のときには空となります。
MinuteN は、60 分以上の分の表示が可能です。

例えば、以下のように設定します。
%Hour%h%<%Minute%m%<%SecondF%s%MilisecondZF%ms
この例では、
12時間34分56秒789ミリ秒 = 12h34m56s789ms
1時間23分45秒678ミリ秒 = 1h23m45s678ms
12分34秒567ミリ秒 = 12m34s567ms
1分23秒456ミリ秒 = 1m23s456ms
12秒345ミリ秒 = 12s345ms
1秒234ミリ秒 = 1s234ms
12ミリ秒 = 0s012ms
などといった表記になります。

・RemainTimeFormat
再生中のファイルの残りの再生時間を表示するアイテムです。
書式を指定して自由な形式で表示が可能です。
書式は、PlayTimeFormat と同一です。

・TotalTimeFormat
再生中のファイルの総演奏時間を表示するアイテムです。
書式を指定して自由な形式で表示が可能です。
書式は、PlayTimeFormat と同一です。


● PluginFrameBuffer で使用できる Type

・StaticItem
ステータス表示を兼ねているわけではないコマンドボタンなどの、
マウス操作以外では状態の変化しないアイテムに使用します。
また、後述の ViewType キーや ActiveType キーによってのみ
状態の変化するイメージも、この Type を使用します。

・VolumeBar
ボリューム調整をするスライダです。
後述の専用キー (IsVertical) により、横方向または、縦方向の表示の選択が行えます。
FrameBufferWidth / FrameBufferHeight の２つのキーで、つまみ部分のサイズを指定する必要があります。

・PanControl
パン(左右の音量バランス)を調整するスライダです。
後述の専用キー (IsVertical) により、横方向または、縦方向の表示の選択が行えます。
FrameBufferWidth / FrameBufferHeight の２つのキーで、つまみ部分のサイズを指定する必要があります。

・SeekBar
再生位置に連動して移動し、ドラッグによってシーク操作も行えるスライダです。
後述の専用キー (IsVertical) により、横方向または、縦方向の表示の選択が行えます。
FrameBufferWidth / FrameBufferHeight の２つのキーで、つまみ部分のサイズを指定する必要があります。

・CrossFade
再生切り替えモードが、クロスフェードになっているときのみ表示されるアイテムです。
NonStopMix とは排他表示になります。

・NonStopMix
再生切り替えモードが、ノンストップミックスになっているときのみ表示されるアイテムです。
CrossFade とは排他表示になります。
※ uLilith では、NonStopMix モードが標準となり、通常切り替えは廃止されました。

・PlayModeNormal
再生モードが通常のときに表示されるアイテムです。
PlayModeRepeat や PlayModeShuffle、PlayMode1Shot とは排他表示になります。

・PlayModeRepeat
単曲リピートモードのときに表示されるアイテムです。
PlayModeNormal や PlayModeShuffle、PlayMode1Shot とは排他表示になります。

・PlayModeShuffle
シャッフル再生モードのときに表示されるアイテムです。
PlayModeNormal や PlayModeRepeat、PlayMode1Shot とは排他表示になります。

・PlayMode1Shot
単曲再生モード(再生が終わったら次の曲に進まず停止)のときに表示されるアイテムです。
PlayModeNormal や PlayModeRepeat、PlayModeShuffle とは排他表示になります。

・EqualizerOn
イコライザが ON のときのみ表示されるアイテムです。
EqualizerOff とは、排他表示になります。

・EqualizerOff
イコライザが OFF のときのみ表示されるアイテムです。
EqualizerOn とは、排他表示になります。

・PitchScaleOn
ピッチスケーラ(音程変更) が ON のときのみ表示されるアイテムです。
PitchScaleOff とは、排他表示になります。

・PitchScaleoff
ピッチスケーラ(音程変更) が OFF のときのみ表示されるアイテムです。
PitchScaleOn とは、排他表示になります。

・FreqScaleOn
周波数変更が ON のときのみ表示されるアイテムです。
FreqScaleOff とは、排他表示になります。

・FreqScaleOff
周波数変更が OFF のときのみ表示されるアイテムです。
FreqScaleOn とは、排他表示になります。

・TimeExpandOn
タイムエキスパンダ(再生速度変更) が ON のときのみ表示されるアイテムです。
TimeExpandOff とは、排他表示になります。

・TimeExpandOff
タイムエキスパンダ(再生速度変更) が OFF のときのみ表示されるアイテムです。
TimeExpandOn とは、排他表示になります。

・PlayListLoopOn
プレイリストループが On のときのみ表示されるアイテムです。
PlayListLoopOff とは、排他表示になります。

・PlayListLoopOff
プレイリストループが Off のときのみ表示されるアイテムです。
PlayListLoopOn とは、排他表示になります。

・TopMostOn
最前面表示が On のときのみ表示されるアイテムです。
TopMostOff とは、排他表示になります。

・TopMostOff
最前面表示が Off のときのみ表示されるアイテムです。
TopMostOn とは、排他表示になります。

・WindowResizer
ウィンドウの四隅に相当するウィンドウリサイズ用のドラッグアイテムです。
TopLeftAnchor キーで指定した基準隅のドラッグに相当する働きをします。
アイテムの座標はきちんと考慮されますので、
四隅より内側にあっても正しく動作します。
2009/12/19 現在、TopLeftAnchor が四隅 (TopLeft/TopRight/BottomLeft/BottomRight) を
示す時のみ、サイズ変更アイテムとして動作します。
TopLeftAnchor が四辺を示す時には、本来上下または左右のみへのサイズ変更として
動作すべきですが、現状その動作は実装されていません。
また、TopLeftAnchor が、None または Center のときには、
サイズ変更方向を決定できないので、動作しません。
このタイプのアイテムのドラッグにより、ウィンドウサイズが変更された場合、
ウィンドウサイズに合わせてキャンバスサイズとウィンドウエリアが設定されます。
このため、これらのタイプのアイテムが存在するサイズ変更可能なフェイスでは、
キャンバスサイズと異なるクリッピング境界を設定することはできません。

・EqualizerSlider
イコライザの特定のバンドの設定を変更するためのスライダです。
EQBand キーにて、対象とするイコライザバンドまたはプリアンプを指定します。
プリアンプを指定するには、EQBand を -1 に、
イコライザバンドを指定するには、0 〜 17 までを指定してください。
後述の専用キー (IsVertical) により、横方向または、縦方向の表示の選択が行えます。



(4) ViewType キー

再生状態に連動した、アイテムの表示タイプを指定するキーです。
以下に、使用できる ViewType の一覧を記述します。
特に指定しない場合には、AlwaysVisible が標準で設定されます。
PlayList カテゴリでは、無視されます。

・AlwaysVisible
再生状態にかかわらず、常にアイテムを表示します。

・Playing
再生中のみ、アイテムを表示します。

・NotPlaying
再生中でないときのみ、アイテムを表示します。
※停止中を意味するわけでないのでご注意ください。

・Suspending
一時停止中のみ、アイテムを表示します。

・NotSuspending
一時停止中でない場合のみ、アイテムを表示します。
停止中(ファイルが読み込まれていない場合)にも、
このタイプのアイテムが表示されます。

・Stopping
停止中(ファイルが読み込まれていない場合)のみ、アイテムを表示します。

・NotStopping
停止中でない場合(ファイルが読み込まれている場合)のみ、アイテムを表示します。

(5) ActiveType キー

ウィンドウのアクティブ状態に連動した、アイテムの表示タイプを指定するキーです。
特に指定しない場合には、ActiveAndInactive が設定されます。
以下に、使用できる ActiveType の一覧を記述します。
PlayList カテゴリでは、無視されます。

・ActiveAndInactive
アクティブ状態にかかわらず、常にアイテムを表示します。

・ActiveOnly
アクティブ状態のときのみ、アイテムを表示します。

・InactiveOnly
非アクティブ状態のときのみ、アイテムを表示します。

(6) Align キー

アイテムのアライメント(表示位置調整)を指定するキーです。
StaticString / DynamicString / StaticImage / DynamicImage にのみ効果があります。
特に指定しない場合には、TopLeft が設定されます。
以下に、使用できる Align の一覧を記述します。

・TopLeft
アイテム領域の左上に配置します。

・TopCenter
アイテム領域の上端に配置し、左右は中央揃えします。

・TopRight
アイテム領域の右上に配置します。

・CenterLeft
アイテム領域の左端に配置し、上下は中央揃えします。

・Center
上下/左右ともアイテム領域の中央に配置します。

・CenterRight
アイテム領域の右端に配置し、上下は中央揃えします。

・BottomLeft
アイテム領域の左下に配置します。

・BottomCenter
アイテム領域の下端に配置し、左右は中央揃えします。

・BottomRight
アイテム領域の右下に配置します。


(6) 必須のキー

存在しないと正しく動作しない必須のキーを記述します。
なお、これらのキーは、ImageFile キーを除き、BackImage カテゴリのアイテムには必要ありません。

・PosX キー
アイテムの表示領域の左端 X 座標を整数値で指定します。
省略した場合、0 が設定されます。

・PosY キー
アイテムの表示領域の上端 Y 座標を整数値で指定します。
省略した場合、0 が設定されます。

・Width キー
アイテムの表示領域の幅を整数値で指定します。
省略した場合、StaticImage / DynamicImage カテゴリでは、
ImageFile キーで指定した画像の幅が、
StaticString / DynamicString カテゴリでは、
Caption キーで指定した文字列の表示する際の幅が設定されます。

・Height キー
アイテムの表示領域の高さを整数値で指定します。
省略した場合、StaticImage / DynamicImage カテゴリでは、
ImageFile キーで指定した画像の高さが、
StaticString / DynamicString カテゴリでは、
Caption キーで指定した文字列の表示する際の高さが設定されます。

・ImageFile キー
StaticImage / DymaicImage / BackImage カテゴリで使用できます。
BackImage カテゴリでは必須キーになります。
その他の カテゴリでは無視されます。
アイテムの表示イメージの入った画像ファイルを指定します。
使用できる画像ファイルは、BMP / PNG / JPEG / GIF / TIFF / EMF です。
使用できる色フォーマットは、各画像で許されたほぼすべてのものだと思われます。
(Gdiplus 依存の機能です)
カラーキーは、PNG / GIF などの埋め込みカラーキーのみ使用できます。
ガンマ情報などのその他のすべての属性も、無視されます。
αチャネルが手軽に扱え、可逆圧縮で劣化が無く、
かつ圧縮率も結構高いPNG 形式の仕様をお勧めします。
インデックスカラーの画像でも、optipng などで最適化すると、
ほとんどの場合 GIF よりサイズが小さくなります。
StaticImage や DynamicImage カテゴリの場合、
αチャネルが存在すれば、自動的に当たり判定リージョンが作成されます。
当たり判定リージョンを調整するには、
後述の AlphaThreshold キー や、DisableRegion キーを使用してください。
※ 2009/11/01 より、StaticImage / DynamicImage では必須キーではなくなりました。
ただし、省略した際は、Width / Height が指定されていないと、エラーとなります。

・Caption キー
StaticString カテゴリで必須です。
DynamicString カテゴリでは、初期作業領域の確保に使用されます。
そのほかのカテゴリでは無視されます。
DymicString カテゴリの場合、
表示されると思われる文字列より長い文字列を入力しておくと、
後の作業領域の拡張がなくなり、処理効率がよくなりますが、
メモリ使用量が増える可能性があります。
省略した場合、初期作業領域は 1 x 1 pixel で作成されます。


(7) その他のキー

その他に使用できるキーを記述します。
特定の Category や、Type でのみ使用できる場合には、
その旨を記述します。
特に書いていない場合には、BackImage を除くすべての Category や Type で使用できます。

・Enable キー
BackImage / PlayList 以外のすべてのカテゴリで使用できます。
指定できる値は、True または False です。
キーが存在しない場合、False が設定されます。
True が指定されている場合、アイテムはマウスのクリックに反応するようになります。
True が指定されていても、非表示状態になっているアイテムはクリックに反応しません。
False が指定されている場合、またはキーが省略された場合には、
アイテムは当たり判定を持たず、クリックは裏に表示されるアイテムに反応します。
裏に表示されるアイテムが Enable = True であり、
そちらが反応してしまっては困る場合には、
Enable = True を設定し、クリック時のコマンドを指定しないことで、
Enable = True なアイテムを隠すことが出来ます。
ただし、その部分をつかんでウィンドウのドラッグができなくなりますので、
通常はウィンドウのドラッグを始めるコマンドを設定することをお勧めします。
クリックの反応は、StaticImage または DynamicImage で、
αチャネルのあるイメージファイルを指定した場合、
αチャネルから作成されたリージョンが使用されます。
リージョンが作成されなかった場合には、
PosX / PosY / Width / Height から得られた矩形領域が代わりに使用されます。
αチャネルによるリージョンの作成を制御するには、
後述の AlphaThreshold キー や、DisableRegion キーを使用してください。

・ConstAlpha キー
アイテムの定数α(不透明度)を指定します。
指定できる値は、0 〜 255 までの整数値です。
0 の場合は完全透明、255 の場合は完全不透明になります。
範囲外の値を指定するか、キーを作成しなかった場合、
-1 が設定されます。
-1 が設定されているときには、定数α描画のルーチンに入りますので、
描画結果は同じになるとしても、255 を指定したときより高速に描画されます。
特に必要ない場合には、処理の高速化のためにもキーを作成しないことをお勧めします。
PlayList カテゴリでも使用できますが、
他の通常のアイテムに使用したときと若干表示が異なります。
これは、PlayList がフェイス内に描画されるのではなく、
上に重なった別ウィンドウとして存在するためです。

・Priority キー
アイテムの表示の優先度を指定します。
PlayList カテゴリでは、無視され、常にどのアイテムよりも手前に来ます。
指定できる値は、32bit 符号付整数で表現できる範囲です。
(-2147483648〜+2147483647)
数値が大きいほど、手前に描画されます。
表示領域が重なる場合、数値が小さいアイテムは、
数値が大きいアイテムに隠されます。
また、当たり判定も、優先度の数値の大きい順に行われます。
キーを作成しなかった場合は、0 が指定されます。
※ 旧 Lilith では、65535 がデフォルト値でしたので、
移植をする際にはご注意ください。

・TextColor キー
StaticString / DynamicString カテゴリでのみ使用できます。
後述の StringByImage = True のアイテムでは、無視されます。
文字の色を指定します。
数値は、ABGR 形式です。
通常、16 進数で指定します。
上位から 8bit ずつが、それぞれ α、Blue、Green、Red に割り当てられます。
0xaabbggrr の形式で指定してください。
※ 旧 Lilith と異なり、文字色もα値を持ちます。
αを示す上位 8bit が 0 の場合には、異常と判断してエラーになります。
影や縁取りを考慮しない場合、ConstAlpha でアイテムを半透明にするよりも、
文字色のαで半透明化した方が処理速度上効率がよくなります。

・ShadowColor キー
StaticString / DynamicString カテゴリでのみ使用できます。
後述の StringByImage = True のアイテムでは、無視されます。
文字の影または、縁取りの色を指定します。
数値は、TextColor と同じく、ABGR 形式です。
α部分が 0 の場合、影または縁取りは使用されません。
キーを省略した場合、α部分が 0 の色に設定されるので、
影や縁取りは使用されません。

影や縁取りは、まず透明なレイヤに ShadowColor で描画し、
その上に重ねて位置をずらして TextColor で描画することで表現しています。
したがって、TextColor のαを 255 未満にして半透明にしている場合、
影または縁取りが透けてみえることになり、
ConstAlpha で半透明化するときと、違った表示イメージになります。
影は、X,Y 座標ともに +1 ずつした位置に描画されます。
縁取りは、X, Y 座標ともに +1 または -1 した計４箇所に描画し、
その上に TextColor を重ねることで表現しています。
このため、あまりキレイな縁取りにはなりませんので、ご注意を。

・UseStringEdge キー
StaticString / DynamicString カテゴリでのみ使用できます。
後述の StringByImage = True のアイテムでは、無視されます。
True を指定すると、影の代わりに縁取りを使用するようになります。
省略した場合、False が指定されたとみなされ、影が使用されます。
影や縁取りの詳細については、ShadowColor キー の項目を参照してください。

・FontFace キー
StaticString / DynamicString / PlayList カテゴリでのみ使用できます。
後述の StringByImage = True のアイテムでは、無視されます。
Windows に登録されている、フォントファミリの名前を記述してください。
ＭＳ ゴシックなど、半角/全角がわかりにくいフォントがありますので、
以下の手順でフォント名を拾うことをお勧めします。

スタートメニュー→すべてのプログラム→アクセサリ→メモ帳を開く
→メモ帳のメニューから、書式→フォントと選択する
→フォントの選択画面が出るので、左上の一覧から目的のフォントを選択
→一覧の上の入力ボックスにフォント名が入るので、それをクリップボードにコピー
→フェイス定義ファイルに貼り付ける

フォントの変更ウィンドウは、キャンセルを押して閉じてください。
OS に標準で搭載されていないフォントを使用することは、
さけた方がよいかと思います。
フェイスをダウンロードした人が、同じフォントを持っていないと、
正しく表示されません。最悪文字化けする場合もあるようです。
OS 標準搭載でないフォントを使用する場合には、
後述の AlternateFontFace キーを使用し、
OS 標準搭載のフォントで似たような表示ができるものを指定してください。
FontFace キーで指定したフォントがシステムに存在しない場合には、
AlternateFontFace キーで指定されたフォントが読み込まれます。
※ DF〜 とか HG〜 とかのフォントは、OS 標準添付のフォントではなく、
Office に付属のフォントです。
プリインストールマシンを使っている方の中には、
これらのフォントが最初から入っているので、OS 標準のものと
勘違いされている方がいるようです。ご注意ください。
Windows 2000 以降の OS 標準のもので、日本語表示可能なのは、たぶん次にあげるものだけかと思います。
もし他にもあるようでしたら、ご指摘お願いします。
Fixd Sys (TrueType フォントではなくビットマップフォント。14 pixel 固定)
ＭＳ Ｐゴシック
ＭＳ ゴシック
ＭＳ 明朝
ＭＳ Ｐ明朝
ＭＳ ＰＲゴシック
MS UI Gothic
Arial Unicode MS (Windows XP 以降　ただし、日本語文字のベースラインがおかしく、上下に波打った変な表示になる)
メイリオ (Windows Vista 以降)

・AlternateFontFace キー
StaticString / DynamicString / PlayList カテゴリでのみ使用できます。
後述の StringByImage = True のアイテムでは、無視されます。
FontFace キーで指定したフォントが見つからない場合に使用されるフォントです。
OS に標準搭載でないフォントを FontFace に指定した場合には、
なるべくこちらで OS 標準搭載のフォントを指定してください。
AlternateFontFace キーの方は、FontFace キーの方と違い、
フォントの存在確認を行いません。
もしこちらで指定したフォントも存在しない場合には、
OS 側がフォントに付帯する類似情報を使用し、
自動的に似たフォントが選択されます。
ただしあまりあてになりませんので、OS 標準搭載のフォントを指定してください。

・FontSize キー
StaticString / DynamicString / PlayList カテゴリでのみ使用できます。
後述の StringByImage = True のアイテムでは、無視されます。
1 以上の整数値で指定します。0 以下の整数値を指定した場合の動作は未定義です。
フォントの高さをピクセル単位で指定します。
本体の設定でフォントのアンチエイリアスが有効になっている場合、
実際に出力されるフォントの高さは、±1ピクセルぐらいの変動があるようです。
また、影を使用する際は、+1 ピクセル、縁取りを使用する際は +2 ピクセル
余計に領域を使用します。
影や縁取りの有無にあわせ、文字列の表示領域は、
指定したフォントの高さに +1 〜 +3 ピクセル した分用意してください。
フォントの幅は、指定したフォントの種類と、装飾フラグに応じて変化します。

・FontStyle キー
StaticString / DynamicString / PlayList カテゴリでのみ使用できます。
後述の StringByImage = True のアイテムでは、無視されます。
フォントの装飾フラグを名称で指定します。
フラグを複数使用する場合には、名称同士の間を
半角のカンマ(,) または、半角のスペース( ) あるいはその両方で区切ってください。
使用できる装飾名は、以下のとおりです。
Bold : 太字にする
Italic : 斜体にする
Underline : 下線をつける
Strikeout : 取り消し線をつける

・ScrollPixels キー
StaticString / DynamicString カテゴリでのみ使用できます。
文字列が表示範囲に収まらないときに、スクロールする速度を指定します。
１以上の整数値を指定した場合には、１秒間で指定したピクセル分スクロールします。
本体の設定で、フェイスのリフレッシュレートをあげた場合にも、スクロール速度が変化しません。
設定地とリフレッシュレート、そしてマシンの処理速度によっては、
引っかかったりしながら動くように見えたりして、
滑らかにスクロールしないように見える場合があります。
これは、スクロールはピクセル単位(整数単位)でしか行えないので、
小数座標を整数化するときに起こる丸め誤差によるものです。
あとは、家庭用ゲーム機などと違い、リフレッシュレートどおりに
ミリ秒以下のオーダーで正確に再描画が行えない、というのもあります。
-1 以下の値を指定した場合には、１フレーム毎に指定した値の絶対値ピクセルだけスクロールします。
リフレッシュレートに依存してスクロール速度が変化してしまいますが、
こちらの方が滑らかに移動するように見えるようです。
0 を指定した場合には、当然ながらスクロールしません。
DynamicString カテゴリに属する文字列は、
ほぼ例外なく可変長の表示が行われますので、
0 を指定してスクロールしないようにすることはお勧めできません。
0 を指定しても安全なのは、表示される可能性のあるどの文字列も
はみ出ないだけの表示領域を確保した場合ですが、
この場合スクロール自体が起きませんので、
このキーの設定自体が無意味です。
キーを省略した場合は、デフォルトで +20 に設定されます。

・RepeatPixels キー
StaticString / DynamicString カテゴリでのみ使用できます。
スクロールが発生した場合、繰り返し表示の始まるまでの
空白部分の長さを指定します。
言い換えれば、文字列の右端から表示領域の右端 (or 下端) までのピクセル数が、
この設定値より大きくなったときに、
右 (or 下) から文字列の先頭が再び登場します。
0以上の整数値を指定してください。
キーを省略した場合は、30 に設定されます。

・HoldTime キー
DynamicString カテゴリでのみ使用できます。
文字列の表示内容が変わり、かつ表示範囲に収まらずスクロールが必要な場合に、
スクロールが始まるまでの時間を指定します。
即座にスクロールが始まると、左 (or 上) の方の文字が読めない可能性があるので、
適当な時間を設定してください。
0 以上の整数値で指定します。単位はミリ秒です。
0 以下の値を指定した場合、即座にスクロールが開始します。
キーを省略した場合のデフォルト値は、3000 ミリ秒です。

・CrossFadeTime キー
DynamicString カテゴリでのみ使用できます。
文字列の表示が変わる際に、クロスフェードする時間を指定します。
単位はミリ秒です。設定した時間をかけて、
以前の表示から新しい表示へとだんだんと変化します。
この間、以前の文字列がスクロールしていた場合、
以前の文字列はスクロールしながらだんだんと消えていきます。
また、HoldTime キーとは完全に別個の扱いとなっていますので、
CrossFadeTime の方が大きい数値の場合、
クロスフェード途中にスクロール開始します。
以前の Lilith と違い、クロスフェードが終わるまでスクロール待機はしません。
0 以上の整数値で指定します。
0 を指定した場合、クロスフェード自体が行われません。
再生時間などの頻繁に切り替わるアイテムに使用する際は、
切り替わる頻度より短い時間を指定しないと、
文字がまともに読めなくなります。
PlayTimeMs などのミリ秒表示アイテムの場合、
リフレッシュ毎に描画されますので、
リフレッシュレートより短い時間間隔を指定する必要がありますが、
リフレッシュレートより早い速度ではクロスフェードイメージは更新されないので、
正しい表示結果を得られません。
PlayTimeMs などを使用するときには、CrossFadeTime は 0 に設定してください。
キーを省略した場合のデフォルト値は、1000 ミリ秒です。

・AlphaThreshold キー
StaticImage / DynamicImage カテゴリでのみ使用できます。
αチャネルが含まれる画像の際に、いくつより大きいのα値を持つピクセルに
当たり判定(マウスのクリックに反応する領域)を持たせるのかを設定します。
0 〜 255 の範囲の整数値で指定します。
以上ではなく、より大きいなので、指定した数値と同じα値を持つピクセルは、
当たり判定を持ちませんのでご注意を。
したがって、このオプションによってαチャネルの値にかかわらず
すべてのピクセルに当たり判定を持たせることは出来ません。
すべてのピクセルに当たり判定を持たせたい場合には、
後述の DisableRegion キーを使用してください。
キーを省略した場合には、0 が指定されます。

・DisableRegion キー
StaticImage / DynamicImage カテゴリでのみ使用できます。
True または、False を指定します。
True を指定すると、αチャネルが含まれる画像の際に、
αチャネルの値に依存した当たり判定の作成を行いません。
True を指定した場合は、画像に関係なく、
PosX / PosY / Width / Height の各キーで決定される
表示矩形全体が当たり判定を持つようになります。
※ 2008/10/21 仕様変更
Type = Type = SeekBar または、VolumeBar、PanControl の
スライダー系アイテムでは、表示矩形ではなく、
指定したイメージのサイズに設定されます。
キーを省略した場合には、False が指定されます。

・MouseOverImageFile キー
DynamicImage カテゴリで、Enable = True のアイテムでのみ使用できます。
マウスカーソルが当たり判定の位置に来たときに表示されるイメージを指定します。
省略した場合には、マウスカーソルが当たり判定の上に来ても、
イメージの変更は行いません。
このイメージを使用する場合には、ImageFile キーで指定した、
通常時のイメージの当たり判定をすべて含む当たり判定が発生するように
イメージを作成しなくてはなりません。
ImageFile キー で指定したイメージでは当たり判定があり、
MouseOverImageFile キーで指定したイメージでは当たり判定がないピクセルが存在すると、
そのピクセル上にマウスカーソルが来た際、
まず ImageFile キーで指定したイメージで当たり判定処理が行われ、
当たり判定ありと判断されて MouseOverImageFile キーで指定したイメージに変化しますが、
変化後のイメージには当たり判定が無いために、すぐに通常イメージに切り替わり、
こちらでまた当たり判定が発生して……と繰り返しになり、
高速にイメージが切り替わる可能性があります。
とはいえ、マウスカーソルが動かない限りは、再度の当たり判定処理は行われませんので、
ごく小さい領域でしたら、当たり判定が重複していなくても問題ないと思われます。
複雑な透明領域を持つ不定形アイコンなどを使用する場合は、
この問題が発生しますので、DisableRegion キーで True を指定し、
表示領域矩形での判定にするか、
α値１のほぼ完全透明の領域を作って、当たり判定だけを発生させるかする必要があります。

・PushedImageFile キー
DynamicImage カテゴリで、Enable = True のアイテムでのみ使用できます。
マウスカーソルが通常イメージまたはマウスオーバーイメージの、
どちらか直前に表示されていたイメージの
当たり判定上にある状態で、マウスの左ボタンが押されたときに
変化するイメージを指定します。
省略した場合には、マウスの左ボタンが押されても
通常イメージが表示されます。
MouseOverImageFile キー または、この PushedImageFile キーの
どちらかを指定しないと、マウスボタンを押したときに
見た目の変化が無いため、押せたのかどうか判別がつきにくくなります。
必ずどちらかは指定するようにお勧めします。
このイメージを使用する場合にも、
MouseOverImageFile キーと同様、イメージの変化による
当たり判定の変化に気をつけなくてはなりません。
こちらの方は、ボタンを離して実際にコマンドが実行される際に、
再度当たり判定を取り直しますので、
当たり判定が重なっていないピクセル上では、
ボタンとして正常に動作させることが出来ません。
形が大幅に変化するイメージを使用する場合には、
DisableRegion キーを使うか、α値１の領域を使用するなどして、
当たり判定を調整してください。

・Range キー
DynamicImage カテゴリの Type = SpectrumAnalyzer のアイテムでのみ使用できます。
スペクトラムアナライザの表示するスペクトルパワーのレンジを変更します。
0.0 より小さい小数値で指定してください。単位は dB です。
キーを省略した場合には、-80.0 (dB) に設定されます。
参考までに、各ビット深度で表現できるダイナミックレンジを記述しておきます。
数値は電卓で計算したものなので、微妙に誤差があると思います。
16bit (Int) -96.3 dB
24bit (Int) -144.5 dB
32bit (Int) -192.7 dB
32bit (Float) -∞ dB (実際は無限大なのではなく、電卓では計算できないくらい大きい)
64bit (Float) -∞ dB (実際は無限大なのではなく、電卓では計算できないくらい大きい)

・Reduction キー
DynamicImage カテゴリの Type = SpectrumAnalyzer のアイテムでのみ使用できます。
スペクトラムアナライザの表示が減衰する割合を表します。
0 〜 255 の範囲の整数で指定します。
このキーが省略された場合には、128 に設定されます。
メーターが下がる量ではなく、フレーム毎にαチャネルが減衰する割合です。
旧 Lilith の、AccumulationEx タイプのスペアナと同様です。
スペアナ上に新しい点をプロットする前に、
すべてのピクセルについて、以前のαチャネルを以下の計算式で減衰させます。
NewAlpha = OldAlpha * Reduction / 256
128 を設定すると、1/2、1/4、1/8……と、不透明度が減衰していくことになります。
この処理は１フレーム毎に行われますので、
実際に減衰して表示が消えるまでにかかる時間は、
リフレッシュレートの設定に依存します。
リフレッシュレートの設定に依存せず、指定した時間で消滅するように改良したかったのですが、
すべてのピクセルについて、最後に点灯した時間を記録しなくてはならず、
さらに記録した時間と現在の時間から、何割減衰しているべきか、ということで
掛け算割り算が必要になり、それだけでαチャネル合成以上の計算量になるので、あきらめました。

・Step キー
DynamicImage カテゴリの Type = SpectrumAnalyzer のアイテムでのみ使用できます。
スペアナの各メーターの太さをピクセル単位で指定します。
1 以上の整数で指定してください。
スペアナの表示サイズが太さの整数倍でないときには、
端数分のピクセルはそ分文細く表示されます。
([表示サイズ ÷ 太さ] (端数切り上げ) 本のメーターが表示されます。)
このキーを省略した場合には、1 に設定されます。

・RefChannel キー
DynamicImage カテゴリの、Type = SpectrumAnalyzer のアイテムでのみ使用できます。
スペアナに表示するチャネルを指定します。
0 以上の整数、または、-1 を指定してください。
-1 を指定した場合には、各メーターは、すべてのチャネルの中の最大値を表示します。
0 以上を指定した場合には、指定した番号のチャネルの結果をそのまま表示します。
一番最初のチャネルが 0 になります。
例えばステレオの場合、0 = 左  1 = 右 チャネルを表し、
5.1ch の場合には、0 = フロントレフト  1 = フロントライト  2 = センター  3 = サブウーファー  4 = バックレフト  5 = バックライト
のそれぞれのチャネルをあらわします。
再生しているファイルのチャネル数以上の数値の指定されたスペアナは、
そのファイルの再生中何も表示されません。
※ uLilith では、スペアナアイテムを複数持つことが出来ますので、
このキーの指定を変えることで、複数のチャネルのスペアナを同時に表示できます。

・VerticalReversed キー
DynamicImage カテゴリの、Type = SpectrumAnalyzer のアイテムでのみ使用できます。
True を指定すると、スペアナの表示が上下逆転します。
キーを省略した場合には、False が指定されたとみなします。

・IsVertical キー
StaticString または、DynamicString カテゴリ、あるいは、
DynamicImage カテゴリの、Type = SeekBar または、VolumeBar、PanControl のアイテムでのみ使用できます。

StaticString または DynamicString カテゴリで使用した場合、縦書きで表示されます。
フォント依存かもしれませんが、通常半角文字は、横に寝てしまいます。
Seekbar または VolumeBar、PanControl で指定した場合、
スライダーを横方向動作ではなく、縦方向動作にします。


・CommandCount キー
Enable = True のアイテム または、CommandContainer カテゴリのアイテムでのみ使用できます。
コマンドシーケンスを使用する場合
(複数のコマンドを順番に処理する場合)に、
コマンドの数を整数で記述します。
このキーを省略した場合、コマンドシーケンスは無効になり、
連番のつかない Command 関連キーが読み込まれます。
このキーで1以上のコマンド数を指定した場合は、
Command1 から始まる、連番つきのコマンド関連キーが読み込まれます。
この動作は、[Preference] フィールドの
InitCommandCount キーを指定したときと同じ動作です。

・Command キー
Enable = True のアイテム または、CommandContainer カテゴリのアイテムでのみ使用できます。
クリックされたときに、実行したいコマンドの名前を記述します。
具体的なコマンドの一覧については、別途 フェイスコマンド仕様書 を参照してください。
CommandCount キーを指定し、
コマンドシーケンスを使用する場合には、
末尾に 1 から始まる連番を付加する必要があります。
CommandCount キーを使用しない場合は、
連番は付加しないでください。

・CommandParamType キー
Enable = True のアイテム または、CommandContainer カテゴリのアイテムでのみ使用できます。
実行するコマンドがパラメータを必要とするものの場合、
パラメータの種類を指定します。
後述の CommandParam キーは、ここの指定に従って内容が解釈されます。
ほとんどのコマンドは特定の種類のパラメータしか受け付けませんが、
複数の種類のパラメータを使いわけられるものもあります。
パラメータの種類を指定していない場合、
または、使用できない種類が指定されている場合、
ほとんどの場合コマンドは何のアクションも起しません。
パラメータの種類は、以下のとおりです。
Int : 整数値 (頭に 0x をつけることで、16 進数指定も可能 0xFF2244AA など)
String : 文字列
Double : 小数値
Bool : True または False (Enable / Disable または、0 / 1 でも認識します)
CommandCount キーを指定し、
コマンドシーケンスを使用する場合には、
末尾に 1 から始まる連番を付加する必要があります。
CommandCount キーを使用しない場合は、
連番は付加しないでください。

・CommandParam キー
Enable = True のアイテム または、CommandContainer カテゴリのアイテムでのみ使用できます。
実行するコマンドのパラメータの内容を指定します。
CommandParamType キーで指定した内容に従って解釈されます。
CommandCount キーを指定し、
コマンドシーケンスを使用する場合には、
末尾に 1 から始まる連番を付加する必要があります。
CommandCount キーを使用しない場合は、
連番は付加しないでください。

・CommandTargetWindow キー
Enable = True のアイテム または、CommandContainer カテゴリのアイテムでのみ使用できます。
コマンドを実行するサブフェイス名を指定します。
キーを省略するか、空のキーを作成した場合、
自分自身に対してコマンドを送信します (従来の動作)
CommandCount キーを指定し、
コマンドシーケンスを使用する場合には、
末尾に 1 から始まる連番を付加する必要があります。
CommandCount キーを使用しない場合は、
連番は付加しないでください。

・CommandTargetPlugin キー
Enable = True のアイテム または、CommandContainer カテゴリのアイテムでのみ使用できます。
コマンドを送信するプラグインを指定します。
キーを省略するか、空のキーを作成した場合、
uLilith 本体がコマンドを処理します (従来の動作)
CommandCount キーを指定し、
コマンドシーケンスを使用する場合には、
末尾に 1 から始まる連番を付加する必要があります。
CommandCount キーを使用しない場合は、
連番は付加しないでください。
プラグインの識別は、プラグインのファイル名部分でのみ行われます。
例： SampleAlbumJacket.gpi
違うパスに同名のファイル名のプラグインがあり、両方が有効の場合、
先に見つかった方に送られます。
現時点では、このときの CommandParamType は、String でなければなりません。
それ以外を指定した場合、空の文字列がプラグインに送られます。
このコマンドを実際に使用するには、コマンド受信に対応したプラグインが必要です。
また、指定すべきコマンドラインの内容は、プラグイン毎に異なります。
使用したいプラグインのドキュメントを参照してください。
このキーでプラグインを指定した場合も、CommandTargetWindow は有効で、
そのサブフェイスがプラグインに対して指名されます。


★ 2008/10/13 追加

・StringByImage キー
StaticString / DynamicString カテゴリでのみ使用できます。
True または、False を指定します。
True を指定すると、フォントによる描画ではなく、
後述の StringImageFile キー で指定した画像での
文字描画が行われるようになります。
True のときには、必ず StringImageFile キーで、
有効なイメージを指定してください。
True が指定されると、すべての文字属性
(色/影/縁取り/フォント/サイズ/装飾など)が
無視されます。

・StringImageFile キー
StaticString / DynamicString カテゴリで、StringByImage = True のアイテムでのみ使用できます。
フォントの代わりに描画される文字のイメージを指定します。
このイメージファイルには、次の 16 文字が、記述した順番で固定幅で描かれている必要があります。
0123456789:.,-+%

※ 2009/01/19
１６文字目のアンダースコアが、パーセント記号に変更されました。
アンダースコアが使用される場面はなかったはずなので、
既存のフェイスの修正は必要ないはずです。
文字の数や種類などは、今後変更される可能性があります。
文字の高さは、指定したイメージの高さがそのまま用いられます。
文字の幅は、指定したイメージの幅÷16 が用いられます。
この一覧にない文字が来た場合、文字幅と同じ幅の空白が描画されます。
自動的に文字部分以外の透過を行うことはありませんので、
背景と同じ色で塗りつぶした上に文字を描くか、
αチャネルを設定する必要があります。

★ 2008/10/16 追加

・TextColorNormal キー
PlayList カテゴリでのみ使用できます。
通常状態のアイテムの文字色を指定します。
ABGR でカラーを設定しますが、現在のところ、αは適用されません。

・BackColorOdd キー
PlayList カテゴリでのみ使用できます。
通常状態のアイテムのうち、奇数行の背景色を指定します。
ABGR でカラーを設定しますが、現在のところ、αは適用されません。
また、空白行の背景にも使用されます。

・BackColorEven キー
PlayList カテゴリでのみ使用できます。
通常状態のアイテムのうち、偶数行の背景色を指定します。
ABGR でカラーを設定しますが、現在のところ、αは適用されません。

・TextColorPlaying
PlayList カテゴリでのみ使用できます。
再生カーソルがある位置のアイテムの文字色を指定します。
リスト上にないアイテムを再生中には、最後に再生されたアイテムがこの色で表示されます。
ABGR でカラーを設定しますが、現在のところ、αは適用されません。

・BackColorPlaying
PlayList カテゴリでのみ使用できます。
再生カーソルがある位置のアイテムの背景色を指定します。
リスト上にないアイテムを再生中には、最後に再生されたアイテムがこの色で表示されます。
ABGR でカラーを設定しますが、現在のところ、αは適用されません。

・TextColorSelected
PlayList カテゴリでのみ使用できます。
現在選択されているアイテムの文字色を指定します。
ABGR でカラーを設定しますが、現在のところ、αは適用されません。

・BackColorSelected
PlayList カテゴリでのみ使用できます。
現在選択されているアイテムの背景色を指定します。
ABGR でカラーを設定しますが、現在のところ、αは適用されません。

・FileNameWidth / FilePathWidth / TitleWidth / ArtistWidth /
AlbumWidth / DateWidth / TrackNumberWidth / GenreWidth /
CommentWidth / PlayTimeWidth / NumberWidth キー
すべて、PlayList カテゴリでのみ使用できます。
それぞれ、対応するカラムの幅をピクセル単位で指定します。
すべてを -1 にするか、省略をすると、カラム幅は変更されません。
この変更はドッキングモード中のみ有効であり、
ドッキングモードでないフェイス上から独立プレイリストを呼び出した場合、
ドッキングモードになる前の幅で表示されます。
NumberWidth は、No. と表示されているカラムの幅です。

・FileNameOrder / FilePathOrder / TitleOrder / ArtistOrder /
AlbumOrder / DateOrder / TrackNumberOrder / GenreOrder /
CommentOrder / PlayTimeOrder / NumberOrder キー
すべて、PlayList カテゴリでのみ使用できます。
それぞれ、対応するカラムの順番を整数値で指定します。
0 〜 10 までの数値で指定します。
カラムの順番を変更する場合には、すべてのキーを作成し、
重複する番号がないように指定しなければなりません。
いずれか、あるいはすべてのキーを省略した場合、
重複する数値や、範囲外の数値が合った場合は、
カラムの順番は変更されません。
この変更は、ドッキングモード中のみ有効であり、
ドッキングモードでないフェイス上から独立プレイリストを呼び出した場合、
ドッキングモードになる前の幅で表示されます。
NumberOrder は、No. と表示されているカラムの順番です。

★ 2008/10/17 追加

・HeaderColorText キー
PlayList カテゴリでのみ使用できます。
カラムヘッダーの文字色を変更します。
ABGR でカラーを設定しますが、現在のところ、αは適用されません。

・HeaderColorBackNormal
PlayList カテゴリでのみ使用できます。
カラムヘッダーの通常時の背景色を変更します。
ABGR でカラーを設定しますが、現在のところ、αは適用されません。

・HeaderColorBackSelected
PlayList カテゴリでのみ使用できます。
カラムヘッダーの押下時の背景色を変更します。
ABGR でカラーを設定しますが、現在のところ、αは適用されません。

・HeaderColorBackMouseOver
PlayList カテゴリでのみ使用できます。
カラムヘッダーの上にマウスが来たときの背景色を変更します。
ABGR でカラーを設定しますが、現在のところ、αは適用されません。

・HeaderColorHighlight
PlayList カテゴリでのみ使用できます。
カラムヘッダーのハイライト色を変更します。
3D 外観部分に使用されます。
ABGR でカラーを設定しますが、現在のところ、αは適用されません。

・HeaderColorShadow
PlayList カテゴリでのみ使用できます。
カラムヘッダーのシャドウ色を変更します。
3D 外観部分に使用されます。
ABGR でカラーを設定しますが、現在のところ、αは適用されません。

★ 2008/10/21 追加

・IsReversedSlider キー
DynamicImage カテゴリの、Type = SeekBar または、VolumeBar、PanControl のアイテムでのみ使用できます。
スライダーの動作方向を、逆転します。
True が指定されると、横方向では右が小さく左が大きい値、縦方向では下が小さく上が大きい値を示すようになります。
False を指定または、このキーを省略すると、
横方向では左が小さく右が大きい値、縦方向では上が小さく、下が大きい値を示すようになります。

・TipHint キー
BackImage / PlayList 以外のすべてのカテゴリのアイテムでのみ使用できます。
マウスカーソルがアイテム上で一定時間停止した際に表示する、
チップヒントの内容を指定します。
任意の文字列で指定してください。
旧 Lilith と異なり、領域が重なっているアイテムでも、
きちんと区別して表示できます。
どのチップヒントを表示するかは、
ボタンの押下判定と同様に、リージョンまたは表示領域矩形による
判定が行われます。
ボタンの押下判定では、優先順位に従って表アイテムを探し、
最初に見つかった Enable = True かつ非表示でないアイテムを対象としますが、
TipHint の判定では、最初に見つかった TipHint が空でなく、
かつ非表示でないアイテムを対象とします。
従って、Enable = True のアイテムが上に存在し、
実際にはそちらがクリックされるとしても、
TipHint が指定されていない場合、その裏側に隠れている
TipHint の指定されたアイテムのヒントを表示します。
なお、uLilith では、旧 Lilith と異なり、
特定のフィールド名やコマンドのアイテムに、
自動的にチップヒントを設定することはありません。

★ 2008/10/23 追加

・DisableDirectTrack
DynamicImage カテゴリの、Type = SeekBar または、VolumeBar、PanControl のアイテムでのみ使用できます。
True または False を指定してください。
True を指定すると、スライダーの領域内で、イメージ以外の部分をクリックしたときに、
その位置にダイレクトに移動する機能を無効にします。
このフラグが指定されている場合、つまみ部分のドラッグでしか、
スライダーを移動することは出来ません。

・SliderAlwaysDrag
DynamicImage カテゴリの、Type = SeekBar または、VolumeBar、PanControl のアイテムでのみ使用できます。
Ture または False で指定します。
True が指定されると、表示領域内のどこをクリックしても、ドラッグしか出来ないように動作を変更します。
また、DisableRegion と DisableDirectTrack キーが無視されます。
このフラグが True であると、通常のスライダーに比べて、
カーソルが動く範囲が、スライダーのつまみ画像領域分、左右に拡大されます。
表示領域矩形とマスク画像をうまく利用すると、進行バー形式のスライダーが作成できます。


★ 2008/10/25 追加

・FileNameLabel / FilePathLabel / TitleLabel / ArtistLabel /
AlbumLabel / DateLabel / TrackNumberLabel / GenreLabel /
CommentLabel / PlayTimeLabel / NumberLabel キー
すべて、PlayList カテゴリでのみ使用できます。
それぞれ、対応するカラムのラベル文字列を指定します。
すべてのキーを作成する必要はありません。
省略されたキーは、標準の設定のまま表示されます。
この変更は、ドッキングモード中のみ有効であり、
ドッキングモードでないフェイス上から独立プレイリストを呼び出した場合、
ドッキングモードになる前のラベルで表示されます。
NumberLabel は、No. と表示されているカラムのラベルです。

・FormatString キー
Type = FormatedString のアイテムでのみ使用できます。
実際に表示する内容の書式を指定します。
指定する書式の内容は、本体のタイトル文字列や、曲名お知らせなどと同様のものです。

・OriginItem キー
すべてのアイテムで使用できます。
PosX / PosY キーで示されるアイテムの座標を、
指定された名前のアイテムの X,Y 座標を基準とした、
相対座標として扱います。
基準とするアイテムのフィールド名を記述してください。
複数のアイテムをグループ化し、
その中の１つを基準アイテムとして他を相対座標で記述することで、
グループ全体の座標調節を、
基準アイテムの座標を変えるだけで行えるようになります。
プレリスト部分のサイズだけ異なる複数のフェイスを
作成する際など、複数アイテムをまとめて移動したい場合に大変便利です。

・SubCategory キー
Category = PluginFrameBuffer および、PluginEffectArea のアイテムでのみ使用できます。
汎用プラグイン側がアイテムの目的を識別するためのキーです。
プラグイン側で指定されているサブカテゴリ名を、
文字列で記述してください。
サブカテゴリ対応プラグインは、
対応サブカテゴリのアイテム一覧を取得し、
それぞれのアイテムに対して処理を行います。

・EnableDockingMode
Category = PlayList のアイテムでのみ使用できます。
True または、False を指定します。
デフォルトは True で、今までの動作です。
False を指定すると、ドッキングモード用の設定だけ読み出し、
実際にはドッキングモードに移行しません。
あとから、ModifyPlayList で、ドッキングモードにするためのキーです。

・IsProgressBar キー
DynamicImage カテゴリの、Type = SeekBar または、VolumeBar、PanControl のアイテムでのみ使用できます。
True または、Fase を指定します。
True を指定すると、進行バー形式 (ゲージ式) で表示するようにします。
画像は、一般的なスライダーと異なり、
表示領域と同じ幅、高さのイメージが必要です。
この画像のうち、左端から現在位置までの位置 (横方向/非反転の場合)
の部分だけ表示されます。
このキーを使用すると、暗黙的に SliderAlwaysDrag キーが、True になります。
(SliderAlwaysDrag が True でないと、少しでも進行して
バーが伸びてこないと、掴む場所がなくてドラッグできなくなるため)
また、SliderAlwaysDrag = True となる副作用で、
ダイレクトトラック (クリック位置に即座に移動) も自動的に無効となります。
このフラグが True であると、通常のスライダーに比べて、
カーソルが動く範囲が、表示サイズ分、左右に拡大されます。


・LinkedItem キー
DynamicImage カテゴリで Enable = True のアイテムでのみ使用できます。
アイテムの状態が変化したときに、連動させるアイテムのフィールド名を指定します。
マウスオーバー時に、離れた場所にチップヒント的なイメージを表示する際などに有用です。
フィールド名は複数指定することが可能です。
フィールド名の区切りには、半角スペースと半角カンマが使用できます。
フィールド名に記号が含まれている場合、うまく動かない場合がありますので、注意してください。
このキーを記述するアイテムは、Enable = True である必要がありますが、
状態を連動させるアイテムは、Enable = False でもかまいません。
なお、カテゴリは DynamicImage でないといけません。
現在連動する状態変化は、ボタンの Normal / MouseOver / Pushed のみです。
それ以外には、アイテム単体で変化する状態はありませんので。

・AlphaChannelFile キー
DynamicString または、DynamicImage カテゴリでのみ使用できます。
αチャネル生成元として使用するイメージファイルを相対パスで指定してください。
指定したファイルは、グレイスケールに変換された後、
白い部分を不透明、黒い部分を透明としてαチャネルに使用します。
このキーを使用すると、指定した領域全体に、指定したファイルから作成したαチャネルを適用します。
左右がフェードアウトする文字列などの表示にご利用ください。
DynamicImage カテゴリでは、基本的には元画像を編集すればよいため、
スライダー系アイテムなど、移動するアイテムでのみご使用ください。

※ 2010/01/29 より、表示サイズとここで指定しているイメージファイルのサイズが異なる場合には、
自動的にαチャネルイメージを拡大縮小して適用するように修正されました。

・UseAsyncCommand キー
クリックされたときに、コマンドを即座に発行せずに、専用スレッドを作成して、
非同期実行するようにします。
True または False を指定してください。
True を指定すると、コマンドシーケンス中で、Wait コマンドが使用できるようになります。
これにより、力技で擬似アニメーションをして切り替わるなど、
フェイス状態の変更方法にバリエーションが増えます。
このキーを指定すると、コマンドシーケンスの実行を終えるまで、
該当ボタンはクリックしても反応しなくなります。
複数スレッド生成されてそれぞれが同じシーケンスを処理すると、動作がおかしくなるからです。
なお、True を指定した場合、以下のフェイスコマンドは無視されます。
Exit / Minimize / ChangeFace / ShowOpenFace / ShowFaceSelector
これらのコマンドは、実行後にフェイスをアンロードする可能性があるため、
正しく実行できないからです。

・IsHided キー
初期状態で非表示にします。
StaticString/DynamicString/StaticImage/DynamicImage/PluginFrameBuffer カテゴリでのみ使用できます。
このキーの追加により、初期非表示にするためだけに InitCommand で HideItem を使用する必要がなくなりました。

・PluginFileName キー
PluginEffectArea カテゴリでのみ使用可能です。
このキーでは、エフェクト処理をすべきプラグインのファイル名を指定します。
SampleMosaicEffect.gpi など、拡張子までちゃんとつけてください。

・DisablePartialUpdate キー
StaticString/DynamicString/StaticImage/DynamicImage/PluginFrameBuffer/PluginEffectArea カテゴリでのみ使用可能です。
True を指定すると、このエリア内では、差分描画が行われなくなります。
このエリア内で 1 ドットでも変更する必要がある場合には、
エリア全体を再描画するようになります。
エフェクトプラグインの処理内容によっては、
このキーを True を指定しないと、正しい結果が得られない場合があります。
使用するプラグインの説明書に従って、必要な場合のみ True にしてください。
必要でない場合に True にしても、正しい描画結果は得られますが、
処理が無駄に重くなります。
また、拡大縮小表示されるアイテムがプレイリスト以外の他のアイテムと重なりを持つ場合、
差分更新により正しい表示にならない場合があります。
BottomRightAnchor を使用するアイテムなど、
常時拡大/縮小状態で表示されるアイテムで、
他のアイテムと重なりを持つ場合に表示の乱れが気になる場合、このキーを True にしてください。
False を指定すると、通常通り差分描画が行われます。
このキーを省略した場合には、False が指定されたとみなされます。
※ 2010/01/16 より、サイズ変更に対応しました

・BackgroundColor キー
StaticString/DynamicString/StaticImage/DynamicImage カテゴリでのみ使用できます。
画像や文字の背景の描画前に、下地を指定した色で塗りつぶします。
キーを省略した際には、0x00000000 (完全透明) が指定されたとみなされます。

※ クリアタイプで文字列を表示する場合、例え α値 0 の色を指定したとしても、
レンダリング結果に影響を及ぼすようです。 (Gdiplus の仕様というか不具合)
クリアタイプでの表示を意識する場合には、
文字の背景に来る画像などと同系統の色を指定しておくと、きれいに見えるらしいです。

・TilingMethod
StaticImage/DymamicImage カテゴリでのみ使用できます。
表示領域よりも画像の方が小さい場合、
縦方向または横方向、あるいはその両方に繰り返すことで、
画像を並べて表示します。
Both を指定すると、縦横に繰り返します。Align キーの内容は無視されます。
Horizontal を指定すると、横方向にのみ繰り返します。Align キーの内容は、縦方向のみ適用されます。
Vertical を指定すると、縦方向にのみ繰り返します。Align キーの内容は、横方向のみ適用されます。
Scaling を指定すると、表示領域全域にフィットするように拡大縮小されます。Aling キーの内容は無視されます。
KeepAspectScaling を指定すると、表示領域内で最も大きくなるように、縦横比を維持したまま拡大縮小します。
Align キーの内容は無視され、常に中央配置になります。
None を指定すると、繰り返しを行いません。
キーを省略した場合は、None が指定されたとみなされます。
※ スライダー系アイテムには使用できません。

・TopLeftAnchor
BackImage を除く、すべてのカテゴリで使用できます。
アイテムの表示領域の左上座標 (PosX/PosY に相当) を
指定した原点からの相対座標に固定します。
このキーを指定した場合、該当アイテムでは、
GlobalOffset キー / OriginItem キーは無視されます。
また、フェイスサイズの変更により自動的に座標が変わるので、
フェイスコマンドによる座標変更は行わないでください。
アンカーは、半角カンマや半角スペースで区切って、以下の書式で指定します。

原点, 相対X座標, 相対Y座標

原点には、None / TopLeft / TopCenter / TopRight
CenterLeft / Center / CenterRight
BottomLeft / BottomCenter / BottomRight
のいずれかを指定します。
None を指定した場合、フェイスサイズを変更しても
座標の自動補正は行われません。(従来の動作)
キーを省略した場合、None が指定されたとみなされます。

・BottomRightAnchor
BackImage を除く、すべてのカテゴリで使用できます。
アイテムの表示領域の右下座標 (PosX + Width / PosY + Height に相当) を
指定した原点からの相対座標に固定し、自動的に Width と Height を調整します。
このキーを指定した場合、該当アイテムでは、
Width キー / Height キーは無視されます。
また、フェイスサイズの変更により自動的にサイズが変わるので、
フェイスコマンドによるサイズ変更は行わないでください。
アンカーの書式は、TopLeftAnchor と同じです。
キーを省略した場合、None が指定されたとみなされます。


・PushedTextColor キー
DynamicString カテゴリでのみ使用できます。
マウスボタンを押しているときに使用される TextColor です。
指定の方法については、TextColor キーを参照してください。
PushedTextColor / PushedShadowColor / PushedBackgroundColor のいずれかが指定されている場合のみ、
マウスボタンを押したときの色の変化が起こります。

・PushedShadowColor キー
DynamicString カテゴリでのみ使用できます。
マウスボタンを押しているときに使用される ShadowColor です。
指定の方法については、ShadowColor キーを参照してください。
PushedTextColor / PushedShadowColor / PushedBackgroundColor のいずれかが指定されている場合のみ、
マウスボタンを押したときの色の変化が起こります。

・PushedBackgroundColor キー
DynamicString/DynamicImage カテゴリでのみ使用できます。
マウスボタンを押しているときに使用される BackgroundColor です。
指定の方法については、BackgroundColor キーを参照してください。
PushedTextColor / PushedShadowColor / PushedBackgroundColor のいずれかが指定されている場合のみ、
マウスボタンを押したときの色の変化が起こります。

・MouseOverTextColor キー
DynamicString カテゴリでのみ使用できます。
マウスカーソルが重なっているときに使用される TextColor です。
指定の方法については、TextColor キーを参照してください。
MouseOverTextColor / MouseOverShadowColor / MouseOverBackgroundColor のいずれかが指定されている場合のみ、
マウスオーバーでの色の変化が起こります。

・MouseOverShadowColor キー
DynamicString カテゴリでのみ使用できます。
マウスカーソルが重なっているときに使用される ShadowColor です。
指定の方法については、ShadowColor キーを参照してください。
MouseOverTextColor / MouseOverShadowColor / MouseOverBackgroundColor のいずれかが指定されている場合のみ、
マウスオーバーでの色の変化が起こります。

・MouseOverBackgroundColor キー
DynamicString/DynamicImage カテゴリでのみ使用できます。
マウスカーソルが重なっているときに使用される BackgroundColor です。
指定の方法については、BackgroundColor キーを参照してください。
MouseOverTextColor / MouseOverShadowColor / MouseOverBackgroundColor のいずれかが指定されている場合のみ、
マウスオーバーでの色の変化が起こります。

・PushedStringImageFile キー
DynamicString カテゴリで、StringByImage = True のアイテムでのみ使用できます。
マウスボタンを押しているときに使用される StringImageFile です。
省略した場合、マウスボタン押下時には StringImageFile キーで指定した画像が使用されます。
※ 2010/01/19 現在、実装の都合上、StringImageFile キーで指定した画像と同じ高さ/幅である必要があります。

・MouseOverStringImageFile キー
DynamicString カテゴリで、StringByImage = True のアイテムでのみ使用できます。
マウスカーソルが重なっているときに使用される StringImageFile です。
省略した場合、マウスオーバー時には StringImageFile キーで指定した画像が使用されます。
※ 2010/01/19 現在、実装の都合上、StringImageFile キーで指定した画像と同じ高さ/幅である必要があります。

・FrameBufferWidth
Category = PluginFrameBuffer のアイテムでのみ使用できます。
プラグインが実際に生成する画像の幅を指定します。
ここで指定した幅は、DynamicImage などの ImageFile キーで指定した
画像の幅と同等の意味を持ち、アライメントの調整や、
スライダーのドラッグ範囲の計算などに用いられます。
キーを省略した場合には、Width と同じ値が用いられます。
PluginFrameBuffer で、スライダー系アイテムを使用する際には、必須のキーとなります。

・FrameBufferHeight
Category = PluginFrameBuffer のアイテムでのみ使用できます。
プラグインが実際に生成する画像の高さ指定します。
ここで指定した高さは、DynamicImage などの ImageFile キーで指定した
画像の高さと同等の意味を持ち、アライメントの調整や、
スライダーのドラッグ範囲の計算などに用いられます。
キーを省略した場合には、Height と同じ値が用いられます。
PluginFrameBuffer で、スライダー系アイテムを使用する際には、必須のキーとなります。

・MouseCursor
Category = StaticString/DynamicString/StaticImage/DynamicImage のアイテムでのみ使用できます。
Enbale = True なアイテムのときに、マウスオーバーで変化するカーソルを指定します。
Auto/Normal/Finger/TopLeftResizer/TopRightResizer/BottomLeftResizer/BottomRightResizer
Arrow / IBeam / Wait / Cross / UpArrow / Size / SizeNWSE
SizeNESW / SizeWE / SizeNS / No / Hand / AppStarting / Help
のいずれかの組み込み済みカーソルか、
フェイス定義ファイルからの相対パスで、*.cur 形式の任意のカーソルファイルを指定することができます。
キーを省略した場合には、Auto が指定されたとみなします。
Auto のときには、クリック可能アイテムでは指先カーソルに、WindowResizer では、４隅に応じたサイズ変更カーソルに切り替わります。
