Ghost構築

閱讀之前

在繼續本篇之前,請先閱讀完人格概要,先有基本的檔案配置概念。

基本構成

一個Ghost的成型至少包含下列三種資料

  • 定義Ghost基本資料的描述文件:descript.txt。
  • 記述人格對話、動作的腳本。日文是寫作"辞書",原意為字典,實際上是一個或多個程式語法檔的集合。
  • 解析腳本並轉為SakuraScript給SSP核心程式運行的DLL檔案:SHIORI、MAKOTO等。

先來點導引觀念-1 descript.txt篇

下面會繼續探討各個部分所代表的功用,但可能會有點混亂(其實這部份教學還不知道要怎麼寫比較好,所以先提供這個導引觀念篇。),請先停一下看看這個段落。

原則上descript.txt比較容易理解,在descript.txt裡記載了這個人格所使用的文字編碼、人格名稱、偽AI(Shiori)檔案名稱等設定。

透過這個檔案,SSP核心程式才會知道要載入怎樣的核心程式,還有一些人格的基本資訊,如名字等等,才能在"人格切換"的選單功能中,將各個人格的名稱顯示出來。

descript.txt檔案有個特性:檔名是固定的,不會變更。SSP核心程式第一個讀取的一定是這個檔案。

先來點導引觀念-2 腳本篇

在日文裡面,是用"辞書"來稱呼這些檔案。原則上這些檔案是純文字檔型態,內容通常包括一些偽AI(Shiori)所提供的語法以及程式架構。

例如橘花的ai_2t.txt大概是這樣:

這些看起來很類似程式語法的東西,其實是偽AI所提供的語法,所以當你使用不同的偽AI時,這些語法也會不同。(這些語法是經過整合的高階語法,與C程式碼已經相去甚遠,詳情可以參考高階語法一文)

儘管這些語法已經透過偽AI簡化過,但要進行寫作的話,玩家還是需要有基本的程式設計概念

腳本的主要功能是提供玩家訂製自己的偽春菜人格內容,這包括了:

  • 選單配置
  • 滑鼠事件
  • 計時器
  • 載入外掛程式(SAORI)
  • 對話內容
  • 以下...

總之就是一個人格能從對話框裡面給予玩家的東西,通通寫在這些檔案裡面了。原則上腳本檔案可以全部寫在同一個檔案內,但一般為了方便整哩,通常會依照所寫的功能再分類成好幾個不同的檔案。

而偽春菜核心程式(或說偽AI)要如何知道這些分散的檔案在哪裡?其實秘訣就在於"設定檔"裡面,如同descript.txt,偽AI也會有自獨創的設定檔,這些設定檔的名稱與位置由偽AI自行定義,因此您必須要去研讀該偽AI的文件,才能了解這個檔案是放在哪裡。

AYA為範例,她的設定檔是指與AYA的偽AI檔案同名的.txt檔案,例如:你將偽AI檔案設定為Aya5.dll,則其設定檔為Aya5.txt。

而要載入的各個腳本檔案資訊,就放在這個"設定檔"裡面。

接下來請繼續看以下的各部分檔案詳細介詔:

descript.txt

人格描述檔,用來指定人格的名稱、製作者等基本資訊。

標準的descript.txt內容如下:

charset,UTF-8
type,ghost
name,さくら

sakura.name,さくら
kero.name,うにゅう

craftman,Fujiaki Kasori
craftmanw,圭反藤諒
craftmanurl,http://sakura.mikage.to/

icon,sakura.ico

shiori,first.dll
makoto,firstr.dll
  • 『charset』可設定文字編碼,請依照你所撰寫的人格所使用的編碼進行設定,例如UTF-8,Shift_JIS、BIG5、GB2312等。但要注意這個設定並非萬能,如果你所使用的偽AI不支援多國語系,那麼即使這個地方設定正確,在不同的語系環境時還是會遭遇嚴重的亂碼問題。偽春菜的多國語系支援是目前尚不能好好解決的問題,因為這個沒有強制標準,目前除了少數幾個偽AI,大部分都是只支援日文語系編碼的。
  • 『type』是檔案類別,有ghost、shell、ballon等幾種,是人格本體的話設為ghost即可。
  • 『name』即人格總體資料的名稱,嫌命名麻煩的話就直接用人格角色名即可。
  • 『sakura.name』及『kero.name』是人格的角色名稱。
  • 『craftman』部份則是作者的相關資訊。
  • 『icon』設定的圖示會把右下角的核心程式圖示換掉。
  • 『shiori』跟『makoto』都是偽AI的部份,請務必設定正確。

其他詳細的規格請參見GhostDescription

Shiori.dll

Shiori負責解析人格辭書資料,選出適當的詞句,組合成對話。是讓人格活潑起來的重要關鍵。 事件發生的時候(例如對時、說話、Communicate、Ballon選單..), 核心程式都會呼叫Shiori,而Shiori就生成相對應的對話傳回。

藉由設定人格的反應以及會話內容,讓Shiori產生了看似AI行為的這樣一個過程,我們稱之為『偽AI』,或者『人工無腦*1』。

由於Shiori是開放規格,所以有很多種現成的Shiori可以使用。 不同的人格,可能使用不同的Shiori跟Makoto。目前常見的有華和梨、文、美坂等等。

一般說來,自己寫人格的時候,就是撰寫供Shiori處理的人格資料。 不同的Shiori,人格資料的寫法也不一樣。 通常是夾雜對話資料和簡單程式碼的文字檔。 對話資料必須使用Sakura Script寫成。性質有點像寫網頁使用的HTML。 程式的部分,大多的Shiori也提供變數、事件、條件判斷、迴圈等等像是程式語言的 功能。 甚至也有人用Shiori提供的功能寫成小遊戲的,像是まゆら這個有名的人格。

但是,不會寫程式的人也別放棄得太早。也有方法可以不需要撰寫複雜的程式的,偽春菜中有所謂『人格範本』這樣的東西,像是華和梨的KEEPS、文的紺野ややめ?這樣的東西,已經幫你寫好了大部分的功能,只要把對話的部份稍做修改,便能做出一個專屬於自己的人格。

Shiori的漢字是栞。
命名來源是日本Key公司出版的遊戲「Kanon」中的人物「美坂 栞」

各Shiori的詳細說明請參照SHIORI

注意:Shiori檔案不一定就叫做Shiori.dll,這個名稱是可以任意更動的,並沒有固定標準,實際檔名請參考descript.txt內的shiori設定值。

Makoto.dll

Makoto負責第二階段的處理。接管Shiori傳回的資料,被稱為「Translator」。 經由內外部伺服器接收到Nanika的資料,也會經過makoto的處理。 它是選擇性的元件,在Shiori的發展日趨強大之後, 使用到Makoto的人格也愈來愈少了。 主要負責句子的「加工」,如語尾變化等等。 Makoto也是開放的規格,和Shiori比較起來,功能就比較不那麼固定。 不才撰寫的轉碼元件,就是在這個階段,替對話做轉碼的動作。

Makoto的漢字是「真琴」。
命名來源同樣是「Kanon」中的人物「澤渡 真琴」。

Saori.dll

想使用Shiori中未搭載的功能時,就必須藉助SAORI這樣的東西來完成我們的要求,像是變更桌布、播放音樂等。每個Shiori載入SAORI的方式都不一樣,這部份請參看各Shiori專有的說明書。

詳細說明請參照SAORI

注意:saori檔案不一定就叫做saori.dll,這個名稱是可以任意更動的,並沒有固定標準,實際檔名也不好捉摸。
這個不像是shiori有標準的descript.txt記載。有時候你必須要去搜索各種資料才知道到正確用法。

thumbnail.pnr

如果你想要讓你的Ghost有透明的banner圖,只要製作好相關的圖示,背景設定為紅或藍色(三原色),存成 thumbnail.png,再將thumbnail.png副檔名更名為.pnr,這樣核心程式就會取該張圖片座標的(0,0)位置的顏色為透明顏色,效果跟shell目錄底下的surface.png系列相同。

這個檔案放在Ghost_Name主目錄下或者ghost\master都可以。

AI的寫法?

關於人格資料的詳細撰寫方法, 因為各家shiori的語法各異,且不是三言二語能講完的,所以會慢慢另外開設專欄介紹。

目前您最需要的是將檔案的配置方式弄懂,如此一來無論是日後要編寫AI或者僅是想修改自己喜歡的人格等都能得心應手。

現在站上已經有AYA的說明文件了,建議您先看完人格概要與本篇之後,進入該專欄文章中一探究竟,詳細的撰寫方法會在那邊提及。


*1 也有人說偽AI是「人工製繪」,是不是很貼切呢?XD

首頁   編輯 封鎖 差異 備份 上傳檔案 複製 變更名稱 重新載入   新建條目 一覽 搜索 最近的變更   幫助   最近更新的RSS
Last-modified: 2012-09-13 (四) 22:25:09 (2414d)