MRが楽しい

MRやVRについて学習したことを書き残す

DialogueSystemのトリガーとインタラクションの使い方 その2(その他のトリガーコンポーネント)

本日は DialogueSystem の勉強枠です。
DialogueSystem のトリガーとインタラクションを確認しながら記事にします。
今回はその他のトリガーコンポーネントについてです。

前回記事

以下の前回記事の続きです。
bluebirdofoz.hatenablog.com

その他のトリガーコンポーネント

Bark On Idle

Bark On Idle コンポーネントを使用して最小秒と最大秒の間のランダムな頻度でゲームオブジェクトで単発会話を再生します。

Range Trigger

Range Trigger コンポーネントを使用してゲームオブジェクトをアクティブ化し、指定された条件が満たされたときにコンポーネントの OnTriggerEnter を有効にします。
OnTriggerExit が発生すると、ゲームオブジェクトは非アクティブ化されてコンポーネントは無効になります。
このコンポーネントはプレイヤーがNPCの近接を表すトリガーコライダーに入ったときにのみ、Bark On Idle などのコンポーネントを有効にするのに役立ちます。
また、開始時と終了時に実行する UnityEvents を設定することもできます。

Trigger Event, Collision Event, Timed Event

Trigger Event, Collision Event, Timed Event はトリガーコリジョン、通常の物理コリジョン、経過時間に対してそれぞれ UnityEvent を実行する汎用コンポーネントです。

Dialogue System Events

Dialogue System Events コンポーネントはダイアログシステムアクティビティが発生したときに UnityEvents を実行します。
各フィールドにはゲームオブジェクトが対応するメッセージを受信したときにコンポーネントが処理できるイベントのセクションがあります (OnConversationStart など)。
OnConversationStart などの多くのイベントは 2 人の会話参加者とダイアログマネージャーでのみ呼び出されることに注意してください。
会話参加者に関係なくイベントを実行する場合はダイアログマネージャに Dialogue System Events コンポーネントを配置します。

Selectors & Usables

ダイアログシステムは Usable コンポーネントを持つゲームオブジェクト (NPC など) と対話できるインタラクションシステムを提供します。
プレーヤーには次の 2 つのコンポーネントのいずれかを追加できます。

Selector

Selector コンポーネントはマウスの位置や画面の中央など、指定された位置からのレイキャストによって Usables を検出します。
プレイヤーがボタンを押すと対象に OnUse メッセージが送信されます。

注: 2D モードでは、カメラは正投影である必要があります。

画像は https://www.pixelcrushers.com/dialogue_system/manual2x/html/triggers_and_interaction.html より引用

Proximity Selector(近接セレクター)

Proximity Selector コンポーネントはトリガーコライダーに入るときに Usables を検出します。
プレイヤーがボタンを押すと、対象に OnUse メッセージが送信されます。

画像は https://www.pixelcrushers.com/dialogue_system/manual2x/html/triggers_and_interaction.html より引用

Selector/Proximity Selectorの UI 要素

Selector または Proximity Selector を追加すると、ダイアログシステムは Selector Use Standard UI Elements コンポーネントを追加するかどうかを尋ねます。
このコンポーネントにより、Selector または Proximity Selector はダイアログマネージャープレハブに割り当てられている Unity UI を使用するか。
割り当てられていない場合はシーン内で見つかった Standard UI Selector Elements ゲームオブジェクトを使用できます。


標準UIのスタイルを変更する場合はプレハブを見つけて複製し、インスタンス化プレハブコンポーネントに割り当てて複製をカスタマイズします。
または、必要に応じてプレハブのインスタンス化リストからプレハブを削除し、標準UIプレハブのインスタンスをシーンに直接追加します。

OnUseメッセージ

プレイヤーが Usable をターゲットにしてキーまたは ボタンを押すと、Selector は Usable ゲームオブジェクトにメッセージを送信します。
Dialogue System Trigger コンポーネントなどのダイアログシステムのトリガーはこのメッセージに応答します。

独自のスクリプトは次のような OnUse メソッドを追加することで、このメッセージを受け取ることもできます。

void OnUse(Transform player) {
    Debug.Log("I'm being used by " + player);
}

Usable は選択、選択解除、および使用時に実行される UnityEvents を持ちます。
これらのイベントはインスペクターで設定できます。

次は Bark と2D物理演算サポートについてです。
bluebirdofoz.hatenablog.com