はじめに: 吉里吉里では、メッセージレイヤの不透明度を変化させるような システムにおいて、前景レイヤとメッセージレイヤを組み合わせて使うことが 多い。 GraphicFramePluginは、その扱いを簡単にするために作成された。 つまりその、メッセージレイヤのフレーム画像の表示対象として、こっそり 予約しといた前景レイヤを使い、ついでにメッセージレイヤに付随して 動かしたり大きさを変更したりするという、ただそれだけのプラグインである。 簡単な使い方の例: ; 最初にグローバル変数を定義(これは無くてもよい。後述) [eval exp="sf.graphicframe_opacity = 255" cond="sf.graphicframe_opacity === void"] ; first.ks の先頭で一度だけプラグイン読み込み [call storage=GraphicFramePlugin.ks] ; メッセージレイヤ2(の表画面)と前景レイヤ3(の表画面)を紐付け、透明度を128に設定 [graphicframe_add layer=message2 page=fore graphiclayer=3 graphicopacity=128] ; フレーム画像mesbackを表示 [current layer=message2 page=fore] [position left=10 top=400 width=600 height=70 graphicframe=mesback] ; メッセージレイヤ2(の裏画面)と紐付けた前景レイヤの紐付けを解除 ; (普通は実行する必要なし) [graphicframe_del layer=message2 page=back] おまけ: もしもグローバル変数 sf.graphicframe_opacity が定義されていたら、 これを透明度として[graphicframe_add]で登録した全ての前景レイヤに 反映する。変更するときはこの値を直接操作するのではなく、KAGなら [position ... graphicopacity=不透明度] またはTJSなら .graphicframeplugin_obj.setOpacityToFrameLayer(%[..., graphicopacity:不透明度]); を使用すること。これにより、紐付けられている全ての前景レイヤの 透明度も合わせて変更される。(TJSで設定すると、画面の文字などを クリアしない)。 もしもグローバル変数 sf.graphicframe_opacity が定義されていなかったら、 透明度は紐付けられた前景レイヤごとに保存する。保存先はf.*なので、 セーブデータごとに異なることに注意。こちらのデータも、上と同じ 方法で設定可能。 タグリファレンス: [graphicframe_add layer= page= graphiclayer= graphicindex= graphicautohide= graphicopacity=] 説明: メッセージレイヤと前景レイヤを紐付ける。以降、前景レイヤは、 [position]で変更したレイヤ位置・サイズに、前景レイヤが追従する。 引数: layer= 使用するメッセージレイヤを指定する。指定しなければ [current]タグで指定したメッセージレイヤを使用する page= 使用するページを指定する。指定しなければ[current]タグで 指定したページを使用する。 graphiclayer= メッセージレイヤに紐付ける前景レイヤを指定する。必須パラ メータ。当然、ここで指定した前景レイヤは今後[position]タグ 以外でユーザがアクセスしてはいけない。 graphicindex= 前景レイヤの表示優先順位を指定する。 def=指定したメッセージレイヤ-1 (=メッセージレイヤの直後) graphicautohide= テキスト画面非表示と同時に前景レイヤが消えるかどうか。 def=true graphicopacity= 前景レイヤの透明度(0〜255)。指定されていなければそのまま、もしくは sf.graphicframe_opacity が存在すればそれに設定される。 指定されてかつsf.graphicframe_opacityが存在すれば、合わせて sf.graphicframe_opacityを上書きする graphicframe= 紐付けた前景レイヤにフレーム画像を読み込む。 [graphicframe_del layer= page=] 説明: メッセージレイヤと前景レイヤの紐付けを解除する。透明度・表示優先順位を 元に戻さないし、画面もクリアしないことに注意 引数: layer= 使用するメッセージレイヤを指定する。指定しなければ [current]タグで指定したメッセージレイヤを使用する page= 使用するページを指定する。指定しなければ[current]タグで 指定したページを使用する。 ※このプラグインを読み込むと、吉里吉里の[position]タグに、以下の引数が追加される [position * graphicframe= graphicopacity= graphicindex=] 引数: graphicframe= フレーム画像を指定する。frame=と違い、[graphicframe_add]で 紐付けた前景レイヤに画像を読み込む。 graphicopacity= [graphicframe_add]で紐付けた前景レイヤの不透明度を変更する (0〜255)。sf.graphicframe_opacity が存在すれば それにも設定される graphicindex= [graphiframe_add]で紐付けた前景レイヤの表示優先順位を 指定する。 TJS関数リファレンス: .graphicframeplugin_obj.getOpacityFromFrameLayer(%[layer:*, page:*]) 説明: メッセージレイヤに紐付けた前景レイヤの不透明度を得る。0〜255。 sf.graphicframe_opacity が存在すれば、ソレの値をそのまま返す。 引数: layer: メッセージレイヤ(ex. "message2")。指定しなければ 現在のcurrent。 page: ページ(ex. "fore")。指定しなければ現在のcurrent。 .graphicframeplugin_obj.setOpacityToFrameLayer(%[layer:*, page:*, graphicopacity:#]) 説明: メッセージレイヤに紐付けた前景レイヤに不透明度を設定する。 sf.graphicframeplugin_opacity が存在すれば、この変数と、 全ての紐付けられた前景レイヤの不透明度を合わせて変更する。 そうでなければ個々の前景レイヤの不透明度を変更する。 引数: layer: メッセージレイヤ(ex. "message2")。指定しなければ 現在のcurrent。 page: ページ(ex. "fore")。指定しなければ現在のcurrent。 graphicopacity:設定する不透明度。0〜255。