一種實(shí)現(xiàn)游戲人工智能真實(shí)感視覺的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種實(shí)現(xiàn)游戲人工智能真實(shí)感視覺的方法,屬于計(jì)算機(jī)游戲領(lǐng)域。
【背景技術(shù)】
[0002] 游戲人工智能的表現(xiàn)在游戲中是重要的一部分,它與玩家進(jìn)行直接的交互,直接 關(guān)系到玩家的游戲體驗(yàn),一個(gè)好的人工智能夠的提升游戲品質(zhì)。
[0003] 隨著游戲的迅速發(fā)展,玩家們期望人工智能角色可以更逼真、更精細(xì)地感知游戲 世界。然而作為人工智能的核心部分,傳統(tǒng)游戲中的人工智能角色視覺模型是十分簡單的, 通常使用視距、視錐和視線檢查的組合。雖然這些基本的人工智能角色視覺模型功能十分 高效并且易于編寫,但它們對游戲玩家來說太過透明并且太過簡單。比如當(dāng)人工智能角色 使用離散的距離來檢查視覺時(shí),在超出一個(gè)特定的距離之后將會有絕對的盲區(qū)。玩家熟悉 這個(gè)漏洞后將會用它來操縱敵人的人工智能。比如玩家通過重復(fù)緩慢向前再跑開來從敵人 群體中引誘單獨(dú)的敵人。
[0004] 圖1為通常人工智能的視距、視錐、視線測試圖,目前大部分游戲中使用的三種核 心視覺計(jì)算分別是視距、視錐和視線。為了使這三種檢查具有效率通常會按順序來計(jì)算。這 是因?yàn)榉秶鷾y試十分高效,而視線測試的游戲資源消耗會比較大。圖2內(nèi)容如下所示: 第一,簡單的視距檢查計(jì)算。測試距離的平方而不是真正的距離會更有效率,因?yàn)樗?免了平方根操作??梢杂?jì)算向量的點(diǎn)乘來和視距的平方做比較。之所以可以應(yīng)用距離平方 優(yōu)化,是因?yàn)橹魂P(guān)心相對的距離,而不是確切的距離。
[0005] 第二個(gè),視錐測試。先將人工智能角色的向前向量歸一化,同樣將從人工智能角色 到玩家的向量歸一化,然后對它們進(jìn)行點(diǎn)乘操作。如果結(jié)果大于0°角,玩家就在人工智能 角色的180°角的視錐中。如果結(jié)果大于0.5,玩家就在人工智能角色的120°角的視錐中。 作為優(yōu)化,如果只需要測試180°角的視錐,則沒有必要?dú)w一化向量,這樣可以排除掉兩個(gè) 平方根計(jì)算。
[0006] 第三,視線測試,這個(gè)執(zhí)行最為耗費(fèi)時(shí)間。測試會從人工智能角色的眼睛的水平髙 度向玩家的位置射出一條射線。如果在它碰到玩家之前碰到了任何幾何體,人工智能角色 就無法看到玩家。這種測試可以通過使用關(guān)卡幾何體的包圍盒來進(jìn)行優(yōu)化,而不是對單獨(dú) 的多邊形進(jìn)行測試。為了測試世界中的物體,可以使用物體最低級別的LOD和包圍盒。這 三種測試是視覺模型的基礎(chǔ)。但這種簡單的視覺測試并不能很好地為人類視覺建模,特別 是視錐有很多缺點(diǎn),具體如下所示:人工智能角色不可能看到它正后方的物體;視覺敏銳 度在視野的中心最高并隨著距離衰減,而視錐模型過分地估計(jì)了遠(yuǎn)處的視覺區(qū)域,而對近 處的視覺區(qū)域估計(jì)不足;為了避免視覺遠(yuǎn)處過大的區(qū)域,游戲開發(fā)人員會讓視距不真實(shí)地 變短。
【發(fā)明內(nèi)容】
[0007] 針對現(xiàn)有技術(shù)人工智能視覺開發(fā)上的缺陷,對一般游戲人工智能視覺模型的現(xiàn)狀 與造成原因進(jìn)行分析,總結(jié)了一種實(shí)現(xiàn)游戲人工智能真實(shí)感視覺的方法,使得游戲人工智 能角色的人工智能顯著提高,玩家的游戲體驗(yàn)更好,使用橢圓區(qū)域構(gòu)建人工智能同時(shí)也增 加了游戲的趣味性和娛樂性。
[0008] 本發(fā)明解決技術(shù)問題所采用的技術(shù)方案包括以下步驟: A、 調(diào)取游戲程序中人工智能角色與被檢測的物體及角色之間的距離信息,建立第一橢 圓區(qū)域,對第一橢圓區(qū)域配置所述距離信息,并且布置人工智能角色位于第一橢圓區(qū)域的 橢圓長軸的端點(diǎn)處; B、 檢測所述人工智能角色之外的物體及角色的位置,根據(jù)配置的距離信息計(jì)算物體及 角色處的區(qū)域位置,保存區(qū)域位置信息; C、 建立第二橢圓區(qū)域,對所述第二橢圓區(qū)域配置所述區(qū)域位置,使所述人工智能角色 位于第一橢圓區(qū)域中的橢圓焦點(diǎn)上,并且使人工智能角色的正前方遍布所述第二橢圓區(qū) 域,然后在第二橢圓區(qū)域的基礎(chǔ)上,進(jìn)一步建立半圓區(qū)域,使人工智能角色位于所述半圓區(qū) 域的圓心上,并且使該人工智能角色的正前方遍布所述半圓區(qū)域; D、 采用離散測試方法對所述第二橢圓區(qū)域和所述半圓區(qū)域組合成的組合區(qū)域劃分為 多個(gè)子區(qū)域,并且對每個(gè)子區(qū)域分配用于辨識所述人工智能角色之外的物體及角色的辨識 概率值; E、 當(dāng)?shù)却孀R的物體及角色和/或所述人工智能角色的行為狀態(tài)和游戲?qū)傩园l(fā)生變 化時(shí),動態(tài)修改與所述人工智能角色關(guān)聯(lián)的子區(qū)域中的辨識概率。進(jìn)一步,該游戲人工智能 真實(shí)感視覺實(shí)現(xiàn)方法還包括:對二維游戲或三維游戲使用該二維橢圓曲線構(gòu)造人工智能角 色視覺模型,如果游戲中對高度要求重要,則可以使用三維的橢圓曲線構(gòu)造人工智能角色 視覺模型;對于正在識別物體、角色,當(dāng)其距離變遠(yuǎn)時(shí),動態(tài)調(diào)整橢圓的軸長和人工智能角 色的視角角度,模擬視覺因距離變化導(dǎo)致的視覺缺口。
[0009] 進(jìn)一步,所述游戲人工智能真實(shí)感視覺的方法步驟A包括:調(diào)取游戲程序中人工 智能角色與被檢測的物體及角色之間的距離信息,所述距離信息包括人工智能角色與被檢 測物體及角色的位置、距離長度、角度,還包括人工智能角色的視錐、視距、視角數(shù)據(jù)。
[0010] 進(jìn)一步,所述游戲人工智能真實(shí)感視覺的方法步驟B包括:根據(jù)所述的距離信息, 檢測所述人工智能角色之外的物體及角色,計(jì)算人工智能角色之外的物體及角色到第一橢 圓區(qū)域兩個(gè)焦點(diǎn)的距離和,如果所述的距離和大于第一橢圓區(qū)域的長軸則表示物體及角色 在人工智能角色視距之外,此時(shí)則不進(jìn)行下一步行為實(shí)施,如果所述距離和小于或等于第 一橢圓區(qū)域長軸則表示物體及角色在人工智能角色視距之內(nèi),此時(shí)可以進(jìn)行下一步行為實(shí) 施。
[0011] 進(jìn)一步,所述游戲人工智能真實(shí)感視覺的方法步驟C包括:使所述的第二橢圓區(qū) 域和半圓區(qū)域形成組合區(qū)域,所述組合區(qū)域?yàn)槿斯ぶ悄芙巧谋孀R區(qū)域。
[0012] 進(jìn)一步,所述游戲人工智能真實(shí)感視覺的方法步驟D包括:根據(jù)不同的視覺敏銳 度檢測效果,對每個(gè)子區(qū)域分配相應(yīng)的不同的辨識概率值,因此對每個(gè)區(qū)域標(biāo)記不同的辨 識概率,所述辨識概率為人工智能角色辨識物體及角色的概率,并且以高于上限閾值表示 完全被人工智能角色辨識,而以低于下限閾值則不會引起人工智能角色采取任何行為。
[0013] 優(yōu)選地,所述游戲人工智能真實(shí)感視覺方法的步驟D還包括:所述的上限閾值為 100%,下限閾值為50%,在閾值為50%至100%中包含多個(gè)閾值段,在所述閾值段內(nèi)人工智能 角色辨識成功后均會采取對應(yīng)的行動。
[0014] 進(jìn)一步,所述游戲人工智能真實(shí)感視覺的方法步驟E包括:當(dāng)檢測到的物體及角 色的行為、所處區(qū)域、狀態(tài)發(fā)生變化時(shí),根據(jù)物體及角色的行為、所處區(qū)域、狀態(tài)的不同,動 態(tài)修改人工智能角色辨識物體與角色的概率,當(dāng)人工智能角色行為狀態(tài)發(fā)生變化時(shí),也會 變動修改人工智能角色對物體及角色的辨識概率。
[0015] 進(jìn)一步,所述游戲人工智能真實(shí)感視覺的方法步驟E還包括:對于處于特定的行 為或狀態(tài)的物體及角色,人工智能角色對物體及角色辨識概率會固定的變化,并且人工智 能角色所處的游戲環(huán)境變化,也會動態(tài)修改人工智能角色的辨識概率;對于處于第二橢圓 區(qū)域且在人工智能角色前方的物體及角色,會被人工智能角色完全辨識,處于第二橢圓區(qū) 域且在人工智能角色眼睛后方的物體及角色,并不會被完全辨識,以達(dá)到真實(shí)感視覺;對于 所述的人工智能角色的視覺,角度和距離的衰減而引起的人工智能角色的辨識率下降,符 合人類的視覺規(guī)則。
[0016] 進(jìn)一步,所述游戲人工智能真實(shí)感視覺的方法還包括:對于所述步驟B,當(dāng)人工智 能角色在檢測物體及角色過程中,物體及角色因移動導(dǎo)致其離開了人工智能的視距,此時(shí) 動態(tài)修改第一橢圓區(qū)域的人工智能角色視角大小和第一橢圓區(qū)域軸長長度以及時(shí)恢復(fù)對 物體及角色的檢測。
[0017] 進(jìn)一步,所述游戲人工智能真實(shí)感視覺的方法還包括:在游戲中默認(rèn)使用二維圖 元構(gòu)造人工智能角色視覺的圖形區(qū)域,如果游戲?qū)Ω叨鹊囊笾匾?,則使用三維圖元域構(gòu) 造人工智能角色視覺圖形區(qū)域。
[0018] 本發(fā)明的有益效果為:橢圓區(qū)域構(gòu)造的視覺模型對游戲人工智能角色連貫并詳細(xì) 的對游戲世界的認(rèn)識。很多十分吸引人的特性被引入這個(gè)模型,這將會帶來十分豐富有趣 的游戲玩法。當(dāng)玩家更好地理解了底層的視覺模型時(shí),他們就可以設(shè)計(jì)創(chuàng)新的方法來操縱 人工智能角色,這會大大提高游戲體驗(yàn)的質(zhì)量。這種視覺模型給游戲NPC帶來更多的細(xì)節(jié) 以及真實(shí)感。同時(shí)它是一個(gè)十分靈活的模型,可以創(chuàng)建自己的視覺模型來配合并增強(qiáng)特定 的游戲設(shè)計(jì),以達(dá)到增強(qiáng)游戲人工智能角色的真實(shí)感與人工智能的智能程度,增強(qiáng)游戲的 表現(xiàn)力與玩家的代入感,提高游戲的樂趣與游戲性的目的。
【附圖說明】
[0019]圖1所示為通常人工智能的視距、視錐、視線圖; 圖2所示為根據(jù)本發(fā)明實(shí)施方式的總體流程圖; 圖3所示為根據(jù)本發(fā)明實(shí)施方式的橢圓區(qū)域構(gòu)造的人工智能視覺模型圖; 圖4所示為根據(jù)本發(fā)明實(shí)施方式的人工智能角色的辨識概率圖。
【具體實(shí)施方式】
[0020] 為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體實(shí)施例對 本發(fā)明進(jìn)行詳細(xì)描述。本發(fā)明的一種實(shí)現(xiàn)游戲人工智能真實(shí)感視覺的方法適用于單機(jī)游 戲、手機(jī)游戲、網(wǎng)頁游戲等游戲的開發(fā),尤其使用在非玩家角色(即人工智能角色)的人工 智能的游戲。
[0021] 圖1所示為根據(jù)本發(fā)明實(shí)施的流程圖,所述的流程為:使用可自定義編輯的橢圓 曲線構(gòu)造人工智能角色的視覺模型;初始化橢圓曲線構(gòu)造的人工智能角色的視覺模型,解 析并加載人工智能角色與所發(fā)現(xiàn)的物體、角色距離相關(guān)屬性,智能計(jì)算物體、角色是否進(jìn)入 人工智能角色的可視范圍內(nèi);使用離散測試方法,檢測環(huán)境物體、角色,模擬人類真實(shí)視覺,