Unity模型笔记

MeshFilter+MeshRenderer和Skinned Mesh Renderer

Skinned Mesh Renderer常用于渲染骨架控制的人物,MeshFilter+MeshRenderer用于渲染没有骨架的东西。

Skinned Mesh Renderer比MeshFilter+MeshRenderer多了一些功能,比如BlendShapes(Blender里叫形态键)。同一个模型,在Blender里加形态键后,在Unity的渲染组件就从MeshFilter+MeshRenderer变成了Skinned Mesh Renderer。

模型和骨骼节点是怎么建立对应关系的?

把人物Unpack Completely,不影响骨骼控制模型;

把骨骼节点改名,不影响控制;

改变骨骼节点的父子关系,各骨骼节点变成只控制它影响的顶点,但还是能控制;

把Skinned Mesh Renderer的Root Bone改成其他物体,也不影响控制,但是Root Bone离开Scene相机的视野太远会使模型不显示。

删除一个骨骼节点,它和它子级控制的顶点被拉到世界原点;

综上,模型里记录着每个顶点和控制它的骨骼节点,且不是按名字或和Root Bone的父子关系记录,可能记录的是另外的某种节点ID,Unity里看不到,且删除骨骼节点后除非撤销,否则没有办法手动建骨骼节点。

遇到的问题合集

运行后导入的人物模型变形,贴图错位

没有运行时模型正常,Scale Factor=1,此时人物比其他人矮一截。

运行后模型被纵向拉长,贴图错位。

调整Scale Factor到一个比较大的值(这里是2):

运行后模型被压扁,高度还是和其他人差不多:

此时我发现人物的头其实一直没有变形,只有身体会变形。

原因:人物带了Animator组件,但是Avatar用的是别人的:

解决方法:用基于此人创建的Avatar。

运行时人物的根节点在世界原点

原因:不小心删除了裙子上的一个节点

 第一人称看不见手里的手枪

看不见枪身,能看见弹匣。上一个做的手枪没这个问题。

把枪往前移或把相机往后移都能看见,我以为是Near Clip Plane的问题。

把Near Clip Plane设到最小,都能看见自己的头发了,还是看不见枪。

原因:模型的Skinned Mesh Renderer的Bounds被设置得特别小,0.0001那种。Bounds应该设置得使白框和模型一致。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值