redhat9i 发表于 2022-11-30 10:10

Unity 穿模问题

Blender-角色与皮肤                       

权重指骨骼运动的时候会如何移动它附近的顶点,如果权重为1说明该骨头控制力度最大,如果权重为0说明被控制的力度最小。(自动权重并不总是好用,很多时候细节跑不了要自己涂权重)       
常见问题-衣服没有盖在皮肤上               
权重问题               

选中骨骼,物体数据属性-视图显示-名称               
选中衣服,权重模式               
将鼠标移动到需要操作的区域,shift+右键采样骨骼               
分别将权重改成1和0涂一下看效果,看哪个更接近               
左上角选择点,选择-全部               
如果涂完后,某些部分还有穿模问题               
切换骨骼继续涂,如果不管怎么涂抹都没用,就是网格太少                                网格/面数太少               

新建立方体               
左上角切换到缩放模式出现球体,对xy平面进行缩放出手臂               
选中物体,编辑模式-右键-细分4次               
shirt+a新建骨骼               
选中骨骼,物体数据属性-视图显示-在前面               
正视图,gz移动到最下面               
编辑模式,ez挤出一段               
骨骼绑定:物体模式,多选物体以及骨骼,左上方物体-父级-附带自动权重               
选中骨骼-姿态模式,旋转骨骼,物体可动       
       
新建衣服               
新建立方体,同上缩放至比人体大一圈,再延Z轴缩放               
编辑模式,选中上下两面x删除面               
骨骼绑定:物体模式,多选物体衣服以及骨骼,左上方物体-父级-附带空顶点组               
权重绘制:物体模式,多选物体手臂以及衣服,左上选中权重绘制               
左上权重-传递权重               
左下传递网格数据-选择来源层-按名称               

选中骨骼-姿态模式,旋转骨骼,手臂以及衣服可动,但是会穿模               
选中衣服,编辑模式-细分几次,再看就不会穿模了               
Unity-角色与披风

DynamicBone插件
将DynamicBone脚本挂到有动作的骨骼上,将骨骼拖到脚本的Root属性上

Damping阻尼
Bone慢下来的速度
值越小越跳脱,值越大,越快平静

Elasticity弹性
弹性约束
值越小、越没有弹性、像跟绳子。(衣服之类的物体应该保持较小值)
值在中间(0.5),弹性刚刚好,像根弹簧。
值过大,弹性太大变僵硬,很难被甩动的。

Stiffness刚性
朝向约束
值越小,朝向就没有约束,各方向乱甩。
换句话说:值越小越放荡(飘柔),值越大越拘谨(硬)。

Inert惰性、迟滞
值越小,位移产生的惯性反应就越大。(注意旋转不受影响)
值越大,位移产生的惯性被忽视。
也就是说值越大,狂甩都不会有惯性物理效果。

Friction摩檫力
bone碰到碰撞体慢下来的速度,值越大,碰到碰撞体即停。


穿模的解决方案,碰撞体
物体A,3-7-8这3个骨骼都加
Add Component-Dynamic Bone Collider
两个球体,调整Direction=z,Height,Radius,Center调整位置

物体B,CP_XXX
DynamicBone-Colliders-Size=3,Element选择A的3个碰撞体,设置Friction

Distance To Object相机距离物体达到该值后取消效果


乳摇-胸部两个骨骼
给骨骼挂Dynamic Bone,设置Root
设置位置以及方向,设置End Length以及End Offset
页: [1]
查看完整版本: Unity 穿模问题