概要
ここでは、システムフレームを記述するためのレイアウトファイルのフォーマットを解説します。
レイアウトファイルのフォーマットは、対象専用の部分と汎用の部分から成ります。 専用の部分とは、例えばセーブ画面専用の書式等を意味します。
レイアウトファイルのフォーマットは、対象専用の部分と汎用の部分から成ります。 専用の部分とは、例えばセーブ画面専用の書式等を意味します。
一般に次の手順で定義します。
1.利用するレイヤーを指定する
2.各レイヤーを作成する
3.あるなら、各レイヤーに関連づける選択アイテムを作成する
4.各選択アイテムの動作を定義する
コメント
行頭に;を書くとコメント行になります。
行末にコメントを添付したい場合は、行の最後にTABを挿入した後、コメントを記述して下さい。 慣例的に;を挿入しますが、実際の意味はありません。
行末にコメントを添付したい場合は、行の最後に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になります。
複数ページを指定した場合、inputLayerによる操作は、選択実行時に行われます。 その場合、layout表示コマンド時のオプションの「選択レイヤー以外への入力を禁止する」はチェックしないで下さい。 2重に禁止され、最初のページ以外の入力が受け付けられなくなります。
例: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〜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)に配置されます。
複数ページを一度に作成する場合、ページ0以外は画面外への作成を指定します。
value==0の時、初期化時、指定ページは現在のビュー(0,0)に配置されます。
value==1の時、初期化時、指定ページは(20000,20000)に配置されます。
page.0.locate=0
page.1.locate=1
レイヤーの配置と作成
次の定義を利用して外部から自由にレイヤーを配置することが出来ます。
利用するレイヤーIDの定義 / 各レイヤーの作成定義 / 各レイヤーのパレット設定
利用するレイヤーIDの定義 / 各レイヤーの作成定義 / 各レイヤーのパレット設定
layers=...
使用するレイヤーを","で区切って列挙します。"-"を利用して範囲を表記できます。
仮想レイヤーIDで表記して下さい。
例:layers=600,602,605-608
layer.[LID].create=...
レイヤーを定義します。
[LID]部分には、実際に定義するレイヤーのIDが入ります。 これは、layers=で列挙されたレイヤーIDでなければなりません。それ以外は無視されます。
=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 は、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
[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 が予約している | |
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