Unity动画 位置约束 PositionConstraint

简介:说起做动画,有一个功能是必不可少的,那就是约束功能,它能帮我们轻松实现一些在现实中很难实现的操作。
版本:Unity2019.4.12f1 HDRP 7.5.1

准备


在场景中准备三个物体,一个球,一个胶囊,一个盒子,并赋予不同的颜色

准备好的三个物体

位置约束 PositionConstraint


  • 给胶囊体添加 PositionConstraint
给胶囊体添加位置约束
  • 位置约束的参数讲解
    1. Activate :激活约束组件的全部功能,使其生效
    2. Zero:点击后会将相对偏移位置置零,并将本物体与目标物体对齐,且将 Position At Rest 设置为对齐后的坐标,然后调用 Activate 的功能,激活相关选项。
胶囊默认参数
点击 Zero 后胶囊的位置产生了变化

3. IsActive :当前约束组件是否激活,激活后会自动计算相关参数,如回归位置,相对偏移量
勾选 IsActive 没有勾选 Lock 时,组件会自动计算物体与约束目标之间的偏移值并赋予 PositionOffset, 并将物体当前位置赋予PositionAtRest。

没有勾选 IsActive

勾选 IsActive 后

4. Weight :当前约束组件影响程度,0-1。

权重为 1 时,移动球体,胶囊跟随运动
权重为 0 时,胶囊返回到初始位置,且无法自由移动

5. Sources:约束目标物,这里可以指定多个,每个可以指定一个约束影响权重,我们这里会添加两个物体,一个球,一个盒子


添加两个约束对象

6. Lock :勾选后,会锁定约束权重为 0 时物体要还原到的位置,锁定约束物体与被约束物体的相对偏移值

锁定之后的状态

7. Position At Rest :权重为0时物体需要归到的位置
8. Position Offset:相对于约束目标的相对偏移位置,如果全部为0,则位置和约束目标完全重合。

偏移值为 0 时,物体与约束物体位置重合

9. FreezePositionAxes:约束轴向 ,物体只受勾选的轴向的影响

取消Y轴的约束物体可以在Y方向自由移动,但是其他方向无法移动
  • 多目标效果,位置约束可以添加多个约束目标,每个目标都有一个权重值,物体会根据不同目标的权重值,自动计算每个目标的跟随量
两个目标的权重都为1时的偏移量
将球体的权重调整为0时,胶囊完全跟随盒子
  • 位置约束一般可以帮我们解决跟随问题,实现一个物体跟随父物体之外的物体进行移动,还可以实现单轴约束,用途广泛,大家可以自己尝试一下各参数的使用

  • 一般使用时,先勾选 IsActive,不勾选 Lock,将物体放到归位位置,然后调整目标物到合适的偏移距离,这是系统会自动计算偏移,并将当前位置作为归位位置,然后勾选 Lock 就可以实现约束功能了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。