【偽春菜調(diào)查】構(gòu)造篇

偽春菜,是國內(nèi)的叫法,其實是開發(fā)者黒衣鯖人氏制造的First Ghost 的角色名,后來改稱為「伺か」即Ukagaka
偽春菜最早由ls 氏開發(fā),由佐川豊秋氏配布
偽春菜,由平臺和人格兩部分構(gòu)成
平臺(platform)在不同的操作系統(tǒng)上均有復(fù)刻實現(xiàn):SSP、Materia、CROW(win)、ninix-aya(linux,用ruby開發(fā)的,開源)、偽林檎(mac)、何か on 林檎(PPC、PowerPC Macintosh)、Pocket Ghost(PocketPC2002)
人格,由ghost和shell兩部分構(gòu)成,其中g(shù)host中包含shiori和saori
在運行時,背后發(fā)生的事情是這樣的:
平臺使用SSTP向shiori發(fā)送Request
shiori接收Request,根據(jù)需求查找辭書(dic),將內(nèi)容翻譯成sakura script,使用SSTP傳給平臺Response
SSTP,全稱「Sakura Script Transfer Protcol」?
櫻花腳本傳輸通信? ?<---------這里是重點
下面舉個小栗子
我們知道當(dāng)雙擊偽春菜時,會彈出菜單(menu),這個背后出發(fā)的shiori事件為?OnMouseDoubleClick
可以使用SEED工具發(fā)送OnMouseDoubleClick事件做測試

這個過程具體實現(xiàn)如下:
平臺(ssp),發(fā)送Request,如下
GET SHIORI/3.0
Sender: SSP
Charset: UTF-8
SecurityLevel: local
ID: OnMouseDoubleClick
Reference0: 238
Reference1: 239
Reference2: 0
Reference3: 0
Reference4:
Reference5: 0
shiori返回Response,其中Value就是櫻花腳本
SHIORI/3.0 200 OK
Sender: AYA
Charset: UTF-8
Value: \0\b[2]\![sound,stop]\_q\s[0]\![sound,play,voice/吩咐.mp3] 嗯…怎么了?\n\_q\![*]\q[剛才說了什么?,OnLastTalk]\n\n[half]\![*]\q[聊天,AITALK]\_l[120,-]\![*]\q[說笑話,Story]\n\![*]\q[教學(xué),教學(xué)] \_l[120,-]\![*]\q[對話,Communicate]\n\![*]\q[快捷,Rjkj]\_l[120,-]\![*]\q[任務(wù),OnMission]\n\![*]\q[鬧鐘,Alarm]\_l[120,-]\![*]\q[RSS,Autosign]\n\![*]\q[工具,Tool] ? \_l[120,-]\![*]\q[系統(tǒng),System]\n\![*]\q[設(shè)定,SETTING]\_l[120,-]\![*]\q[關(guān)于,ABOUTAYA]\n\n\_l[80,-]\q[取消,CANCEL]\e
書接上回,這也就解釋了為什么shiori能有那么多種編程語言實現(xiàn)
能根據(jù)辭書查找東東翻譯傳回櫻花語法,任何編程語言都能做到
補充一下:還有一些其他的增強? ,如:SAORI(可看作shiori功能拓展)、MAKOTO(ghost和shell功能拓展,實現(xiàn)根據(jù)季節(jié)換膚,以內(nèi)置)、SERIKO(實現(xiàn)動畫,已內(nèi)置)....SSP平臺也可以寫插件(這個增強方法更簡單更好用,用任何編程語言均可開發(fā)插件)
番外:這些奇奇怪怪名字的由來(讓我們來看看技術(shù)宅是怎么給程序起名字的)
SHIORI 來自?「美坂 栞」,其中栞這個字讀作SHIORI?
SAORI 來自?「観月さおり」(「観月さおり」的姐姐叫「観月しおり」,SHIORI ,所以可以把SAORI 看作SHIORI功能的拓展,從起名時就定好了)
MAKOTO 來自?「沢渡 真琴」
SERIKO 來自?「HMX-13 セリオ」
本文主要參考?https://www.ooyashima.net/db/ukagaka.htm
次回預(yù)告:SSTP篇