在遊戲Carto中,對話是重要的引導與解謎線索,讓玩家知道怎麼組合拼圖。
對於遊戲來說,對話不只能告訴玩家前進的方向或線索,也能藉此傳遞劇情與世界觀,讓玩家更能融入到遊戲的世界裡。
由於對話系統的重要性,所以我們今天要來嘗試實作它,並將實作的過程,詳細分享給各位讀者~
成果如下所示,可以看到圖中的NPC對話,以及後來的畫面晃動,這都是由對話系統所設定的觸發事件 。
文章中所使用的是2020.3.30f1的Unity,若要實作的話,我想使用2019.4以上的版本都沒問題。
而在實作系統之前,我們要先來分析要實作甚麼功能…
對話系統分析
我們要實作的對話系統,會是當玩家在地圖上不同區域、不同遊玩進度時,會進行對應對話的系統。
而我們要知道實作甚麼內容,以下為基本的對話系統所需之元素:
- 對話是由人說的,所以要知道有哪些人,以及他們各自的對話UI。
- 對話是由不同人說出一串串的句子,所以要知道誰說的、說了甚麼。
- 人在不同地點、不同遊戲進度,會有不同對話,所以要知道:
- 現在人在哪個地點。
- 各個地點有甚麼對話。
- 當前的遊戲進度為何,對話要求要甚麼進度才能觸發。
- 而有了以上的資訊後,需要有管理器根據資訊,來輸出對應的對話。
- 為了讓對話看起來更真實,所以讓對話的角色面對對方。
有了以上的認識後,我們就可以開始實作對話系統了!
系列文章
《Carto》實作對話系統02-建立遊戲所需物件
《Carto》實作對話系統03-建構程式
《Carto》實作對話系統04-把腳本加到對應的物件上
《Carto》實作對話系統05-當TextMeshPro沒有辦法顯示中文
《Carto》實作對話系統06-改善對話系統的操作介面
《Carto》實作對話系統07-加入對話結束後會觸發的事件
《Carto》實作對話系統08-當條件滿足時,不用按按鍵,可以直接觸發的對話