レイアウトファイルのフォーマット
概要
ここでは、システムフレームを記述するためのレイアウトファイルのフォーマットを解説します。
レイアウトファイルのフォーマットは、対象専用の部分と汎用の部分から成ります。 専用の部分とは、例えばセーブ画面専用の書式等を意味します。
一般に次の手順で定義します。
1.利用するレイヤーを指定する
2.各レイヤーを作成する
3.あるなら、各レイヤーに関連づける選択アイテムを作成する
4.各選択アイテムの動作を定義する
コメント
行頭に;を書くとコメント行になります。
行末にコメントを添付したい場合は、行の最後にTABを挿入した後、コメントを記述して下さい。 慣例的に;を挿入しますが、実際の意味はありません。
; コメント
layer.852.item.10.action=58, 10, 7, 0, 0, NULL [TAB]; 慣例的なコメント。TABの後ろにセミコロンを書いている。
layer.852.item.11.action=58, 11, 3, 0, 0, NULL [TAB] 実はこれ(セミコロンなし)でも同じこと。
ページ設定
pages=N
ページ数を設定します。Nがこのオブジェクトが使うページ数で、この定義を省略すると1になります。
例:pages=2
作成されたページは、actionID=99 で前後に移動することが出来ます。 複数ページは主にconfigやhelpの設定に使われ、ゲーム中の特殊な選択肢に使われることは希です。 なお、自前でシナリオ内にループと処理を書く場合、inputLayersで指定した値の制限は自動的に実行されません。 明示的に実行して下さい。
複数ページを指定した場合、inputLayerによる操作は、選択実行時に行われます。 その場合、layout表示コマンド時のオプションの「選択レイヤー以外への入力を禁止する」はチェックしないで下さい。 2重に禁止され、最初のページ以外の入力が受け付けられなくなります。
page.dir=[0 or 1]
ページ送りをするとき、どの方向に送るのかを決定します。0だと横方向に、1だと縦方向につながっていると見なされます。
複数ページがない場合は省略できます。
例:page.dir=1
ページは縦につながっていると見なされます。
page.[PAGE].layers=LayersList
[PAGE]ページに属しているレイヤーを列挙します。いくつでも列挙できます。
[PAGE]は、0〜pagesで指定した値-1の範囲を取ります。
例:page.0.layers=600,602,605-608
page.[PAGE].inputLayers=lidStart-lidEnd[,lidStart1-lidEnd1,lidStart2-lidEnd2,lidStart3-lidEnd3]
そのページが有効になったとき入力を許可するレイヤーの範囲を記述します。 lidStartとlidEndは両方とも許可するレイヤーに含まれます。範囲は4つまで指定できますが、 同じレイヤーを含む範囲を指定してはいけません。
page.0.inputLayers=600-603 とすると、ページ0が表示されたとき 600,601,602,603 以外への入力が禁止されます。
page.0.inputLayers=600-601,603-603 とすると、ページ0が表示されたとき 600,601,603 以外への入力が禁止されます。
page.[PAGE].locate=value
初期化時(最初に画面が作成される時)に、[PAGE]ページが画面内に作成されるかどうかを指定します。
複数ページを一度に作成する場合、ページ0以外は画面外への作成を指定します。
value==0の時、初期化時、指定ページは現在のビュー(0,0)に配置されます。
value==1の時、初期化時、指定ページは(20000,20000)に配置されます。
page.0.locate=0
page.1.locate=1
レイヤーの配置と作成
次の定義を利用して外部から自由にレイヤーを配置することが出来ます。
利用するレイヤーIDの定義 / 各レイヤーの作成定義 / 各レイヤーのパレット設定
layers=...
使用するレイヤーを","で区切って列挙します。"-"を利用して範囲を表記できます。 仮想レイヤーIDで表記して下さい。
例:layers=600,602,605-608
layer.[LID].create=...
レイヤーを定義します。
[LID]部分には、実際に定義するレイヤーのIDが入ります。 これは、layers=で列挙されたレイヤーIDでなければなりません。それ以外は無視されます。
例:layer.600.create=...
パラメータ部分は、以下の5種類のモードを記述できます。
=0, dx, dy, cgid, fade, trans, flags, dwParam, sx, sy, sw, sh
=1, dx, dy, filename, fade, trans, flags, dwParam, sx, sy, sw, sh
=2, dx, dy, dw, dh, fillPaletteNo, fillColor, fade, trans, flags, dwParam
=3, dx, dy, cgid_expression, createCondition, fade, trans, flags, dwParam, sx, sy, sw, sh
=4, dx, dy, dw, dh, fillPaletteNo, fillColor, fade, trans, flags, dwParam, paName,

モード0および1は、対象がファイル名か、CGIDかの違いだけで後は同じです。
dx, dy は、ビュー相対座標でレイヤーを作成する位置を指定します。
cgid, filename は、それぞれ、レイヤーを作成するのに使用する画像データを指定します。
cgid_expressionには、式が記述でき、その式が示す値がcgidとして利用されます。
createCondition には作られる条件を記述する。常に作られる場合は、true。
fade は、レイヤーの不透明度をretouch標準形式(0-16)で指定します。
trans は、レイヤーの透明色をretouch標準透明色指定(-2,-1,0-255)で指定します。
flags   解説
0x00000001   1:17段階α利用
0x00000002   1:256段階α利用
0x00000004   1:CLIPPERを無視する
0x00000008   0
     
0x00000010   1:加算合成レイヤーにする
0x00000020   1:rankmask 17 レイヤーにする
0x00000040   1:rankmask 256 レイヤーにする
0x00000080   1:alpha17or256の時有効。通常作成されたαは0でfillされているが、これが1だと16or255でfillされる
     
0x00000100   must be 0. ref.1:alpha解除
0x00000200   0
0x00000400   0
0x00000800   0
     
0x00001000   must be 0. ref.1:加算合成解除
0x00002000   must be 0. ref.1:rankmask解除
0x00004000   0
0x00008000   0
     
0x00FF0000   must be 0. sketch が予約している
     
     
     
     
     
     
     
     
     
     
     
     
flags は、00000000_00000000_00000000_00000000 |||||||| |||||||| |||||||| |||||||+- 1:17段階α利用 |||||||| |||||||| |||||||| ||||||+-- 1:256段階α利用 |||||||| |||||||| |||||||| |||||+--- 1:CLIPPERを無視する |||||||| |||||||| |||||||| ||||+---- 0 |||||||| |||||||| |||||||| |||| |||||||| |||||||| |||||||| |||+----- 1:加算合成レイヤーにする |||||||| |||||||| |||||||| ||+------ 1:rankmask 17 レイヤーにする |||||||| |||||||| |||||||| |+------- 1:rankmask 256 レイヤーにする |||||||| |||||||| |||||||| +-------- 1:alpha17or256の時有効。通常作成されたαは0でfillされているが、これが1だと16or255でfillされる |||||||| |||||||| |||||||| |||||||| |||||||| |||||||+---------- must be 0. ref.1:alpha解除 |||||||| |||||||| ||||||+----------- 0 |||||||| |||||||| |||||+------------ 0 |||||||| |||||||| ||||+------------- 0 |||||||| |||||||| |||| |||||||| |||||||| |||+-------------- must be 0. ref.1:加算合成解除 |||||||| |||||||| ||+--------------- must be 0. ref.1:rankmask解除 |||||||| |||||||| |+---------------- 0 |||||||| |||||||| +----------------- 0 |||||||| |||||||| |||||||| ++++++++------------------- must be 0. sketch が予約している。 |||||||| |||||||+---------------------------- 1:モノトーン dwParamにRRGGBB形式でハイライト指定。 ||||||+----------------------------- 1:左右反転 |||||+------------------------------ 1:上下反転 ||||+------------------------------- 0 |||| |||+-------------------------------- 1:入力透過 ||+---------------------------------- 1:フルカラー 0x20000000 +++--------------------------------- 000 0x2000 0000 dwParam は、flagsでモノトーンが指定されたときのみ RRGGBB形式でハイライト指定。それ以外は0。 sx,sy は、ソース画像をクリップする場合の始点。指定なしはどちらも0。 sw,sh は、ソース画像をクリップする場合の領域。両方0の場合、作成されるレイヤーはクリップなしで画像データと同じ大きさになる。 モード2は、領域を指定してレイヤーを作成する場合に使用します。下記以外のパラメータはモード0/1と同じです。 dw,dh は、作成するレイヤーの大きさをピクセル数で指定します。 fillPaletteNo は、作成したレイヤーを塗りつぶすパレット番号を指定します。 fillColor は、fillPaletteNoに定義されている実際の色をRRGGBB形式で記述します。 例:layer.852.create=0,234, 72,300,16,-2,0,0,0,0,0,0 layer.853.create=2,39,72,632,500,0,0x00FF00,16,0,0x10000000,0 layer.854.create=1,216, 73,res\g\sy\01\01_060.gyu,16,-2,0x10000000,0,0,0,0,0
layers=...
layers=...
------------------------------------------------------------------- ------------------------------------------------------------------- layer.[LID].create=... ------------------------------------------------------------------- layer.[LID].palette=... レイヤーに設定するパレットを列挙します。 [LID]部分には、実際に定義するレイヤーのIDが入ります。 これは、layers=で列挙されたレイヤーIDでなければなりません。それ以外は無視されます。 例:layer.600.palette=... 指定したいパレット番号を","で区切って列挙します。"-"を利用して範囲を表記できます。 例:layer.600.palette=0-2 ------------------------------------------------------------------- layer.[LID].palette.[paletteId]=... [LID]で指定したレイヤーの、[paletteId]で指定したパレット番号に色をRRGGBB形式で指定します。 [LID]は、layers=で列挙されたレイヤーIDでなければなりません。 [paletteId]は、layer.[LID].palette=で列挙されたパレット番号でなければなりません。 いずれも、それ以外は無視されます。 例:layer.600.palette=0-2 layer.600.palette.0=0x00FF00 ;0xRRGGBB layer.600.palette.1=0xFFFFFF layer.600.palette.2=0x000000