(六)Unity3D物理引擎组件概要
刚体:刚体是指物体在运动过程中和受力后,其形状和大小不变,内部各点的相对位置不变的物体。绝对刚体实际上是不存在的。刚体是力学中的科学抽象概念,即理想模型。
力(F):力是一个物体对一个物体的作用,没有物体就不能单独存在。Unity的物理引擎就是建立在这个基础上的。
重力(g):物体由于地球的引力而受到的力叫做重力。重力物体是地球的中心。统一中的引力与之类似。重力的方向总是垂直向下。
摩擦:统一分为滑动摩擦和静摩擦。通常通过设置动摩擦系数和静摩擦系数来控制物体的运动。(一般不使用滚动摩擦)
弹性:在统一中,当一个物体受到外力时,产生一个反方向的力。通常通过设置弹性系数
使物体获得弹性。
扭力:使物体旋转的力。
阻尼:物体在外力作用下振动时,会产生一个使外力衰减的反作用力,称为阻尼力(或阻尼力)。
重力加速度(单位:米/秒2): g = 9.81(单位:1)
重力(单位:n): g = mg * * *
滑动摩擦力(单位:n): f = μ× fn (fn:正压力,μ:动摩擦系数)
单摆周期公式(单位:s): t = 2π √ (L/g) * * * (L:摆长)
扭矩(单位:n× m): m = fl (l:摆动轴)
如果物体受力影响,则需要添加刚体组件。(基本上所有活动对象都需要Rigibody组件。)加入Rigibody组件后,物体可以接受外力和扭力,始终受重力影响。
选择一个对象后,向其添加一个Rigibody组件。
质量:用于设置游戏物体的质量。(一般在同一个游戏场景下,游戏对象之间的质量差异不超过100倍)
阻力:即游戏物体被迫移动时的空气阻力。当阻力很大时,游戏对象会立即停止移动。
角阻力:即游戏物体受扭力旋转时的空气阻力。同样,当阻力很大时,游戏对象会立即停止旋转。
使用重力:开启该物品时,游戏对象会受到重力的影响。
Is Kinematic:开启此物品后,游戏对象将不再受物理引擎影响,因此只能通过Transform属性进行操作。(此方法适用于模拟平台的运动或具有铰接关节的刚体的动画。)
插值:用于控制刚体运动的抖动。
无:无插值。
插值:插值。基于前一帧的变换平滑此变换。
外推:外推。基于下一帧的变换平滑此变换。
碰撞检测:该属性用于控制避免高速运动的游戏对象穿过其他对象而不发生碰撞。
离散:离散碰撞检测。该模式对场景中的所有其他碰撞对象执行碰撞检测。该值是默认值。
连续:连续碰撞检测。该模式用于检测与动态碰撞体(有刚体)的碰撞,连续碰撞检测模式用于检测与栅格碰撞体(无刚体)的碰撞。其他刚体将采用离散碰撞模式。该模式适用于那些需要连续动态碰撞检测的对象。这对身体表现会有很大影响。如果不需要检测快速运动物体的碰撞,不推荐这种模式,建议使用离散碰撞检测模式。
连续动态:连续动态碰撞检测。该模式可用于检测连续碰撞模式或连续动态碰撞模式下与物体的碰撞,也可用于检测无刚体的静态网格碰撞体。离散碰撞检测可用于与它碰撞的其他物体。这种模式也可以用来检测快速移动的游戏对象。
约束:此项用于控制刚体运动的约束。
冻结位置:冻结位置。刚体在世界坐标系中x、Y、Z、Y、Z方向的运动(选中状态)将无效。
冻结旋转:冻结旋转。刚体在世界坐标系中x、Y、Z、Y、Z方向的旋转(选中状态)将无效。
恒力用于向刚体添加恒力。适用于类似火箭发射的物体,因为F=ma,使得这类物体的速度不断增加。
选择对象后,向其添加恒力分量。
四个属性都用三维向量表示,坐标轴表示方向,数值表示大小。
需要注意的是,添加恒力分量时,系统默认会添加一个刚体分量。
添加恒力分量后,不能删除刚性分量。
力:设置世界坐标系中使用的扭矩力。
相对力:设置在对象的局部坐标系中使用的力。
扭矩:设置在世界坐标系中使用的扭矩力。游戏对象根据向量旋转。(矢量越长,旋转越快)
相对扭矩:相对扭矩。设置在对象的局部坐标系中使用的扭力。。游戏对象根据向量旋转。(矢量越长,旋转越快)
角色控制器主要用于控制第三人称或第一人称游戏中的主角。不要使用僵硬的物理效果。(角色控制器可以通过物理效果影响其他对象,但不能通过物理效果被其他对象影响。)
选择对象后,向其添加角色控制器组件。
坡度限制:设置被控制的游戏对象只能攀爬小于或等于参数值的坡度角。
步幅偏移:设置被控制的游戏对象可以踩的最高步幅的高度。
蒙皮宽度:该参数决定了两个碰撞物体可以相互穿透的深度。
较大的参数值会造成抖动,较小的参数值会造成被控制的游戏对象卡顿。比较合理的设置是参数值为半径值的10%。
最小移动距离(Min Move Distance):如果被控制的游戏对象的移动距离小于该值,则游戏对象不会移动,从而避免抖动。在大多数情况下,该值设置为0。
中心:该参数决定了胶囊碰撞器和受控游戏对象之间的相对位置,不影响受控角色对象的中心坐标。
半径:胶囊碰撞的长度半径,也决定了碰撞体的半径。
高度:用于设置受控角色对象的胶囊碰撞体的高度。
必须用Rigibody将Collider添加到游戏对象中才能触发碰撞。
当两个刚体碰撞时,具有碰撞体的对象将计算碰撞。
两个没有碰撞体的刚体会互相穿过,不会发生碰撞。
添加碰撞器组件方法
一般在创建游戏对象时,会自动添加相应的碰撞体。
碰撞体可以调整成不同大小的长方体。
可用作门、墙、平台,也可用于玩偶的后备箱或汽车等交通工具的外壳上。
碰撞体的三维尺寸可以统一调整,但某个坐标轴方向的尺寸不能独立调整。
可作为落石、球类等游戏对象。
碰撞体的高度和半径可以独立调整。
它可以用作角色控制器或与其他不规则碰撞结合使用。(胶囊碰撞器通常嵌入在Uinty的角色控制器中)
碰撞体积获得一个网格对象,并基于它构造一个碰撞。
与在复杂网络模型上使用基本碰撞体相比,网格碰撞体更精细,但会占用更多的系统资源。(只有当凸参数打开时,网格碰撞器才能与其他网格碰撞器碰撞。)
碰撞体是基于地形构建的碰撞体。
车轮碰撞体是地面车辆专用的碰撞体,内置碰撞检测、车轮物理系统和带轮胎摩擦的参考体。
除了轮子,碰撞体还可以用于其他游戏对象。
关节是模拟物体之间的一种连接关系,关节必须依赖刚体组件。
关节组件可以添加到多个游戏对象中,关节分为3D关节和2D关节。(本文讲的是3D关节)
添加关节组件方法
它由两个刚体组成,因此它们就像连接到铰链一样移动。
非常适合模拟门,也可以作为模型链、钟摆等物体。
需要注意的是,当添加一个连接组件时,系统会默认添加一个刚体组件。
加入接头元件后,您无法移除刚性元件。
连接体:指定要为关节连接的刚体。(如果没有指定刚体,默认情况下关节连接到世界。)
锚点:刚体可以围绕锚点摆动。该值应用于局部坐标系。
轴:定义刚体摆动的方向。该值应用于局部坐标系。
自动配置连接锚点:如果选中此项,将自动设置连接锚点。(默认情况下,此项是打开的)
连接锚点:当自动连接锚点项目打开时,该项将被自动设置。当自动连接锚点项目未打开时,您可以手动设置连接锚点。
使用弹簧:如果选中此项,弹簧将使刚体与其所连接的物体形成一个特定的角度。
弹簧:当启用“使用弹簧”参数时,该属性有效。
弹簧:弹簧力。设置推动对象移动到相应位置的力。
阻尼器:阻尼。设定对象的阻尼值。该值越大,对象移动越慢。
目标位置:目标角度。设置弹簧将被拉向的目标角度。
使用马达:如果选中此项,引擎将旋转物体。
马达:当“使用马达”参数打开时,此属性有效。
目标速度:目标速度。设置对象的预期速度。
力:力。设置施加的力以达到目标速度。
自由旋转:自动旋转。如果勾选此项,发动机永远不会停,转动只会越来越快。
使用限制:如果选中此项,铰链的角度将被限制在最大值和最小值之间。
限制:当“使用限制”参数打开时,该属性有效。
Min:最小值。设置铰链可以达到的最小角度。
Max:最大值。设置铰链可以达到的最大角度。
最小反弹:最小反弹。设定对象达到最小限制时的反弹值。
马克斯·鲍恩斯:最大反弹。设置对象达到最大限制时的反弹值。
接触距离:接触距离。控制关节抖动。
断开力:设置断开铰链接合的力。
断开扭矩:设置断开铰链接合所需的扭矩。
启用碰撞:如果选中,也将检测关节之间的碰撞。
启用预处理:选中此项以实现关节稳定性。(默认情况下,此项是打开的)
固定关节用于约束一个游戏对象到另一个游戏对象的运动。类似于对象的父子关系,但它是由物理系统实现的,而不是像父子关系一样受Transform属性的约束。(使用固定关节的对象需要有一个刚体组件。)
它适用于当您想要轻松地将一个对象与另一个对象分离时,或者当您连接两个没有父子关系的对象以使它们一起移动时。
连接体:用于指定关节所连接的刚体。(如果没有指定刚体,默认情况下关节连接到世界。)
断开力:设置断开关节的力。
断开扭矩:设置断开关节所需的扭矩。
启用碰撞:如果选中该选项,也将检测关节之间的碰撞。
启用预处理:选中此项以实现关节稳定性。(默认情况下,此项是打开的)
弹簧接头组件可以将两个刚体连接在一起,并使它们像弹簧一样运动。
连接体:用于指定弹簧要连接的刚体。(如果没有指定刚体,默认情况下关节连接到世界。)
锚点:设置关节在对象的局部坐标系中的位置。(注意:不是物体会弹跳的点)
自动配置连接锚点:如果选中此项,将自动设置连接锚点。(默认情况下,此项是打开的)
连接锚点:当自动连接锚点项目打开时,该项将被自动设置。当自动连接锚点项目未打开时,您可以手动设置连接锚点。
弹簧:设置弹簧的强度。该值越高,弹簧的强度越大。
阻尼器:设置弹簧的阻尼系数。阻尼值越大,弹簧强度的降低越大。
最小距离:设置弹簧激活的最小距离值。如果两个对象之间的当前距离和初始距离之差小于该值,弹簧将不会打开。
最大距离:设置弹簧激活的最小距离值。如果两个对象之间的当前距离和初始距离之差大于该值,弹簧将不会打开。
断开力:设置断开弹簧接头所需的力。
断开扭矩:设置断开弹簧接头所需的扭矩。
启用碰撞:如果选中,也将检测关节之间的碰撞。
启用预处理:选中此项以实现关节稳定性。(默认情况下,此项是打开的)
角色关节主要用来表现玩偶效果。它是一个扩展的球关节,可以用来限制关节在不同旋转轴下的旋转角度。
连接体:用于指定角色关节要连接的刚体。(如果没有指定刚体,默认情况下关节连接到世界。)
锚点:在游戏对象的局部坐标系中设置一个点,角色关节将围绕该点旋转。
轴:设置角色关节的轴。(由一个橙色圆锥体gizmo表示)
自动配置连接锚点:如果选中此项,将自动设置连接锚点。(默认情况下,此项是打开的)
连接锚点:当自动连接锚点项目打开时,该项将被自动设置。当自动连接锚点项目未打开时,您可以手动设置连接锚点。
摇摆轴:设置角色关节的摇摆轴。(由绿色锥形小控件表示)
扭转极限弹簧(弹簧的扭转极限)
弹簧:设定角色扭曲关节的弹簧强度。
阻尼器:设置角色关节扭曲的阻尼值。
低扭曲限制:设定角色关节扭曲的下限。
限制:设置角色关节扭曲的下限。
反弹:设定角色关节扭曲下限的反弹值。
接触距离:设定用于限制的接触距离,以避免抖动。
高扭曲限制:设定角色关节扭曲的上限。
限制:设置角色关节扭曲的上限值。
反弹:设定角色关节扭曲上限的反弹值。
接触距离:设定用于限制的接触距离,以避免抖动。
摆动限制弹簧(弹簧的摆动限制)
弹簧:设定角色关节摆动的弹簧强度。
阻尼器:设置角色关节摆动的阻尼值。
Swing1,2极限(swing limit 1,2):1和2的极限是对称的,即只能改变一个中的三个属性。
限制:设定角色关节摆动的限制值。
反弹:设置角色关节的摆动限制的反弹值。
接触距离:设定用于限制的接触距离,以避免抖动。
启用投影:此项用于激活投影。
投影距离:设置当对象与其连接的刚体之间的距离超过投影距离时,对象将返回到适当的位置。
投影角度:设置当对象及其连接的刚体的角度超过投影角度时,对象将返回到适当的位置。
断开力:控制断开角色关节所需的力。
断裂扭矩:设置角色关节断裂所需的扭矩。
启用碰撞:如果选中此项,也将检测关节之间的碰撞。
启用预处理:选中此项以实现关节稳定性。(默认情况下,此项是打开的)
可配置关节组件支持用户定义的关节,它在PhysX引擎中打开了所有与关节相关的属性,因此它可以像其他类型的关节一样创建各种行为。
可配置关节有两个主要功能:运动/旋转限制和运动/旋转加速。
连接体:用于指定关节要连接的刚体。(如未指定,接头将与世界连接。)
Anchor:设置关节的中心点,所有基于物理效果的模拟都会以此点为中心点进行计算。
轴:设置局部旋转轴,该轴决定物理模拟下对象的自然旋转方向。
自动配置连接锚点:如果选中此项,将自动设置连接锚点。(默认情况下,此项是打开的)
连接锚点:当自动连接锚点项目打开时,该项将被自动设置。当自动连接锚点项目未打开时,您可以手动设置连接锚点。
副轴:长轴和短轴* * *决定了关节的局部坐标。第三个轴垂直于由这两个轴形成的平面。
Xmotion(X轴移动):设置游戏对象在X轴上的移动形式,包括自由移动、锁定移动和限制移动。
Y运动:设置游戏对象在Y轴上的运动形式,包括自由运动、锁定运动和受限运动。
Zmotion(Z轴移动):设置游戏对象在Z轴的移动形式,包括自由移动、锁定移动和受限移动。
角度旋转:设置游戏对象绕X轴的旋转形式,包括自由旋转、锁定旋转和受限旋转。
角度Y运动:设置游戏对象绕Y轴的旋转形式,包括自由旋转、锁定旋转和受限旋转。
角度旋转:设置游戏对象绕Z轴的旋转形式,包括自由旋转、锁定旋转和受限旋转。
线性限位弹簧(弹簧线性限位)
春天:春天。设置将对象拉回边界的力。
阻尼器:阻尼。设置弹簧的阻尼值。
线性限制:以关节原点的距离为基准,限制其运动边界。
极限:极限。设置从原点到边界的距离。
反弹。设置对象到达边界时应用于对象的反弹力。
接触距离:设定用于限制的接触距离,以避免抖动。
角度X限制弹簧(X轴旋转限制)
春天:春天。设置将对象拉回边界的力。
阻尼器:阻尼。设置弹簧的阻尼值。
低角度x限制:根据与关节初始旋转的差异,设置旋转约束下限的边界。
极限:旋转的极限角度。设置对象旋转角度的下限。
反弹:反弹。设置对象到达边界时应用于对象的反弹力。
接触距离:设定用于限制的接触距离,以避免抖动。
高角度x限制:基于与关节初始旋转的差异设置旋转约束上限的边界。
极限:旋转的极限角度。设置对象旋转角度的上限。
反弹:反弹。设置对象到达边界时应用于对象的反弹力。
接触距离:设定用于限制的接触距离,以避免抖动。
角度YZ限位弹簧(Y轴和z轴旋转限位)
属性参数与角度X限制弹簧相同。
角度y极限*
属性参数与角度X限制相同。
角度z限制*
属性参数与角度X限制相同。
目标位置:关节在X、Y和Z轴上应该到达的目标位置。
目标速度:关节在X、Y和Z三个轴上应该达到的目标速度..
XDrive(X轴驱动):设置对象沿局部坐标系X轴的运动形式。
定位弹簧:定位弹簧力。橡皮筋在预定方向的张力。
位置阻尼:位置阻尼。抵抗位置弹簧力的力。
最大力量:最大力量。推动物体向预定方向运动的力的总和。
Y驱动:设置对象沿局部坐标系Y轴的运动形式。
属性参数与XDrive相同。
Z驱动:设置对象沿局部坐标系Z轴的运动形式。
属性参数与XDrive相同。
目标旋转:目标旋转是一个四元数,它定义了关节应该旋转到的角度。
目标角速度:目标角速度是一个三维向量,它定义了关节应该旋转到的角速度。
旋转驱动方式:通过x &;YZ轴驱动或插补驱动来控制物体本身的旋转。
角度X驱动(X设置关节如何绕X轴旋转。
定位弹簧:定位弹簧力。橡皮筋在预定方向的张力。
位置阻尼:位置阻尼。抵抗位置弹簧力的力。
最大力量:最大力量。推动物体向预定方向运动的力的总和。
角度YZ驱动(YZ设置关节如何围绕其自身的Y轴和Z轴旋转。
属性参数与角度X驱动相同。
Slerp驱动:设置关节如何围绕所有局部坐标轴旋转。
属性参数与角度X驱动相同。
投影模式:当物体离其限制位置太远时,设置物体回到其限制位置。可以设置为位置和旋转和无。
投影距离:设置当对象与其连接的刚体之间的距离超过投影距离时,对象将返回到适当的位置。
投影角度:设置当对象与其连接的刚体之间的角度差超过投影角度时,对象将返回到适当的位置。
在世界空间中配置:如果选中此选项,所有与目标相关的值将在世界坐标系中计算,而不是在对象的局部坐标系中计算。
交换刚体:如果选中此项,将应用交换刚体的功能,并将两个相连的刚体进行交换。
断开力:设置控制关节断开所需的力。
断开扭矩:设定接头断开所需的扭矩。
启用碰撞:如果选中,也将检测关节之间的碰撞。
启用预处理:选中此项以实现关节稳定性。(默认情况下,此项是打开的)