999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Unity3D的VR射擊游戲的研究與實現

2019-12-02 08:53:24劉雨嘉楊鍵馮夢雨四川大學錦城學院計算機與軟件學院
數碼世界 2019年3期
關鍵詞:動畫設置游戲

劉雨嘉 楊鍵 馮夢雨 四川大學錦城學院 計算機與軟件學院

1 引言

近年來,隨著計算機圖形學、多媒體信息技術和計算機軟硬件的快速發展,虛擬現實技術逐漸在軍事、教育、游戲、建筑、醫療、工業設計等多個領域廣泛應用,越來越多的人們愿意帶上VR設備來體驗虛擬現實帶來的全新體驗。本文介紹了利用unity3d游戲引擎開發的一款休閑射擊類游戲。

2 游戲分析

此款射擊游戲的玩法規則是羊群從地圖的一端向著地圖的另一端的羊圈慢慢運動,期間會有狼從山中跑出來攻擊羊群,牧羊人(第一視角)則會對攻擊羊群的狼進行設計,一次射擊未將狼擊倒,狼則會轉向攻擊牧羊人,牧羊人可通過瞬移進行躲避。羊群在進入羊圈之

前被狼全部吃掉或牧羊人被狼擊中或者游戲倒計時為零則游戲結束。要達到以上內容,需從這幾方面著手:1.地形;2.羊群;3.狼群;4.第一游戲視角(牧羊人)。下面分別介紹:

地形:游戲設計要控制狼從出生點開始,狼群會向著羊群的方向運動,這就要求狼群在尋路的過程中需要改變狼群原有的最短路線最好經過牧羊人的初始位置,牧羊人看見狼群從而進行射擊,從而達到消滅狼群的目的。

羊群:在草原的一定范圍內隨機生成,先在草地上逗留一會或吃草或環顧四周后向著羊圈運動,這期間就可能會受到狼群攻擊。

狼群:在山中的三個隨機位置生成,生成后會向著羊群追趕,并攻擊。

第一游戲視角(即牧羊人):通過手柄控制槍支進行射擊,保護羊群,驅趕狼群。

3 游戲設計

本次設計主要體現在牧羊人、狼追趕羊、羊群、牧羊人與狼群的交互以及UI 界面包括倒計時以及重新開始的設計上。 游戲開始便進入游戲場景,牧羊人為第一視角,倒計時開始,游戲時長可以選擇。

倒計時結束后,所有狼群和羊群停止動作,羊圈處出現重新開始字樣,可槍擊中間的小羊圖案進行重新開始。游戲過程中,羊群向著羊圈慢慢移動,狼群從山中三處隨機產生并向著狼群運動,在距離羊群一定距離時發起攻擊。牧羊人可在發現狼群時向狼群發起攻擊。羊群中的所有羊死亡即游戲結束并游戲任務失敗或者倒計時結束也即游戲結束。

整個游戲分為牧羊人,羊群,狼群三大模塊。

4 游戲實現

游戲的場景設定是在一個四面環山的草原上。在場景搭建中包括牧羊人居住的帳篷,帳篷中取暖的火焰,羊圈的柵欄, 望塔等場景中的基本建筑。其中火焰是采用unity中的粒子效果實現的,柵欄通過3dsmax建模完成。

4.1 狼群

狼群在整個游戲中的主要任務是向羊群發起攻擊;

首先涉及到尋找羊的過程:

1.選中地形Terrain,在Inspector視圖中名稱右側的Static處選擇Navigation Static;

2.烘培地形:(unity for Mac)Window->Navigation,進入Navigation界面中的Object選項,勾選Navigation Static。在進入Bake選項,點擊Bake,現在開始烘培地形。

3.在狼的預制體拖入Hierarchy視圖中,選中狼的預制體添加Nav Mesh Agent組件;

4.需要為狼添加動畫控制器:

5.創建一個動畫控制器命名為WolfMoving;

6.雙擊進入動畫控制器,找到動畫“run”,拖入動畫控制器編輯區中,自動Entry會指向“idle1”,表示狼的初始動作為奔跑的“run”,即狼群一開始生成就回開始跑向羊群。

7.狼群如果在奔跑過程當中遇到羊群,會發起攻擊。所以需要將動畫“runBite”拖入動畫控制器編輯區。

8.狼群也不總是在奔跑,也可以速度變慢停下來四處走動。所以需要將動畫“walk”拖入動畫控制器編輯區。

9.狼群還會停下來觀察四周,查看是否適合進攻,將動畫“idleLookAround”拖入動畫控制器編輯區。

10.狼群收到牧羊人的槍擊會死亡,所以需要將動畫“death”,拖入動畫控制器編輯區。

11.設置不同的狀態之間的轉換條件:

從“run”到“runBite”:控制bool變量Attack為真,取消勾選Has Exit Time選項;從“runBite”回到“run”:bool變量Attack為假,取消勾選Has Exit Time選項;

從“Any State”到“death”:設置Trriger條件Death,不勾選Has Exit Time選項;

12.編寫腳本:

其中主要的部分

一是在Start()函數中獲取游戲對象涉及的游戲組件:

nav = GetComponent<NavMeshAgent>();// 獲取尋路組件

ani = GetComponent<Animator>();// 獲取動畫控制器組件

以及獲取狼群尋路的目標的位置:

target = GameObject.FindGameObjectWithTag("Sheep").transform;//狼尋路的目標為標簽為“Sheep”的游戲對象

設置Update (),開始尋路,尋路目標為target的位置即羊群的位置:

nav.SetDestination(target.position);

Unity中設置:

1.因為需要在幾個不同的位置生成狼群,先創建一個Perfabs文件夾,將Hierarchy視圖中的狼拖入該文件夾再刪除Hierarchy視圖中的狼;

2.創建三個空物體分別命名為WolfManager、Wolf1、Wolf2;

3.編寫腳本

實現邏輯為:使用一個函數由于生成狼的預制體,然后每隔一段時間重復調用這個函數

public float spawnTime = 3f;// 延遲時間

public GameObject wolf;// 狼的預制體

public Transform[] spawnPoints;

在Start()函數中實現重復調用生成函數:

InvokeRepeating("Spawn",2f, spawnTime);//2 秒后開始調用Spawn()函數,每spawnTime即3秒后再次調用

編寫Spawn()函數即生成函數:

intspawnPointIndex = Random.Range(0, spawnPoints.Length);

Instantiate(wolf, spawnPoints[spawnPointIndex].position,spawnPoints[spawnPointIndex].rotation);

4.有兩個生成點,需要拖入兩個腳本進入WolfManager中,每個腳本需要拖入,狼的預制體以及設置延遲時間,將Spawn Points數值設為1之后拖入生成位置(transform)即之前設置的Wolf1或Wolf2。

4.2 牧羊人

牧羊人在整個游戲里的作用是保護羊群擊殺狼群。牧羊人為游戲的第一視角利用的是SteamVR中的CameraRig實現的。在CameraRig中的Controller(right)下用槍的模型替換Model;

大多數時間牧羊人不會受到狼群攻擊,因為牧羊人可以在整個場景中瞬移,速度較快。關于在場景中的瞬移需要用到SteamVR和VRTK的集成。

4.3 羊群

羊群在這個游戲中屬于被牧羊人保護,受到狼群追趕,最終目的是回到羊圈里。為了游戲的真實性,實現在草原上會放置十幾個羊的預制體,讓玩家能看到羊在草原上吃草的情形,

首先需要為其添加動畫控制器,其設置動畫控制器過程與狼類似,這里不再贅述。

4.4 游戲的結束以及重新開始

這一部分即時游戲的UI部分,是關于游戲結束與游戲重新開始的設置:

1.在Unity中的Hierarchy視圖中創建一個空物體重命名為GameManager,用于管理整個UI;

2.選中需要顯示倒計時的位置( 望塔),右鍵單擊->UI->Canvas,在UI下創建一個空物體命名為restartPos即重新開始圖樣出現的位置,重置其transform。在Canvas下分別創建time、timetext、score、scoretext并設置;

3.在GameManager腳本中:

設置Unity初始值:包括分數,記錄剩余的時間,重啟游戲圖標產生的位置,判斷游戲是否結束等參數。

在Start()中調用ini()函數

編寫包括增加分數函數,初始化游戲函數,游戲結束函數,重新計數函數,重新開始游戲函數。

最后設置FixedUpdate()中通過判斷IsGameOver是否為真,如果為真直接跳出函數,如果為假,調用onGameOver()函數。

4.將GameManager腳 本 拖 入Hierarchy視 圖 中 的GameManager上,將 time、timetext、score、scoretext拖入對應的文件框中。

5 結束語

VR技術是仿真技術的一個重要方向,是仿真技術與計算機圖形學人機接口技術多媒體技術傳感技術網絡技術等多種技術的集合,是一門富有挑戰性的交叉技術前沿學科和研究領域。本文介紹了基于Unity3D的VR射擊游戲的研究與開發過程,包括基于Unity的場景設置和腳本的掛載。感知是指理想的VR應該具有一切人所具有的感知。此射擊游戲利用了人的視覺的、運動等感知,是游戲更具真實感。但是這款游戲還有待改進,未來工作是優化游戲代碼和模型,希望能給玩家帶來更加真實的游戲體驗。

猜你喜歡
動畫設置游戲
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
做個動畫給你看
動畫發展史
我的動畫夢
文苑(2019年22期)2019-12-07 05:28:56
數獨游戲
瘋狂的游戲
飛碟探索(2016年11期)2016-11-14 19:34:47
爆笑游戲
我是動畫迷
學生天地(2016年9期)2016-05-17 05:45:06
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
主站蜘蛛池模板: 国产精品视频免费网站| 久久亚洲精少妇毛片午夜无码| www精品久久| 亚洲自拍另类| 午夜福利亚洲精品| 狠狠v日韩v欧美v| 免费黄色国产视频| 免费国产高清精品一区在线| 国产精品一区二区不卡的视频| 一区二区日韩国产精久久| 成人福利免费在线观看| 中文字幕在线一区二区在线| 亚洲精品免费网站| 国产97视频在线观看| 亚洲精品免费网站| 日韩视频精品在线| 欧美不卡二区| 国产成人永久免费视频| 91精品啪在线观看国产60岁| jizz国产视频| 91精品国产一区自在线拍| 无码aaa视频| 免费国产黄线在线观看| 亚洲天堂精品在线| 无遮挡一级毛片呦女视频| 国产嫖妓91东北老熟女久久一| 亚洲国产欧美国产综合久久 | 国产成人免费| 国产成人精品18| 亚洲欧美在线综合图区| 国产精品一区在线麻豆| 人妻无码一区二区视频| 亚洲国产天堂久久综合226114| 国产精品成人免费综合| 亚洲人视频在线观看| 国产精品成人免费综合| 99在线视频免费| 97人人做人人爽香蕉精品| 日韩色图在线观看| 四虎亚洲国产成人久久精品| 国产高清免费午夜在线视频| 中文字幕亚洲另类天堂| 国产精品美女免费视频大全| 国产麻豆精品在线观看| 一本色道久久88综合日韩精品| 亚洲国产天堂久久九九九| 欧美一级在线| 国产精品视频系列专区| 四虎AV麻豆| 亚洲精品视频网| 久久久91人妻无码精品蜜桃HD | vvvv98国产成人综合青青| 亚洲中文字幕无码mv| 国产欧美专区在线观看| 看国产毛片| 亚洲成年人网| 九色在线观看视频| 999福利激情视频| 露脸国产精品自产在线播| 波多野结衣视频一区二区 | 国产毛片网站| 91偷拍一区| 毛片a级毛片免费观看免下载| a色毛片免费视频| 亚洲欧美极品| 亚洲av无码片一区二区三区| 丰满人妻一区二区三区视频| 伊在人亚洲香蕉精品播放| 日本午夜三级| 成人夜夜嗨| 亚洲二区视频| 日韩欧美中文字幕在线精品| 国产主播福利在线观看| 国产区精品高清在线观看| 国产嫖妓91东北老熟女久久一| 国产成人精品在线| 丁香六月激情综合| 国产午夜人做人免费视频中文| 九九热免费在线视频| 67194在线午夜亚洲| swag国产精品| 国产欧美日本在线观看|