テキストの自動再生を実装したい場合の拡張方法に関して

343 views
Skip to first unread message

taku_hsy

unread,
Oct 3, 2022, 4:45:29 AM10/3/22
to 宴ユーザーグループ
宴のバージョン: 宴3.11.6
UnityのバージョンとOS: Unity2022.1.10f1 Windows

お世話になっております、ご相談なのですが、
現在、「画面上で動画を再生し、映画の字幕のように、時間経過(動画の進行)にあわせて手前にテキストを出していく」という演出を要望されております。
動画の再生の方は特に問題はないのですが、テキストに関して、
現状の「AdvCommandText」クラスのPageCtrlType周りはprivateのものも多く、
拡張するにも宴のシステム進行の根幹にかかわる部分のため、実装方法を悩んでおります。
(AdvCommandTextを継承してフックし、Auto化などの表示制御を行おうと思っていました。)

ローカライズや禁則処理、自動改行、バックログなど有用なシステムが多いため、可能であれば宴のテキストシステムに乗っかる形での拡張を検討してはいたのですが、
「時間指定による自動テキスト表示/非表示」などは新規でカスタムUIを作った方が賢明でしょうか?

テキスト表示周りをスクリプトレベルで拡張する上で、何かしらアドバイスをいただければ幸いです。(触らない方がいい、というご回答でも構いません)

よろしくお願いいたします。


マッドネスラボ

unread,
Oct 3, 2022, 5:31:51 AM10/3/22
to 宴ユーザーグループ

自動的にテキストコマンドから次のコマンドにしたり自動改ページするのはPageCtrlだけで可能なので、
時間に合わせて、その間の待機を制御できるようにすれば可能かと思います。

○その1 シナリオ側で時間を予め指定するパターン
・テキスト表示するPageCtrlをNextにし、
・指定時間待機する処理はWaitコマンドを行い
・PageCtrl「BrPage」で自動改ページをする
というアプローチで実行可能かと思います。

○その2 プログラムから、宴の待機を制御する
・テキスト表示するPageCtrlをNextにし、PageCtrl「BrPage」で自動改ページをする
というのは上記と同じで、
シナリオの待機処理をWaitInputCustomコマンドで行って、
https://madnesslabo.net/utage/?page_id=1785#WaitCustom
プログラムで、現在の動画の再生時間を取得し、時間に応じて待機をオンオフするという手もあります。
WaitInputCustomではなく、カスタムコマンドを作ったほうがより柔軟に実装できるかもしれません。

その1でシナリオ側で待機時間を指定した場合は、動画の再生ラグなどに対応できない可能性があるので、
その2のほうが確実かもしれません。

クリックによる文字送りを無視するには、
UI側のソースコードを継承して、動画の再生中はif分岐するなどして除外するようにしてください。
Engine.Page.InputSendMessageが入力による文字送りの呼び出しです。
または、speedタグを使って1文字の表示するまでの時間を固定するという手もあります。
カラオケの字幕のように一文字ごとに表示速度が変化する場合は、こちらのほうがやりやすいかもしれません。
https://madnesslabo.net/utage/?page_id=1921#i-25


ほか、
private を protectedやpublicにしたり、virtual化する必要があれば要望をいただければそのように対応します。


2022年10月3日月曜日 17:45:29 UTC+9 taku_hsy:

マッドネスラボ

unread,
Oct 3, 2022, 5:36:17 AM10/3/22
to 宴ユーザーグループ
すみません。誤記がありました。
誤 WaitInputCustom
正 WaitCustom


2022年10月3日月曜日 18:31:51 UTC+9 マッドネスラボ:

taku_hsy

unread,
Oct 5, 2022, 5:17:07 AM10/5/22
to 宴ユーザーグループ
ご回答ありがとうございます。
Nextはテキストの表示を維持したまま次の行に進めたんですね。
サンプルの確認が甘く、BrPageだけテストしてしまっていました。

ご提案いただいた形を含めて仕様を検討したいと思います。
漠然とした相談にも乗っていただきまして、非常に助かりました。
ありがとうございました。

2022年10月3日月曜日 18:36:17 UTC+9 マッドネスラボ:
Reply all
Reply to author
Forward
0 new messages