Dynamic Bone学习笔记

Dynamic Bone将物理学应用于角色的骨骼或关节。
通过简单的设置,角色的头发,布料,胸部或任何部分都会运动得更加真实。


基本设置:
1.准备一个支持Mecanim或者legacy动画的角色。
2.选择要应用Dynamic Bone的游戏对象。
3.在组件菜单中,选择Dynamic Bone -> Dynamic Bone。
4.在inspector中,设置root object。
5.调整参数(请参阅下面的详细说明)。

如果需要,可以添加碰撞体:

1.选择附加碰撞体的游戏对象。
2.在组件菜单中,选择Dynamic Bone -> Dynamic Bone Collider。
3.调整碰撞体的位置和大小。
4.在Dynamic Bone组件的Colliders中,增加Dynamic Bone Collider。

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:如果不为零,则在变换层次结构的末尾生成额外的骨骼,将在此长度上乘以最后两个骨头的距离。

  • End Offset:如果不为零,则在变换层次结束时生成额外的骨骼,
    offset是局部空间的偏移。

  • Gravity:在世界空间的作用于骨骼的重力。部分适用于角色的初始姿势的力会被取消。

  • Force:在世界空间中作用于骨骼的力。

  • Colliders:与骨骼相互作用的碰撞体。

  • Exclusions:排除在物理模拟之外的骨骼。

  • Freeze Axis: 限制骨骼在指定平面上移动。

  • Distant Disable, Reference Object, Distance To Object
    如果角色远离相机或玩家,则自动禁用物理模拟。
    如果没有参考对象,则使用默认main camera。

Dynamic Bone Collider组件各种参数:

  • Center:位于物体的局部空间中的碰撞体的中心位置。

  • Radius:球体或胶囊碰撞体的半径,受比例缩放影响。

  • Height:胶囊碰撞体,包括两个半球,受比例缩放影响。

  • Direction:胶囊碰撞体的朝向。

  • Bound: 将骨骼约束到边界外部或内部。


API使用参考:

  • public void SetWeight(float w);
    控制物理计算与现有动画的融合。

  • public void UpdateParameters();
    在运行时更新参数,在修改参数后调用此函数。

你可能感兴趣的:(Dynamic Bone学习笔记)