時隔許久,終於又想起了這個項目。
大學寒假,這段時間過的昏昏沉沉,每天做不了半件事就又晃過去一天。不過至少,1/3的事情也是事情,想來想去還是決定重構這個項目。UkagakaW中的C#部分代碼可以繼續沿用,但是D2D渲染這個設計最終還是放棄了。或許最一開始我又莫名起了那種“挑戰者”的心理,想著通過這樣稍微繁瑣複雜一點的的方式實現功能,但最後誰能想到SSP的功能遠比我以前想象的要複雜。對,我仔細參考了SSP的設計,SSP并沒有開源,但是它的“標準規範”都明確地寫在官網上了,中文網站上也能找到相關的資料。想起來忘記説了,想來想去,兼容SSP的設計是必不可少的,無法兼容SSP的偽春菜的話這個引擎幾乎就跟廢了沒什麽區別。時至今日,曾經的偽春菜作者們都有了自己的事業甚至家庭,沒有經歷再去做新的了;新的年輕人們更不用説,很少會再像上一代網民那樣有耐心和興趣去做“制做偽春菜”這種事。偽春菜之所以有魅力,是因爲它是很多人的細心,耐心和匠心共同製作出來的可愛的電子精靈。那時候沒有發達的AI技術也沒有很多很好的軟件解決方案,偽春菜的對話(偽AI)全部是靠人一點一點手寫上去的,如今,我不知道有多少還願意去做這件事。
因此,我雖然考慮過這點因此想盡可能地把UkagakaW的偽春菜製作過程設計的簡單,符合現代網民的思維模式:設計一個基於python的,可讀性更强的Neko Script來代替Sakura Script和shiori提供的脚本方言,開發偽春菜調試面板來提供初學者充足的幫助,總之就是讓過程變得更加簡單易懂。當然,我必須承認我還是天真了,想要讓這種軟件普及,哪怕不説文藝復興,就是回到當年十分之一的熱度,都需要相當大的努力。因此,兼容SSP是必須的,這不代表我要做的定位是一個SSP的代替品,“一個更好看的有更多功能的半殘SSP”,而是一個新的偽春菜平臺,曾經似乎也不止我做過這樣的事,06、07年還有CROW,Materia這樣的團隊試圖開發SSP以外的客戶端,但是最後哪怕在圈内它們的名字都很少被提起。然後還有ninix,偽林檎這樣目標是在Linux,Mac OS這些操作系統上運行的客戶端。當然,那些也都很老了。話説回來,我目前的定位是希望做一個不同的偽春菜平臺,它橫跨三平臺,甚至可以在網頁端上被插入運行,兼容SSP而不止於SSP,同時推廣出新的偽春菜開發模式,讓以前沒有接觸過偽春菜的年輕人能夠試著接觸這個過去的互聯網留下的寶藏。
決定重構后,項目的一些結構設計發生了巨大的變化,首先,就像開頭説的,D2D渲染的設計被放棄了,因爲那個不僅局限了操作系統(Windows only),而且如果想要更加複雜的功能做起來則異常繁瑣。項目被切分成了更多個模塊:
用electron框架編寫前端渲染器『Yuzuki』,balloon中支持html文本渲染,同時兼容兩種不同的後端:OpenSSP和UkagakaW。這兩個將會在下文討論到。
OpenSSP也是新的項目,它是一個C++編寫的API庫,兼容SSP的各種行爲且能夠被編譯到各種平臺上,負責引用、調度Shiori/Saori,并把SSP按合適的方式逐個將SSP編譯為Yuzu Command(柚子指令)來發送到它的前端渲染器:Yuzuki。同時也接收Yuzuki的事件觸發指令。
UkagakaW則是新版偽春菜結構的runtime庫,一部分代碼會繼續沿用2020年重構前寫的,負責運行和編譯nekoscript(python),與Yuzuki通過Yuzu Command交互,以及實現更加advanced的功能。
另外,我也更新了主頁header上的UkagakaW頁面,以後如果有大的改動或發佈,也會更新在那個頁面上。
目前的進度:算是剛開始吧,又是一個剛開始,或許,我當時還是沒有能夠好好地估計自己的能力,不知道這個項目會開發多久,不過不想再擱置了,至少希望這次能堅持更新,雖然大學的學業也不是很輕鬆,有考試,有小組項目有cwk等等。但是這些也不該成爲長期擱置的理由,嘛,除非我哪天真的全身心投入到了繪畫中。
PS: SSP并沒有停止更新,ponapolt桑還在持續維護著這個項目并且穩定的月更(甚至比我博客的更新頻率還要高),更奇妙的是,SSP將近十年沒有更新過的中文版差分包前兩個月居然更新了orz(((
Comments: 3
催更
抱歉,项目流产了orz 请参考那之后的文章
感谢您的关注