?

基于Unity 3D的尋寶游戲的設計與制作

2020-10-09 10:24張勝男司占軍
電腦知識與技術 2020年22期
關鍵詞:尋寶動畫游戲

張勝男 司占軍

摘要:基于虛擬現實技術,以各類生活知識為線索,通過Unity 3d引擎設計開發一款以拓展知識為目的的尋寶游戲,使玩家用戶在體驗游戲樂趣的同時能夠了解更多的生活知識。游戲設計過程中,需要利用3Ds Max、PS等軟件完成游戲場景、道具的設計以及圖形UI界面、場景貼圖等內容的制作,利用Unity 3D完成場景漫游、背景音樂、開箱狀態等各類功能的實現,使玩家可以通過游戲中場景中的不斷探索獲得寶箱所在位置,通過線索道具的搜集獲得開箱密碼,最終獲得友好的人機交互頁面,增加用戶的游戲樂趣與沉浸感。

關鍵詞:Unity 3D;虛擬現實技術;游戲制作

中圖分類號:TP391 文獻標識碼:A

文章編號:1009-3044(2020)22-0037-03

開放科學(資源服務)標識碼(0SID):

本設計基于Unity 3D引擎進行游戲的開發,使用Unity平臺進行游戲制作,可以實現多平臺一次性開發,具有更優越的效果和更高的擴展空間,跨平臺游戲在全球范圍內的占有率越來越高該引擎的在游戲場景、畫面、腳本等方面都展現出強大的設計能力;并且Unity跨平臺游戲的兼容性也很強,可以輕易實現同一款游戲在各大主流游戲平臺的無縫并存以及跨平臺對決,利用Unity引擎進行游戲的開發正在成為主流[1-2]。Unity3D是一款發展成熟的開發程序,極大程度上方便了個人進行游戲的開發設計,降低使用的難度,提高了開發者的效率。尋寶類游戲作為一種經典游戲類型,考驗玩家的觀察能力、線索串聯能力,受到大量玩家的歡迎。采用Unity3D引擎開發一款具有娛樂和教育意義的尋寶游戲,有良好的市場前景。

1 開發環境

建模環境以及Unitv3D場景搭建環境為Windows 10,英特爾Core(TM)i5-5200U CUP2.20GHz,8GB內存,64位操作系統。使用的軟件有Autodesk 3ds Max 2018,Adobe Photoshop CC2018, Unity 2018.3.14f1(64-bit), Visual Studi0 2019 CommuniW.

2 游戲的開發思路

如何將尋寶游戲設計得更加縝密、線索合理,首先需對市場上相似游戲進行調研分析。本游戲選擇以教學樓為尋寶場景,在各類教室中放置不同類型的線索。此游戲的具體設計流程圖如圖1所示,游戲系統的設計主要包括場景與劇情的構思,UI界面、三維模型的制作.圖像素材的處理,場景搭建、各類交互設計及邏輯的實現。

3 設計與制作

3.1 三維模型的制作

三維模型的制作主要包括游戲場景以及道具模型的制作。在Auto CAD中設計的教學樓平面圖的基礎上,在3Ds Max中建出相應的三維教學樓的樓體(如圖2所示),完成樓體的建模后,確定教學樓內各個房間以及房間內不同物體擺放的位置。圖3為書本線索的制作,主要通過UVW展開進行貼圖渲染,主要目的是得到正確的模型貼圖,它可以根據展開后每個面的輪廓調整面貼圖的圖案和形狀,方便在復雜模型上準確的貼圖。

3.2 交互功能的實現

1)第一人稱視角漫游。游戲采用第一人稱視角進行移動,需要使用相應的控制器。先導人標準資源包,在Charactor Con-trollor中包含兩種視角模式:第一人稱視角和第三人稱視角,選擇First Person Controllor,將里面的FPSControllor拖動到Hierar-chy面板中,并調整人物的范圍和高度,人物一般使用膠囊體碰撞體。同時調整攝影機的高度和坐標,攝影機的位置即游戲的開始視角,設置好的FPSControllor。此外,可以根據需要調整游戲人物移動的速度和跳躍的高度移動時頭部的抖動等要素。要注意攝像機的位置一定要處于人物膠囊碰撞體的內部,否則發生碰撞后,視角依舊進入墻體中。

2)場景跳轉功能。新建場景用于存放游戲的界面,將制作好的主界面、二級界面和按鈕導人Unity中,并將格式改為可調用的精靈模式(Sprite 2D and UI)。為按鈕添加點擊進行場景跳轉的腳本。打開文件菜單欄中的build settings,把模型所在的場景和游戲界面所在的場景加入scenes in Build中,這樣添加腳本時才能找到腳本中所提及的場景。新建一個C# script,命名為“changescenes”用來存放場景跳轉的腳本。因為是點擊按鈕進行跳轉,所以需要先引用Unity UI的命名空間和場景存放的命名空間,在聲明返回值為空的方法實現跳轉。保存好代碼后,需要進行事件監聽,即賦予按鈕的事件何時會發生,設置的方法如圖4。

3)密碼開箱功能實現。游戲中模型需要通過動畫控制器播放動畫,動畫的制作如門窗的開關、寶箱開關效果在3D嘛Max中完成實現制作,通過unitY 3D中的動畫控制器以及腳本代碼的調用實現動畫狀態變化,通過監聽按鈕事件調用腳本實現密碼開箱功能,其關鍵代碼如下:

public GameObject passwordbox;

public string password=””;

public Animator animator;

private bool isTrigger= false;

private BoxCollider checkBox;

public InputField my_ip;

public Button Iny—btn;

void Startn

{

if fanimator==nul11

animator=GetComponent0;

void UpdateO

{

password=my—ip.text;

private void onTriggerEnter(Collider other)

{

isTrigger=tme;

private void onTriggerExit(C01lider other)

{

isTrigger=false;

private void onGUI()

{

if(isTrigger)

{

passwordbox.SetActive(tme);

if((Input.GetMouseButtonDown(0))&&password==”1234”1

0penCaseTiaoJian0;

passwordbox.SetActive(false);))

else

{passwordbox.SetActive(蹦se);

public void openCaseTiaoJianO

{animato r.SetBool(”0penCase”,tme);”

在密室逃脫游戲中,線索不能夠輕易被發現,只有執行了指定的動作或者進入了指定的區域內,才有被觸發的可能。本游戲中發現線索的邏輯是這樣的:玩家進入指定區域后,游戲道具會以高亮的輪廓線框提示玩家,玩家處于可觸發的范圍內點擊道具,就能查看道具的詳細信息,按Z鍵可以關閉詳情頁。功能實現通過添加觸發器與碰撞器并利用bool值進行條件判斷,具體實現代碼如下:

using cakeslice;//調用OutlineE{fect的命名空間

public Gameobject tupianl;

public Gameobject tupian2;

public outline m—outline;

private bo()l isTrigger=false;//聲明游戲組件、高亮組件和布爾

private void onTriggerStay(Collider other)

{

if(other.tag.Equals(”Player”))//玩斷玩家是否進入觸發器中

{

if(Input.GetKeyDown(KeyCode.Z))

{

tupianl.SetActive(f'alse);

tupian2.SetActive(false);

1//輸入Z鍵圖片消失

public void openPaper0//建立鼠標的點擊事件

{

if (isTrigger)//判斷布爾值是否為真

{

tupianl.SetActive(true);//為真時點擊模型可以示圖片

3.3 調試與完善

完成游戲基本內容及功能實現之后,通過為游戲添加聲音特效等提高玩家的游戲的體驗效果。同時針對游戲內容進行測試各環節是否能夠正常運行,測試無誤后可進行發布。

4 總結

此次設計通過Unity引擎完成了動畫播放、背景音樂、場景跳轉、場景漫游、線索查看等功能的實現。同時,將生活知識應用于游戲中,通過游戲探索的方式使玩家用戶更加輕松簡易的方式接收信息。尋寶游戲設計過程中在開發游戲的娛樂功能的同時,更加注重游戲所能帶來的教育意義。將教育元素或社會現象引入游戲設計中,將會使玩家用戶引起思考與重視,具有重大的教育意義。

參考文獻:

[1]李兵川.基于Unity 3D游戲開發流程分析[J].山東工業技術,2018(7):148.

[2]黎勇.關于休閑益智類手機游戲的UI和特效開發思考[J].計算機產品與流通,2017(11):132.

【通聯編輯:謝媛媛】

作者簡介:張勝男(1995-),女,山東禹城人,碩士在讀,研究方向為虛擬現實技術;司占軍(1971-),男,河北人,教授,碩士,研究方向為數字出版媒體。

猜你喜歡
尋寶動畫游戲
做個動畫給你看
動畫發展史
尋寶
尋寶大行動
爆笑游戲
我是動畫迷
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合