概要
ここではらのべえのタイトル画面をオリジナルなものに差し替える方法を解説します。
らのべえの「標準800x600」のテーマのタイトル画面をサンプルとして使用します。
らのべえの「標準800x600」のテーマのタイトル画面をサンプルとして使用します。
DL
チュートリアル:標準800x600のタイトル画面におまけボタンを追加してみる
タイトル通りです。詳しくはムービーをご覧下さい。ここでは、title.rnfを詳しく解説しておきます。
以下、範囲記述といった場合、start1-end1,start2-end2 系の記述を意味します。 例えば範囲記述で、600-600,603-604,608-608 と書いた場合、600,603,604,608 を意味します。
また、レイアウトファイルでは、;以降はコメントになります。
---- title.rnf ----
pages=1
page.0.layers=612
page.0.inputLayers=612-612
page.0.locate=0
以下、範囲記述といった場合、start1-end1,start2-end2 系の記述を意味します。 例えば範囲記述で、600-600,603-604,608-608 と書いた場合、600,603,604,608 を意味します。
また、レイアウトファイルでは、;以降はコメントになります。
---- title.rnf ----
pages=1
page.0.layers=612
page.0.inputLayers=612-612
page.0.locate=0
pagesはこの画面で利用するページ数を指定します。 例えばコンフィグ画面やヘルプ画面など、同一画面で複数ページを利用するものも中には存在するためこの項目がありますが、一般的な入力画面は1しかありません。
項目 意味 pages この選択で利用されるページ数。大抵は1。以降?の添え字は0ベースです。 page.?.layers 指定ページで利用されるレイヤーID。範囲記述可。 page.?.inputLayers 入力を許可するレイヤーID。範囲記述。 page.?.locate 0:画面内配置 1:画面外配置
page.x.layers / page.x.inputLayers / page.x.locate はそれぞれページxの詳細を定義します。ここでは1頁しかないのでxは0だけしかありません。
; らのべえ用ヒント
hint.layer=612
hint.item.0=10,最初から始める
hint.item.1=14,ゲームを終了する
ムービー内に解説があるように、ここで指定した項目が、そのままらのべえの「タイトル画面の分岐先指定」に項目として表示されます。 「コメント」もそのまま分岐先の指定に表示されます。
項目 意味 hint.layer タイトルの入力に利用するレイヤーIDを指定する。 hint.item.? ?は0〜5。連番で利用すること。引数は「対応する選択アイテムのID, コメント」
なお、ムービーではここを設定した後、ゲームを一度起動していますが、その必要はありません。 あれだとまるでゲームを実行しないと変更が反映されないみたいに見えますが、そんなことはありません。
; layout
layers=612
; layer 612
layer.612.create=1,559,47,res\g\sy\02\02_001.lvg,16,-2,0,0,0,0,0,0
作成モード1の凡例は、1, dx, dy, filename, fade, trans, flags, dwParam, sx, sy, sw, sh です。
項目 意味 layers 選択アイテムが関連づけられているレイヤーID。範囲指定可。 layer.LID.create レイヤーID「LID」のレイヤーを作成する指定。先頭の数値は作成モードです。
つまり、これは、 画面上の 559,47 の位置へ、 res\g\sy\02\02_001.lvg を元にして、 フェード値16(0-16の17段階で透明から不透明を表します) 透明色なし(0-255でそのパレット番号を透明色扱いします。-2でなしです) 以降はすべてデフォルト値のレイヤーを作成しています。
もっと平たく言えば、02_001.lvgをそのままレイヤーにして、559,47へ表示しています。
layer.612.items=10-14
layer.612.item.10.create=0,true,false,10,0, 15,res\g\sy\02\02_002.lvg,-2,0,1,-1,-1,-1
layer.612.item.11.create=0,true,Q0≠1,11,0,119,res\g\sy\02\02_003.lvg,-2,0,1,-1,-1,-1
layer.612.item.12.create=0,true,Q0≠1,12,0,223,res\g\sy\02\02_004.lvg,-2,0,1,-1,-1,-1
layer.612.item.13.create=0,true,false,13,0,327,res\g\sy\02\02_005.lvg,-2,0,1,-1,-1,-1
layer.612.item.14.create=0,true,false,14,0,439,res\g\sy\02\02_006.lvg,-2,0,1,-1,-1,-1
パネル作成の凡例は、0, strCondPrepare, strCondInvalid, itemId, rx, ry, fname, trans, flags, nPattern, nFirstPattern, soundChannel, lidMessage, strMessage です。
項目 意味 layer.LID.items LIDに登録する選択アイテムのIDの範囲を指定する。範囲指定可 layer.LID.item.SIID.create 選択アイテムを実際に作成します。先頭は選択アイテムの種類で0はパネルです。 layer.LID.item.SIID.action SIIDの選択アイテムを選んだときの動作を記述します。
実は、layer.612.item.10.create=0,true,false,10,0, 15,res\g\sy\02\02_002.lvg,-2,0,1,-1,-1,-1 は、古い記法で、最新の記法だと
layer.612.item.10.create=0,true,false,10,0, 15,res\g\sy\02\02_002.lvg,-2,0,1,0,-1,-1,-1 となります。以下はこちらで解説します。
0 パネル/コンディションパネルを作成する true 必ず定義する false 無効にしない。なお、Q0≠1は、一度もセーブされていないときtrueになります 10 SIID。選択アイテムを識別するID。 0 表示X座標。LID相対。 15 表示Y座標。LID相対。 res\g\sy\02\02_002.lvg 選択アイテムの定義に利用する画像データ。 -2 透明色指定(-2,-1,0-255)。通常は-2(透明色なし) 0 作成フラグ。詳細はレイアウト定義詳細で。 1 状態数。パネルの場合は1。コンディションパネルの場合は状態の数。 0 初回の表示パターン。通常は0。 -1 onCursor時に再生する効果音のチャンネル。らのべえは-1で良い。 -1 onCursor時に文字列を表示するレイヤーIDの指定。不要なら-1。 -1 onCursor時に出力させる文字列。不要なら-1。
layer.612.item.10.action=51, 0, 0, 0, 0, NULL ;最初から始める
layer.612.item.11.action=179, 0, 0, 0, 0, NULL ;最新のセーブデータから続ける
layer.612.item.12.action=103,0, 0, 0, 0, NULL ;ロードして続ける
layer.612.item.13.action=104,0, 0, 0, 0, NULL ;ゲームの設定
layer.612.item.14.action=51, 0, 0, 0, 0, NULL ;ゲームを終了する
項目 意味 layer.LID.item.SIID.action LIDに関連づけたSIIDを操作したときのアクションを定義します。
凡例は、actionId,p0,p1,p2,p3,strParam です。p0-p3およびstrParamはアクションIDに固有の引数です。
ActionID 解説 51 選択されたSIIDをそのまま呼び出し元に渡して選択処理から抜けます。 103 ロード画面を呼び出します。 104 ゲームの設定(コンフィグ画面)を呼び出します。 179 最新のセーブデータをロードします。
アクションIDは、非常に多くの種類がありますので、資料として別途一覧を作成する予定です。
一般にタイトル画面で使われるようなアクションに引数はないのですべて0になっています。
hint.item.? で定義されているアイテムはすべて51を指定することで、SIIDだけ維持してそのまま抜けます。 その先は、SIIDに従って、らのべえのタイトルコマンドで定義された飛び先へジャンプするわけです。