【Unity 插件推薦】Yarn Spinner 對話腳本神器,任你玩轉對話與情節選擇!

目錄
【Unity 插件推薦】Yarn Spinner 對話腳本神器,任你玩轉對話與情節選擇!

前言

 

在開發【RPG】、【視覺小說】或【互動敘事】類型的遊戲時,對話系統往往是最核心的元素之一。

你是否也曾為了構建複雜的【選項分支】、【情境控制】與【角色互動流程】而傷透腦筋?今天要介紹的就是專為這類需求設計的神器——Yarn Spinner

 

Yarn Spinner 是一套強大且簡潔的對話系統工具,讓你可以透過類似劇本格式的語法輕鬆撰寫【分支劇情】、【條件對話】與【互動命令】。

不僅【語法直覺】、【彈性強】,還能與 Unity 完美整合,讓非程式人員也能快速上手。

 

無論是打造【角色互動】、【對話選擇】、【語音整合】,甚至是多語言翻譯,Yarn Spinner 都能一手包辦!

如果你正在尋找一款兼具【彈性】與【易用性】的 Unity 對話系統工具,Yarn Spinner 絕對是不可錯過的選擇!

在開發【RPG】、【視覺小說】或【互動敘事】類型的遊戲時,對話系統往往是最核心的元素之一。  你是否也曾為了構建複雜的【選項分支】、【情境控制】與【角色互動流程】而傷透腦筋?今天要介紹的就是專為這類需求設計的神器——Yarn Spinner。    Yarn Spinner 是一套強大且簡潔的對話系統工具,讓你可以透過類似劇本格式的語法輕鬆撰寫【分支劇情】、【條件對話】與【互動命令】。  不僅【語法直覺】、【彈性強】,還能與 Unity 完美整合,讓非程式人員也能快速上手。    無論是打造【角色互動】、【對話選擇】、【語音整合】,甚至是多語言翻譯,Yarn Spinner 都能一手包辦!  如果你正在尋找一款兼具【彈性】與【易用性】的 Unity 對話系統工具,Yarn Spinner 絕對是不可錯過的選擇!

 

 

Unity Yarn Spinner 插件介紹

 

Yarn Spinner 能夠讓開發者以人類可讀的語法撰寫遊戲中的【分支對話】、【條件控制】與【事件命令】。

這套系統不僅支援對話文字,還能串接【選項】、【動畫】、【音效】、【本地化】等遊戲元素。

 

插件安裝簡單,可透過 Unity Package Manager 加入 Yarn Spinner 的 OpenUPM 倉庫進行安裝,最低支援 Unity 2020.1。

透過 Yarn Project 管理整體腳本結構、開始節點、語音/翻譯配置,讓整體開發流程更清晰可控。

 

在實際使用上,開發者可以直接在 Unity 編輯器中【建立 Yarn Script】、【設定 Dialogue Runner 管理器】、【編寫腳本內容】,並預覽對話效果。

整套流程【模組化】、【彈性高】、【學習曲線平緩】,是新手與團隊開發的絕佳工具!

Yarn Spinner 插件示意圖

 

功能特色

  1. 腳本語法簡潔直觀,輕鬆編寫分支劇情
    使用自訂腳本語言來撰寫對話,語法類似 Markdown你可以輕鬆做出【角色對話】、【選項分支】、【條件判斷】和【事件指令】,劇情怎麼走全由你決定,寫起來就像在編故事。
  2. 結合 Unity 編輯器,視覺化對話流程管理
    所有對話腳本都可以透過 Yarn Project 統一管理,你只要掛上 Dialogue Runner,設定開始節點,就能在 Unity 編輯器裡直接跑對話流程。
  3. 支援【本地化】與【語音同步】功能
    可將所有對話匯出為 CSV 並且進行翻譯,結合【Line Tags 系統】與 【Builtin Localised Line Provider】元件,即可在遊戲中自由切換【語言】與【對應語音檔案】。

 

適用場景

  1. 【RPG】與【冒險遊戲】的分支對話系統建構
    適用於需要【大量角色互動】、【選項影響劇情發展】的遊戲類型,如【日式 RPG】、【模擬經營】、【劇情推理】等。
  2. 【視覺小說】與【敘事型遊戲】開發
    可搭配【UI 元件】與【角色表情動畫】,實現如《Steins;Gate》、《戀愛模擬》般的【對話切換】與【節奏控制】。
  3. 需要【多語言版本】與【語音同步】的跨平台遊戲
    透過本地化模組可自動切換【對話語言】與【對應語音】,非常適合需支援【中英雙語】或【全球發行】的遊戲專案。
【Unity 插件推薦】Yarn Spinner 對話腳本神器,任你玩轉對話與情節選擇!

 

 

Unity Yarn Spinner 從 Unity Package Manager 進行安裝

 

安裝方式其實有很多種,但我推薦像正常安裝來自 Unity Asset Store 中購買的套件一樣安裝 Yarn Spinner

注意:從 OpenUPM 取得外掛程式包要求您的專案使用的最低版本至少為 Unity 2020.1 ,如果您的專案使用更早的 Unity 版本,那麼建議從 Github安裝。

 

1.新增倉庫配置

開啟管理介面 Edit/Project Settings/Package Manager

Name:OpenUPM
URL:https//package.openupm.com
Scope(s):dev.yarnspinner

 

新增倉庫配置。

新增倉庫配置。

 

2.安裝 Yarn Spinner 包

然後我們可以打開管理介面 Edit/Windows/Package Manager,點擊安裝。

然後我們可以打開管理介面 Edit/Windows/Package Manager,點擊安裝。

 

 

Unity Yarn Spinner 使用實例

 

1.創建 Yarn Script

在項目視窗右鍵,選單中找到 Create -> Yarn Spinner -> Yarn Script, 然後點擊建立即可。

 

2.建立 Yarn Project 文件

我們可以像前面一樣透過在專案視窗右鍵 Create -> Yarn Spinner -> Yarn Project 建立 Yarn Project 文件。

也可以直接通過的點擊前面建立的 Yarn Script 檔案的 Create New Yarn Project... 按鈕進行快速建立。

也可以直接通過的點擊前面建立的 Yarn Script 檔案的 Create New Yarn Project... 按鈕進行快速建立。

 

新建立的工程文件也會自動地與我們的腳本文件產生綁定。

新建立的工程文件也會自動地與我們的腳本文件產生綁定。

 

Yarn Project 代表一個文字工程,主要用於綁定一系列的 Yarn 腳本,同時也可以配置其他例如在地化、語音等。

Yarn Project 代表一個文字工程,主要用於綁定一系列的 Yarn 腳本,同時也可以配置其他例如在地化、語音等。

 

其中,Source Yarn Scripts 表單使用以指示該 Project 如何尋找到對應的腳本文件,正常情況下,Yarn Project 會根據該規則在目錄下自動索引 Yarn Script 文件。

可以透過以下符號來自訂 Yarn Project 對腳本檔案的索引規則。

符號描述範例
*任意檔名。“*.yarn” 將會符合任意的 .yarn 文件。
**/*所有文件,且包含子目錄中的文件。**/*.yarn 將符合本目錄包括子目錄下的所有 .yarn 文件。
..父目錄。../*.yarn 將匹配父目錄下的所有 .yarn 文件。

 

這裡如果我們只想關聯我們前面建立的 NewYarnScript 腳本,可以修改為 ./NewYarnScript.yarn。

這裡如果我們只想關聯我們前面建立的 NewYarnScript 腳本,可以修改為 ./NewYarnScript.yarn。

 

3.創建 Dialogue System 對話系統

在層級窗口,點擊建立。

在層級窗口,點擊建立。

 

會建立一個預製件,該預製體已經包含一套完整的對話系統,包括 UI 等。

會建立一個預製件,該預製體已經包含一套完整的對話系統,包括 UI 等。

 

4.給 Dialogue Runner 綁定 Yarn Project 數據

4.給 Dialogue Runner 綁定 Yarn Project 數據

附註:Dialogue Runner 是 Yarn Spinner 的管理器元件,該元件負責載入、執行和管理 Yarn Project中的內容,從中讀取 Yarn Script,並在遊戲時將腳本中的內容傳遞給其他遊戲元素,如GUI等。

 

5.開啟自動啟動對話系統並配置開始節點

5.開啟自動啟動對話系統並配置開始節點

 

6.運行遊戲查看效果

完美運行,是不是很簡單?

完美運行,是不是很簡單?

 

7.編寫 yarn 腳本,自訂對話內容

Yarn Script 即為 Yarn 格式的腳本、或稱臺本文件,在遊戲中的對話內容將主要書寫在該文件中。

其實 Yarn Spinner 是一種專為遊戲對話設計的腳本語言(類似 Markdown 的語法),用來編寫分支對話、條件邏輯和互動敘事內容。

 

它的核心是一個獨立於遊戲引擎的文本標記語言。

它是完全獨立的個體。查看文件我們也可以發現,Yarn Spinner 不只可以用在 Unity,還可以用在其他引擎。

它是完全獨立的個體。查看文件我們也可以發現,Yarn Spinner 不只可以用在 Unity,還可以用在其他引擎。

 

為了讓 Yarn 腳本在 Unity 中運行,需要藉助 Yarn Spinner 外掛程式。這個插件充當了“ 桥梁”。

Yarn 的語法我就不多介紹了,具體可以查看相關文檔,這裡我直接寫一個例子。

title: Test1

---

Yarn Spinner is a language for writing conversations in games!

For example, here's a choice between some options!

-> Wow, some options!

   You got it, pal!

-> Can I put text inside options?

   You sure can!

   For example, here's some lines inside an option.

   You can even put options inside OTHER options!

   -> Like this!

       Wow!

   -> Or this!

       Incredible!

You can also write 'commands', which represent things that happen in the game!

===

 

我們可以前往 Yarn Spinner 的網站預覽我們編寫的腳本對話,點擊 RUN 即可。

我們可以前往 Yarn Spinner 的網站預覽我們編寫的腳本對話,點擊 RUN 即可。

 

Yarn 的文法還是很簡單的,聰明如你,相信不需要我過多的解釋,你應該都大致懂得如何寫自己的對話了。

 

8.運行效果

對話的節點名稱我們修改了,記得要先對應的修改一下 Start Node。

對話的節點名稱我們修改了,記得要先對應的修改一下 Start Node。

 

運行效果如下。

運行效果如下。

 

9.按鍵控制

們可以使用 Line Advancer 元件實現用按鍵操作對話前進。

Dialogue System 下面預設其實已經有一個子物件加入了該元件了。

Dialogue System 下面預設其實已經有一個子物件加入了該元件了。

 

這裡指 space 按鍵控制快轉對話,esc 按鍵進入下一行對話。

我們可以修改它的參數,實現不同的按鈕控制。

 

10.設定本地化及多語言對話

Yarn Project 的 Localisation 表單就是配置該工程的在地化的。

 

10.1 為 Yarn Scripts 新增行標籤

預設我們是沒有為 Yarn Scripts 添加行標籤的,這是我們需要先點擊 Add Line Tags to Yarn Scripts 按鈕即可。

預設我們是沒有為 Yarn Scripts 添加行標籤的,這是我們需要先點擊 Add Line Tags to Yarn Scripts 按鈕即可。

 

效果,會自動在每行的後面添加一個唯一的標籤,這個標籤其實可以理解為一個唯一的主鍵 id,用於區分不同行數據。

效果,會自動在每行的後面添加一個唯一的標籤,這個標籤其實可以理解為一個唯一的主鍵 id,用於區分不同行數據。

 

10.2 將字串和元資料匯出為 CSV 格式

10.2 將字串和元資料匯出為 CSV 格式

 

匯出的 csv 資料就包含了對話訊息,我們為每段對話的後面加上一個 new 字作為區分,類比另一種語言。

匯出的 csv 資料就包含了對話訊息,我們為每段對話的後面加上一個 new 字作為區分,類比另一種語言。

 

我們修改檔案名為 Project_en。

我們修改檔案名為 Project_en。

 

10.3 新增一種語言 English

在 Yarn Project 檔案中新增一種語言 English,並配置 Strings File 為我們前面建立的 Project_en 對話文本。

在 Yarn Project 檔案中新增一種語言 English,並配置 Strings File 為我們前面建立的 Project_en 對話文本。

 

10.4 切換語言

在 Dialogue System 新增腳本元件 Builtin Localised Line Provider,並綁定到 Line Provider 參數,用於控制顯示哪種對話語言文本,這裡切換為我們新建的 English:(en) 語言。

在 Dialogue System 新增腳本元件 Builtin Localised Line Provider,並綁定到 Line Provider 參數,用於控制顯示哪種對話語言文本,這裡切換為我們新建的 English:(en) 語言。

 

如果你想在運行時選擇語言,只需要通過代碼控制組件 Builtin Localised Line Provider 的切換。

 

10.5 運行效果

可以看到,對話文字都變成了 new 文字了。

可以看到,對話文字都變成了 new 文字了。

 

11.切換音頻

設定 Yarn Project 對應的 Assers Folder 資料即可,注意音訊檔案名稱要和 #line 標籤對應上。

設定 Yarn Project 對應的 Assers Folder 資料即可,注意音訊檔案名稱要和 #line 標籤對應上。

 

切換音頻和前面多語言類似,也是在 Dialogue System 新增腳本組件 Builtin Localised Line Provider,Asset Locale Code 參數就是用來控制顯示哪個音頻,例如這裡切換為 English:(en) 音頻。

切換音頻和前面多語言類似,也是在 Dialogue System 新增腳本組件 Builtin Localised Line Provider,Asset Locale Code 參數就是用來控制顯示哪個音頻,例如這裡切換為 English:(en) 音頻。

 

 

Unity Yarn Spinner 相關介紹 & 教學影片 

 

Use Unity Localisation with Yarn Spinner 2.3!

 

Yarn SpinnerUsing Yarn Spinner with Unity (2023)

 

Dev Diary 5: Yarn Spinner in Unity

 

 

Unity Yarn Spinner 對話腳本神器相關網站 & 插件下載點

 

【Yarn Spinner】

官方網站:Yarn Spinner

官方文檔:Yarn Spinner

GitHub 下載連結:Yarn Spinner

Gitee 下載連結:Yarn Spinner

————————————————

 

更多好用插件:【Unity 好用插件推薦】持續更新,一起讓遊戲開發事半功倍!

 

 

 

本文原創(或整理)於亞洲電玩通,未經作者與本站同意不得隨意引用、轉載、改編或截錄。

特約作家簡介

X
A
Y
B
JamXu的頭像
JamXu
十年遊戲研發
二十年遊戲台主
三十年遊戲玩家

經中華網龍遊戲企劃進入遊戲圈,然後被雷打到去學程式前後端又學了點設計帶帶幾個研發團隊,見證了 3D 渲染技術及遊戲引擎互相進步,也見證了研發代理的更迭與博弈遊戲的興起,再毅然研究起 SEO 網路行銷社群廣告投放,深信自研自賣才是最大贏家,期望能為台灣研發重回輝煌時光貢獻一點力量。如果你也有遊戲夢,歡迎交流認識。


支持贊助 / DONATE

 

亞洲電玩通只是很小的力量,但仍希望為復甦台灣遊戲研發貢獻一點動能,如果您喜歡亞洲電玩通的文章,或是覺得它們對您有幫助,歡迎給予一些支持鼓勵,不論是按讚追蹤或是贊助,讓亞洲電玩通持續產出,感謝。

亞洲電玩通AsiaGameMaster - Steam 遊戲鑑賞家
亞洲電玩通AsiaGameMaster - FB 粉絲專頁
亞洲電玩通AsiaGameMaster - IG 粉絲專頁
亞洲電玩通AsiaGameMaster - Twitter
亞洲電玩通AsiaGameMaster - Yoytube 粉絲專頁
亞洲電玩通AsiaGameMaster - Tiktok

BTC

亞洲電玩通AsiaGameMaster - BTC 鏈贊助地址

352Bw8r46rfXv6jno8qt9Bc3xx6ptTcPze

 

ETH

亞洲電玩通AsiaGameMaster - ETH 鏈贊助地址

0x795442E321a953363a442C76d39f3fbf9b6bC666

 

TRON

亞洲電玩通AsiaGameMaster - TRON 鏈贊助地址

TCNcVmin18LbnXfdWZsY5pzcFvYe1MoD6f

延伸閱讀