本日は DialogueSystem の勉強枠です。
DialogueSystem のトリガーとインタラクションを確認しながら記事にします。
今回は Bark と2D物理演算サポートについてです。
前回記事
以下の前回記事の続きです。
bluebirdofoz.hatenablog.com
Bark(単発台詞)
会話は通常アクターがセリフを言い、次に会話相手がセリフを言うという前後の流れがあります。
Barks はプレイヤーの応答メニューや前後を含まない1回限りのセリフです。
これは通常 NPC が雰囲気を出すために話したり(例:「今日はいい天気だね」)、NPC の状態をプレイヤーに伝えるために話したりします(例:「リロード中!」)。
Barkの作成
Bark を作成するには全てのエントリを START ノードの子として追加します。つまりツリーの深さは 1 レベルのみです。
アクターが Bark を行うと、ダイアログシステムはSTARTノードのすべての子を評価して、現在有効なエントリのリストを生成します。
次にこのリストからエントリを選択してセリフを発します。
Bark のエントリに条件を設定することで現在のゲームの状態を認識できます。
例えば、NPC は体力レベルに基づいて様々なセリフを発することができます。
Barkの優先度
Bark エントリに優先度レベルを指定して、優先度の低いエントリが高いエントリを妨害しないようにすることができます。
これを行うには[Priority]という名前のカスタム数値フィールドをダイアログエントリに追加します。値が大きいほど優先順位が高くなります。
各エントリにこのカスタムフィールドを追加したい場合は[Templates]タブでテンプレートに追加できます。
ダイアログエントリに[Priority]がない場合は、デフォルト値の 0 が使用されます。
Bark がトリガーされたときに NPC が既に Bark を再生している場合、Dialogue System は新しい Bark の優先度が現在の Bark の優先度以上の場合にのみ、新しい Bark を再生するために再生中の Bark を中断します。
2D物理演算サポートを有効にする
Dialogue System は2D物理演算(Physics2D)もサポートしています。
Unity では2D物理演算パッケージ(Physics2D)を有効または無効にすることができるため、Dialogue System のコードはプロジェクトで Physics2D が利用することを前提としていません。
Physics2D を利用する場合、Welcome Window(Tools -> Pixel Crushers -> Dialogue System -> Welcome Window)を開き、[Enable 2D Physics]にチェックを入れるか。
メニューから[Crushers -> Common -> Misc -> Enable Physics2D Support...]を選択します。
注: Unity 2017 以前を使用している場合、このメニュー項目は表示されません。
手動で2D物理演算サポートを有効にする場合、メニューから[Edit -> Project Settings]の[Player]タブを開き、[Scripting Define Symbols]を追加します。
USE_PHYSICS2D