- Unity5.x 布料系统
Unity5.x 布料系统
Unity4中,需要对SkinnedMeshRenderer使用SkinnedCloth,或者对Cloth Renderer使用Interactive Cloth,很麻烦,在Unity5中,Cloth合二为一了。
Cloth只能必须和Skinned Mesh Renderer搭配使用,但是这不代表使用简单的物体时还必须在Max中导出一个带有蒙皮信息的FBX,其实可以新建一个GameObject然后赋予Cloth组件,这会自动添加Skinned Mesh Renderer组件,然后在Skinned Mesh Renderer组件中赋予基本体的Mesh上去并且设置正确的材质也完全可以。
布料可以接受外部影响,但完全不会将影响赋予外部刚体,换句话说, 布料系统的物理模拟是单向的。
出于性能的考虑,可以对Cloth产生影响的Collider只有两种,SphereCollider以及CapsuleCollider,但是SphereCollider可以赋予两个为一组(当然了还可以只赋予一个,第二个保持null),那么通过组合这两个SphereCollider可以出现第三种,Unity会将这组的两个SphereCollider进行相连,那么就可以有圆锥形的Collider
打开编辑Constraint模式
Max Distance可以设置每个顶点最大可移动距离。最常用的用法是将不能动的顶点的Max Distance设置为0。Surface Penetration控制的是顶点最大可以嵌入到Mesh里面的程度。在布料网格顶点比较稀疏的情况下可以明显对比出差别。将顶点的Surface Penetration设置得很低会看起来很不正常,默认,也就是Unconstrained应该是一个较高的值,没有任何问题。
Visualization这里能够选择当前在Scene视图中预览Max Distance还是Surface Penetration。(这两者二选一),还能选择是否让操作影响视口背面的顶点。
Select编辑模式要先通过框选,或者Shift+点击来多选,来选中顶点,然后勾选Max Distance或者Surface Penetration前面的复选框,代表我现在要改变选中的顶点的值了!然后再在后面的数值里面输入想要的数值就OK了,要想将当前有数值的顶点设置为Unconstrained,只需要选中那些带有数值的顶点然后将对应复选框取消勾选即可。
在Paint模式中,这个按钮代表要绘制
这里设置的值了!
而这个复选框代表的意思是是否想为现在已经有值的顶点Paint成为Unconstrained的顶点。
Stretching Stiffness—-拉扯硬度。
Bending Stiffness—-弯曲硬度。
Use Tethers—-用绳或链拴住,默认开启,用于方式过度拉伸
Use Gravity—-是否使用世界重力。
Damping—-阻尼会应用于每个布料顶点。要想打造看上去抖动更小的布料,可以试试这个。
External Acceleration—-常量外力。
Random Acceleration—-随机外力。
World Velocity Scale—-与World Acceleration Scale共同组成布料的GameObject.transfrom的运动会对物理模拟造成的影响比例。
World Acceleration Scale—-与World Velocity Scale共同组成布料的GameObject.transfrom的运动会对物理模拟造成的影响比例。
Friction—-当布料碰到在这个列表中存在的Collider时所产生的摩擦力,这只会影响布料的模拟。上面说过了布料的物理模拟是单向的。
Collision Mass Scale—-增加碰撞粒子的质量。。
Use Continuous Collision—-使用Continuous Collision, 增加消耗,减少直接穿透碰撞的几率。
Use Virtual Particles—-每三角形增加一个虚拟粒子以提高碰撞稳定性。
Solver Frequency—-每秒钟迭代的频率。显然是一个优化参数,默认120很高了,可以试着调低一些。
Sleep Threshold—-静止阈值。
Capsule Colliders—-要对布料产生交互的胶囊碰撞体。
Sphere Colliders—-要对布料产生交互的ClothSphereColliderPairs. 可以理解为他是按照一组来的,一组中可以只有一个SphereCollider,也可以有两个,当有两个的时候,那么这两个SphereCollider会在布料的碰撞系统中被“焊接”起来。这样就允许通过两个大小不同的SphereCollider来组合成一个圆锥形状的碰撞体了。
?