Unity作為游戲開發(fā)重要的開發(fā)語言,在游戲開發(fā)中起到了很重要的作用,在游戲中有非常多的畫面都是要用到unity來實現(xiàn)的。那么在游戲中我們經(jīng)常看到的角色換裝的場景畫面是怎么實現(xiàn)的呢?下面unity培訓機構達內(nèi)科技的小編就來和大家講解下unity角色換裝實現(xiàn)的原理。
1、角色模型制作
Unity3d支持Skin動畫,但是不支持Physique動畫,會發(fā)現(xiàn)Physique動畫在unity里嚴重變形,因此在模型的骨骼動畫的制作上面
要用Skin,當然也可以做成Physique,然后用插件轉換一下 3dsmax的插件PhyToSkin,3dsmax中轉換之前 為了避免出錯 先隱藏骨骼
然后對綁定了骨骼的模型進行單獨轉換,因為批量也會出錯,轉換以后在修改面板中加入可編輯網(wǎng)格 同時為了避免出錯 檢查一下uv是否貼反了。
2、角色模型導出
確保導出的模型是已經(jīng)綁定了骨骼的 在導出設置中根據(jù)需要選擇是否導出Animation,以及3dsmax和unity3d中的單位關系。
3、官方CharacterCustomization中的模型
從官方換裝demo中會發(fā)現(xiàn)他的一個角色模型里包含了要換裝的多個模型
比如有兩個衣服模型、三個頭發(fā)模型等,那我們在美術制作的過程中是不是也要這樣進行“模型疊加”呢,其實沒必要,demo這樣的目的是為了使得模型公用一套骨骼
那么我們在角色模型的制作過程中 就確保模型使用的是同一套骨骼,比如男性角色使用一套
女性角色使用另一套,當進入創(chuàng)建角色場景后,根據(jù)玩家選擇角色的性別,顯示不同的動畫即可。
4、角色模型打包技巧
前面提到 官方demo里換裝的實現(xiàn)
原因是因為公用了一套骨骼,那么我們在打包的時候,就將骨骼和模型分離,將模型各個部件(比如頭發(fā)、手臂等)分開打包,比如一個男性的角色,將他的基礎骨骼打進一個包,再將身體各個部分的模型分別打包,如果一個模型由頭、臉、身體、手臂、腳五個部分組成,那么打包后將會有六個資源包,分別是基礎骨骼、頭、臉、身體、手臂、腳這樣游戲的創(chuàng)建角色過程中
就可以單獨地對模型的身體部位進行切換,打包的過程和官方demo的打包大同小異,只不過這里作者在打包時捎帶生成了換裝的配置表。
5、角色模型的加載
Unity3d中使用www進行資源的加載,如果將資源放在了http服務器上的話(包括本機的IIS),則需要一個crossdomain的xml配置,本地則不需要,加載時應該首先去加載基礎骨骼,加載完以后再去加載要顯示的默認角色模型,比如新手模型,在加載完以后,則要提取各個模型中所記錄的骨骼信息,根據(jù)這些信息將模型掛到對應的骨骼上,為了避免模型之間出現(xiàn)縫隙,應當進行模型網(wǎng)格的合并完成以上工作以后模型的加載就已經(jīng)實現(xiàn)了。
6、角色模型的換裝
回到角色模型打包的話題,設想一個男性角色有10套服裝用來更換,而公用的骨骼是一套,因此在打包時仍然將這一套骨骼單獨打包,然后再將其他所有的模型打包,一句話總結就是,一套骨骼對應N個模型,這N個模型都公用這一套骨骼,換裝的實現(xiàn)實際上就是將相應的身體部分進行更換,比如要換一個手臂
則將新的手臂與身體上除了手臂以外的模型再進行一次網(wǎng)格合并,換句話說
要更換身體某一個部位,實際上就是更新了整個角色模型,這里需要注意的一點是,基礎的骨骼不用再去更新,設想一下 換裝時候
一般角色都會有個“站立”或者“呼吸”的動作在播放
那么如果同時去更新了一遍基礎骨骼,那么結果勢必會讓本來連貫的動作有“一閃”的現(xiàn)象,這是因為之前的動畫還沒播放完,然后就更新了骨骼,那么動畫又重頭開始播,這之間沒有過渡,肯定會有點問題。
以上就是unity培訓機構給大家講解的關于unity角色換裝實現(xiàn)的原理的內(nèi)容了。如何說你也想要學習unity技術的話,那么達內(nèi)科技歡迎你來我們公司的unity培訓班進行學習,也可以先點擊我們文章下面的獲取試聽資格按鈕來獲取我們的unity課程免費試聽資格,在試聽中可以更加深入的了解我們達內(nèi)科技。