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
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
主站蜘蛛池模板: 国产成人高精品免费视频| 91青青视频| 亚洲婷婷六月| 欧洲亚洲一区| 中文字幕永久在线观看| 国产一级α片| 色视频国产| 亚洲制服丝袜第一页| 91在线视频福利| 欧美伦理一区| 激情视频综合网| 国产成人狂喷潮在线观看2345| 国产精品久久久精品三级| 久久影院一区二区h| 中国精品久久| 天堂av高清一区二区三区| 日韩天堂在线观看| 日韩精品免费在线视频| 亚洲精品国产首次亮相| 精品国产黑色丝袜高跟鞋 | 91探花在线观看国产最新| 亚洲丝袜中文字幕| 成年女人a毛片免费视频| 亚洲国产成人无码AV在线影院L | 亚洲色偷偷偷鲁综合| 无码免费的亚洲视频| 国产91蝌蚪窝| 青青草a国产免费观看| 欧美自拍另类欧美综合图区| 亚洲精品国产成人7777| 亚洲精品国产综合99| 农村乱人伦一区二区| 久久久久久国产精品mv| 亚洲美女视频一区| 亚洲日韩AV无码一区二区三区人| 国产精品污视频| 国产JIZzJIzz视频全部免费| 蜜桃视频一区| 中文字幕色站| 一本一道波多野结衣一区二区| 亚洲成人免费在线| 手机精品视频在线观看免费| 伊人久久大线影院首页| 精品久久久久成人码免费动漫| 免费播放毛片| 人人妻人人澡人人爽欧美一区| 国产va在线观看免费| 欧美性久久久久| 热久久国产| 午夜一区二区三区| 国产一区二区三区在线精品专区| 亚洲系列中文字幕一区二区| 欧美亚洲国产精品久久蜜芽| 国产精品刺激对白在线| 广东一级毛片| 国产成人一级| 国产精品人莉莉成在线播放| 亚洲国产欧美目韩成人综合| 国产欧美日韩另类| 亚洲中久无码永久在线观看软件| 国产成人久久综合777777麻豆 | 欧美中文字幕在线视频| 第一区免费在线观看| 久久国产成人精品国产成人亚洲 | 91av成人日本不卡三区| 日韩福利在线视频| 成人国产精品网站在线看| 国产v欧美v日韩v综合精品| 日日碰狠狠添天天爽| 亚洲人成网线在线播放va| 欧美日韩资源| 国产剧情一区二区| 亚国产欧美在线人成| 人妻丰满熟妇av五码区| 亚洲国产成人精品一二区| 亚洲第一色视频| 99在线观看免费视频| 国产成人久久综合777777麻豆| 在线观看国产精品日本不卡网| 综合色婷婷| 日本午夜在线视频| 欧美第二区|