[fuki_stop]でスタイルがうまく戻らない事があるので対処用のマクロを作ってみました。
タグリファレンスにの通りに動くようにしたいと思います。
「メッセージレイヤのスタイルは[fuki_start]前の状態に戻ります。」
タグリファレンスV5 – ティラノスクリプト
目次 [show]
コード
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[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] |
マクロ名や、変数名などは変更してください。
使い方
- [fuki_start] の代わりに [mc_fuki_start] を使います。
- [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変えたい・・・。
関連記事
スポンサーリンク