スポンサーリンク

[fuki_star][fuki_stop]でスタイルを保存・再指定するマクロ

[fuki_stop]でスタイルがうまく戻らない事があるので対処用のマクロを作ってみました。

タグリファレンスにの通りに動くようにしたいと思います。

「メッセージレイヤのスタイルは[fuki_start]前の状態に戻ります。」

タグリファレンスV5 – ティラノスクリプト

コード

[macro name="mc_fuki_start"]
[iscript]
f.fuki = f.fuki || {};
f.fuki[TYRANO.kag.stat.current_layer] = {};
const layer = f.fuki[TYRANO.kag.stat.current_layer];
layer.layer = "." + TYRANO.kag.stat.current_layer + "_fore"; //今のレイヤーを保存
layer.outer = $(layer.layer).find(".message_outer").attr("style"); //outerのstyleを取得
layer.inner = $(layer.layer).find(".message_inner").attr("style"); //innerのstyleを取得
[endscript]
[fuki_start]
[endmacro]
[macro name="mc_fuki_stop"]
[fuki_stop]
[iscript]
const layer = f.fuki[TYRANO.kag.stat.current_layer];
$(layer.layer).find(".message_outer").attr("style",layer.outer); //outerのstyleを指定
$(layer.layer).find(".message_inner").attr("style",layer.inner); //innerのstyleを指定
[endscript]
[endmacro]

マクロ名や、変数名などは変更してください。

使い方

  1. [fuki_start] の代わりに [mc_fuki_start] を使います。
  2. [fuki_stop] の代わりに [mc_fuki_stop] を使います。

解説

[fuki_start] の直前に、現在のメッセージレイヤーのスタイルを取得して、f変数に保存します。
シナリオ中にメッセージデザインを変更しない場合はsf変数でも良いとおもいます。

[fuki_stop] の直後に、保存したスタイルを再指定します。

蛇足

[position] タグで指定したパラメータを、そのつど上書き保存しているようなのですが、
メッセージレイヤーを複数使っているとスタイルが混在してしまうのと、[position]で未設定だと[fuki_chara]で指定したスタイルが残ってしまうので、少し不便な仕様だなあと思いました。

メッセージレイヤーを複数使っていると保存内容が混在してしまうのは、[position]の記述順に注意してパラメータを全て指定する事で一応回避はできますが面倒です。
[position]と[fuki_stop] をセットでマクロにしても良いかも。

[fuki_chara] にもmargin欲しいです。charaとotherでmargin変えたい・・・。

関連記事

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。

This site uses Akismet to reduce spam. Learn how your comment data is processed.

スポンサーリンク