常平網(wǎng)站仿做網(wǎng)址大全瀏覽器下載
前言:最近重拾Unity,準(zhǔn)備做個3D的FPS小游戲,這里以官方FPS案例素材作為切入。
導(dǎo)入素材和素材理解
- 安裝Unity
- 新建項目
- 新建文件夾和Scene
- 如何去理解三維模型素材
- 找到模型素材
- 素材預(yù)制體結(jié)構(gòu)
- 骨骼和網(wǎng)格
- 材質(zhì)(Material)、紋理貼圖(Texture)
- Animator
- Avatar替身系統(tǒng)
- 總結(jié)
安裝Unity
這個想必不用多說網(wǎng)上的教程很多。
最新版的話,官網(wǎng)下一個Unity Hub,然后在Hub里面下載個Unity(感覺新版Unity比以前高級多了)。
Unity Hub中設(shè)置-外觀(Appearance)-設(shè)置語言(Language),簡體中文會方便很多。
會有需要“管理許可證(Licenses)”,這個的話下載一個Unity Connect的app,然后微信注冊個賬號。app掃碼登入到Unity Hub選擇個人許可證就好了,學(xué)生的話可以申請學(xué)生版,都是免費的。
新建項目
Unity Hub-新項目-選擇FPS Microgame模板。
這是Unity官方提供一個FPS學(xué)習(xí)模板,里面有個可以直接運行的demo,我們可以運行一下看看官方的FPS游戲Demo效果,算是對我們未來目標(biāo)有個大概的想象。
選擇這個的原因是因為里面包含了素材以及可以參考的思路代碼。
新建文件夾和Scene
剛打開肯定是官方寫好的文件夾,我們需要新建一個文件夾來存放我們后面自己寫的內(nèi)容。在文件夾部分右鍵Create-Floder,新建一個MyGame文件夾。
然后在MyGame文件夾下面新建一個我們自己Scene,命名為MainGame,拖拽到界面中。
把官方的Scene(MainScene)Removal掉。
如何去理解三維模型素材
很多新手剛看到這種三維模型素材肯定都是比較懵逼的,不知道如何去理解,尤其是角色的預(yù)制體里面有大量的層級,容易讓人望而卻步。
這里以敵人模型結(jié)構(gòu)為例子,帶大家理解一下。
找到模型素材
敵人模型的路徑如下圖所示,有兩種HoverBot(懸浮機器人)和Turret(炮臺)。
素材預(yù)制體結(jié)構(gòu)
可以把HoverBot拖出來看看,可以發(fā)現(xiàn)預(yù)制體HoverBot組成非常復(fù)雜,沒有接觸的可能不太懂,但是其實組成部分主要分為兩個,分別是模型和骨骼。“Bottom”、“EyeBall”和“Top”對應(yīng)了機器人的三個組成的模型,里面包含了模型網(wǎng)格結(jié)構(gòu)相關(guān)的渲染工作;“Robot_Root_C_Jnt”部分有很多內(nèi)容,其實都是模型的骨骼關(guān)節(jié)名稱。關(guān)于骨骼后面會介紹。
仔細(xì)點開“Bottom”,會發(fā)現(xiàn)模型包含了兩個個部分:Skinned Mesh Renderer蒙皮網(wǎng)格渲染器以及Material材質(zhì)球。蒙皮(Skin)是會把Mesh網(wǎng)格的頂點綁定在骨骼上,每個頂點可以被骨骼所控制,使得動畫播放的時候頂點會隨著骨骼而移動,從而Mesh會跟隨骨骼的移動。而Material材質(zhì)會附著在Mesh身上,也會跟著移動。Skinned Mesh Renderer把Mesh、Root Bone(骨骼根節(jié)點)以及Materials聯(lián)合起來了。
骨骼和網(wǎng)格
上面介紹“素材預(yù)制體結(jié)構(gòu)”涉及到了骨骼和網(wǎng)格(Mesh)的概念,為了更好理解它作用,我們先來了解一下骨骼動畫。
游戲中的三維模型經(jīng)常會設(shè)計到骨骼,這是為了骨骼動畫做準(zhǔn)備。
三維模型通常是由三角面網(wǎng)格組成,也就是Mesh。想要讓Mesh動起來最簡單的方法就是修改Mesh各個頂點。但是這個方案并不現(xiàn)實,復(fù)雜的模型往往伴隨著大量的頂點,操作非常復(fù)雜,而且動畫也不自然。
于是邊誕生了骨骼(Spine),在Mesh中放置骨骼,骼的運動帶動 Mesh 的運動。這樣動畫的時候只需要修改骨骼即可,如下圖所示修改骨骼的時候Mesh網(wǎng)格頂點也跟著改變了。
該動圖來自文章Mesh | 動態(tài)合批 | 骨骼動畫 | 蒙皮,這篇講網(wǎng)格講的非常全面。
打開HoverRobot的一個Animation動畫,可以看到骨骼動畫中記錄了每個時間點骨骼的變化,和素材預(yù)制體結(jié)構(gòu)中骨骼關(guān)節(jié)的名字一一對應(yīng)。
Unity中的骨骼模型通常包括三個步驟:
- 建模(Modeling):創(chuàng)建模型,包含網(wǎng)格和紋理等。
- 骨骼綁定(Rigging):創(chuàng)建骨架,骨骼和關(guān)節(jié)之間的層級結(jié)構(gòu)。
- 蒙皮(Skinning):負(fù)責(zé)把骨骼和Mesh關(guān)聯(lián)起來。
當(dāng)然除了三維模型中會用到骨骼,其實二維也用的,素材預(yù)制體結(jié)構(gòu)和方法都差不多,只不過二維的Mesh是平面的。
材質(zhì)(Material)、紋理貼圖(Texture)
材質(zhì)(Material):是描述物體外觀和光學(xué)特性的屬性集合。
- 外觀包:物體的顏色、反射屬性(如漫反射、高光反射)、透明度、折射率等。
- 材質(zhì):定義了物體如何與光線進行交互,決定了物體在渲染時的外觀效果。
紋理和貼圖(Texture):決定模型表面的顏色、紋理和細(xì)節(jié)效果。
- 顏色貼圖:就是給模型上一個顏色皮膚,例如木頭紋理。
- 凹凸貼圖:模型表面的凹凸情況,通常顏色越淺表明該位置的表面越像外凸起。
- 光照貼圖:用來存儲預(yù)渲染的光照信息,解決實時動態(tài)光源效果不好且消耗性能的問題。
除了上面三種常用貼圖還有別的。
Animator
點擊HoverRobot的屬性,可以看見上面掛在了一個Animator組件。
Animator上面屬性有五個屬性如下。
Animator controller:用來控制動畫切換,具體可以看我以前寫的一篇unity學(xué)習(xí)(7)動畫狀態(tài)切換。雖然那篇講的2D的,但是3D的邏輯也差不多。
Avatar:Unity的替身系統(tǒng),后面部分詳細(xì)介紹。
Apply Root Motion:有些動畫會帶有位移,勾選了帶動畫位移。
Update Mode:動畫更新模式,Normal表示使用Update進行更新也就是fps同步、Animate Physics表示和fixed unpdate同步(物理檢測)、Unscaled Time和Normal一樣但是不考慮Time scale(游戲運行速度比例)。
Culling Mode:Cull剔除,也就是在攝像機視野外面的時候會做什么操作,Always Animate進行動畫播放的更新、Cull Update Transform停止動畫播放但是位置會繼續(xù)更新、Cull Completely停止動畫的所有更新。
Avatar替身系統(tǒng)
很多時候,我們會想要復(fù)用別人的動畫,通常來說人形模型是復(fù)用最多的。但是不同的設(shè)計師,可能骨骼節(jié)點的名字命名不同,Animation沒法識別復(fù)用。但是我們又不可能去一一修改每個骨骼節(jié)點名字來適配,這非常容易出錯。
Unity提出了一個動畫復(fù)用的解決方案,替身系統(tǒng)Avatar。兩個模型A和B,B想用A的動畫。可以讓A和B模型的骨骼和Unity的標(biāo)準(zhǔn)肌肉對應(yīng),這樣就可以把轉(zhuǎn)為了Unity標(biāo)準(zhǔn)肌肉的A動畫,復(fù)用到B了。
Unity中的骨架有兩種:
- 人形 (Humanoid) :Unity提出一個通用的人形Avatar,最少 15 塊骨骼,骨架需至少具備所需的骨骼。
- 通用(Generic):任何東西,不具備Humanoid的動畫重定向功能,這里的敵人HoverRobot使用的就是通過Avatar。
注意:通用 Avatar 與人形 Avatar 不同,但它會顯示在項目視圖中,也會保存根節(jié)點映射。但是單擊項目視圖中的 Avatar 圖標(biāo)在 Inspector 中顯示其屬性,則僅會顯示其名稱,不顯示 Configure Avatar 按鈕。
我原本想深究一下通用Aavatar的功能,但是通用Avator沒法在視圖中查看,搜了很多都沒有找到特別的說法,上面這個只是是官方手冊的解釋。問了做游戲的朋友在實際應(yīng)用常見中人形Avatar比較有用,通用Avatar基本沒用過,所以大家理解人形Avatar就可以了。
總結(jié)
通過本篇過后,想必已經(jīng)對三維模型素材有了初步的理解。
三維模型的預(yù)制體無非就兩部分模型+骨骼,不需要動畫的可能還沒有骨骼,只有模型。預(yù)制體的節(jié)點會掛載Animator做動畫控制;模型部分通常包括了網(wǎng)格(Mesh)、材質(zhì)和貼圖;骨骼部分就包括骨骼層級各個骨骼節(jié)點,骨骼節(jié)點的名字和Animation中的一一關(guān)聯(lián)。模型中Skinned Mesh Renderer組件可以把網(wǎng)格(Mesh)、材質(zhì)和貼圖和對應(yīng)的骨骼根節(jié)點關(guān)聯(lián)。
Avatar不一定是必須的,通常用在人形骨骼動畫的復(fù)用上。