Re: [AOE2] 教學:如何編輯劇情
看板AOE (世紀帝國 - 世紀帝國2 - Age of Empires)作者JASS0213 (紳士的野蠻要藏在袖子裡)時間11年前 (2013/07/15 08:09)推噓2(2推 0噓 9→)留言11則, 3人參與討論串5/7 (看更多)
AOC劇情製作---AI觸發事件與鍵盤指令
序言:
自從上一次發布介紹劇情製作的文章至今也有很長一段時間。這段時間筆者又學會了許多
的技術與思考出不少有趣的想法,在這裡分享給各位。
這篇主要是在講述一個很簡單的技術:利用AI來強化單人劇情。這不但能增加主角單位的
隱藏參數,也能產生多支線劇情。在某種程度上,也可以產生譬如說隊友好感度等等這樣
的東西。
廢話不多說,我們進入正題。
1. AI指令寫法:
我必須聲明,我沒有寫AI的經驗。雖然我參考過許多人寫的AI,但是這裡就不班門弄斧了
。這裡我們只考慮一些AI指令。
首先,先隨便選一個你喜歡的AI檔。用記事本打開。例如我打開Zanzard Lothar寫的不動
AI:
(defrule
(true)
=>
(set-strategic-number sn-maximum-food-drop-distance 0)
(set-strategic-number sn-maximum-wood-drop-distance 0)
(set-strategic-number sn-maximum-gold-drop-distance 0)
(set-strategic-number sn-maximum-stone-drop-distance 0)
(set-strategic-number sn-maximum-hunt-drop-distance 0)
(set-strategic-number sn-food-gatherer-percentage 0)
(set-strategic-number sn-gold-gatherer-percentage 0)
(set-strategic-number sn-minimum-civilian-explorers 0)
(set-strategic-number sn-wood-gatherer-percentage 0)
(set-strategic-number sn-cap-civilian-explorers 0)
(set-strategic-number sn-percent-civilian-explorers 0)
(disable-self)
)
(defrule
(true)
=>
(set-strategic-number sn-percent-enemy-sighted-response 100)
(set-strategic-number sn-hits-before-alliance-change 25)
(set-difficulty-parameter ability-to-maintain-distance 100)
(set-difficulty-parameter ability-to-dodge-missiles 100)
(set-strategic-number sn-number-explore-groups 0)
(set-strategic-number sn-percent-attack-soldiers 0)
(set-strategic-number sn-task-ungrouped-soldiers 0)
(set-strategic-number sn-number-attack-groups 0)
(set-strategic-number sn-enemy-sighted-response-distance 10)
(set-strategic-number sn-total-number-explorers 0)
(set-strategic-number sn-relic-return-distance 0)
(disable-self)
)
好,接下來我們選一個從1~255的數字。這裡我選2為例,在文件中加入下面這兩種指令:
第一種:
(defrule
(taunt-detected 1 2)
=>
(acknowledge-taunt 1 2)
(cc-add-resource wood 1)
)
第二種:
(defrule
(event-detected trigger 2)
=>
(acknowledge-taunt 1 2)
(disable-self)
)
現在我解釋一下這兩種指令,第一種是說:
打開鍵盤輸入2,使用這個AI的電腦就會自動獲得1單位木材。
第二種是說:
打開鍵盤輸入2,使用這個AI的電腦就會開啟人工智慧觸發事件2。
當然第一種可以有很多變形,可以把wood改成gold。那電腦就會獲得黃金而不是木材。獲
得數量也可修改。
2. 應用:
現在來說怎麼用這個AI。我舉個例子說明:
首先,我們假設要製作這樣的事件:A和B是世仇,我們要經由對話選邊站。
主角先遇到單位A,單位A與主角有以下對話:
A:你看起來武藝高強,我有一個請求,不知道你願不願意聽。
(願意)
A:謝謝你,我需要你幫助我殺死一個兇惡的盜賊B。可以嗎?
(願意)
A:那就說定了。(加入主角)
(不願意)
A:那當我沒說吧。(開啟B的對話型2)
(不願意)
A:那沒事了。
與B的對話設計如下:
對話型1:
B:你好。
對話型2:
B:A說我是兇惡的盜賊嗎?你不要相信他。不如你幫我殺死他,我就永遠
跟隨你。
(願意)
B:很好,我們出發吧。(加入主角)
(不願意)
B:那就算了。
這個事件有些複雜度,但是本質上他就是一個不斷的二選一問答。所以我們可以這樣想:
首先製作一個AI,用到兩組第一種指令:
(defrule
(taunt-detected 1 1)
=>
(acknowledge-taunt 1 1)
(cc-add-resource wood 1)
)
(defrule
(taunt-detected 1 2)
=>
(acknowledge-taunt 1 2)
(cc-add-resource gold 1)
)
好。這組指令是說:輸入1則電腦獲得1木材。輸入2則電腦獲得1黃金。
打開AOC的地圖編輯器,設定三個遊戲者。遊戲者2就用剛剛完成的這個AI檔。接下來開啟
事件觸發,用以下格式來製作這類型的二選一:
============================================================
事件觸發1:開 循環 (對話1)
狀況1:將主角帶給A
狀況2:選擇物件A
效果1:顯示指令:(第0行)
"A:你看起來武藝高強,我有一個請求,不知道你願不願意聽。"
效果2:顯示指令:(第2行)
"主角: 1. 好 2. 不好。"
效果3:啟動事件觸發2
效果4:啟動事件觸發3
事件觸發2:關 循環
狀況1:將主角帶給A
狀況2:選擇物件A
狀況3:累積屬性:遊戲者2木材1
效果1:啟動事件觸發4
效果2:關閉事件觸發1
效果3:關閉事件觸發3
效果4:貢品:遊戲者2給大地之母1木材。
事件觸發3:關 循環
狀況1:將主角帶給A
狀況2:選擇物件A
狀況3:累積屬性:遊戲者2黃金1
效果1:啟動事件觸發5
效果2:關閉事件觸發1
效果3:關閉事件觸發2
效果4:貢品:遊戲者2給大地之母1黃金。
============================================================
寫到這裡就算是"一組"事件。也就是說這組事件把劇情根據玩家的回答分割成從事件4開始
或是從事件5開始。事件4寫法和事件1一樣,然後會再次把事件分成兩個可能。
事件觸發4:關 循環
狀況1:將主角帶給A
狀況2:選擇物件A
效果1:顯示指令:(第0行)
"A:謝謝你,我需要你幫助我殺死一個兇惡的盜賊B。可以嗎?"
效果2:顯示指令:(第2行)
"主角: 1. 好 2. 不好。"
效果3:啟動事件觸發6
效果4:啟動事件觸發7
………。
最後,當你寫完所有事件觸發後,記得加上這兩個事件:
事件觸發n:開 循環
狀況1:累積屬性:遊戲者2木材1
效果1:貢品:遊戲者2給大地之母1木材。
事件觸發n+1:開 循環
狀況1:累積屬性:遊戲者2黃金1
效果1:貢品:遊戲者2給大地之母1黃金。
就完成了這個劇情。
同樣的,你也可以使用第二種指令來建立這類的劇情。第二種指令的優點是他不會占用到
電腦玩家的資源。缺點是他只能使用一次,無法重複好幾層對話。
結語:這裡我簡單介紹了一下AI和事件觸發是如何配合,產生出更多劇情的可能性。當然
這只是一個基礎應用,筆者也應用了這個技術製作了譬如虛擬單位的交易與武將技等等這
些可以應用的方式。如果能配合上模組修改技術和其他程式,將是一個非常有發展性的技
術。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.247.0.115
推
07/15 18:40, , 1F
07/15 18:40, 1F
推
07/15 19:13, , 2F
07/15 19:13, 2F
→
07/15 19:16, , 3F
07/15 19:16, 3F
→
07/18 03:12, , 4F
07/18 03:12, 4F
→
07/18 03:13, , 5F
07/18 03:13, 5F
→
07/18 03:15, , 6F
07/18 03:15, 6F
→
07/18 03:16, , 7F
07/18 03:16, 7F
→
07/18 03:17, , 8F
07/18 03:17, 8F
→
07/18 03:18, , 9F
07/18 03:18, 9F
→
07/18 03:19, , 10F
07/18 03:19, 10F
→
07/18 03:20, , 11F
07/18 03:20, 11F
討論串 (同標題文章)
AOE 近期熱門文章
40
47
PTT遊戲區 即時熱門文章
12
31
14
19
11
11