会話シーンでの使用における、Log以外の機能について。

454 views
Skip to first unread message

Yuri Takigawa

unread,
Feb 3, 2022, 5:10:14 AM2/3/22
to 宴ユーザーグループ
宴のバージョン: 宴3.11.2
UnityのバージョンとOS: Unity2020.3.26f1 Windows10宴のバージョン: 宴3.11.1
UnityのバージョンとOS: Unity2020.3.22f1 Windows10
Unityの習熟度:1年未満
Unityの習熟度:ほぼ独学で1年ぐらい

お世話になっております。
ADVゲームを制作中で、宴を会話シーンとして使用しています。

お尋ねしたいことは表題どおりです。

現在デフォルトで実装されているLogの他に、スキップ機能、オート機能、一時的にウィンドウを隠す機能をシナリオ再生中に使用できるようにしたいと考えています。

Logに実装されているスクリプト等を参考にスキップ機能をつけてみましたがうまく動きません。
このあたりの仕組みがどうなっているのか、書き換えるべきスクリプトは何なのか、教えていただきたいです。


2022-02-03.png

マッドネスラボ

unread,
Feb 3, 2022, 6:29:50 AM2/3/22
to 宴ユーザーグループ
>スキップ機能、オート機能
画面下部のメニューボタンはノベルタイプの場合はUtageUguiMainGame.csで制御されます。
会話シーンの場合は、それらが存在しないので、自作する必要があります。

とは言っても、UtageUguiMainGame.csは主に、ノベルゲームとしての画面制御をしている部分なので、オートやスキップボタンの機能に関わる部分は限られています。
スキップのオンオフは、Engine.Config.IsSkipに、オンオフを設定してください。
        public virtual void OnTapSkip( bool isOn ) の部分です。

オートのオンオフは、Engine.Config.IsAutoBrPageに、オンオフを設定してください。
        public virtual void OnTapAuto( bool isOn ) の部分です。

        protected virtual void LateUpdate()  では
・メッセージウィンドウが消えたときに、スキップボタンやオートボタンなどのメニューUIを連動して非表示にしたいする処理
・現在のオートやスキップのオンオフ状態に合わせて、チェックマークをつけたりしてボタンの表示を変えたりする処理
の2つを行っています。

添付のスクリーンショットを見る限り、スキップの機能に関しては、呼び出し方があっている限りは特に問題ないように見えます。
動作がおかしいのであれば、Debug.Logなどで、Engine.Config.IsSkipが呼び出されているかを確認してみてください。

>一時的にウィンドウを隠す機能を
これはノベルタイプも会話シーンでも共通で使っています。
AdvEngine>UI>InputManagerオブジェクトの、AdvUguiManager.cs で処理を行っています。(なので、デフォルトでも、右クリックでメッセージウィンドウの表示が消えます。)

プログラムとして呼び出すのであれば、
Engine.UiManager.Status = AdvUiManager.UiStatus.HideMessageWindow; でメッセージウィンドウ非表示に
Engine.UiManager.Status = AdvUiManager.UiStatus.Default;  で通常の表示に
Engine.UiManager.Status = AdvUiManager.UiStatus.Backlog;  でバックログの表示になります。
これらの処理は、 AdvUguiManager.csの void Update() 内でもキーボード入力処理に対応するために行っていますので、参考にしてください。

AdvUguiManager.csについてや、入力処理を独自に書き替える場合などの詳細についてはこちらをご確認ください。


2022年2月3日木曜日 19:10:14 UTC+9 yuri.tak...@gmail.com:

Yuri Takigawa

unread,
Feb 7, 2022, 3:35:23 AM2/7/22
to 宴ユーザーグループ
ありがとうございます!
すべての機能を実装することができました!

もう一つ質問なのですが、スキップボタンを押すと、今はシナリオが早送りされているような状態になるのですが、
ブラックアウトするような演出にすることはできないでしょうか?

2022年2月3日木曜日 20:29:50 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
Feb 7, 2022, 9:04:42 AM2/7/22
to 宴ユーザーグループ
デフォルトではできないです。
宴のスキップは早送りで、スマホアプリなどでよくある「会話シーンを強制終了する」という意味のスキップではないです。
そういった意味でスキップを使う場合は、宴のスキップ機能ではなく、
「会話シーン全体をブラックアウトするような演出を入れたのちに、宴のシナリオを強制終了する」
というプログラムを書いたほうが良いかと思います。
その場合のブラックアウトは、宴の動作と独立して起きるのと、UIの表示順(ブラックアウトする手前に残すUIなどが宴側からはわからない)ため、宴側で作ることは考えていません。
お手数ですが、画面全体を覆うUIなどを使ってブラックアウトを自作してみてください。



2022年2月7日月曜日 17:35:23 UTC+9 yuri.tak...@gmail.com:

Yuri Takigawa

unread,
Feb 10, 2022, 4:49:12 AM2/10/22
to 宴ユーザーグループ
わかりました!
ありがとうございます!

2022年2月7日月曜日 23:04:42 UTC+9 マッドネスラボ:
Reply all
Reply to author
Forward
0 new messages