Open oov opened 3 years ago
レイヤー上に配置する都合上、最初に現れるのは必ずカスタムオブジェクト版の多目的スライダー、あるいは統合準備オブジェクトのテキストオブジェクトであることを前提とすれば、それらの登場タイミングでは必ずリセットするようにすることで問題を回避できるかもしれない。
↑ この案はシーンチェンジの前後どちらにも多目的スライダーが存在するときは正常に動作するが、シーンチェンジ後にだけ多目的スライダーがある状況下では正しくリセットが実行されないので上手く行かない。
この問題がシーンチェンジだけに限られるのであれば、シーンチェンジと <? require("PSDToolKit").valueholder.states = {} ?>
のスクリプトを含むテキストオブジェクトを「専用のシーンチェンジオブジェクト」としてエイリアスなどを用意することでお茶を濁せる。
ただ今までの経験上、レイヤーの上から順に描画されるというルールはスクリプトによる呼び出しなどによって何度も破壊されているので、今までずっと避けていた「リセット用にレイヤー1を専有する」という処理をする時期がきているかもしれない。 結局これらの問題の元を正せば、現在フレームが変わった瞬間に初期化処理が行えない内部構造に原因がある。
RGBA動画の書き出しでも同じような問題が発生する。
通常、スクリーンショットのように
多目的スライダー
のアニメーション効果またはカスタムオブジェクトとして2回現れた場合、これらは内部的にはスライダーが8個ある、ひとつのオブジェクトとして保持される。シーンチェンジの使用中は現在の画面を描画したのち、前の画面を作るために前の画面にあったオブジェクトを仮想的に現在時刻にまで延長した上でスクリプトが実行される。 この動作によって、同じレイヤー上に多目的スライダーが4個あるものとして誤作動してしまい、内部的におそらくスライダーが16個ある、ひとつのオブジェクトが形成されてしまい、表情が正しく適用されなくなってしまうと思われる。