Unity3d 3d角色換裝實現原理及步驟

2021-07-05 05:07:17 字數 1770 閱讀 4207

1、角色模型製作

unity3d支援skin動畫  但是不支援physique動畫  會發現physique動畫在unity裡嚴重變形  

因此在模型的骨骼動畫的製作上面  要用skin  

當然也可以做成physique  然後用外掛程式轉換一下  3dsmax的外掛程式phytoskin

3dsmax中轉換之前  為了避免出錯  先隱藏骨骼   然後對繫結了骨骼的模型進行單獨轉換  因為批量也會出錯

轉換以後在修改面板中加入可編輯網格  同時為了避免出錯  檢查一下uv是否貼反了

2、角色模型匯出

確保匯出的模型是已經繫結了骨骼的  在匯出設定中根據需要選擇是否匯出animation  

以及3dsmax和unity3d中的單位關係

3、官方charactercustomization中的模型

從官方換裝demo中會發現他的乙個角色模型裡包含了要換裝的多個模型  比如有兩個衣服模型、三個頭髮模型等

那我們在美術製作的過程中是不是也要這樣進行「模型疊加」呢   其實沒必要

demo這樣的目的是為了使得模型公用一套骨骼  那麼我們在角色模型的製作過程中  就確保模型使用的是同一套骨骼

比如男性角色使用一套  女性角色使用另一套  當進入建立角色場景後  根據玩家選擇角色的性別  顯示不同的動畫即可

4、角色模型打包技巧

前面提到  官方demo裡換裝的實現  原因是因為公用了一套骨骼  

那麼我們在打包的時候  就將骨骼和模型分離  將模型各個部件(比如頭髮、手臂等)分開打包  

比如乙個男性的角色  將他的基礎骨骼打進乙個包   再將身體各個部分的模型分別打包  

如果乙個模型由頭、臉、身體、手臂、腳五個部分組成  那麼打包後將會有六個資源包  分別是基礎骨骼、頭、臉、身體、手臂、腳

這樣遊戲的建立角色過程中  就可以單獨地對模型的身體部位進行切換

打包的過程和官方demo的打包大同小異  只不過這裡作者在打包時捎帶生成了換裝的配置表

6、角色模型的載入

unity3d中使用www進行資源的載入  如果將資源放在了http伺服器上的話(包括本機的iis)  則需要乙個crossdomain的xml配置  本地則不需要

載入時應該首先去載入基礎骨骼  載入完以後再去載入要顯示的預設角色模型  比如新手模型

在載入完以後  則要提取各個模型中所記錄的骨骼資訊  根據這些資訊將模型掛到對應的骨骼上

為了避免模型之間出現縫隙  應當進行模型網格的合併  

完成以上工作以後模型的載入就已經實現了

7、角色模型的換裝

回到角色模型打包的話題  

設想乙個男性角色有10套服裝用來更換  而公用的骨骼是一套  

因此在打包時仍然將這一套骨骼單獨打包  然後再將其他所有的模型打包  

一句話總結就是   一套骨骼對應n個模型  這n個模型都公用這一套骨骼

換裝的實現實際上就是將相應的身體部分進行更換  

比如要換乙個手臂  則將新的手臂與身體上除了手臂以外的模型再進行一次網格合併

換句話說  要更換身體某乙個部位  實際上就是更新了整個角色模型

這裡需要注意的一點是  基礎的骨骼不用再去更新  

測試截圖如下:(注:作者這裡用的兩套模型只有頭盔、手臂和腳不一樣)

第一套:

另一套:

Unity3D 3D角色換裝 Advance

1 如果角色只是單純的更換裝備 也就是說 角色的整個身體是乙個完整的網格 而所需要更換的各個部件只是裝備 而不是身體的某一部分 比如ngui中character的例子 穿裝備之前 角色只有預設的身體 穿了裝備以後 身體不變 只是在特 定的位置顯示裝備 如下圖 穿裝備以前穿裝備以後 這樣做的好處是實現...

Unity3d 3d角色換裝實現原理及步驟

1 角色模型製作 unity3d支援skin動畫 但是不支援physique動畫 會發現physique動畫在unity裡嚴重變形 因此在模型的骨骼動畫的製作上面 要用skin 當然也可以做成physique 然後用外掛程式轉換一下 3dsmax的外掛程式phytoskin 3dsmax中轉換之前 ...

Ogre3D 實現角色換裝

乙個角色由多個模型組成,這些模型掛在同乙個主節點上,由同乙個骨骼動畫控制著。換裝就是剔除或新增一些模型,如果只是刪增模型,那樣只可以實現一起平移和旋轉。因為裝備,如衣服都是要和身體一起發生形變的。所以,模型之間要統一這些發生形變的方式,那就是骨骼。分類 1.屬於掛接物體,不屬於換裝範疇,建立乙個節點...