スキップ時のFailed Tween Skipについて

26 views
Skip to first unread message

ダイス

unread,
Sep 5, 2025, 6:50:13 AM (6 days ago) Sep 5
to 宴ユーザーグループ
宴Ver: 4.2.2
Unity Ver: 6000.0.35f1
OS: Windows11
プログラム初心者

お世話になります。

ちょっと再現性がいまいちで、もしかしたら自分がまたやらかしたのかもしれないと思ったものの、以下のエラーが出るようになりました。

以下がエラーログになります。
ただ、確定でこれが出るわけではなく、出る時と出ない時があります。詳細はさらに続きます。確率は10回やって2回ぐらい出るかどうかでした。

Failed Tween Skip
UnityEngine.Debug:LogError (object)
Utage.AdvITweenPlayer:SkipToEnd () (at Assets/Utage/Scripts/ADV/Effect/AdvITweenPlayer.cs:515)
Utage.AdvCommandTween:OnEffectSkip () (at Assets/Utage/Scripts/ADV/Command/Wait/Effect/AdvCommandTween.cs:118)
Utage.AdvWaitManager:SkipEffectSub (System.Func`2<Utage.AdvCommandWaitType, bool>) (at Assets/Utage/Scripts/ADV/Scenario/AdvWaitManager.cs:194)
Utage.AdvWaitManager:SkipEffectInput () (at Assets/Utage/Scripts/ADV/Scenario/AdvWaitManager.cs:160)
Utage.AdvPage:UpdateWaitEffectOnInput () (at Assets/Utage/Scripts/ADV/Logic/AdvPage.cs:816)
Utage.AdvPage:UpdateText () (at Assets/Utage/Scripts/ADV/Logic/AdvPage.cs:682)
Utage.AdvUguiManager:Update () (at Assets/Utage/Scripts/ADV/UI/AdvUguiManager.cs:198)

Failed Tween Skipで検索したところ以下が出ただけでした。

状況としては以下のような操作をしていました。
Ctrlキーで部分的にスキップしたりしていたところ、気まぐれでスキップボタンを押したらどこかで止まってしまうという状態が確認できました。
Ctrlキーですべてシナリオを再生させると正常に戻るもののエラーログで記録されました。記録はされるものの、スキップボタンを押す動作は正常になります。

その後、キャラが出たり何かの切り替わりでスキップが止まってしまうことがあります。主にはキャラの登場で止まってしまうようです。
Ctrlキーが一つの発破要因になっているのか、この操作をして中途半端に止めたりするとスキップボタンを押した際の挙動がおかしいようです。

宴自体は更新かけてみましたが、効果はありませんでした。

よろしくお願いします。

マッドネスラボ

unread,
Sep 5, 2025, 7:28:26 AM (6 days ago) Sep 5
to 宴ユーザーグループ
不具合のご連絡ありがとうございます。

Tweenのスキップ周りは多重に絡みあった要素があって複雑化してしまっているので、おそらくは宴側の不具合だとは思うのですが、
再現が難しく、原因を特定できませんでした。

問題となるTweenは、以下のいずれかに該当するでしょうか?
・同じオブジェクトに複数種類のTweenを設定している
・指定時間が0秒
・無限ループ
 
また、こちらで調査しようと思います。
お手数をお掛け致しますが、可能であれば下記の手順で問題を再現可能なプロジェクトと、再現手順を送信していただければと思います。
https://madnesslabo.net/utage/?page_id=9349



2025年9月5日金曜日 19:50:13 UTC+9 ダイス:

ダイス

unread,
Sep 5, 2025, 9:01:59 AM (6 days ago) Sep 5
to 宴ユーザーグループ
Tweenについては以下すべて使用していました。
・同じオブジェクトに複数種類のTweenを設定している
・指定時間が0秒
・無限ループ

思い返してみると、この処理が入っているシナリオを再生中にCtrlキーでスキップさせたり、
途中で止めたりした後にクリック動作でシナリオを終了させたらエラーログが出たような気がしました。

多分、この処理が入っているシナリオがトリガーになってスキップ動作に影響が出ているのではないかと思われ、
エラーログは出なくても挙動に再現性があるように感じました。
個別シーンの方でTweenは多用し、不具合回避のために色々と設置しています。

プロジェクトの方をお送りしましたのでご確認をお願いします。
確認した限りで不具合詳細も記載しました。

2025年9月5日金曜日 20:28:26 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
Sep 5, 2025, 9:27:22 AM (6 days ago) Sep 5
to 宴ユーザーグループ
プロジェクト送信ありがとうございます。不具合を再現できました。
これから調査いたしますので、後日結果をご報告いたします。


2025年9月5日金曜日 22:01:59 UTC+9 ダイス:

マッドネスラボ

unread,
Sep 5, 2025, 3:33:35 PM (5 days ago) Sep 5
to 宴ユーザーグループ
詳細なご報告ありがとうございました。

調査したところ、同じオブジェクトの同じパラメーターに、同時にTweenをかけていて、それがスキップ処理と不整合を起こしてしまっているようです。

エラーが出た例として、次のようなものがありました。
ss_1088.png
これは、Tweenコマンドを同じオブジェクトに対して使用していて、対象はスケールのx,yという同じパラメーターになっています。
そこまでは良いのですが、WaitTypeがAddまたはAddSkippableの場合、Tweenが同時にかかってしまいます。
同じオブジェクトの同じパラメーター(この場合はスケールのx,y)に、Tweenがかかると重複したTweenとなってしまいます。
宴の使用しているiTweenというTweenライブラリは、重複するTweenを自動的に削除する仕様になっています。
通常はあまり問題が起きないのですが、スキップしたときは「すでに自動削除されてしまっているためスキップできずエラーログが発生している」という状態でした。

上記の例にあるScaleToのTweenは、
「同時に」ではなく「連続して」発生させる意図だったのであれば、AddSkippableではなくSkippableを使ってください。
おそらくそれでエラーは出なくなると思います。

また、上記のエラーはログとしては出力されるのですが、これ自体はそれでも動作不良は起こさないかと思います。
AddSkippableを意図的に使用する場合、「次のエフェクト終了待ちと同じタイミングで終了待ちをする」という動作をする点にご注意ください。
AddSkippableが連続したままですと、「次のエフェクト終了待ち」が発生しないため、その点で意図しない動作になっていたのかもしれません。
AddやAddSkippableを使用した場合は、Add以外のWaitTypeを設定したエフェクトを、後のコマンドの設定するようにしてください。

参考:Tweenアニメーション https://madnesslabo.net/utage/?page_id=1791
参考:エフェクトのWaitType https://madnesslabo.net/utage/?page_id=9081


また、WaitInputコマンドを使っている場合、強制中断すると発生する不具合があることが判明しております。
この点は修正しましたので、添付のパッケージファイルを適用してください。この変更は、次回の宴のアップデートにも反映させる予定です。
(ダウンロードした添付ファイルの拡張子が *. gzになっている場合は、*.unitypackageに変えてからプロジェクトに適用してください)
上記のTweenコマンドの使い方とは別に、これが原因で不安定だった可能性もあります。


2025年9月5日金曜日 22:27:22 UTC+9 マッドネスラボ:
FixCleraPageOnForceBreakCommand.unitypackage

ダイス

unread,
Sep 5, 2025, 11:36:05 PM (5 days ago) Sep 5
to 宴ユーザーグループ
修正ファイルをありがとうございます。

適応後に色々と自分でも検証していたところ、Tweenがトリガーになってスキップボタンが機能しなくなるのは間違いないようです。
AddSkippableが連続しているとやはり途中で止まるというような不安定状態で、Failed Tween Skipも出ました。

Skippableに変更したことで発生はなくなったように思われましたが、どうも何かがまた影響しているのか操作次第で出たりするようです
ScaleTo以外にMoveToも続いているから念のためSkippableに変更しても再現性がありました。
ただ、挙動的には大丈夫のような感じはしますが、根本的にCtrlキーでスキップしていることで起きている状態です。

ボタンでスキップより、Ctrlキー入力のスキップだとタイミングでWaitInputで止まっている時にぶつかるとエラーログが記録されるような印象です。
今度は明確に出るようになり、クリックと合わさると出るというような印象があります。Ctrlキー入力でWaitInputと被るタイミングが怪しいのかもしれません。

エラーログは同じと思ってチェックせずでしたが、よく見ると少し異なりました。
Failed Tween Skip
UnityEngine.Debug:LogError (object)
Utage.AdvITweenPlayer:SkipToEnd () (at Assets/Utage/Scripts/ADV/Effect/AdvITweenPlayer.cs:515)
Utage.AdvCommandTween:OnEffectSkip () (at Assets/Utage/Scripts/ADV/Command/Wait/Effect/AdvCommandTween.cs:118)
Utage.AdvWaitManager:SkipEffectSub (System.Func`2<Utage.AdvCommandWaitType, bool>) (at Assets/Utage/Scripts/ADV/Scenario/AdvWaitManager.cs:194)
Utage.AdvWaitManager:SkipEffectCommand () (at Assets/Utage/Scripts/ADV/Scenario/AdvWaitManager.cs:154)
Utage.AdvCommandWaitBase:Wait (Utage.AdvEngine) (at Assets/Utage/Scripts/ADV/Command/Wait/AdvCommandWaitBase.cs:41)
Utage.AdvScenarioThread/<CoStartPage>d__75:MoveNext () (at Assets/Utage/Scripts/ADV/Scenario/AdvScenarioThread.cs:386)
UnityEngine.SetupCoroutine:InvokeMoveNext (System.Collections.IEnumerator,intptr)

長めのシナリオでスキップするともしかしたら影響が出るのかもしれないものの、自分のシナリオではスキップボタンで止まるという再現性はないようです。

インポート後にBrpToUrpCamaraSwitcherInEditorにCS0414エラーが出ていました。
動作的には影響しないものの、報告しました。

2025年9月6日土曜日 4:33:35 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
Sep 6, 2025, 12:01:00 AM (5 days ago) Sep 6
to 宴ユーザーグループ
基本的には、WaitTypeがAddかAddSkippableにしていると、Failed Tween Skipが出やすいと思います。
AddかAddSkippable は、複数のエフェクトを同時にかけるためのものです(正確には、そのエフェクトの終了を待たずに即座に次にコマンドを実行します)
同時に同じようなTweenをかけるのは、スキップとは関係なく意味のない挙動になってしまうので、その点を見直してみてください。

AddかAddSkippable以外にも、重複したTweenが発生すると同じようなエラーが出ると思います。
(たとえばPageWaitなどで、同じ要素に対するTweenをしている)
Failed Tween Skipはエラーログを出してはいるのですが、重複Tweenがある場合は発生してしまいます。
意図的な演出で重複したTweenをかけているのであれば、Failed Tween Skip自体をださないようにしますが、どうでしょうか。
(ただ、今回のように重複したTweenがあることが気づきづらくなるかと思います)


>BrpToUrpCamaraSwitcherInEditorにCS0414エラー
すみません。これは対応漏れです。
次回のアップデートで修正します。(動作には影響しないです)



2025年9月6日土曜日 12:36:05 UTC+9 ダイス:

ダイス

unread,
Sep 6, 2025, 1:08:56 AM (5 days ago) Sep 6
to 宴ユーザーグループ
TweenのWaitTypeがAddSkippableだと確かに出やすいように感じました。
Skippableで何度かやった限りでは再現性が見られないのでこちらで対応することとします。

意図的演出でScaleToの方が扱いやすいことから、これでエラーが出ても問題はないので見なかったことにします。
重複したTweenでFailed Tween Skipのエラーが出なくなると何かしら弊害出るような気がしたので、このままで良いかと思われます。

色々とお手数おかけいたしました。
ありがとうございました。


2025年9月6日土曜日 13:01:00 UTC+9 マッドネスラボ:
Reply all
Reply to author
Forward
0 new messages