Unity动态骨骼Dynamic Bone

本文是翻译其使用文档,帮助自己使用的一篇文章,如果需要插件,请加群 : 891555732
请注意 : 插件仅供于研究,请勿商用


动态骨应用物理到角色的骨头或关节。
简单的设置,你的角色的头发,衣服,胸部或任何部分将移动现实。

一.Basic setup

  1. 准备一个适当的设置character模型,Mecanim and legacy rigs都支持。
    2. 选择要应用动态骨骼的游戏对象。
    3.在组件菜单中,选择Dynamic Bone -> Dynamic Bone。
    4. 在检查器中,选择根对象。
    5. 调整动态骨参数(参见以下部分的详细描述)。
    image.png


    你可以添加碰撞器对象,如果需要:
  • 选择collider将附加的游戏对象。
  • 在组件菜单中,选择Dynamic Bone -> Dynamic Bone Collider。
  • 调整collider的位置和大小。
  • 在动态骨骼组件中,增加collider的尺寸并添加相应的对象。

image.png

二.组件参数描述

1.Dynamic Bone

Root 应用物理的转换层次结构的根。
Update Rate 内部物理模拟速率,以帧/秒为单位。
UpdateMode Normal:正常更新。
AnimatePhysics:在物理循环期间更新,以便与物理引擎同步。
UnscaledTime:独立于Time.timeScale的更新。
Damping 骨头慢了多少。
Elasticity 施加多大的力使每块骨头恢复到原来的方向。
Stiffness 多少骨头的原始方向被保留。
Inert 在物理模拟中,忽略了角色的位置变化。
Radius 每块骨头可以是一个球体,用来与对撞机碰撞。半径描述球体的大小。
Damping Distrib, Elasticity Distrib, Stiffness Distrib, Inert Distrib, Radius Distrib 参数如何改变层次结构链。将曲线值乘以相应的参数。
End Length 如果末端长度不为0,则在转换层次结构的末端生成一个额外的骨骼,
长度乘以最后两根骨头的距离。
End Offset 如果末端偏移量不为0,则在转换层次结构的末端生成一个额外的骨骼,偏移量在角色的本地空间中。
Gravity 在世界空间中,力作用于骨头。施加在角色初始姿态上的部分力被抵消了。
Force 在世界空间中,力作用于骨头。
Colliders 碰撞体与骨骼相互作用。防止交叉碰撞
Exclusions 骨骼排除在物理模拟之外。
Freeze Axis 约束骨骼在指定的平面上移动。
Distant Disable, Reference Object, Distance To Object 如果角色远离摄像机或播放器,则自动禁用物理模拟。
如果没有引用对象,则使用默认的主摄像机。


函数 :

  • public void SetWeight(float w);

    控制物理如何与现有动画混合。
  • public void UpdateParameters();

    运行时更新参数,修改参数后调用此函数。

2.Dynamic Bone Collider组件属性描述

挂在在场景中有可能发生碰撞的物体身上

Center 球体或胶囊的中心,在物体的局部空间内。
Radius 球体或胶囊的半径,将按变换的比例缩放。
参数越大,与该物体发生的碰撞的机会越小
Height 胶囊的高度,包括两个半球体,将按变换的比例缩放。
Direction 胶囊高度的轴。
Bound 将骨头约束在外面或里面。


教程 :
Unity布料系统与Dynamic Bone的摸索与实践,Unity中的快速模糊材质以及图片模糊材质

猜你喜欢

转载自blog.csdn.net/dengshunhao/article/details/105165215