キャラ・スプライトを最初から拡縮・色変えした状態でフェードインさせたい

126 views
Skip to first unread message

nunu

unread,
Feb 13, 2021, 10:33:22 AM2/13/21
to 宴ユーザーグループ
お世話になっております。

掲題の件を要望として書かせていただきますが、実装が簡単ではなさそうな話ですので、ご参考までに見ていただけますと幸いです。


Tweenの拡大縮小・色変え・透明度変化について、現状だと「Character」「Sprite」コマンドの直後にTweenを0秒・NoWaitなどで行うといった感じかと思います。

ですが、「Character」「Sprite」コマンドのフェードインと併用した時、処理速度の関係か『Tweenをかける前の状態のキャラ・スプライトが一瞬パッと見えてしまう』という現象が起きています。
扱うファイルの容量の影響もあるでしょうが、0.2秒程度の短いフェードインだとほぼ毎回、1秒間のフェードインでも時々起こっている状態でした。

バグのように見えるため、凝った演出を作る時ネックに感じております。


以上となります。
お忙しいところ恐れ入りますが、よろしくお願いいたします。

マッドネスラボ

unread,
Feb 13, 2021, 1:41:38 PM2/13/21
to 宴ユーザーグループ
すみません、 具体的な再現手順を書いてください。
どのコマンドをどういうパラメーター指定でどの順番で書いていますか?

2021年2月14日日曜日 0:33:22 UTC+9 nunu:

マッドネスラボ

unread,
Feb 13, 2021, 1:54:32 PM2/13/21
to 宴ユーザーグループ
試してみましたが、この書き方では再現できませんでした。

ss_1446.png

フェードのためのAlpha値とTweenで扱うColorの値は独立しているので、フェードのAlpha値がTweenで上書きされるといったことはないはずです。
なので、Tweenに関係なく別の原因で一瞬そのキャラクターやスプライトが表示されるような処理をしていたりしないでしょうか?


2021年2月14日日曜日 3:41:38 UTC+9 マッドネスラボ:

nunu

unread,
Feb 14, 2021, 2:28:35 AM2/14/21
to 宴ユーザーグループ
お世話になっております。

早速検証いただき恐れ入ります。再現手順の件は大変失礼いたしました。

Dropboxのリンクからプロジェクト(SpriteTweenTest_210214.unitypackage)を送付させていただきました。
スプライトの表示直後に、Tweenでスケールを操作するサンプルがあります。

キャラクター表示の方ですが、Live2Dを使用しているのでサンプルの準備にはもう少し時間がかかるかもしれませんが、必要でしたらお送りします。

お手数をおかけしますが、よろしくお願いいたします。

マッドネスラボ

unread,
Feb 14, 2021, 8:42:16 AM2/14/21
to 宴ユーザーグループ
検証してみました。

どうも、宴のTweenコマンドで使っているiTweenというアセットの仕様かバグのようです。
iTweenのソースコードを検証してみましたが、
iTweenはアニメーションが開始されるまで1フレーム遅れ、さらにtime=0だった場合は最終的な値になるのがさらにもう1フレーム遅れて、合計2フレームかかるようです。

宴のほうでtime=0だった場合に、Tweenを使わずに即座に値を反映させるように更新できないか試してみます。


2021年2月14日日曜日 16:28:35 UTC+9 nunu:

マッドネスラボ

unread,
Feb 14, 2021, 9:46:22 AM2/14/21
to 宴ユーザーグループ
Tweenコマンドを修正できるか検証してみたのですが、互換性を保つことや、iTweenの細かい仕様などに無理に合わせるよりも、
SetPosition、SetRoation、SetScale、SetColorコマンドを新しく追加したほうが安全そうです。
それでも大丈夫でしょうか?



2021年2月14日日曜日 22:42:16 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
Feb 14, 2021, 11:00:33 AM2/14/21
to 宴ユーザーグループ
>SetPosition、SetRoation、SetScale、SetColorコマンドを新しく追加したほうが安全そうです。
すみません、これは忘れてください。

宴側からiTweenを強制的に最終段階まで進める処理が実装できました。
添付のパッケージファイルを適用してください。
これで、time=0の場合は即座にそのTween効果が適用されるようになり「一瞬パッと見えてしまう」ということもなくなると思います。


2021年2月14日日曜日 23:46:22 UTC+9 マッドネスラボ:
FixTweenTimeZeroSkip.unitypackage

nunu

unread,
Feb 14, 2021, 12:12:47 PM2/14/21
to 宴ユーザーグループ
返信遅くなりすみません。
こんなに迅速なご対応をいただけるとは思わず、お手数をおかけしてしまいましたが、非常にありがたいです……!
ご調査・改修作業お疲れ様でした。

添付いただいたパッケージの方、こちらでも試させていただきます。
キャラクター・スプライト両方で動作確認をし、結果わかり次第ご報告させていただきます。

nunu

unread,
Feb 15, 2021, 3:15:17 AM2/15/21
to 宴ユーザーグループ
お世話になっております。
いただいたパッケージの動作確認を行わせていただきました。
キャラクター・スプライト・背景のいずれも、「Tweenをかける前の状態が一瞬パッと見えてしまう」不具合が解消されているのを確認できました。

これで凝った演出も安心して実装できそうです。
ご対応いただき本当にありがとうございました!
Reply all
Reply to author
Forward
0 new messages