前往
大廳
主題

Unity 遊戲製作 - 對話系統開發日誌 Day3

放課後的遊戲 | 2023-09-18 00:51:20 | 巴幣 20 | 人氣 248

前言

最近過得比較廢,剛好又遇上 PayDay 3 的公測與去參與 PCS 的線下決賽,上週就沒更新了,沒想到有人在關注開發狀況 ,趕緊補一下進度。
可能只有在另一邊的遊戲自製公會有說過,總之補充說明一下,雖然標題是用 Day N 來開發,但其實這個系列不會每天都進行開發,一方面我現在還有自己的工作要顧,另一方面是我有時候想偷懶,用 Day N 只是方便記錄我東西大概開發了多久而已。

回歸正題,依照上一篇的進度,當初預定的開發內容,大致內容就只剩下三個子項目待開發了。
  1. 略過對話
  2. 人物立繪的顯示
  3. 選擇系統
今天主要是針對二三項的內容去處理,第一項因為已經有加速對話的內容了,就沒有急著做了。

主文

前一篇有提到人物立繪的顯示預留的方法都有先做好,只是沒有實際圖片測試,今天就只是把東西補上而已。
測試的時候也算順利,預留的方法都有用上,也沒出什麼大問題。
只是現在圖片沒辦法自適應大小就是了,也就是目前的內容只能固定一種尺寸的圖片顯示,預設是500x500 之後可能要再額外調整吧。

今天的重點主要是放在第三個需求的選擇系統。
主要的問題在於因為我想要用文件來載入文本,所以在設計上我想盡量減少使用者需要去建立 ScriptableObject 這件事情,不然就沒有辦法達成使用者只要替換文本就可以調整操作的內容了。
這部分目前的設計是讀取文本時如果偵測特定文字,就去執行指定的操作,大概內容如下。
↑這是基礎的對話文本
可以看到有 ## 跟 #ShowOption 開頭的字串,## 開頭是用來設定對話的頭像、顯示名稱,#ShowOption 則是用來指定當這個對話結束之後要開啟哪一個選項文本

↑這個則是選項文本的內容
一是選項要呈現的內容,後面則是當選擇該選項之後要載入的文本內容。
當然除了載入文本之外,也可以選擇載入另一個選項。

大抵今天的設計開發就是這樣了。
程式不算複雜,使用的行數也不多,麻煩的點在於的這樣的架構其實有點不是很直觀,而且如果像是我對話完之後不是要顯示其他對話,而是要呈現遊戲內容的話,比方說可能要讓人物移動、門打開之類的話,想單獨用文件來操控事件觸發就有點困難(也有可能只是我暫時還沒想到),所以目前的架構我個人沒有很喜歡...

之後有可能再更改一下整體的運行結構吧..之後再想想能怎麼改善。

最後一樣擺上個目前的成品圖

這次用的是上一篇巴友推薦的 ShareX 進行截圖,功能不少,也不會壓浮水印,有需求的人也可以考慮看看。
也感謝其他巴友們的其他截圖軟體推薦,感謝

上一篇開發日誌
Day2 開發日誌

創作回應

Hua
我使用過(部分)markdown語法做劇本/指令. markdown是常見的字串格式, 找現成的解析函數不難. 最後再套上與引擎相接的控制函數.

Demo : https://codepen.io/rexrainbow/full/eYPLVmM
markdown 事件內容 : https://github.com/rexrainbow/phaser3-rex-notes/blob/master/assets/markedeventsheet/command-executor.md?plain=1

使用phaser3 html5 game engine.
2023-09-19 13:57:00

更多創作