Mesh 角色換裝與表情動畫

2021-07-26 17:08:00 字數 1236 閱讀 5651

對mesh網格進行非剛體變化,即頂點變化,unity為我們封裝成了skinnedmesh。

這裡是skinnedmeshrenderer類的內容。

我們依次來理解下關鍵的幾個的功能。

bones屬性是最重要的,美工出身的都對角色蒙皮了解,我們需要對角色進行骨骼蒙皮,調節權重,才能讓角色流暢的動起來。bones屬性相關骨骼的資訊,他是以陣列的形式儲存的,所以如果bones的順序不同,可能蒙皮動畫的結果也千差萬別。有些程式設計師在更換模型時後動畫出錯就是這裡出了問題。

btw: bone對頂點的作用資訊,在mesh類中的boneweights中設定。

localbounds是蒙皮網格的邊界框,有些美工或程式在開發過程中,會發現模型莫名其妙在camera裡消失了。通常是這裡出了問題,在camera屬性中有個occlusionculling功能,是對camera內的網格根據邊界框進行裁切,在視錐外的meshrender是不渲染的。判斷條件就是模型的bounds,有些蒙皮動畫對模型拉伸,但bounds還是很小,造成camera不對mesh進行渲染。updatewhenoffscreen設定成ture是個比較好的解決辦法,會實時更新localbounds,但同樣會造成效能問題。當然也可以關閉camera的occlusionculling,但我不推薦這樣做。

bakemesh如名,烘焙mesh,當我們的mesh根據變形達到我們的想要的形狀,之後又不需要繼續變形時,可以用這個函式將當前姿態的mesh網格bake出來,進行meshrenderer或者其他處理。

setblendshapeweight是頂點融合的函式,美工在製作表情動畫時通常用的是頂點變形,比如max中的變形器,比如maya中的blendshape等,這些資料以什麼形式讀取出來呢,就是用這個函式根據index讀取的。

public dictionarybones

return bones;}}

private dictionarybones;

public void loadskinnedmesh(skinnedmeshrenderer origin, skinnedmeshrenderer target)

}

Ogre3D 實現角色換裝

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

藍芽mesh 藍芽mesh中的兩種裝置角色

1 藍芽mesh網路角色 mesh網路中的裝置被稱為節點 node 而非mesh網路中的裝置稱為未經啟動配置的裝置。將未經啟動配置的裝置轉換為節點的過程稱為啟動配置。啟動配置是乙個安全的過程,原本未經啟動配置的裝置經過啟動配置後會擁有一系列加密金鑰,並被啟動配置的裝置識別。啟動的裝置可以是provi...

Unity3D 3D角色換裝 Advance

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