Dialogue System 教學

Dialogue System for Unity 是一套功能強大的對話系統,開發遊戲需要對話功能?不想撰寫太多程式?沒問題! Dialogue System 提供以節點為基礎的對話編輯器,快速製作互動式對話與管理任務,支援分支對話樹、Alerts、Barks、QTE、Quest System 任務系統,提供儲存與載入功能,並可支援多國語言。

Dialogue System 支援 UGUI, NGUI, TextMesh Pro 並提供精心製作的 UI 樣版,設計時可以快速修改套用。

使用 Dialogue System 開發的遊戲 Disco Elysium , Jenny LeClue , Eternights , Suzerain , Lake

首先從資源商店搜尋 Dialogue System for Unity 下載到專案。

匯入後出現 Add Input Manager Settings 對話框,若遊戲需要支援搖桿可按下 Yes 增加輸入定義。

接著出現 Dialogue System for Unity 的 Welcome 歡迎視窗,目前暫時不使用,可以關閉此視窗。

 

製作基本對話

首先透過 Dialogue System 製作遊戲的簡單對話,瞭解基本的操作流程。

開啟 [ Plugins > Pixel Crushers > Dialogue System > Prefab ] 資料夾。

將 Dialogue Manager 預製物件拖曳到場景,這是重要的對話管理物件。

選取 Dialogue Manager 物件,按下 Create 按鈕建立對話資料庫。

設定對話資料庫的檔案名稱與儲存位置,建議可先建立一個用於存放對話資料庫的資料夾。

完成後 Project 專案視窗將會顯示剛建立的對話資料庫。

滑鼠雙擊 Dialogue Database 開啟對話資料庫。

預設 Editor Settings 的自動備份功能是開啟狀態,可避免不正常的操作造成工作進度流失。

Auto Backup Frequency 預設值為 600 秒,輸入 0 取消自動備份,強烈建議使用備份功能!

自動備份的資料庫在原始資料庫的相同位置,檔名標示 (Auto-Backup)。

切換到 Conversations 分頁,按下 + 按鈕新增對話,建議可設定對話的名稱。

編輯區將會出現一個黃色的 <START> 節點,這是對話的起點。

游標移至 <START> 節點按右鍵,建立 Create Child Node 建立子節點。

游標移至灰色 < > 節點按右鍵,建立 Create Child Node 建立子節點。

灰色節點代表 NPC 角色的對話,游標移至灰色 < > 節點雙擊後輸入對話文字(輸入 Hello)。

藍色節點代表玩家角色的對話,游標移至灰色 < > 節點雙擊後輸入對話文字(輸入 Goodbye)。

此外,選取節點後,也可以透過 Inspector 的 Dialogue Text 欄位輸入對話文字。

 

對話系統觸發器 (Dialogue System Trigger)

對話需要特定條件觸發後才會出現,建立一個遊戲物件,可重新命名為 Dialogue System Trigger ★

選取 Dialogue System Trigger 物件後,按下 Add Component 新增 Dialogue System Trigger 元件。

按下 Add Action 按鈕並選擇 Start Conversation 開始對話。

Conversation 選擇剛建立的 New Conversation 1

Conversation Actor = Player

Conversation Conversant = NPC

設定 Trigger = On Start 後按下 Play 測試遊戲。

 

On Use = 使用此物件時(例如點擊)觸發對話,需要搭配 Usable 元件,請參閱後面教學。

玩家的 Selector 或 Proximity Selector 將會對遊戲物件傳送 OnUse 訊息。

On Start = 當此元件啟動時觸發對話,通常是載入此場景立即觸發對話。

On Enable = 當元件 Enabled 時觸發對話。

On Disable = 當元件 Disable 時觸發對話。

On Destroy = 當元件 Destroy 時觸發對話。

On Trigger Enter / On Trigger Exit = 元件接收到 OnTriggerEnter 訊息時觸發對話。

注意!使用此觸發器的遊戲物件需要 Trigger 碰撞器。此外,您可以設定 Conditions = Accepted Tags to restrict this trigger to GameObjects ,例如設為 Player 時,只有玩家角色碰到觸發器才會觸發對話。

On Collision Enter / On Collision Exit

On Bark Start / On Bark End

On Conversation Start / On Conversation End = 當對話剛開始或是剛結束時觸發對話。

On Sequence Start / On Sequence End = 當此物件剛開始或剛結束一個 Sequence 時觸發對話。

On Save Data Applied 當儲存系統 (Save system) 已將先前儲存的資料套用到場景時觸發對話。

 

修改 UI 外觀

滑鼠雙擊對話資料庫,將會開啟 Dialogue Manager 對話管理員。

按下 Next 按鈕,切換到 UI 使用者介面。

選擇您想使用的 UI 介面,例如 Sci-fi Dialogue UI 。

Localization 支援多語言功能,暫不使用,先按 Next 下一步。

Subtitles 顯示的字幕

Cutscenes 轉場

Input

Alerts 是遊戲的訊息,They can be delivered from conversations or other sources

Preview 檢視目前的組態設定,按下 Finish 完成對話設定。

現在 Game 視窗將會顯示 Sci-fi Standard Dialogue UI 外觀。

按下 Play 測試遊戲。

重複上述步驟,選擇不同的樣版找到需要的 UI 風格。

注意!套用新外觀記得刪除先前的樣版(刪除 Dialogue Manager > Canvas 的子物件)。

 

Old School Standard Dialogue UI 標準對話介面

 

本站相關連結 [ UI | Trigger | Lua code | 對話音效 | 場景事件 | 任務系統 | 使用範例 ]

/DS share+mixamo /A123