IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity可配置关节详解 -> 正文阅读

[游戏开发]Unity可配置关节详解

【组件界面】

【前置基础】

关节的作用是使得两个刚体连接到一起,使两个刚体的运动受到对方的限制,例如绳子连接的两个石块的运动会受到对方的限制。在关节中,这种运动限制通过锚点来实现,其原理是:

?关节有六个自由度,在物体A上有个锚点a,物体B上有个锚点b,锚点ab分别相对于物体AB有Position和Rotation,两个锚点间也有Position和Rotation,后两者的差值表示的是关节的Position和Rotation的值。物体AB运动时使得锚点ab的Position和Rotation改变,若锚点ab的Position和Rotation的差值超过了所设置的节点的Position和Rotation的值,则锚点ab会反向限制物体AB的运动,也即物体AB的运动要使得锚点ab的Position和Rotation的差值在允许范围内,也即关节限制了物体的运动。

【属性】

  • Connected Body:连接的另一个刚体,如果设置为空,表示连接空间中的固定点
  • Anchor和Connected Anchor:锚点和连接锚点,坐标分别相对于该物体和连接的刚体而言,所有基于物理的模拟都使用此点作为计算中的中心。
  • Axis 和Secondary Axis:这定义了关节的局部坐标,可以分为理解为x轴和y轴,一般要与物体的x轴和y轴重合,使用默认是,一般不做更改。
  • Auto Configure Connected Anchor:是否自动计算连接锚点,自动计算时锚点和连接锚点的位置完全重合,基本不会对连接刚体的运动产生影响,一般需要自己手动配置。
  • X, Y, Z Motion:关节的Position,表示锚点和连接锚点的位置差,有三个模式
    • Free:不做任何限制
    • Limited:有一定限制,可以设置限制值
    • Locked:锁定,锚点和连接锚点的距离为0,注意不是两个刚体的距离为0
  • Angular X, Y, Z Motion:类同X, Y, Z Motion
  • Linear Limit Spring:当物体超过了限制位置时关节向物体施加弹簧力以拉回物体,这意味着物体可以超出一定距离。
    • Spring:弹力,为0表示没有任何弹力,物体不能超过限制位置
    • Damper:阻尼器,根据关节运动的速度按比例减小弹力,可以抑制关节震荡
  • Linear Limit:线性限制,对XYZ的限制相同
    • Limit:限制距离
    • Bounciness:达到限制距离时的反弹系数,范围在0~1之间。不会越过限制位置,也不会停止运动,而是在限制位置处反弹,例如台球在台球桌边缘反弹。
    • Contact Distance:关节位置与实施限制的限制位置之间的最小距离公差,公差越大,对象快速移动时违反限制的可能性就越低
  • Angular X Limit Spring:角度限制弹力,当超过限制的角度时会施加扭矩以反向旋转物体
  • Low/High?Angular X Limit:X轴旋转角度的上下限,用来控制X轴顺时针和逆时针旋转的角度,YZ轴只有一个值控制,顺时针和逆时针的限制值相同。如果实际中YZ顺时针和逆时针的旋转角度限制不同,可以考虑改变Axis。

之前的属性都是物体运动超过限制后关节被动响应以限制物体运动,关节还可以主动向连接的物体施加力。注意,无论是被动限制物体运动还是主动向物体施加力,施加的对象都是关节连接的两个物体,正如弹簧对连接的两个物体都产生力一般。

  • Target Position:目标位置,指力将驱动两个物体移动,使得锚点和连接锚点直接的距离为该值,达到该值时驱动力消失。当两个连接的物体的质量相差很大时,同样的力来驱动这两个物体,那么其中一个物体几乎不移动,另一个物体移动的距离为该值。这相当于代替了Transform.Position。注意:关节在驱动时只保证两个锚点的位置重合,而不管旋转如何,因此不限制旋转时,物体不是水平移动的。如果给X轴(指关节坐标系的X轴)的距离设置了值,那么需要有X Drive的Position Spring不为0才有效。两个锚点的值不严格为该值,只是近似。X, Y, Z Motion的优先级高于Target Position。
  • Target Velocity:关节在驱动力下移动到目标位置时所需的速度。没发现有什么作用。
  • X /Y/ Z Drive:在X/Y/Z轴上的驱动力,有三个属性
    • ??????????????Position Spring:驱动力大小
    • Position Damper:阻尼
    • Maximum Force:可施加的最大驱动力
  • Target Rotation:类同Target Position,关节旋转驱动朝向的方向
  • Target Angular Velocity:关节的旋转驱动达到的角速度,矢量的长度指定旋转速度,而其方向定义旋转轴
  • Rotation Drive Mode:旋转驱动模式,如果将该模式设置为?X and YZ,则会围绕这些轴施加扭矩,如果使用?Slerp?模式,则?Slerp Drive?属性用于确定驱动扭矩。
  • Angular X Drive/Angular YZDrive/Slerp Drive:类同X /Y/ Z Drive
  • Projection Mode:投影模式,定义了当关节意外地超过自身的约束(由于物理引擎无法协调模拟中当前的作用力组合)时如何快速恢复约束。选项为??None??和??Position and Rotation?。投影不是物理过程,不会保持动量或遵循碰撞几何结构。例如,连接的两个物体完全锁死了,但在某些极端情况下仍会分开,这时需要快速恢复约束。
  • Projection Distance:投影距离,关节超过约束的距离,必须超过该值才能让物理引擎尝试将关节拉回可接受位置。
  • Projection Angle:投影角度,关节超过约束的旋转角度,必须超过该值才能让物理引擎尝试将关节拉回可接受位置。
  • Configured in World Space:如果激活该属性,所有的目标值将在世界空间计算,而不是对象空间
  • Swap Bodies:如果启用此属性,则会使关节表现得好像组件已附加到连接的刚体
  • Break Force/Break Torque:当关节受到的力或扭矩大于该值时,关节会断开且关节组件会从物体上删除,同时有OnJointBreak消息。可通过Joint.currentForce和currentTorque获取解算为满足所有约束而施加的力和扭矩。
  • Enable Collision:是否启用碰撞,默认不启用,不启用时关节连接的两个物体之间不会发生碰撞
  • Enable Preprocessing:如果预处理被禁用,那么关节的某些“不可能”配置会保持更稳定,而不是疯狂地失去控制。
  • Mass Scale:质量尺寸,关节的驱动力和约束力作用于物体时,在结算过程中所用的实际质量为物体的刚体组件上的质量乘以该值。如果物体的质量为1,连接的物体的质量为10,Mass Scale为10,则物体和连接物体的质量在关节解算器计算相关数据时视为相同。时刻注意,在物理系统中质量对物体的表现有很大影响,过于轻的质量容易出现抽搐、摇晃、飘荡、飞起等现象。
  • Connected Mass Scale:连接的物体的质量尺寸。

【参考】

深入了解 Unity 可配置关节 Configurable Joints) - 游戏编程 🕹? (233tw.com)

Unity - Manual: Configurable Joint (unity3d.com)

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-08-08 11:53:00  更:2021-08-08 11:53:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 22:40:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码