虛擬現(xiàn)實(shí)制作技術(shù)(Unity)教案項(xiàng)目十一 迷宮奪寶之物理引擎(一)_第1頁(yè)
虛擬現(xiàn)實(shí)制作技術(shù)(Unity)教案項(xiàng)目十一 迷宮奪寶之物理引擎(一)_第2頁(yè)
虛擬現(xiàn)實(shí)制作技術(shù)(Unity)教案項(xiàng)目十一 迷宮奪寶之物理引擎(一)_第3頁(yè)
虛擬現(xiàn)實(shí)制作技術(shù)(Unity)教案項(xiàng)目十一 迷宮奪寶之物理引擎(一)_第4頁(yè)
虛擬現(xiàn)實(shí)制作技術(shù)(Unity)教案項(xiàng)目十一 迷宮奪寶之物理引擎(一)_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 章節(jié)標(biāo)題項(xiàng)目十迷宮奪寶之物理引擎()課程類型理論+實(shí)踐授課班級(jí)數(shù)字媒體應(yīng)用技術(shù)專業(yè)第13周教學(xué)目標(biāo)知識(shí)目標(biāo)主要了解物理引擎概述、剛體、碰撞體、觸發(fā)器。能力目標(biāo)1.了解物理引擎2掌握剛體、碰撞體、觸發(fā)器重點(diǎn)完成實(shí)踐任務(wù)3D游戲場(chǎng)景設(shè)計(jì)。難點(diǎn)掌握剛體、碰撞體、觸發(fā)器。教學(xué)方法任務(wù)驅(qū)動(dòng)法、案例法教學(xué)手段采用:打“廠模具實(shí)地參觀掛圖現(xiàn)場(chǎng)演練V多媒體V上機(jī)訓(xùn)練VCAI聽力訓(xùn)練虛擬仿真其他教學(xué)過(guò)程設(shè)計(jì)(分教學(xué)步驟列出內(nèi)容、時(shí)間安排、教學(xué)方法、訓(xùn)練項(xiàng)目、素材等)過(guò)程教師活動(dòng)學(xué)生活動(dòng)課程導(dǎo)入在Unity3D中,物理引擎是項(xiàng)目設(shè)計(jì)中最為重要的步驟,主要包含剛體、碰撞、物理材質(zhì)以及關(guān)節(jié)運(yùn)動(dòng)等。物理引擎的作用是模

2、擬當(dāng)有外力作用到對(duì)象上時(shí)對(duì)象間的相互影響,比如賽車游戲中,駕駛員駕駛賽車和墻體發(fā)生碰撞,進(jìn)而出現(xiàn)被反彈的效果。通過(guò)物理引擎,實(shí)現(xiàn)這些物體之間相互影響的效果是相當(dāng)簡(jiǎn)單的。觀看幻燈片思考討論新課一、剛體剛體:在物理學(xué)中,剛體是個(gè)理想模型。我們通常把在外力作用下,物體的形狀和大小(尺寸)保持不變,而且內(nèi)部各部分相對(duì)位置保持恒定(沒(méi)有形變),這種理想物理模型稱之為剛體。而在一個(gè)物理引擎中,剛體是非常重要的組件,通過(guò)剛體組件可以給物體添加一些常見(jiàn)的物理屬性,比如質(zhì)量、摩擦力、碰撞參數(shù)等等。透過(guò)這些屬性,我們可以模擬該物體在3D世界內(nèi)的一切虛擬行為。所以,當(dāng)物體添加了剛體組件后,它將感應(yīng)物理引擎中的一切物

3、理效果。Unity3D中的Rigidbody(剛體)可以為對(duì)象賦予物理屬性,使對(duì)象在物理系統(tǒng)的控制下接受推力與扭力,從而達(dá)到現(xiàn)實(shí)世界中的運(yùn)動(dòng)效果。在項(xiàng)目制作過(guò)程中,只有為對(duì)象添加了剛體組件,才能使其受到重力影響。通過(guò)剛體組件可以給物體添加一些常見(jiàn)的物理屬性,如質(zhì)量、摩擦力、碰撞參數(shù)等。剛體添加方法如圖1所示,在Unity3D中創(chuàng)建并選擇一個(gè)對(duì)象,執(zhí)行菜單欄中的ComponentfPhysicsfRigidbody命令為對(duì)象添加剛體組件。圖2*山|*卩1r!i-,ErtM!._NvWkrfhinrlv圖1EHvni-aSi-剛體選項(xiàng)設(shè)置如圖2所示,對(duì)象一旦被賦予剛體屬性后,其Inspector屬

4、性面板會(huì)顯示相應(yīng)的屬性參數(shù)與功能選項(xiàng),具體內(nèi)容如下圖所示。二、實(shí)踐任務(wù):剛體測(cè)試任務(wù)構(gòu)思剛體使物體像現(xiàn)實(shí)方式一樣運(yùn)動(dòng),任何物體想要受重力影響,都必須包含一個(gè)剛體組件。利用剛體類游戲組件,遵循萬(wàn)有定律,在重力作用下,物體會(huì)自由落下。剛體組件還會(huì)影響到物體發(fā)生碰撞時(shí)產(chǎn)生的效果,使物體的運(yùn)動(dòng)遵循慣性定律,使其發(fā)生碰撞時(shí)在運(yùn)動(dòng)沖量作用下產(chǎn)生速度。本任務(wù)利用剛體測(cè)試重力效果以及碰撞后的交互效果。2任務(wù)設(shè)計(jì)本任務(wù)在Unity3D內(nèi)創(chuàng)建一個(gè)簡(jiǎn)單的三維場(chǎng)景,場(chǎng)景內(nèi)放有Cube和Plane,Plane用于充當(dāng)?shù)孛?Cube用于剛體重力測(cè)試,然后通過(guò)Ctrl+D鍵再?gòu)?fù)制出兩個(gè)Cube以測(cè)試剛體間相互碰撞的效果,效

5、果如圖3所示。圖3實(shí)施過(guò)程步驟1:新建項(xiàng)目,將場(chǎng)景命名為Rigidbody。步驟2:創(chuàng)建游戲?qū)ο蟆?zhí)行GameObject3DObjectPlane命令,此時(shí)在Scene視圖中出現(xiàn)了一個(gè)平面,調(diào)整坐標(biāo)位置(調(diào)整方法遵循左手定律)。在右側(cè)的Inspector面板Position中設(shè)置平面位置(0,0,-5),如下圖4所示。圖4步驟3:創(chuàng)建對(duì)象。在菜單欄中執(zhí)行GameObject3DObjectCube命令,在右側(cè)的Inspector面板Position中設(shè)置立方體的位置(0,5,0),按F2鍵可將其重新命名,如下圖5所示。圖5步驟4:美化場(chǎng)景。采用紋理貼圖的方法將地面和立方體都貼上紋理。首先,將

6、資源圖片拖放在項(xiàng)目的根目錄Assets下,然后分別選中立方體和平面,將對(duì)應(yīng)的資源圖片分別拖到立方體和平面上即可,效果如下圖6所示。圖6步驟5:為立方體添加剛體屬性。選中立方體,然后執(zhí)行菜單欄中的ComponentfPhysicsfRigidbody命令,當(dāng)右側(cè)的Inspector面板中出現(xiàn)了Rigidbody屬性面板時(shí),即為立方體添加了剛體屬性,如下圖7所示。iMd-E-E1OrAgQArgul-diDidgUseGfavKyEsKinemiatieL1jl1CdlliEioniDefectiatfi:GnstrMrrfcs圖7步驟6:?jiǎn)螕鬚lay按鈕進(jìn)行測(cè)試,發(fā)現(xiàn)置于半空中的立方體由于受到重

7、力作用做自由落體運(yùn)動(dòng),掉落到平面上。步驟7:復(fù)制游戲?qū)ο?。在Hierarchy視圖中,選中Cubel后按Ctrl+D鍵復(fù)制立方體Cube2并將其擺放于場(chǎng)景中,在Inspector面板中設(shè)置新復(fù)制的立方體的位置屬性(0.4,0.5,0),按此方法再?gòu)?fù)制一個(gè)立方體Cube3斜放于Cube2上,設(shè)置Cube3的位置為(0,1.5,0),如下圖8所示。圖8步驟8:執(zhí)行菜單欄的ComponentPhysicsRigidbody命令為每一個(gè)立方體添加剛體屬性(一般情況下,復(fù)制立方體時(shí)剛體屬性也復(fù)制過(guò)來(lái))。步驟9:?jiǎn)螕鬚lay按鈕測(cè)試一下,發(fā)現(xiàn)最上方立方體進(jìn)行自由落體運(yùn)動(dòng),撞擊到地面,盒子發(fā)生倒塌,效果如下

8、面圖9所示。圖9步驟10:實(shí)現(xiàn)鼠標(biāo)拖拽立方體的效果。創(chuàng)建C#腳本文件,命名為rigidbody,輸入下列代碼:publicfloatspeed=10.0f;/鼠標(biāo)的拖拽,使得立方體沿著水平、垂直方向勻速移動(dòng)。voidOnMouseDrag()/當(dāng)前位置中變換是二三維坐標(biāo)往右側(cè)*鼠標(biāo)x軸的勻速拖拽速度transform.position+=Vector3.right*Input.GetAxis(MouseX)*Time.deltaTime*speed;transform.position+=Vector3.up*InputGetAxis(Mouse(中間一定要有空格)Y)*Time.deltaT

9、ime*speed;步驟11:將腳本分別連接到3個(gè)立方體上。步驟12:?jiǎn)螕鬚lay按鈕測(cè)試,效果如下面圖10所示。圖10三、碰撞器在游戲制作過(guò)程中,游戲?qū)ο笠鶕?jù)游戲需要進(jìn)行物理屬性的交互。因此,Unity的物理組件為游戲開發(fā)者提供了碰撞體組件。碰撞體是物理組件的一類,它與剛體一起,促使碰撞的發(fā)生。他們是簡(jiǎn)單形狀,像方塊、球形或者膠囊形,在Unity中每當(dāng)一個(gè)GameObjects被創(chuàng)建,它會(huì)自動(dòng)分配一個(gè)合適的碰撞器。一個(gè)立方體會(huì)得到一個(gè)BoxCollider(立方體碰撞器),一個(gè)球體會(huì)得到一個(gè)SphereCollider(球體碰撞器),一個(gè)圓筒會(huì)得到一個(gè)CapsuleCollider(柱體碰

10、撞器)等。1.添加碰撞體在Unity3D的物理組件使用過(guò)程中,碰撞體需要與剛體一起添加到對(duì)象上才能觸發(fā)碰撞。值得注意的是,剛體一定要綁定在被碰撞的對(duì)象上才能產(chǎn)生碰撞效果,而碰撞體則不一定要綁定剛體。碰撞體的添加方法是:首先選中游戲?qū)ο?,?zhí)行菜單欄中的Component-Physics命令,此時(shí)可以為游戲?qū)ο筇砑硬煌愋偷呐鲎搀w,如下圖11所示。I3mperEWrrdowHfiipAddE7卜fur*b-卜RtfidbodfIDh-Oifirjctef匚ontjcllfr狗日品Mip曲.31過(guò)航AtdiokSpharie2詔鼾CapmieColtdef則卻hWHeHCrfdef卜TisnainC

11、.cdEder卜Ul卜OcAFiaedJoirispringksincJninlHirMJarrtClWjbEUftriplemiredCa-rtfiguriijle_fciEdjrdAnehW-iter(frpOnlyi-W-rtcri圖11BowColfiidfSphereCQlIrder匚aptule匚ollidei*MeshColliderWhulCelli-derterrainCollider圖12碰撞體選項(xiàng)設(shè)置Unity3D為開發(fā)者提供了多種類型的碰撞體資源,如下圖所示。當(dāng)游戲?qū)ο笾械腞igidbody碰撞體組件被添加后,其屬性面板中會(huì)顯示相應(yīng)的屬性設(shè)置選項(xiàng),每種碰撞體的資源類型稍

12、有不同,具體如上圖12所示。BoxColliderBoxCollider是最基本的碰撞體,BoxCollider是一個(gè)立方體外形的基本碰撞體。下圖所示是BoxCollider,游戲?qū)ο笠坏┨砑恿薆oxCollider屬性,則在Inspector面板中就會(huì)出現(xiàn)對(duì)應(yīng)的BoxCollider屬性參數(shù)設(shè)置,具體參數(shù)如下圖13所示。TiljjlWBomCiollidcr季r|EditCollderTriggerMaterialNone(PhysicMaterial)0CentmXliY02HSizeX1YL21圖13如果IsTrigger選項(xiàng)被勾選,該對(duì)象一旦發(fā)生碰撞動(dòng)作,則會(huì)產(chǎn)生3個(gè)碰撞信息并發(fā)送給腳

13、本參數(shù),分別是OnTriggerEnter、OnTriggerExit、OnTriggerStay。PhysicsMaterial定義了物理材質(zhì),包括冰、金屬、塑料、木頭等。SphereColliderSphereCollider是球體形狀的碰撞體,如下圖14所示。YSphereCollider阿養(yǎng)、|ft|EditColliderIsTriggerMaterialNonePhysicMaterial)oterY02-jR.fldius0.5圖14SphereCollider是一個(gè)基于球體的基本碰撞體,當(dāng)對(duì)象的物理形狀是球體時(shí),則使用球體碰撞體,如落石、乒乓球等游戲?qū)ο?。CapsuleColl

14、iderCapsuleCollider由一個(gè)圓柱體盒兩個(gè)半球組合而成,CapsuleCollider的半徑和高度都可以單獨(dú)調(diào)節(jié),可用在角色控制器或與其他不規(guī)則形狀的碰撞結(jié)合來(lái)使用。通常添加至Character或NPC等對(duì)象的碰撞屬性,如下圖15所示。THCapsLillcCollider呵4囚EditCallidar圖15MeshColliderMeshCollider(網(wǎng)格碰撞體)根據(jù)Mesh形狀產(chǎn)生碰撞體,比起B(yǎng)oxCollider、SphereCollider和CapsuleCollider,MeshCollider更加精確,但會(huì)占用更多的系統(tǒng)資源。專門用于復(fù)雜網(wǎng)格所生成的模型,如下圖1

15、6所示。r|ilfMeshCollider阿|橋ConvexIsTriggerMaterialNone(PhysicMaterial)0MeshCube0圖165)WheelColliderWheelCollider(車輪碰撞體)是一種針對(duì)地面車輛的特殊碰撞體,自帶碰撞偵測(cè)、輪胎物理現(xiàn)象和輪胎模型,專門用于處理輪胎,如下圖17所示,具體參數(shù)如下表所示。Tyr7wheielColhider回條MassZDRadiu-s0.5WhaelDampingSus-pen-si口門DisLance-D.3FofceAppPointDistDCenttrX口口ZDSuspen-sianSpringpiing

16、35Q口3Dampr4500TargetFasrtianD.5ForwardFiietionExtremumSlipD.4-ExtremumVai1Asymptote-SlipD.8AsymptoteV*lue0-55tiffne5-51Sideway-sFrictionExtremumSlipD.ZExtremumValue1AsymptoteSlip0-5ftBymptcteValueQJ55trffri*&G-g1圖17四、觸發(fā)器在Unity3D中,檢測(cè)碰撞發(fā)生的方式有兩種,一種是利用碰撞體,另一種則是利用觸發(fā)器(Trigger)。觸發(fā)器用來(lái)觸發(fā)事件。在很多游戲引擎或工具中都有觸發(fā)器。例

17、如在角色扮演游戲里,玩家走到一個(gè)地方會(huì)發(fā)生出現(xiàn)Boss的事件,這個(gè)就可以用觸發(fā)器來(lái)實(shí)現(xiàn)。當(dāng)綁定了碰撞體的對(duì)象進(jìn)入觸發(fā)器區(qū)域時(shí),會(huì)運(yùn)行觸發(fā)器對(duì)象上的OnTriggerEnter函數(shù),同時(shí)需要在檢視面板中的碰撞體組件中勾選IsTrigger復(fù)選框,如下圖18所示。IBdhCollider呵鶴樸|EditCollderisTrigger-回MaterialNone(PhysicMaterial)OCenterX0Y0Z0SizeX1丫1z1圖18Unity3D中的碰撞體和觸發(fā)器的區(qū)別在于:碰撞體是觸發(fā)器的載體,而觸發(fā)器只是碰撞體的一個(gè)屬性。五、實(shí)踐任務(wù):碰撞消失的立方體1.任務(wù)構(gòu)思碰撞體需要和剛體一

18、起來(lái)使碰撞發(fā)生,如果兩個(gè)剛體撞在一起,物理引擎不會(huì)計(jì)算碰撞,除非他們包含一個(gè)碰撞體組件。沒(méi)有碰撞體的剛體會(huì)在物理模擬中相互穿透。本任務(wù)通過(guò)立方體碰撞后產(chǎn)生消失的動(dòng)作確認(rèn)碰撞的發(fā)生。2任務(wù)設(shè)計(jì)本任務(wù)在Unity3D內(nèi)創(chuàng)建一個(gè)簡(jiǎn)單的三維場(chǎng)景,場(chǎng)景內(nèi)放有Cube和Plane,Plane用于充當(dāng)?shù)孛?,Cube用于做碰撞測(cè)試,以第一人稱進(jìn)入場(chǎng)景,與Cube距離足夠近時(shí)發(fā)生碰撞,Cube消失。實(shí)施過(guò)程步驟1:在場(chǎng)景中創(chuàng)建一個(gè)平面(0,0,0)和一個(gè)立方體(0,1,0),使立方體置于平面上方,如下圖19所示。步驟2:執(zhí)行AssetsImportPackageCustomerPackage命令添加第一人稱資源,如下圖20所示。圖19jrtTirJ-口PMjiKt圖20EmAHLpadtrr步驟3:選中第一人稱資源后單擊Import

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論