Unity 带骨骼的人体模型换装
直入主題:
1、實(shí)驗(yàn)材料
兩個(gè)模型,雖然缺胳膊少腿的,但是能用!!!
?
2、條件 ?
? ?兩個(gè)模型在制作時(shí)是基于同一套骨骼,導(dǎo)出模型部位時(shí)連著該部位的骨骼一起導(dǎo)出,這樣導(dǎo)入到Unity的模型就帶有SkinnedMeshRenderer組件。
?
3、目標(biāo)及實(shí)現(xiàn)
? ?目標(biāo):將右側(cè)的衣服換給左側(cè)的模型
? ?代碼:??
public SkinnedMeshRenderer HeroSMR; ? ?//左側(cè)模型衣服部位的SkinnedMeshRenderer
public SkinnedMeshRenderer TargetSMR; ?//右側(cè)模型衣服部位的SkinnedMeshRenderer
void Start()
{
HeroSMR.sharedMesh = TargetSMR.sharedMesh;
HeroSMR.materials = TargetSMR.sharedMaterials;
}
? ?So Easy 是不是!!
?
4、效果
新Mesh也能很好的適應(yīng)原先骨骼的變形,反正就是皮換骨不換。
?
5、結(jié)論
? ?蒙過(guò)皮帶有骨骼的模型導(dǎo)入u3d后會(huì)自動(dòng)生成SkinnedMeshRenderer組件,存儲(chǔ)了骨骼和Mesh的信息,比如權(quán)重邊界什么的。
? ?但Mesh和骨骼對(duì)應(yīng)的信息,比如哪個(gè)點(diǎn)受哪根骨骼的影響,這個(gè)我覺(jué)得是導(dǎo)入骨骼模型后存在了Mesh里(猜測(cè))。
? ?因?yàn)楦鶕?jù)我做的實(shí)驗(yàn),同樣的衣服模型,分別導(dǎo)入帶骨骼的和不帶骨骼的,帶骨骼的如上所示,能正常更換上去,不帶骨骼的代碼如下:
public SkinnedMeshRenderer HeroSMR;
public MeshFilter TargetMF;
public MeshRenderer TargetMR;
void Start()
{
HeroSMR.sharedMesh = TargetMF.sharedMesh;
HeroSMR.materials = TargetMR.sharedMaterials;?
}
? ?這樣操作后雖然衣服是換成了,但是位置信息完全錯(cuò)誤,也就是Mesh沒(méi)和骨骼對(duì)應(yīng)上,所以我猜測(cè)Mesh和骨骼對(duì)應(yīng)的信息是存在Mesh里的,
僅僅是猜測(cè),不喜勿罵~~~
轉(zhuǎn)載于:https://www.cnblogs.com/ljx12138/p/6051558.html
總結(jié)
以上是生活随笔為你收集整理的Unity 带骨骼的人体模型换装的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 网站全站变灰代码
- 下一篇: webpack从零开始第1课:安装web