2016年10月10日 星期一

製作日誌--004

上次更新是上上周的事了((囧
昨天處理完事情已經兩點了,於是現在才來寫日誌
不過這兩周幾乎都在畫圖,進度非常少

###AI對話###

這段時間又新增了幾句AI對話
之後可能會考慮增加與使用者對話的功能

###單語字典###

一樣新增了一些內容
之後應該還是會持續更新

###好感度###

新增了好感度參數,目前只有摸臉動作可以增加好感度
未來不排除有增加與減少好感度的行動
並且所有互動內容都會依照好感度的高低有所分別

**新增自定義參數**
增加參數非常簡單,在bootend.dic裡面就可以新增/減少參數

OnFirstBoot
{
    //---- 變數初始化
    username = "User"
    userbirthday = "未知"
    stroke = 0      // 撫摸判定用
    teachusername = 0      // 記住user名用
    teachuserbirthday = 0      // 記住user生日用
    mikireflag = 0      // 見切處理用
    communicateratio = 0     // 溝通開始率[%]
    intimacy = 0     //好感度
    startuptime = 0     //總啟用時間
    lastboottime = "%(systemuptime)"     //每次啟用時間,用來計算每次開啟人格多少時間

    //---- 對話
    "\0\s[0]\1\s[10]\0你好,初次見面,我叫南小鳥。\w8\1\s[10]我叫啾啾。\w8\0\s[0]\n請多多指 教。\e"
}

這個部分在芽芽美人格範本bootend.dic的最開始的地方
其中OnFirstBoot意思是人格首次啟動時要執行的事情
首次啟動人格後,這些參數便會記錄到variable.cfg中
未來都可以直接以bootend.dic中定義的名稱來呼叫變數
可以注意範例程式碼裡面已經有"intimacy"(好感度)這個變數了
並且初始設定為0
須注意這裡所有變數都要給予初始值
至於要怎麼控制這個intimacy變數呢
先看看以下程式碼:

OnAiTalk
{
 /*
其他資料
*/

"\0\s[0]我也很喜歡%(username)喔\e:eval=(intimacy+=1)"
}
在這個範例程式碼裡面,只要觸發了"我也很喜歡%(username)"這個對話
就會執行"intimacy+=2"
可以注意這裡使用的eval
他會將輸入的字串當作AYA的單一指令執行
也就是說,他不能執行複數個指令
但對於這樣單一變數的操作
使用eval是很方便且簡潔的方式
另外,上面的寫法與下面兩種有一樣的效果:

\e" + EVAL("intimacy+=1")
\e%(intimacy+=1)"

個人比較習慣第一種寫法(範例程式碼的)
另外可以注意,第三種寫法是沒有用到EVAL的
而是直接使用"%"呼叫參數,並對參數做+=2的運算
最後,EVAL一定要使用在\e後面
因為前面有提到,EVAL是將"字串"作為指令執行
如果放在\e前面,因為對話方塊還沒消失
便會把目前intimacy的值印出來


###BUG###

近期發現切換人格的頻率太高的話
容易觸發製作日誌--002中提到的BUG
詳細原因依舊不明
不過只要不一直切換人格
是不會有問題的

========================================================
 

苦笑和害羞的小鳥
真可愛


via GIPHY
只有錄了轉換成害羞的表情的gif
因為苦笑是直接從一般的檔案修改來的

下次應該會先把害羞表情的動畫做完

2016/10/10

沒有留言:

張貼留言