アニメーション待ちのwaタグでフリーズするケース
はじめに
ティラノスクリプト ver471
の話です。
先日、アニメーション中にフリーズすることがあるという話があり、調査しました。
その結果、アニメーション待ちをするwa
タグでフリーズしていました。
ティラノスクリプトのanim
タグの動作は以下のようになっています。
- アニメーション開始で 現在アニメーションしている数が +1
- アニメーション完了で 現在アニメーションしている数が -1
wa
タグは「現在アニメーションしている数が 0 になるまで待つ」というタグなのですが、アニメーション完了が呼ばれないケースがあり、現在アニメーションしている数が一生 0 にならないことがあります。
そのため、wa
タグの待ちがずっと続いてしまい、フリーズしてしまうという現象がおきます。
フリーズした場合、ティラノライダーで確認してもwaコマンド移行が実行されていません。
ケース1
キャラが2人以上表示されており、一人がアニメーションしていなくて、片方がアニメーションしているときに、chara_hide_all
をした場合です。
例を下に示します。
1 | [chara_show name="akane" ] |
ケース2
アニメーション中にfreeimageしても同様にフリーズします。
1 | [chara_show name="akane" ] |
簡単な説明
簡単に言うと、chara_hide_all
もfreeimage
もアニメーション中の対象を削除します。削除するのでアニメーション完了が呼ばれません(chara_hide_all
に関してはもう少し特殊ですが)。
現状とれる対処
chara_hide_all
やfreeimage
の前でwa
を呼び、アニメーション完了を待ってから消す。