Jumpコマンド後の読み込みについて

96 views
Skip to first unread message

MM

unread,
Mar 3, 2025, 11:08:18 PM3/3/25
to 宴ユーザーグループ
宴のバージョン4.1.5
unityのバージョン 6(6000.0.34f1)

いつもお世話になっております。
Jumpコマンド後の処理について、質問させてください。

メッセージウインドウとテキストが表示され、Jumpで指定した次のテキストを表示する際に、メッセージウインドウが一瞬読み込みしなおしたかのようにブラックアウトします。
ブラックアウトせず、すでに表示されているメッセージウインドウにJump指定した箇所のテキストがスムーズに表示されてほしいのですが、どのようにすればいいでしょうか?

時には同時に表示されている立ち絵などのグラフィックも、読み直したかのようなブラックアウトが出ます。

今のところ確実に同じ個所でこの現象が出るというわけではなく、出たり出なかったりと不安定です。
色々検証してみましたところ、ExcelにてJumpコマンド箇所から近い指定箇所はブラックアウトが出にくいかな……と感じておりますが、確実ではありません。

ご助言いただけましたら助かります。
よろしくお願いいたします。



マッドネスラボ

unread,
Mar 3, 2025, 11:39:07 PM3/3/25
to 宴ユーザーグループ
すみません。ちょっと心当たりがないです・

ブラックアウトとのことですが、BGコマンドなどでで背景を使っていない場合に起きるでしょうか?
背景がないのであれば、オブジェクトが何らかの原因で非表示になってしまっているのかもしれません。
背景ごと画面全体が黒くなっているのであれば、別の原因(フェードなどのカメラエフェクトなど)で画面全体が黒くなってしまっているのかもしれません。

Jumpコマンドを含めて改ページ後は、テキスト表示の前にエフェクト系のコマンドがある場合、メッセージウィンドウは非表示になります。
また、そのページで必要なリソースのロードが間に合ってない場合はロード待ちが入ります。

>同時に表示されている立ち絵などのグラフィックも、読み直したかのようなブラックアウトが出ます。
これは、ちょっと原因に心当たりがありません。
立ち絵などは、改ページやJumpのタイミングでは非表示にするような処理はしていないです。


また、Jumpコマンドではなく、会話シーンで使用するようなプログラムからJumpScenarioをしている場合は、
EndScenarioでいったんすべてのオブジェクトは非表示になってしまいますので、
表示を残した場合は、PauseScenarioを使ってください。




2025年3月4日火曜日 13:08:18 UTC+9 MM:

MM

unread,
Mar 4, 2025, 12:30:55 AM3/4/25
to 宴ユーザーグループ
ご回答ありがとうございます。

Bgコマンドで背景を表示させているときに起きます。
テキストA→Jumpコマンド→テキストB
メッセージウインドウを表示させたまま、上記の流れの時にテキストBが表示される際にごくごく一瞬、メッセージウインドウあるいは立ち絵などのグラフィックを読み直したかのように消える→表示されるという現象です。

この現象が起きるのは立ち絵とメッセージウインドウの画像のみで、現在のところ背景には起きていません。
エフェクト系のコマンド、EndScenarioも使っておらず、通常の会話シーン中で起きている感じです。
テキスト表示以外に表示させているのは、立ち絵の表情をテキストに合わせて変化させているくらいです。

2025年3月4日火曜日 13:39:07 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
Mar 4, 2025, 12:36:51 AM3/4/25
to 宴ユーザーグループ
すみません。ちょっと原因がわからないです。

調査したいと思いますので、もしよろしければリンク先を参考にプロジェクトを送信していただけますか?
https://madnesslabo.net/utage/?page_id=9349


2025年3月4日火曜日 14:30:55 UTC+9 MM:

MM

unread,
Mar 4, 2025, 2:52:44 AM3/4/25
to 宴ユーザーグループ
ありがとうございます。
先ほど再生手順のテキストと共に送信しました。
現象が起きたり起きなかったり、不安定な状態ですがどうぞよろしくお願いいたします。


2025年3月4日火曜日 14:36:51 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
Mar 4, 2025, 5:27:22 AM3/4/25
to 宴ユーザーグループ
プロジェクトの送信ありがとうございます。

不具合が再現できました。
可能な限り修正しましたので、添付のパッケージファイルを適用してください。
(ダウンロードした添付ファイルの拡張子が *. gzになっている場合は、*.unitypackageに変えてからプロジェクトに適用してください)
この変更は、次回の宴のアップデートにも反映させる予定です。


メッセージウィンドウが一瞬消える直接的な原因としては、一瞬ロード待ちが入ってしまっているせいです。
>また、そのページで必要なリソースのロードが間に合ってない場合はロード待ちが入ります。

宴は基本的には、再生しようとするページが始まるときに、ページ内に必要なリソースがロードされていないとロード待ち状態になります。
このとき、メッセージウィンドウが消えてしまいます。
ただ、宴は今のページより先にあるページのリソースをバックグラウンドであらかじめロード(プリロード)しておく処理をしています。
通常はこのプリロードの処理が正常であれば、ロード待ちはあまり発生しないようになっています。

今回は、プリロードの処理が特定の条件でうまく動作せずに、それが原因でロード待ちが一瞬発生してしまっていたようです。
・Jumpコマンドで、Arg2に指定した特定の条件のみ発生するようにしている。
・そのシナリオラベルの最後まで分岐しなければ、直後のシナリオラベルが続くようになっている。(選択肢コマンドや、自動分岐(Arg2がない強制的なJumpコマンド)で終わっていない)
この条件の時に、Jumpコマンド先のシナリオをプリロードする処理が正常に働いていませんでした。
添付のパッケージファイルを適用すると、プリロード処理が正常に働くようになるので、プリロードに起因する問題は解消されると思います。

ただ、プリロードが働いていても、ロード中のリソースの数が多すぎたり、サイズが大きすぎたりすると、
ロードが間に合わずに、同様の現象が起きてしまうかもしれません。
もしそうなった場合は、ダイシングを活用してリソース数を削減したり、

BGMやボイスなどをStreaming設定にしてサウンドのロード時間を抑えるようにしてみてください。

また、ロード中にメッセージウィンドウが消えてしまうのは現在の宴の仕様になってしまっています。
ロード待ちが避けられない場合に、これを解消する手段は今のところないのですが、
もし改善したい場合は、宴本体の修正が必要になりますのでご連絡ください。

>同時に表示されている立ち絵などのグラフィックも、読み直したかのようなブラックアウトが出ます。
これに関しては、ちょっと再現ができなかったのですが、
メッセージウィンドウが一瞬消えている影響で、そのように見えてしまったのかもしれません。(または同様にファイルのロードが間に合っていないため、スムーズに切り替わらないためそう見える)
修正を適用しても再発するようでしたら、お手数をおかけしますが、再現手段などを教えていただければと思います。



2025年3月4日火曜日 16:52:44 UTC+9 MM:
FixJumpIfPrelaod.unitypackage

MM

unread,
Mar 4, 2025, 6:16:19 AM3/4/25
to 宴ユーザーグループ
ご対応ありがとうございます。

添付いただいたパッケージファイルをインポートして試してみたのですが、変わらず同じようにロード待ちのブラックアウトが出ました。
デバッグメニューでキャッシュクリア等も試してみましたが、変わりませんでした。
お手間おかけしますが、再度ご助言いただけましたら助かります。
よろしくお願いいたします。


2025年3月4日火曜日 19:27:22 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
Mar 4, 2025, 8:24:47 AM3/4/25
to 宴ユーザーグループ
ロードにかかる時間は実行するハードのスペックに左右されるので、こちらでは再現が難しいのかもしれません。

改ページ後にロード待ち中であっても、エフェクトコマンドが実行されるまでは、メッセージウィンドウを表示するようにしました。
添付のパッケージファイルを適用してください。
(ダウンロードした添付ファイルの拡張子が *. gzになっている場合は、*.unitypackageに変えてからプロジェクトに適用してください)
この変更は、次回の宴のアップデートにも反映させる予定です。

ロード待ち時間をゼロにすることは、ほとんどのケースでは不可能なので、
ファイルが細かく分かれている場合などロード処理が多い場合はどうしてもロード待ち状態が増えてしまいます。

今回の修正で、メッセージウィンドウは表示されたままになりますが、
キャラクターの表示などは、ロードが終わってないものは表示できないままです。

>同時に表示されている立ち絵などのグラフィックも、読み直したかのようなブラックアウトが出ます。
土台と表情を別オブジェクトに分けて表示しようとしてしまっていると、
土台だけ表示されて、表情のロードが間に合っていない・・・といったことはあると思います。
これは、ブラックアウトではなく、単にロードできてないものはまだ表示できないというだけです。

これを確実に避けるには、ダイシングや、アバター等を使って単一のオブジェクトで表示するようにするしかないです。

何らかの事情でどうしてもオブジェクトを分けるしかないのであれば、
表情の部分だけでもダイシングかアバターを使って、なるべくロード待ちされない状態にするしかないです。

トリッキーになるのでお勧めはしないですが、下記の設定をしたアセットは常にロード済み状態になるので、それを利用するという手もあります。
ただ、これで設定したものは常にメモリを消費し続けるということになるので、負荷が高すぎると環境によってはアプリが起動できなくなってしまうので、根本的な解決にはならないと思います。


2025年3月4日火曜日 20:16:19 UTC+9 MM:
FixShowMessageWindowOnPageBegin.unitypackage

マッドネスラボ

unread,
Mar 4, 2025, 8:29:06 AM3/4/25
to 宴ユーザーグループ
こちらのアバターのほうのドキュメントも参考にしてください。
https://madnesslabo.net/utage/?page_id=8860


2025年3月4日火曜日 22:24:47 UTC+9 マッドネスラボ:

MM

unread,
Mar 4, 2025, 11:01:16 AM3/4/25
to 宴ユーザーグループ
添付いただいたパッケージファイルをインポートしたところ、無事スムーズにテキストが表示されました!
いつも手厚いサポートを頂けて、本当に感謝しております。

今回はリメイク品ですでにある画像を作り直すのが大変なため、土台とパーツを分けた表示方法のままいきますが、次作以降はアドバイスに従ってダイシングなどを試してみます。
また、もし立ち絵のほうで同様の症状が再度起きた場合は、手順をお伝えの上ご報告させていただきます。

本当にありがとうございました!

2025年3月4日火曜日 22:29:06 UTC+9 マッドネスラボ:
Reply all
Reply to author
Forward
0 new messages