交互式游戲中智能非玩家角色的人工情感驅(qū)動(dòng)方法
【專利摘要】交互式游戲中智能非玩家角色的人工情感驅(qū)動(dòng)方法,涉及交互式游戲中的虛擬人物自動(dòng)控制技術(shù)。啟動(dòng)知識(shí)庫,加載初始行為規(guī)則,初始化人工情感系統(tǒng)參數(shù);運(yùn)行多智能體,連接知識(shí)庫進(jìn)入等待狀態(tài);加載世界接口,一端接游戲服務(wù)器,另一端接多智能體;多智能體進(jìn)入主循環(huán)開始工作,分別并發(fā)處理非玩家角色感知到的虛擬環(huán)境信息,更新虛擬人物的內(nèi)建需求水平、相應(yīng)的動(dòng)機(jī)強(qiáng)度、系統(tǒng)參數(shù),計(jì)算虛擬人物的人工情感強(qiáng)度并選擇當(dāng)前主要情感,選擇當(dāng)前主導(dǎo)動(dòng)機(jī),并在人工情感的指導(dǎo)下制定動(dòng)作策略,最后將動(dòng)作通過世界接口作用于游戲虛擬環(huán)境中;世界接口轉(zhuǎn)發(fā)游戲玩家退出游戲的狀態(tài)信息,多智能體將相關(guān)狀態(tài)信息寫入全局知識(shí)庫,關(guān)閉知識(shí)庫,退出接口。
【專利說明】交互式游戲中智能非玩家角色的人工情感驅(qū)動(dòng)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及交互式游戲中的虛擬人物自動(dòng)控制技術(shù),特別是涉及一種依據(jù)非玩家 角色的內(nèi)建需求及當(dāng)前虛擬環(huán)境信息推導(dǎo)出人工情感,并運(yùn)用人工情感自動(dòng)控制智能非玩 家角色行為的交互式游戲中智能非玩家角色的人工情感驅(qū)動(dòng)方法。
【背景技術(shù)】
[0002] 游戲引擎是游戲開發(fā)的核心。早期的游戲引擎主要是為游戲提供光影效果、動(dòng)畫 渲染、物理機(jī)制及輸入輸出的支持,并沒有包含太多人工智能的考慮。游戲中非玩家角色 (Non-Player Character, NPC)的行為都是由程序員在游戲開發(fā)過程中事先編制好的,其行 為模式十分機(jī)械、固定,表現(xiàn)得不夠聰明,常常讓游戲玩家感到索然無味。
[0003] 自上世紀(jì)90年代中后期以來,提升游戲中虛擬人物的智能性成為各大游戲公司 競相追逐的目標(biāo),他們在游戲引擎的設(shè)計(jì)中,越來越多地引入人工智能的技術(shù)。Quake[l] 和Unreal [2]是支持第一人稱射擊(First Person Shooting, FPS)游戲的兩大最著名引 擎。其中Quake是一款完全開源的引擎,Unreal雖然沒有完全開源,但它具有良好的客戶 端一服務(wù)器(Client-Server, C/S)架構(gòu),同時(shí)還為Client提供了面向?qū)ο蟮哪_本語言 UnrealScript[3]。美國Michigan大學(xué)的Soar/Games項(xiàng)目在開源Quake II引擎的基礎(chǔ) 上引入了推理式 Agent 結(jié)構(gòu) Soar[4], [5]。美國 Southern California 大學(xué)和 Carnegie Mellon大學(xué)開發(fā)了基于Unreal的GameBot [6]引擎。
[0004] 相比第一人稱射擊游戲,即時(shí)戰(zhàn)略(Real-Time Strategy, RTS)游戲?qū)PC的智能 性提出了更高的要求,因?yàn)樗坏紤]單獨(dú)一個(gè)NPC的智能表現(xiàn),還要更多地考慮多個(gè) NPC在戰(zhàn)術(shù)、戰(zhàn)略、決策方法的智能行為。為此,加拿大Alberta Edmonton大學(xué)開發(fā)了基于 C/S架構(gòu)的免費(fèi)RTS游戲引擎0RTS[7]。
[0005] 這些引入了人工智能技術(shù)的游戲引擎,在一定程度上增強(qiáng)了虛擬人物的智能表 現(xiàn),但仍存在許多不足之處。一方面,這些游戲引擎需要開發(fā)人員事先編制好行為規(guī)則,不 但開發(fā)任務(wù)繁重,而且非玩家角色的行為模式也十分有限,玩家容易在游戲中預(yù)測其行為, 使游戲很快就喪失了趣味性與新穎性;另一方面,這些游戲引擎沒能有效地讓虛擬人物呈 現(xiàn)與游戲交互情境相一致的情感表現(xiàn),破壞了游戲玩家游戲時(shí)的沉浸感。因此,將人工情感 融入到虛擬人物中,一方面讓非玩家角色根據(jù)虛擬環(huán)境的信息展現(xiàn)出適合的情感,另一方 面用人工情感控制非玩家角色的行為,使其"表里如一",是游戲設(shè)計(jì)以及游戲引擎開發(fā)中 亟需攻克的關(guān)鍵技術(shù)。
[0006] 參考文獻(xiàn):
[0007] [1]M. Abrash, ^Quake's game engine:The big picture, Dr. Dobb's Journal, 1997.
[0008] [2]J. Busby, Z. Parrish, and J. Van Eenwyk, Mastering Unreal Technology:The Art of Level Design. Sams Pub. , 2005.
[0009] [3]T. Sweeney and M. Hendriks, "UnrealScript language reference",Viewed online at http://udn. epicgames. com/Two/UnrealScriptReference,1998.
[0010] [4] J. E. Laird,A. Newell,and P. S. Rosenbloom,"Soar:An architecture for general intelligence",Artificial intelligence, vol. 33, no. 1, pp. 1 - 64, 1987.
[0011] [5] J. E. Laird,"Extending the Soar cognitive architecture",in Proceeding of the 2008 conference on Artificial General Intelligence 2008:Proceedings of the First AGI Conference, 2008, pp. 224 - 235.
[0012] [6]R. Adobbati, A. N. Marshal 1, A. Scholer, S. Tejada, G. A. Kaminka, S. Schaffer,and C. Sollitto,"Gamebots:A 3d virtual world test-bed for multi-agent research",in Proceedings of the second international workshop on Infrastructure for Agents, MAS, and Scalable MAS, 2001, pp. 47 - 52.
[0013] [7]M. Buro,"0RTS: A hack-free RTS game environment",Computers and Games,pp. 280 - 291,2003.
【發(fā)明內(nèi)容】
[0014] 本發(fā)明的目的是針對現(xiàn)有交互式游戲引擎沒有較完善的人工情感系統(tǒng)的不足,提 供一種交互式游戲中智能非玩家角色的人工情感驅(qū)動(dòng)方法。
[0015] 本發(fā)明包括以下步驟:
[0016] 1)啟動(dòng)全局知識(shí)庫,加載初始行為規(guī)則,初始化人工情感系統(tǒng)參數(shù);
[0017] 2)運(yùn)行多智能體,連接全局知識(shí)庫,并進(jìn)入等待狀態(tài);
[0018] 3)加載世界接口,接口 一端連接游戲服務(wù)器,同游戲虛擬環(huán)境交互,接口另一端連 接多智能體,向其發(fā)送虛擬環(huán)境信息或轉(zhuǎn)發(fā)多智能體的控制指令到游戲虛擬環(huán)境中;
[0019] 4)多智能體進(jìn)入主循環(huán)開始工作,分別并發(fā)處理非玩家角色感知到的虛擬環(huán)境信 息,更新虛擬人物的內(nèi)建需求水平,相應(yīng)的動(dòng)機(jī)強(qiáng)度,系統(tǒng)參數(shù),計(jì)算虛擬人物的人工情感 強(qiáng)度并選擇當(dāng)前主要情感,選擇當(dāng)前主導(dǎo)動(dòng)機(jī),并在人工情感的指導(dǎo)下制定動(dòng)作策略,最后 將動(dòng)作通過世界接口作用于游戲虛擬環(huán)境中;
[0020] 5)世界接口轉(zhuǎn)發(fā)游戲玩家退出游戲的狀態(tài)信息,多智能體將相關(guān)狀態(tài)信息寫入全 局知識(shí)庫,然后關(guān)閉全局知識(shí)庫,退出世界接口。
[0021] 本發(fā)明解決游戲開發(fā)中設(shè)計(jì)非玩家角色行為工作繁重,角色行為過于機(jī)械,缺乏 適合的情感表現(xiàn)的問題,同時(shí)提升游戲玩家游戲時(shí)的沉浸感。本發(fā)明采用松耦合的多智能 體設(shè)計(jì)模式,并使用一個(gè)全局知識(shí)庫存儲(chǔ)虛擬人物的感知、記憶、動(dòng)作等信息,將非玩家角 色的內(nèi)建需求、虛擬環(huán)境信息、系統(tǒng)參數(shù)、人工情感、行為控制有效地整合成一個(gè)復(fù)雜、動(dòng)態(tài) 控制系統(tǒng),實(shí)現(xiàn)對智能非玩家角色的自動(dòng)控制。
【專利附圖】
【附圖說明】
[0022] 圖1為本發(fā)明的全局知識(shí)庫的部署及其與后臺(tái)數(shù)據(jù)庫和多智能體的連接示意圖;
[0023] 圖2為本發(fā)明的整體系統(tǒng)架構(gòu)及各大組件的結(jié)構(gòu)示意圖;
[0024] 圖3為本發(fā)明步驟4)基于多智能體協(xié)同工作的人工情感系統(tǒng)的原理圖。
【具體實(shí)施方式】
[0025] 為了使本【技術(shù)領(lǐng)域】的技術(shù)人員更好地理解本發(fā)明方案,下面結(jié)合附圖對本發(fā)明作 進(jìn)一步的描述。
[0026] 1.啟動(dòng)全局知識(shí)庫,加載初始行為規(guī)則及系統(tǒng)參數(shù)
[0027] 1):讀取配置文件,獲取知識(shí)庫服務(wù)端口,后臺(tái)數(shù)據(jù)庫服務(wù)端口;
[0028] 2):啟動(dòng)后臺(tái)數(shù)據(jù)庫,加載初始行為規(guī)則及人工情感系統(tǒng)參數(shù);
[0029] 3):通過知識(shí)庫服務(wù)端口向智能體提供數(shù)據(jù)服務(wù)。
[0030] 全局知識(shí)庫采用超圖作為統(tǒng)一的知識(shí)表示方法。超圖是對一般圖的擴(kuò)展,其顯著 特點(diǎn)是每條邊可以連接任意多條邊和頂點(diǎn)。其基本的存儲(chǔ)單元稱為"原子"(Atom)。每一 個(gè)原子(Atom)攜帶的值(Value)的結(jié)構(gòu)為(STI,LTI,TruthValue,Confidence,Content)。 STI (Short Term Importance)和 LTI (Long Term Importance)可以用來模擬短期記憶 (Short Term Memory)和長期記憶(Long Term Memory)。TruthValue 和 Confidence 分別為 該原子(Atom)的真值和可信度。Content則是原子(Atom)具體攜帶的信息。
[0031] 知識(shí)庫與情感系統(tǒng)各組件采用Client/Server的方式進(jìn)行連接(參見圖1)。每一 個(gè)單獨(dú)的組件(如智能體)都具有各自的客戶端,負(fù)責(zé)與服務(wù)端通信??蛻舳说闹饕δ?包括,向服務(wù)端發(fā)送存取指令,以及從服務(wù)端獲得知識(shí)庫中的數(shù)據(jù)。而服務(wù)端則負(fù)責(zé)驅(qū)動(dòng)后 臺(tái)數(shù)據(jù)庫具體的讀寫操作。這種Client/Server架構(gòu)具有分布式存儲(chǔ)、易于實(shí)現(xiàn)并發(fā)與并 行、跨平臺(tái)及語言無關(guān)性、便于實(shí)現(xiàn)通用算法的優(yōu)點(diǎn)。
[0032] 知識(shí)庫本身并不負(fù)責(zé)對數(shù)據(jù)(超圖)的直接存取操作,而是將這些操作轉(zhuǎn)化為后 臺(tái)數(shù)據(jù)庫的基本操作,即直接的數(shù)據(jù)存取操作是由后臺(tái)數(shù)據(jù)庫來完成的。這種設(shè)計(jì)的優(yōu) 點(diǎn)是,充分利用現(xiàn)有的、成熟的數(shù)據(jù)庫技術(shù),避免"重復(fù)制造車輪";將相對抽象的知識(shí)存取 操作與具體的數(shù)據(jù)存取操作剝離,提高了系統(tǒng)的可移值性。后臺(tái)數(shù)據(jù)庫可以采用任何現(xiàn)有 的數(shù)據(jù)庫技術(shù),針對這里超圖的知識(shí)表示方法,選擇一些開源的、高效的NoSQL數(shù)據(jù)庫,如 MongoDB, Redis是較為合適的。
[0033] 在步驟1第2)部分中,知識(shí)庫中的每條行為規(guī)則,形如Context&Action - Goal, 其表達(dá)的意義為:在條件Context滿足時(shí),執(zhí)行某一動(dòng)作Action,將能達(dá)成目標(biāo)Goal。
[0034] 在步驟1第2)部分中,人工情感的系統(tǒng)參數(shù)主要包括:每一個(gè)調(diào)節(jié)子(具體實(shí)施 第4部分詳細(xì)介紹)的初始值;每一個(gè)內(nèi)建需求D的初始水平U,期望取值范圍的下限min_ 1,上限 max_l〇
[0035] 2.運(yùn)行多智能體,并連接全局知識(shí)庫
[0036] 1)讀取配置文件,獲取知識(shí)庫服務(wù)端口,多智能體通信端口,世界接口通信端口;
[0037] 2)運(yùn)行多智能體,讀取知識(shí)庫中的系統(tǒng)參數(shù)初始值,初始化相應(yīng)變量;
[0038] 3)偵聽世界接口通信端口,等待處理信息。
[0039] 圖2展示了多智能體與游戲虛擬環(huán)境的消息通信(具體實(shí)施第3部分詳細(xì)介紹); 圖3展示了多智能體之間的消息通信(具體實(shí)施第4部分詳細(xì)介紹)。
[0040] 3.加載世界接口,在虛擬游戲環(huán)境和多智能體之間轉(zhuǎn)發(fā)數(shù)據(jù)
[0041] 1)讀取配置文件,獲取世界接口通信端口,多智能體通信端口;
[0042] 2)處理用戶指令消息隊(duì)列;
[0043] 3)處理虛擬環(huán)境信息消息隊(duì)列;
[0044] 4)處理多智能體動(dòng)作消息隊(duì)列。
[0045] 世界接口(參見圖2)是溝通多智能體與虛擬游戲環(huán)境的橋梁。它的內(nèi)部保持有 3個(gè)消息隊(duì)列,分別用于處理用戶指令、虛擬環(huán)境信息及非玩家角色動(dòng)作。
[0046] 在步驟3第2)部分中,用戶指令消息隊(duì)列存放來自游戲玩家的各種操作指令,對 于非玩家角色而言,由于玩家不需要直接操縱它們,因而這里的用戶指令消息事實(shí)上只有 一個(gè),即"退出游戲"。
[0047] 在步驟3第3)部分中,虛擬環(huán)境信息消息隊(duì)列采用XML格式存放虛擬人物所觀察 到的虛擬環(huán)境中的信息,對每一個(gè)觀察到的物體,包含有以下信息:物體ID,位置,顏色,大 小,是否可移動(dòng),是否可交互。另外,為了減少消息通信的頻度,提高通信效率,我們將某一 時(shí)刻所觀察到的所有物體打包成一個(gè)消息,一次性發(fā)送給多智能體。同時(shí),還要在消息中附 上觀察到的時(shí)間(即當(dāng)前系統(tǒng)時(shí)間),便于多智能體進(jìn)行取舍。
[0048] 在步驟3第4)部分中,多智能體動(dòng)作消息隊(duì)列存放非玩家角色需要在虛擬環(huán)境中 執(zhí)行的動(dòng)作及其相應(yīng)的參數(shù)。下面是一些常用的基本動(dòng)作、參數(shù)及其說明。
[0049] goto (dir, V,step):向某個(gè)方向dir,以速度V,移動(dòng)step步的距離;
[0050] jump (dir, step):向某個(gè)方向dir,跳躍step步距離;
[0051] eat (obj_id):吃編號(hào)為 obj_id 的物體;
[0052] drink(obj_id):喝編號(hào)為 obj_id 的物體;
[0053] pick_up (obj_id):撿起編號(hào)為 obj_id 的物體;
[0054] throw(obj_id):丟棄編號(hào)為 obj_id 的物體;
[0055] play (obj_id):玩耍編號(hào)為 obj_id 的物體;
[0056] follow(obj_id):跟隨編號(hào)為 obj_id 的物體。
[0057] 4.多智能體進(jìn)入主循環(huán),生成人工情感并驅(qū)動(dòng)非玩家角色人物行動(dòng)(圖3)
[0058] 1)感知智能體,負(fù)責(zé)接收虛擬環(huán)境信息,計(jì)算空間位置關(guān)系,并將相關(guān)信息寫入到 全局知識(shí)庫中;
[0059] 2)需求智能體,負(fù)責(zé)更新非玩家角色的內(nèi)建需求水平以及相應(yīng)的動(dòng)機(jī)強(qiáng)度,并將 相關(guān)信息寫入到全局知識(shí)庫中;
[0060] 3)參數(shù)智能體,負(fù)責(zé)更新人工情感系統(tǒng)參數(shù);
[0061] 4)情感智能體,負(fù)責(zé)更新非玩家角色的人工情感強(qiáng)度,并選擇當(dāng)前主要情感;
[0062] 5)動(dòng)作智能體,負(fù)責(zé)發(fā)送動(dòng)作序列中的第一個(gè)動(dòng)作,若該序列為空,則先選擇系統(tǒng) 主導(dǎo)動(dòng)機(jī),然后運(yùn)行動(dòng)作規(guī)劃器生成新的動(dòng)作序列
[0063] 在步驟4第1)部分中,感知智能體,需要首先解析以XML格式封裝的虛擬環(huán)境信 息,然后計(jì)算相應(yīng)的空間位置關(guān)系??臻g位置關(guān)系分為二元位置關(guān)系和三元位置關(guān)系兩 種。二元位置位置主要包括前(front),后(back),左(left),右(right),上(above),下 (beneath);三元位置關(guān)系主要是指介于兩者之間(between)。由于二元位置關(guān)系具有對稱 性,因此只需要計(jì)算出一半的二元位置關(guān)系便可以推算出與之對稱的二元位置關(guān)系;三元 位置關(guān)系則是二位置關(guān)的基礎(chǔ)上,依據(jù)一些判斷準(zhǔn)則得到的。
[0064] 在步驟4第2)部分中,首先需要為非玩家控制角色設(shè)定一些內(nèi)建的需求,較為通 用的需求主要包括能量、水、完整性、確定性、自信度、親和性。其中,完整性指的是虛擬人物 具有保護(hù)自身不受傷害,即保持完整性的需求;確定性主要反映的是虛擬人物對當(dāng)前所處 環(huán)境的熟悉和了解程度;自信度的需求與虛擬人物成功達(dá)成目標(biāo)的經(jīng)歷有關(guān);親和性是需 要其它虛擬人物共同參與才能被滿足的需求,它是對人類社會(huì)需求的模擬和仿真。
[0065] 在步驟4第2)部分中,每一個(gè)需求都有一定的偏好范圍或目標(biāo)范圍。當(dāng)需求水平 落在相應(yīng)的目標(biāo)范圍時(shí),稱作該需求被滿足,否則需求不被滿足。我們可以將人工情感系統(tǒng) 視為一個(gè)目標(biāo)驅(qū)動(dòng)的系統(tǒng),其主要任務(wù)就是盡可能讓所有這些需求都被滿足。而當(dāng)某一需 求不被滿足時(shí),虛擬人物會(huì)有一種試圖將該需求水平恢復(fù)到偏好范圍內(nèi)的愿望,這種愿望 便構(gòu)成了動(dòng)機(jī)。動(dòng)機(jī)的強(qiáng)度與相應(yīng)需求的滿足度呈負(fù)相關(guān)的關(guān)系。因此,我們用需求的滿足 度來間接表征相應(yīng)的動(dòng)機(jī)水平。而虛擬人物某一需求的滿足度則根據(jù)該需求的當(dāng)前水平、 目標(biāo)范圍,通過一個(gè)非線性模糊函數(shù)計(jì)算得到。
[0066] 在步驟4第3)部分中,人工情感系統(tǒng)參數(shù)也稱為調(diào)節(jié)子,它們一方面影響虛擬人 物的行為,另一方面構(gòu)成了虛擬人物情感空間的基本維度。主要有以下4個(gè)系統(tǒng)參數(shù):
[0067] (1)激活度,它表征感知和反應(yīng)的激活程度。其作用是調(diào)節(jié)快速、激烈的活動(dòng)與反 射性的、同認(rèn)知相關(guān)的活動(dòng)之間的平衡。當(dāng)激活度較高時(shí),虛擬人物傾向于快速響應(yīng)外部刺 激,反之將則對外部刺激反應(yīng)較慢,同時(shí)把更多的系統(tǒng)資源用于自身的認(rèn)知活動(dòng)。
[0068] (2)解析度,它決定了各種認(rèn)知活動(dòng)(如感知、動(dòng)作規(guī)劃)的精細(xì)程度。例如,當(dāng)解 析度較高時(shí),虛擬人物對環(huán)境的感知將更加注重細(xì)節(jié),但缺乏整體性的觀念,反之則通過犧 牲局部細(xì)節(jié),把握全局性的觀念。此外,解析度與激活度呈負(fù)相關(guān)的關(guān)系。例如,當(dāng)激活度 較高時(shí),虛擬人物往往選擇降低解析度以提高響應(yīng)速度。
[0069] (3)保護(hù)閥值,它控制智能體執(zhí)行保護(hù)行為的頻繁程度。保護(hù)行為可以是一系列 周期性執(zhí)行的動(dòng)作,其主要功能是檢測外部環(huán)境的異常變化。保護(hù)閥值與當(dāng)前主要?jiǎng)訖C(jī)的 強(qiáng)度呈正相關(guān)的關(guān)系,即在虛擬人物在面對緊急情況時(shí)(主要?jiǎng)訖C(jī)強(qiáng)烈),伴隨著較高的保 護(hù)閥值,相應(yīng)地減少保護(hù)動(dòng)作的執(zhí)行,將更多地資源用于處理當(dāng)前的緊急事務(wù)(如自我保 護(hù))。此外,保護(hù)閥值還與虛擬人物對當(dāng)前環(huán)境的了解和熟悉程度有關(guān)(即確定性需求)。 不確定的、高度動(dòng)態(tài)的環(huán)境往往需要更加頻繁地執(zhí)行保護(hù)動(dòng)作,即對應(yīng)較低的保護(hù)閥值。
[0070] (4)選擇閥值,它通過引入偏好信息,幫助虛擬人物在幾個(gè)相互沖突的動(dòng)機(jī)之間作 出選擇。由于目標(biāo)驅(qū)動(dòng)的系統(tǒng)中通常存在多個(gè)需求,系統(tǒng)往往會(huì)出現(xiàn)同時(shí)存在多個(gè)動(dòng)機(jī)的 情況,而虛擬人物一次只能考慮一個(gè)動(dòng)機(jī),這就需要從中選擇一個(gè)動(dòng)機(jī)作為主導(dǎo)動(dòng)機(jī)。選擇 閥值通過調(diào)節(jié)當(dāng)前選中的主導(dǎo)動(dòng)機(jī)的權(quán)重,避免系統(tǒng)在幾個(gè)相互沖突的動(dòng)機(jī)之間振蕩。選 擇閥值隨著激活度的增大而增大。例如,當(dāng)虛擬人物面對危險(xiǎn)的時(shí)候(伴隨較高的的激活 度),它往往高度集中于當(dāng)前選中的動(dòng)機(jī)(對應(yīng)較高的選擇閥值),即確保自身安全的需求 (或完整性需求)。
[0071] 在步驟4第3)部分中,參數(shù)智能體,通過一組非線性方程來更新調(diào)節(jié)子的水平。更 新方程的構(gòu)造方式可以靈活多樣,但通常應(yīng)滿足以下一些基本原則:
[0072] (1)激活度同能量及自信度的需求有關(guān)。例如,當(dāng)智能體具備足夠的能量并能對自 身的能力充滿信心時(shí),往往意味著智能體已經(jīng)做好了反應(yīng)的準(zhǔn)備。
[0073] (2)解析度與激活度呈負(fù)相關(guān)的關(guān)系。例如,當(dāng)智能體準(zhǔn)備做出快速響應(yīng)的時(shí)候, 它往往無暇顧及其它的認(rèn)知活動(dòng),譬如感知、探測環(huán)境中異常的變化,動(dòng)作規(guī)劃等。
[0074] (3)保護(hù)閥值則取決于智能體對環(huán)境的熟悉程度以及智能體的安全性。例如,當(dāng)智 能體對環(huán)境比較熟悉的時(shí)候,或者正處于安全的環(huán)境中的時(shí)候,智能體傾向于減少保護(hù)性 的行為。
[0075] (4)選擇閥值同智能體的自信程度呈正相關(guān)的關(guān)系。當(dāng)智能體對自身能力充滿信 心時(shí),它放棄當(dāng)前計(jì)劃或中止當(dāng)前動(dòng)作的可能就較小。
[0076] 在步驟4第4)部分中,非玩家角色的情感用4個(gè)調(diào)節(jié)子及滿足度構(gòu)成的五維連續(xù) 空間來表達(dá)。例如高興、悲傷、生氣和恐懼這四種常用情感的可以如表1的方式定義。
[0077] 表 1
[0078]
【權(quán)利要求】
1. 交互式游戲中智能非玩家角色的人工情感驅(qū)動(dòng)方法,其特征在于包括以下步驟: (1) 啟動(dòng)全局知識(shí)庫,加載初始行為規(guī)則,初始化人工情感系統(tǒng)參數(shù); (2) 運(yùn)行多智能體,連接全局知識(shí)庫,并進(jìn)入等待狀態(tài); (3) 加載世界接口,接口一端連接游戲服務(wù)器,同游戲虛擬環(huán)境交互,接口另一端連接 多智能體,向其發(fā)送虛擬環(huán)境信息或轉(zhuǎn)發(fā)多智能體的控制指令到游戲虛擬環(huán)境中; (4) 多智能體進(jìn)入主循環(huán)開始工作,分別并發(fā)處理非玩家角色感知到的虛擬環(huán)境信息, 更新虛擬人物的內(nèi)建需求水平,相應(yīng)的動(dòng)機(jī)強(qiáng)度,系統(tǒng)參數(shù),計(jì)算虛擬人物的人工情感強(qiáng)度 并選擇當(dāng)前主要情感,選擇當(dāng)前主導(dǎo)動(dòng)機(jī),并在人工情感的指導(dǎo)下制定動(dòng)作策略,最后將動(dòng) 作通過世界接口作用于游戲虛擬環(huán)境中; (5) 世界接口轉(zhuǎn)發(fā)游戲玩家退出游戲的狀態(tài)信息,多智能體將相關(guān)狀態(tài)信息寫入全局 知識(shí)庫,然后關(guān)閉全局知識(shí)庫,退出世界接口。
2. 如權(quán)利要求1所述交互式游戲中智能非玩家角色的人工情感驅(qū)動(dòng)方法,其特征在于 在步驟(1)中,所述啟動(dòng)全局知識(shí)庫,加載初始行為規(guī)則,初始化人工情感系統(tǒng)參數(shù)的具體 方法如下: 1) 讀取配置文件,獲取知識(shí)庫服務(wù)端口,后臺(tái)數(shù)據(jù)庫服務(wù)端口; 2) 啟動(dòng)后臺(tái)數(shù)據(jù)庫,加載初始行為規(guī)則及人工情感系統(tǒng)參數(shù); 3) 通過知識(shí)庫服務(wù)端口向智能體提供數(shù)據(jù)服務(wù)。
3. 如權(quán)利要求2所述交互式游戲中智能非玩家角色的人工情感驅(qū)動(dòng)方法,其特征在于 在步驟(1)第2)部分中,知識(shí)庫中的每條行為規(guī)則,形如Context&Action - Goal,其表達(dá) 的意義為:在條件Context滿足時(shí),執(zhí)行某一動(dòng)作Action,將能達(dá)成目標(biāo)Goal ; 在步驟(1)第2)部分中,人工情感的系統(tǒng)參數(shù)主要包括:每一個(gè)調(diào)節(jié)子的初始值;每 一個(gè)內(nèi)建需求D的初始水平L,期望取值范圍的下限min_l,上限max_l。
4. 如權(quán)利要求1所述交互式游戲中智能非玩家角色的人工情感驅(qū)動(dòng)方法,其特征在于 在步驟(2)中,所述運(yùn)行多智能體,連接全局知識(shí)庫的具體方法如下: 1) 讀取配置文件,獲取知識(shí)庫服務(wù)端口,多智能體通信端口,世界接口通信端口; 2) 運(yùn)行多智能體,讀取知識(shí)庫中的系統(tǒng)參數(shù)初始值,初始化相應(yīng)變量; 3) 偵聽世界接口通信端口,等待處理信息。
5. 如權(quán)利要求1所述交互式游戲中智能非玩家角色的人工情感驅(qū)動(dòng)方法,其特征在于 在步驟(3)中,所述加載世界接口,接口一端連接游戲服務(wù)器,同游戲虛擬環(huán)境交互,接口 另一端連接多智能體,向其發(fā)送虛擬環(huán)境信息或轉(zhuǎn)發(fā)多智能體的控制指令到游戲虛擬環(huán)境 中的具體方法如下: 1) 讀取配置文件,獲取世界接口通信端口,多智能體通信端口; 2) 處理用戶指令消息隊(duì)列; 3) 處理虛擬環(huán)境信息消息隊(duì)列; 4) 處理多智能體動(dòng)作消息隊(duì)列。
6. 如權(quán)利要求5所述交互式游戲中智能非玩家角色的人工情感驅(qū)動(dòng)方法,其特征在于 在步驟⑶第2)部分中,用戶指令消息隊(duì)列存放來自游戲玩家的各種操作指令,對于非玩 家角色而言,由于玩家不需要直接操縱它們,因而這里的用戶指令消息事實(shí)上只有一個(gè),即 "退出游戲"; 在步驟(3)第3)部分中,虛擬環(huán)境信息消息隊(duì)列采用XML格式存放虛擬人物所觀察 到的虛擬環(huán)境中的信息,對每一個(gè)觀察到的物體,包含有以下信息:物體ID,位置,顏色,大 小,是否可移動(dòng),是否可交互; 在步驟(3)第4)部分中,多智能體動(dòng)作消息隊(duì)列存放非玩家角色需要在虛擬環(huán)境中執(zhí) 行的動(dòng)作及其相應(yīng)的參數(shù)。
7. 如權(quán)利要求1所述交互式游戲中智能非玩家角色的人工情感驅(qū)動(dòng)方法,其特征在于 在步驟(4)中,所述多智能體進(jìn)入主循環(huán)開始工作,分別并發(fā)處理非玩家角色感知到的虛 擬環(huán)境信息,更新虛擬人物的內(nèi)建需求水平,相應(yīng)的動(dòng)機(jī)強(qiáng)度,系統(tǒng)參數(shù),計(jì)算虛擬人物的 人工情感強(qiáng)度并選擇當(dāng)前主要情感,選擇當(dāng)前主導(dǎo)動(dòng)機(jī),并在人工情感的指導(dǎo)下制定動(dòng)作 策略,最后將動(dòng)作通過世界接口作用于游戲虛擬環(huán)境中的方法如下: 1) 感知智能體,負(fù)責(zé)接收虛擬環(huán)境信息,計(jì)算空間位置關(guān)系,并將相關(guān)信息寫入到全局 知識(shí)庫中; 2) 需求智能體,負(fù)責(zé)更新非玩家角色的內(nèi)建需求水平以及相應(yīng)的動(dòng)機(jī)強(qiáng)度,并將相關(guān) 信息寫入到全局知識(shí)庫中; 3) 參數(shù)智能體,負(fù)責(zé)更新人工情感系統(tǒng)參數(shù); 4) 情感智能體,負(fù)責(zé)更新非玩家角色的人工情感強(qiáng)度,并選擇當(dāng)前主要情感; 5) 動(dòng)作智能體,負(fù)責(zé)發(fā)送動(dòng)作序列中的第一個(gè)動(dòng)作,若該序列為空,則先選擇系統(tǒng)主導(dǎo) 動(dòng)機(jī),然后運(yùn)行動(dòng)作規(guī)劃器生成新的動(dòng)作序列。
8. 如權(quán)利要求7所述交互式游戲中智能非玩家角色的人工情感驅(qū)動(dòng)方法,其特征在于 在步驟(4)第1)部分中,感知智能體,需要首先解析以XML格式封裝的虛擬環(huán)境信息,然后 計(jì)算相應(yīng)的空間位置關(guān)系,空間位置關(guān)系分為二元位置關(guān)系和三元位置關(guān)系兩種,二元位 置位置主要包括前,后,左,右,上,下;三元位置關(guān)系主要是指介于兩者之間,由于二元位置 關(guān)系具有對稱性,因此只需要計(jì)算出一半的二元位置關(guān)系便可以推算出與之對稱的二元位 置關(guān)系;三元位置關(guān)系則是二位置關(guān)的基礎(chǔ)上,依據(jù)一些判斷準(zhǔn)則得到的; 在步驟(4)第2)部分中,首先為非玩家控制角色設(shè)定一些內(nèi)建的需求,較為通用的需 求主要包括能量、水、完整性、確定性、自信度、親和性; 在步驟(4)第2)部分中,每一個(gè)需求都有一定的偏好范圍或目標(biāo)范圍,當(dāng)需求水平落 在相應(yīng)的目標(biāo)范圍時(shí),稱作該需求被滿足,否則需求不被滿足。
9. 如權(quán)利要求7所述交互式游戲中智能非玩家角色的人工情感驅(qū)動(dòng)方法,其特征在于 在步驟(4)第3)部分中,人工情感系統(tǒng)參數(shù)也稱為調(diào)節(jié)子,人工情感系統(tǒng)參數(shù)包括: a. 激活度,它表征感知和反應(yīng)的激活程度; b. 解析度,它決定各種認(rèn)知活動(dòng)如感知、動(dòng)作規(guī)劃的精細(xì)程度; c. 保護(hù)閥值,它控制智能體執(zhí)行保護(hù)行為的頻繁程度; d. 選擇閥值,它通過引入偏好信息,幫助虛擬人物在幾個(gè)相互沖突的動(dòng)機(jī)之間作出選 擇; 在步驟(4)第3)部分中,參數(shù)智能體,通過一組非線性方程來更新調(diào)節(jié)子的水平,更新 方程的構(gòu)造方式滿足以下基本原則: a. 激活度同能量及自信度的需求有關(guān); b. 解析度與激活度呈負(fù)相關(guān)的關(guān)系; C.保護(hù)閥值則取決于智能體對環(huán)境的熟悉程度以及智能體的安全性; d.選擇閥值同智能體的自信程度呈正相關(guān)的關(guān)系; 在步驟(4)第4)部分中,非玩家角色的情感用4個(gè)調(diào)節(jié)子及滿足度構(gòu)成的五維連續(xù)空 間表達(dá); 對每一種情感,其強(qiáng)度的計(jì)算方式為:首先根據(jù)4個(gè)調(diào)節(jié)子及滿足度的當(dāng)前水平以及 上表定義的隸屬范圍,通過一個(gè)隸屬度函數(shù),計(jì)算每一情感維度的隸屬度;然后,將所有情 感維度的隸屬度的加權(quán)平均作為該情感的強(qiáng)度; 當(dāng)所有情感的強(qiáng)度計(jì)算完畢后,當(dāng)前強(qiáng)度最大的情感被挑選出來,作為當(dāng)前系統(tǒng)的主 要情感(f),然后在游戲中呈現(xiàn)出來; 在步驟(4)第5)部分中,采用以下的方法選擇系統(tǒng)的主導(dǎo)動(dòng)機(jī): 若random(0, 1)〈選擇閥值,則選擇滿足度最低的需求所對應(yīng)的動(dòng)機(jī)作為系統(tǒng)的主導(dǎo) 動(dòng)機(jī);否則,隨機(jī)選擇一個(gè)動(dòng)機(jī)作為系統(tǒng)的主導(dǎo)動(dòng)機(jī); 其中,random(0, 1)輸出一個(gè)[0, 1]范圍內(nèi)的隨機(jī)數(shù),其分布為均勻分布; 挑選出系統(tǒng)主導(dǎo)動(dòng)機(jī)之后,智能體通過運(yùn)行一個(gè)動(dòng)作規(guī)劃器,從當(dāng)前主導(dǎo)動(dòng)機(jī)出發(fā),根 據(jù)知識(shí)庫中的規(guī)則信息:條件&動(dòng)作一目標(biāo),生成相應(yīng)的動(dòng)作序列。
10.如權(quán)利要求1所述交互式游戲中智能非玩家角色的人工情感驅(qū)動(dòng)方法,其特征在 于在步驟(5)中,所述世界接口轉(zhuǎn)發(fā)游戲玩家退出游戲的狀態(tài)信息,多智能體將相關(guān)狀態(tài) 信息寫入全局知識(shí)庫,然后關(guān)閉全局知識(shí)庫,退出世界接口的具體方法如下: 1) 世界接口將用戶退出游戲的指令轉(zhuǎn)發(fā)給多智能體; 2) 多智能體將當(dāng)前狀態(tài)信息及相關(guān)數(shù)據(jù)寫入到全局知識(shí)庫中,向世界接口發(fā)送退出狀 態(tài)信息,然后退出主循環(huán); 3) 全局知識(shí)庫等待多智能體服務(wù)請求超時(shí),關(guān)閉后臺(tái)數(shù)據(jù)庫,關(guān)閉知識(shí)庫服務(wù)端口; 4) 世界接口接收到所有多智能體退出狀態(tài)信息,或等待退出狀態(tài)信息超時(shí),嘗試強(qiáng)行 關(guān)閉多智能體,向游戲虛擬環(huán)境發(fā)送退出狀態(tài)信息,然后退出主循環(huán)。
【文檔編號(hào)】G06F9/445GK104102522SQ201410369468
【公開日】2014年10月15日 申請日期:2014年7月30日 優(yōu)先權(quán)日:2014年7月30日
【發(fā)明者】蔡振華, 周昌樂, 黃德恒 申請人:廈門大學(xué)