Unity虚拟墙与阻抗模型力渲染里的运动分离

文章讨论了在Unity中使用阻抗模型时,如何处理力反馈设备与视觉呈现物体的运动分离问题。通过挂载、kinematic与Rigidbody的配合,以及添加弹簧连接和特定质量设定,实现理想碰撞效果。
摘要由CSDN通过智能技术生成

先回顾阻抗模型里存在的运动分离:

在此我们假设有两个物体A和B,A是力反馈设备的物理位置(上图蓝球),B是负责视觉呈现的物体的位置(上图红球),虚拟墙是绿色的。

在Unity中,直接修改物体的transform.position会导致刚体的碰撞失效,即导致穿模。

于是可以把B挂载到A上,A是kinematic的,而B是Rigidbody。这时候就发现另一个现象:不碰撞时,A和B完全重合;碰到虚拟墙后,A和B的分离呈现只增大不减小的状态。例如上图中的情况,理想情况下,如果蓝球向左运动,那么当蓝球在墙内时红球应该依然停留在墙体表面,蓝球和红球的距离应该变短,直到蓝球与虚拟墙分离,红球和蓝球保持重合。而实际情况则变成了蓝球向左运动时,即使蓝球还在墙内,红球也立即与虚拟墙分离。

目前的解决方案是在A和B之间添加弹簧连接,同时A的质量被设定为Infinity,B的质量与弹簧刚度、阻尼满足二阶欠阻尼系统的相关设定。效果如视频。

QQ录屏20240331202937

相关设定如图:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值