亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Unity3D的小學科學教育游戲的設(shè)計與開發(fā)

        2021-01-28 03:35:42周雪薇
        微型電腦應(yīng)用 2021年1期
        關(guān)鍵詞:游戲模型設(shè)計

        周雪薇

        (東北石油大學 計算機與信息技術(shù)學院, 黑龍江 大慶 163318)

        0 引言

        目前國內(nèi)外對于教育游戲的探索達到了一個蓬勃發(fā)展階段,國外對于教育游戲的研究可以說是捷足先登,起步早,自然也相對成熟,比如加拿大的Inlight Entertainment公司以其成熟的設(shè)計技術(shù)和游戲內(nèi)容,以及多樣性的游戲類型深受學校、教育機構(gòu)等的歡迎,目前可以用于數(shù)學、英語等多門學科[1]。近年來,國內(nèi)的教育游戲研究也取得了一定的成效,在市場上陸續(xù)出現(xiàn)一些優(yōu)秀的教育游戲作品。2004年,珠海奧卓爾軟件公司、華南師大未來教育研究中心等機構(gòu)合作組建了國內(nèi)第一個以搭建游戲化教學平臺為己任的研究團隊,并在桑新民教授的指導下開發(fā)了一款名叫“奧卓爾游戲化學習世界”的教育游戲[2],該游戲能夠?qū)⒅R與游戲進行完美的融合中,讓學生在玩中學,學中玩,充分吸引學生的興趣,提高學習效果等。雖然在國內(nèi)外目前有不少公司和研究機構(gòu)開發(fā)了應(yīng)用在中小學課程的教育游戲,但是基本上都是針對語文、數(shù)學、英語、物理、化學等傳統(tǒng)學科,在小學科學學科方面的教育游戲,是少之又少。

        本文基于Unity3D與3DS Max,設(shè)計開發(fā)出一款小學科學教育游戲《科學探險》,通過創(chuàng)建虛擬情景,加入游戲化互動元素,將小學科學與教育游戲緊密結(jié)合,旨在借助教育游戲的特點,幫助學生在游戲中學習科學知識,同時提升學生的科學素養(yǎng)和解決實際問題的能力,更好地促進學生的學習與發(fā)展。

        1 總體設(shè)計

        1.1 系統(tǒng)設(shè)計思路

        教育游戲的設(shè)計是教育游戲開發(fā)的前提,良好的教育游戲設(shè)計對于整個開發(fā)過程是至關(guān)重要的[3]。本游戲所開發(fā)的基于Unity3D的教育游戲——科學探險是一款小學科學游戲,也是一款角色扮演類探險游戲。通過查閱資料和素材,對小學科學六年級課本知識進行深入了解,結(jié)合教育游戲設(shè)計的一般模式。首先進行開發(fā)前的教學分析,分別是學習者分析、需求分析、教學內(nèi)容和目標分析,然后進行游戲的設(shè)計,分別是游戲故事設(shè)計、人物角色設(shè)計、游戲任務(wù)設(shè)計、游戲腳本設(shè)計、游戲界面設(shè)計和游戲交互設(shè)計,然后進行具體功能設(shè)計,接下來就可以進行游戲的開發(fā),分別是開發(fā)工具的選擇、游戲場景開發(fā)和游戲模型開發(fā),最后是測試與發(fā)布,開發(fā)模式,如圖1所示。

        圖1 教育游戲開發(fā)模式

        結(jié)合教育游戲的特點和小學科學課的教學目標與內(nèi)容對游戲的總體設(shè)計進行分析,本文鑒于教育游戲的可實現(xiàn)性,選擇3個知識點內(nèi)容進行設(shè)計開發(fā),分別是動植物分類、工具與機械和垃圾分類。

        1.2 系統(tǒng)開發(fā)框架

        (1) 框架搭建

        本教育游戲系統(tǒng)支持PC端,手機與平板電腦等多種終端使用。具體框架圖,如圖2所示。

        圖2 系統(tǒng)架構(gòu)圖

        該框架最下層的是文檔、視頻等作為數(shù)據(jù)層。在邏輯層,通過Unity3D引擎編寫邏輯控制,集成為數(shù)據(jù)管理系統(tǒng)、物理模擬系統(tǒng)、音效系統(tǒng)、背包系統(tǒng)和測試系統(tǒng)。管理系統(tǒng)之上的是游戲的任務(wù)模塊:工具與機械模塊、動植物分類模塊和垃圾分類模塊作為顯示層。

        本教育游戲的關(guān)卡流程,如圖3所示。

        圖3 關(guān)卡流程圖

        玩家進入游戲后,閱讀操作說明后,可以任選“開心農(nóng)場”、“機械謎題”、“綠色守護者”3個關(guān)卡其中一個場景作為游戲的開始,進入到相應(yīng)的場景,并最終會經(jīng)歷所有環(huán)節(jié),完成3個關(guān)卡中所有任務(wù)后,進入“最后的試煉”關(guān)卡,通過選擇題的形式,測試玩家對于前3個關(guān)卡相應(yīng)知識點的掌握情況,最后闖關(guān)成功。

        (2) 場景模型建模

        按照編寫的游戲腳本,將場景中所需要的模型,如關(guān)卡中所需要的房間、管鉗、羊角錘、螺絲刀和箱子等相關(guān)模型進行建模。建模工具所用軟件為3DS Max。游戲中所需要的模型的制作主要分為3個方面。

        ① 利用標準的基本幾何體組合制作簡單的模型,如木板、房間等;

        ② 需要幾何體組合和變形,改變幾何體相應(yīng)的結(jié)合點進行基礎(chǔ)建模,像是羊角錘、螺絲刀等;

        ③ 模型進行貼圖建模,物體的模型不要求特別逼真,像是電視機,木箱子。模型材質(zhì)的處理主要有直接對模型添加相應(yīng)的顏色和采用PS處理相應(yīng)的圖片進行貼圖。

        在建模過程中,模型優(yōu)化將直接影響游戲的運行效率與渲染負擔。常用的優(yōu)化方法減少布爾操作、避免三角面建模與四邊面建模混用、刪除多余面片、修正布線以及模型附加等。通過優(yōu)化,將明顯提高模型的渲染速度[4]。具體建模流程,如圖4所示。

        圖4 建模流程圖

        (3) 模型導入與場景搭建

        將3DS Max軟件中導出的FBX格式模型導入Unity3D的Asset文件夾下,Unity3D會自動識別模型、材質(zhì)等[5],在Unity3D中添加地面以及天空盒子,在地面添加數(shù)木、草地等物體,從而營造出較為真實的虛擬環(huán)境,增強學習者的投入度,利于知識和技能遷移。

        2 關(guān)鍵技術(shù)

        2.1 角色控制實現(xiàn)

        游戲設(shè)計并實現(xiàn)兩種性別的虛擬角色,可供玩家選擇,角色選擇通過預(yù)先設(shè)計好男女角色的預(yù)設(shè)體,兩個角色放在同一個場景的相同位置上,當游戲開始時,鼠標點擊選擇角色按鈕后,通過“bprefab.SetActive(false)和gprefab.SetActive(true)”方法顯示選定角色,未選用角色執(zhí)行 destroy 方法進行銷毀。整個游戲采用第三人稱視角運行按鍵WSAD控制主角的移動,按住鼠標右鍵進行視角轉(zhuǎn)換。

        (1) 主角移動

        在第一人稱虛擬角色上新建腳本role作為控制人物移動腳本,在inspector界面設(shè)置一個移動速度speed,作為人物的移動速度。利用函數(shù)GetKey()監(jiān)聽鍵盤輸入,若鍵盤按下WASD四個按鍵時,則觸發(fā)語句,利用transform.Transform方法(三維方向向量*系統(tǒng)增量時間*移動速度),就能使得第一人稱人物按規(guī)定方向進行移動,從而完成第一人稱人物的移動控制[6]。

        (2) 視角轉(zhuǎn)換

        在每個場景中都能通過鼠標和鍵盤對視角范圍及遠近進行縮放控制,與角色移動同理,要實現(xiàn)旋轉(zhuǎn)視角的效果,就要通過腳本代碼來實現(xiàn),編寫好腳本后將其賦予相機。其中通過鼠標右鍵控制視角方向,鼠標滾輪控制鏡頭的遠近,對視角角色與調(diào)節(jié)速度進行設(shè)置,調(diào)節(jié)合適的大小??刂葡鄼C速度和視角的實現(xiàn)方法如下。

        xRotation+=Input.GetAxis(“Mouse X”)*rotSpeed*Time.deltaTime;

        yRotation-=Input.GetAxis(“Mouse Y”)*rotSpeed*Time.deltaTime;

        xRotation=ClampAngle(xRotation,xMinLimit,xMaxLimit);

        yRotation=ClampAngle(yRotation,yMinLimit,yMaxLimit);

        2.2 背包系統(tǒng)功能

        背包系統(tǒng)是GUI的重要組成部分,游戲界面設(shè)計利用UGUI設(shè)計實現(xiàn)[7]。背包系統(tǒng)會根據(jù)預(yù)先設(shè)計中需要拾取的物體在背包系統(tǒng)中的窗體方格中添加金幣、羊角錘、螺絲刀、鑰匙等相關(guān)工具。當物品道具出現(xiàn)時,通過物體的tag標簽對背包內(nèi)物品進行檢測。若背包中存在相同道具時,則將物品數(shù)量的下標加1;若不存在,則按窗格順序自動放置物品,如圖5所示。

        圖5 “背包系統(tǒng)”功能展示

        背包系統(tǒng)中主要實現(xiàn)的是3個效果,分別是背包的顯示與隱藏功能、物品的拾取與存儲功能和鼠標繪制物品功能。

        (1) 背包設(shè)計

        首先針對背包內(nèi)的道具物品聲明一個工具類,包括工具ID,工具名稱,工具個數(shù)等。通過UGUI在Canvas下,添加按鈕完成背包界面的搭建,每個按鈕的名稱與物體相對應(yīng)。

        public class ItemEntity {

        private string objId;//工具ID

        private string objName;//工具名稱

        private int count;//工具數(shù)量

        private int level;//工具層級

        private bool isCanAdd;//工具是否可添加

        private int maxAdd;//工具最多可添加數(shù)

        }

        (2) 拾取與顯示功能

        拾取功能設(shè)計為當游戲人物觸碰物體,點擊物體,物體消失,同時物體對應(yīng)的圖片顯示在背包的按鈕上。首先,先聲明一個數(shù)組List,對物體進行存儲,在點擊場景中物體時,攝像機發(fā)出射線,若射線與道具物體進行碰撞,則銷毀該物體,并將該物體加入泛型List中。之后調(diào)用Show()方法,遍歷List中的所有物體,通過List中物體的名稱作為查詢條件,利用Resource.Load()進行動態(tài)加載,顯示在上述的按鈕的Source Image上。

        (3) 背包中道具的使用

        對每一個按鈕綁定監(jiān)聽,若點擊按鈕,則會根據(jù)按鈕的名稱找到對應(yīng)的道具圖片,將該圖片繪制在鼠標位置上。首先每幀獲取鼠標位置,然后通過GUI.DrawTexture完成繪制。

        Rect rect = new Rect(mousePos.x, Screen.height - mousePos.y, 200, 200);

        GUI.DrawTexture(rect, sp);

        點擊之后的效果,如圖6所示。

        圖6 使用工具效果圖

        2.3 答題功能

        本功能作為游戲的最后一關(guān),測試玩家通過游戲之后對于知識的掌握情況。設(shè)計為主角與怪獸進行知識比賽,由玩家方進行答題。雙方設(shè)有血條,如圖7所示。

        圖7 答題界面

        上面是雙方血條,代表當前的血量狀況,題目內(nèi)容根據(jù)前幾關(guān)的學習的知識進行提問。如果玩家方答對,則怪物掉血,相反,若玩家方答錯,則主角掉血,若怪物當前血量為0,那么主角通過最后一關(guān),也證明通過考試,掌握了相關(guān)技能與知識;若主角的當前血量為0,那么通關(guān)失敗,則進行重新答題或重新學習。

        (1) 試題的存儲與讀取

        游戲中設(shè)計的題型是選擇題,試題信息存儲在XML文件根節(jié)點list下的子節(jié)點item中,每個item結(jié)構(gòu)包括:tmxh(題目序號)、xa(選項A內(nèi)容)、xb(選項B內(nèi)容)、xc(選項C內(nèi)容)、zqda(正確答案)和stnum(試題數(shù)目)。首先對XML試題文件進行解析,操作步驟如下。

        a.利用XmlDocument解析并且加載XML試題文件的內(nèi)容;

        b.獲取list節(jié)點下的所有item中的試題信息;

        c.構(gòu)造結(jié)構(gòu)體并聲明結(jié)構(gòu)體數(shù)組存放試題信息;

        d.將獲取的試題信息加載到試題的結(jié)構(gòu)體數(shù)組,實現(xiàn)對試題的解析。

        此外,從XML中解析出的試題會打亂順序,使用隨機函數(shù)r=Random.Range(i,num.Length),可實現(xiàn)每次出現(xiàn)的題目順序不同。

        (2) 題目顯示與點擊選項實現(xiàn)

        在解析xml文件之后,獲得對應(yīng)的試題內(nèi)容、試題選項和正確答案。在OnGUI函數(shù)中,通過GUI.Label()函數(shù)實現(xiàn)在特定位置顯示試題內(nèi)容,通過 if (GUI .Button ()) 判定選擇的選項,并與正確答案進行比對,正確則獲得相應(yīng)分數(shù),錯誤則不得分。

        (3) 血量的顯示與計算

        通過UI的slider實現(xiàn)血條,設(shè)計變量human_currHP表示當前血量,human_MaxHP表示最大血量,二者相除所得的值為slider的值。

        slicder_human.value = human_currHP / (float)human_MaxHP;

        設(shè)置主角 human_currHP和怪獸的最大血量mon_currHP為50以及每道題的傷害值為10,如果答錯問題,當前生命值-10,若在update()函數(shù)檢測到人物的當前血量為0,則闖關(guān)失敗;若怪獸的血量為0,那么闖關(guān)成功。

        3 總結(jié)

        本文借助Unity3D引擎,以小學科學課內(nèi)容為背景設(shè)計一款教育游戲。首先介紹國內(nèi)外教育游戲的研究現(xiàn)狀。其次是對游戲進行總體設(shè)計包括確定教育游戲的開發(fā)模式,系統(tǒng)開發(fā)框架以及關(guān)卡流程圖。最后是對系統(tǒng)的功能進行開發(fā)。將小學科學與教育游戲的靈活性與趣味性進行了很好的融合,為游戲化學習和教育游戲的開發(fā)和設(shè)計提供一種思路。本系統(tǒng)能夠使學習者在虛擬化的環(huán)境中發(fā)揮學習主體作用、充滿體驗的樂趣和探索精神[8],并彌補了實驗器材不足所帶來的缺陷等問題。但本系統(tǒng)仍然存在一些不足之處,如交互功能的設(shè)計上以及游戲界面的美觀上還需要進一步改進,這就需要后續(xù)完善。

        猜你喜歡
        游戲模型設(shè)計
        一半模型
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
        瞞天過海——仿生設(shè)計萌到家
        設(shè)計秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        數(shù)獨游戲
        瘋狂的游戲
        飛碟探索(2016年11期)2016-11-14 19:34:47
        3D打印中的模型分割與打包
        爆笑游戲
        男人的天堂免费a级毛片无码| 白色白色在线视频播放平台| 丝袜美腿国产一区二区| 国精品人妻无码一区二区三区性色| 蜜臀aⅴ国产精品久久久国产老师| 亚洲精品一区网站在线观看| 粉色蜜桃视频完整版免费观看在线| 欧洲美女黑人粗性暴交视频| 青青草视频免费观看| 在线观看精品国产福利片100| 白白色发布视频在线播放| 久久国产精品一国产精品金尊| av潮喷大喷水系列无码| 日本口爆吞精在线视频| 在线观看国产自拍视频| 狠狠色噜噜狠狠狠777米奇| 国产成人久久精品77777综合| 国产成人啪精品视频免费网| 国产麻豆一区二区三区在| 午夜男女很黄的视频| 波多野结衣亚洲一区二区三区| 日韩精品一区二区av在线| 国产变态av一区二区三区调教| 亚洲综合欧美在线一区在线播放| 国产精品美女久久久久av超清| 粗一硬一长一进一爽一a级| 久久精品日本美女视频| 国产在线视频91九色| 国精品无码一区二区三区在线蜜臀| 传媒在线无码| 国产亚洲精品综合在线网站| 亚洲永久国产中文字幕| 无码国产伦一区二区三区视频| 无码之国产精品网址蜜芽| 久久精品伊人久久精品伊人| 日本熟妇美熟bbw| 欧美z0zo人禽交欧美人禽交| 国产在线视频网站不卡| 精品无人区无码乱码毛片国产| 蜜臀av无码精品人妻色欲 | 男受被做哭激烈娇喘gv视频|