こんにちは、ほしみです。
ティラノスクリプトの[anim]は、画像や要素をアニメーションさせることができる便利なタグですが、条件によっては扱うのにコツがいるタグです。
PCスペック・開発環境の影響もあり得るので一概にはいえませんが、気づいたいくつかの問題点と解決方法をメモがてらまとめておきます。なおバッドノウハウである可能性もあります。誤りがあれば教えてください。
「注意点って?」
- ラグや重さがある時は[wait time=0]を挟む
- 画面外からの移動はチラツキの原因になる
- 等速移動はlinearを使う
[anim]は気をつけて使わないと、ラグやバグやチラツキを生じさせることがあります。
「重くてラグくてバグるときは」
重さやラグを感じる場合は、[wait time=0]を各要素表示の直後や各マクロの最後に入れてみましょう。自分の場合はそれで解決しました。
単に画像の表示がおかしい時も、この方法で直ることがあるようです。
環境依存もしくは[anim]にバグがあり、読み込みラグが発生してしまうようです。また環境によってはtime=0でも回避できない可能性があるので、適宜数値を変える必要がありかもしれません。
「画面外からアニメさせるとチラつく」
要素を画面外で表示させ、[anim]で画面内まで移動させようとすると、画面がチカっとすることがあります。(一瞬ほかの要素が消えてまた表示される感じ)
このバグを回避するためには、画面外で要素を表示させないことです。
「等速移動ってどうやるの?」
記事執筆時点では、等速移動の方法は公式タグリファレンスでは紹介されていません。
ただし実は、等速移動のエフェクトは用意されています。
「effect=linear」で行うことが可能です。
もしかしたら公式で紹介されている「effect=def」が本来の等速移動なのかもしれませんが、そちらは自分の環境だとバグかなにかで動作しませんでした。
なお公式で紹介されていないあたり、もしかしたら非推奨のエフェクトである可能性もあるのであしからずです。
まとめ「クセはあるけど便利」
[anim]はかなり重たくて不安定な処理なのかもしれません。
ただしうまく使えばとても便利です。
個人的に目からウロコだったのは[wait time=0]を使ったハックですね。[anim]を使いまくる戦闘システムを作ってるんですが、とにかくラグとバグに悩みに悩んで……ようやく解決しました(今のところ)。
[wait time=0]を増やせば増やすほど動作が安定していったので、もはや[wait time=0]だらけです。なお今のところ[wait time=0]の大量投入による弊害は確認していません。
今回は以上です。よきゲーム制作ライフを────ではまたφ(・ω・ )
▼ 関連記事



