孫可言 陳根
摘 要:此文主要是為了介紹關于開發(fā)基于Unity3D游戲引擎的手機版射擊類游戲。開發(fā)手機版射擊類游戲主要的步驟有前期的市場需求和市場技術的調(diào)研,中期的游戲策劃,游戲場景的搭建與基本功能的實現(xiàn)以及后期的游戲主要功能的實現(xiàn)和基本功能的完善與游戲檢測。這篇文章主要介紹的是中期的游戲策劃,游戲場景搭建與基本功能的實現(xiàn)。游戲的基本場景包括游戲角色和NPC所處的外部的世界環(huán)境,比如,地形,天氣等; 游戲的基本功能包括人物角色的移動,跳躍,射擊,NPC的人工智能系統(tǒng)的實現(xiàn)等。
關鍵詞:Unity;NPC;碰撞檢測;人工智能
Unity3D這款游戲引擎具有很強大的跨平臺性,同時也具有強大的兼容性,比較容易入門,也比較適合水平不太高的手機游戲開發(fā)人員。并且,該引擎的相關文檔和教程都十分豐富,而且,Unity3D的技術架構具有特殊性,能夠?qū)崟r生成查看功能,適用性強,使開發(fā)的流程簡單化,能夠方便廣大用戶的使用。
如今,市場上的關于射擊類的游戲,其中有60%以上是通過Unity3D游戲引擎開發(fā)的。由此可見,Unity3D是射擊類游戲的最基本使用最廣泛的游戲引擎。這篇文章針對第一人稱射擊類游戲的開發(fā)過程中的相關技術問題展開了詳細的說明,對Unity3D的運用中的關鍵技術進行了詳細的闡述,對于其他用戶靈活的使用Unity3D游戲引擎有著十分重要的意義。
1 相關工作
這篇文章是以Unity3D為開發(fā)平臺,對碰撞檢測技術人工智能技術進行研究。
碰撞檢測技術的主要目的有三個:檢測模型之間是否發(fā)生了碰撞,反饋出發(fā)生或即將發(fā)生碰撞的部位,動態(tài)的查詢模型之間的距離。進而針對碰撞后的反饋進行針對性的動作。碰撞檢測技術廣泛應用于各種系統(tǒng)中,比如時下比較流行的游戲英雄聯(lián)盟和守望先鋒,都離不開碰撞檢測算法。
人工智能技術是最近幾年興起的一項技術,簡稱為AI,使計算機具有動物或人類的某種智力,這有助于我們作出特別的決定執(zhí)行什么一些程序。另計算機只是能接受數(shù)據(jù)、執(zhí)行邏輯的電子設備.和高速運算,輸出結果。
因此,人工智能(AI)本質(zhì)上是使計算機能夠思考并且像活的有機體那樣決定執(zhí)行特定的操作。人工智能只是一個通用術語;它的實現(xiàn)和應用是不同的,實現(xiàn)不同的目的,解決不同的問題。
2 前期準備工作
從游戲的可玩性角度來說,射擊類游戲是一款十分容易獲取用戶粘度的游戲類型,近些年來在市場上的一些列的射擊類游戲都取得了不錯的成績。我們的這個游戲是模范市場已經(jīng)有的射擊類游戲的模式進行開發(fā)和研究的,在一些具體的細節(jié)方面進行了調(diào)整和優(yōu)化處理。
首先,是運用3DMax搭建了一個完善的游戲界面和游戲場景,增強用戶的沉浸感;其次,我們在用戶與計算機的交互上運用了人工智能技術,使得游戲中的AI角色更加具有真實感;最后,游戲的盈利模式則是通過與其他游戲的廣告商合作收取廣告商的加盟費和游戲的道具費用等。
3 游戲UI設計
游戲玩家對游戲的評價主要有兩個方面,一個是主要的也就是游戲的模式和操作,而另一個十分重要的因素也就是游戲的美工。好的游戲離不開精良的美術內(nèi)容。這里說的游戲美術就是游戲中出現(xiàn)的可視化內(nèi)容,包括游戲UI界面,游戲場景及角色等,游戲美術決定游戲的界面風格,是游戲設計與開發(fā)過程中不可或缺的重要組成部分。具體來說本款作品的游戲美術需要完成UI界面的設計、游戲場景和道具的設計與制作、人物角色和NPC形象的設計和建模以及動畫的制作等。
4 核心技術要求
上文介紹了美術制作的部分內(nèi)容,現(xiàn)在介紹一下程序設計部分。程序需求是一個游戲的核心,是實現(xiàn)預期效果的必要保證。即用一些腳本和代碼將美工設計的好的各種素材聯(lián)系起來并進行交互。程序需求在游戲設計開發(fā)過程中十分重要,決定著一個游戲現(xiàn)在運行過程中是否能完美還原策劃的預期效果和運行時是否流暢。
這款手機版的FPS射擊游戲中涉及到多種人工智能技術,NPC,主角,場景中障礙物,道具等一些列對象,需要通過腳本來控制個對象之間的關系以及互動。當前介紹碰撞檢測技術,人工智能實現(xiàn)技術。
4.1 人工智能實現(xiàn)技術
4.1.1 內(nèi)部需求
在三維射擊游戲中。我們所設置的AI角色即NPC需要了解他們自身所處的周圍環(huán)境,他們所處的世界的相互作用,以便于他們按照程序做出相應的決定,執(zhí)行特定的操作。
這些信息主要包括以下幾個方面:
1)玩家位置:NPC與玩家的相對位置信息主要作用是用于NPC決定是否執(zhí)行擊,或追逐等操作。
2)玩家的健康狀況和自身的健康狀況:這里主要指的是射擊游戲中玩家所操控的角色的血量和NPC自身的血量,主要是為了讓NPC做出正確的判斷,是執(zhí)行繼續(xù)前進或者撤退。
3)在游戲地圖中的資源位置:在射擊游戲中主要是需要玩家占領的地域資源,當玩家操作的角色傾占了該地形資源的時候,NPC就會發(fā)出相應的攻擊和追逐的動作與玩家進行實時的互懂。
4)其他單位:除了以上的游戲中的對象,所有其他的單位,也必須要獲取他們的位置以及性能等其他信息,比如,場景中的障礙物和建筑,NPC不能夠穿越他們,而是需要躲避。
4.1.2 基本的感官系統(tǒng)
人工智能系統(tǒng)會模擬感官,比如視覺,聲音,甚至氣味追蹤和識別目標。這就使得NPC會有自己的感覺,如感知,嗅覺,視覺和觸覺等。這些感覺將尋找特定的操作來使NPC完成相對應的執(zhí)行任務從而達到與用戶進行交互的效果。比如,當玩家控制的角色與進入NPC的事業(yè)范圍之內(nèi),NPC會執(zhí)行攻擊任務,對玩家進行攻擊,并在攻擊的同時執(zhí)行移動操作,向著玩家操控的角色靠近。或者,當玩家控制的角色對NPC進行攻擊NPC會根據(jù)自身的健康狀況和玩家操縱角色的健康狀況以及周圍的環(huán)境等綜合因素做出判斷,對玩家進行攻擊還是撤退。
4.1.3 射擊游戲中的AI角色
一款游戲若是缺少交互就無法生存,所以射擊游戲中的AI角色是射擊游戲的核心部分,AI角色的人工智能程度也就決定著一個射擊類游戲的趣味性和可玩性。
AI角色具有兩種感覺,視覺與觸覺。透視感即視覺將檢查是否玩家角色是在一套可見的范圍和距離內(nèi)以決定AI角色是否要采取相關反射行為。觸覺將檢測如果敵人的側面撞上了方塊對撞機,很快就要環(huán)繞我們的AI角色了。正如我們以前看到的,我們的玩家角色將會發(fā)現(xiàn)敵人信息。所以,當AI角色的這些感官被觸發(fā)時,他們發(fā)現(xiàn)玩家角色并作出程序里寫入的相應動作與玩家進行交互。在我們這款射擊類游戲中,僵尸的視覺系統(tǒng)看到了玩家的角色,僵尸將會按照一定的線路追逐玩家并在一定的距離范圍內(nèi)對玩家進行攻擊;玩家的子彈如果與僵尸發(fā)生碰撞,僵尸的觸覺系統(tǒng)將會讓僵尸的血量發(fā)生減少的變化,當血量降低為0時,僵尸死亡;玩家擲出的手雷發(fā)生爆炸,觸碰到僵尸的觸覺系統(tǒng),僵尸將會被彈飛并死亡。這些都是AI角色的人工智能技術的實現(xiàn),即玩家實施的每一步操作,AI角色都會做出對應的操作予以回應從而到達與玩家進行交互的效果。
4.2 碰撞檢測技術
碰撞檢測技術有各種不同的算法,優(yōu)秀的碰撞檢測的算法可以很好地增強游戲中對象之間進行碰撞的的真實性而且能夠減少CPU在計算碰撞檢測相關數(shù)據(jù)的時候的內(nèi)部計算時間。
這款射擊類游戲在Unity3D中用如下JavaScript腳本進行碰撞檢測:
function OnCollisionEnter(obj:Collision){
Debug.Log("Collider:"+obj.collider.name+"gameObject:"+obj.gameObject.name);
Action;
}
將如上的碰撞檢測的OnCollisionEnter函數(shù)綁定到對象obj上,當這個物體被其他物體碰撞時函數(shù)被調(diào)用。
碰撞檢測技術幾乎是任何游戲中都必須要用到的技術,玩家與游戲場景中的各個對象和游戲中AI角色之間的交互動作都是在碰撞檢測技術的基礎上來實現(xiàn)的。碰撞檢測的算法根據(jù)使用的對象和實際的情況會分為很多種,其中有距離預測算法、時間預測算法等等。距離計算算法是一種計算量比較大碰撞檢測算法,但是這種方法的計算的精確度高,更具有真實性。這款射擊類游戲采用的就是距離計算的算法。當物體之間發(fā)生碰撞以后,會出現(xiàn)什么樣的效果和做出什么反應都是調(diào)用上面提及的函數(shù)來進行進行碰撞檢測的計算。
5 總結
隨著計算機技術的日益發(fā)展,Unity3D游戲引擎越來越平民化,人工智能技術也漸漸的被人們熟知并加以運用到計算機技術中。這篇文章在對Unity3D游戲引擎精心研究的基礎上結合FPS射擊類游戲的特點,通過3D建模技術和次世代貼圖技術,運用碰撞檢測和人工智能交互技術進行設計與開發(fā)。總結出射擊類游戲相關場景的設置以及AI角色的設置的一些簡單的方法。同時,這款游戲的故事情節(jié)也略顯不足,人物角色單一,游戲模式也不夠多元化,還需要進一步的改進與深化研究。
參考文獻:
[1] (美)羅素.殷建平譯.人工智能:一種現(xiàn)代的方法(第3版).清華大學出版社,2013-11-01.
[2] 伍傳敏,張帥,邱錦明.基于Unity3D的FPS游戲設計與開發(fā)[J].三明學院學報,2012,29(2):35-40.
[3] (澳)尼格尼維斯基.陳薇譯.人工智能:智能系統(tǒng)指南(原書第3版).機械工業(yè)出版社,2012-08-01.
項目名稱:
2015北方工業(yè)大學實培計劃大學生科研訓練計劃深化項目