首先要熟悉一些基本的力学名词及相关公式 刚体(Rigidbody):刚体是指在运动中和受到力的作用后,形状和大小不变,而且内部各点的相对位置不变的物体。绝对刚体实际上是不存在的,刚体是力学中的一个科学抽象概念,即理想模型。 重力加速度(单位:m/s^2):g = 9.81(在Unity中) 1、Rigibody(刚体)组件物体要受力的影响就需要添加Rigibody组件。(基本上能动的物体都需要Rigibody组件)物体添加Rigibody组件后,可以接受外力和扭矩力,并一直受到重力影响, 选中一个物体后,为其添加Rigibody组件。 添加Rigidbody组件
1-1、Rigibody组件的属性面板及参数详解Rigibody属性面板
Mass(质量):用于设置游戏对象的质量。(一般在同一游戏场景中,游戏对象之间的质量差不大于100倍) 2、Constant Force(恒力)组件Constant Force用来为刚体添加恒力。适用于类似火箭发射的对象,因为F=ma,使得这类对象的速度不断提升。 选中一个物体后,为其添加Constant Force组件。 添加Constant Force组件
2-1、Constant Force组件的属性面板及参数详解Constant Force属性面板
四种属性均用三维向量表示,坐标轴表示方向,数值表示大小。 需要注意的是:添加恒力(Constant Force)组件时,系统会默认添加刚体(Rigidbody)组件。 添加Constant Force组件默认添加Rigidbody组件
添加恒力组件后,不能移除刚体组件。 不能移除Rigidbody组件
Force(力):设置世界坐标系中使用的扭矩力。 3、Character Controller(角色控制器)组件Character Controller主要用于第三人称或第一人称游戏主角的控制。不使用刚体物理效果。(Character Controller可通过物理效果影响其他的对象,但无法通过物理效果被其他的对象影响) 选中一个物体后,为其添加Character Controller组件。 Character Controller组件
3-1、Character Controller组件的属性面板及参数详解Character Controller属性面板
Slope Limit(坡度限制):设置所控制的游戏对象只能爬上角度小于或等于该参数值的斜坡倾角。 Step Offset(台阶高度):设置所控制的游戏对象可以迈上的最高台阶的高度。 Skin Width(皮肤厚度):该参数决定了两个碰撞体可以相互参入的深度。 Min Move Distance(最小移动距离):如果所控制的游戏对象的移动距离小于该值,则游戏对象将不会移动,这样可避免抖动,大多数情况下将该值设为0。 Center(中心):该参数决定了胶囊碰撞体与所控制的游戏对象的相对位置,并不影响所控制的角色对象的中心坐标 Radius(半径):胶囊体碰撞的长度半径,同时该项也决定了碰撞体的半径。 Height(高度):用于设置所控制的角色对象的胶囊体碰撞体的高度。 4、Collider(碰撞体/器)组件Collider要与Rigibody一起添加到游戏对象上才能触发碰撞。 添加Collider组件方法 添加Collider组件方法
一般创建一个游戏对象时会自动添加相应的碰撞体。 4-1、Box Collider(盒碰撞体)该碰撞体可调整为不同大小的长方体。 创建 Cube 时自动添加 Box Collider 组件
4-2、Sphere Collider(球形碰撞体)该碰撞体的三维大小可以均匀地调节,但不能单独调节某个坐标轴方向的大小。 创建 Spere 时自动添加 Sphere Collider 组件
4-3、Capsule Collider(胶囊碰撞体)该碰撞体的高度和半径可单独调节。 创建 Capsule 和 Cylinder 时自动添加 Capsule Collider 组件
4-4、Mesh Collider(网格碰撞体)该碰撞体通过获取网格对象并在其基础上构建碰撞。 创建 Plane 和 Quad 时会自动添加 Mesh Collider 组件
4-5、Terrain Collider(球形碰撞体)该碰撞体是基于地形构建的碰撞体。 创建 Terrain 时会自动添加 Terrain Collider 组件
4-6、Wheel Collider(车轮碰撞体)车轮碰撞体是一种针对地面车辆的特殊碰撞体,它有内置的碰撞检测、车轮物理系统及有滑胎摩擦的参考体。 5、Joint(关节)组件关节是模拟物体与物体之间的一种连接关系,关节必须依赖于刚体组件。 添加Joint组件方法 添加Joint组件方法
5-1、Hinge Joint(铰链关节)的属性及参数详解由两个刚体组成,使它们像被连接在一个铰链上那样运动。 Hinge Jonit属性面板
需要注意的是:添加关节(Join)组件时,系统会默认添加刚体(Rigidbody)组件。 添加Joint组件默认添加Rigidbody组件
添加关节组件后,不能移除刚体组件。 不能移除Rigidbody组件
Connected Body(连接刚体):为关节指定要连接的刚体。(若不指定刚体,则该关节默认与世界相连) Anchor(锚点):刚体可围绕锚点进行摆动。该值应用于局部坐标系。 Axis(轴):定义刚体摆动的方向。该值应用于局部坐标系。 Auto Configure Connected Anchor(自动设置连接锚点):勾选该项,连接锚点会自动设置。(该项默认为开启状态) Connected Anchor(连接锚点):自动连接锚点项开启时,此项会自动设置。自动连接锚点项未开启时,可手动设置连接锚点。 Use Spring(使用弹簧):勾选该项,弹簧会使刚体与其连接的主体形成一个特定的角度 Spring(弹簧):当Use Spring参数开启时,此属性有效。 Spring:弹簧力。设置推动对象使其移动到相应位置的作用力。 Damper:阻尼。设置对象的阻尼值,数值越大则对象移动得越缓慢。 Target Position:目标角度。设置弹簧的目标角度,弹簧会拉向此角度。 Use Motor(使用发动机):勾选该项,发动机会使对象发生旋转。 Motor(发动机):当Use Motor参数开启时,此属性有效。 Target Velocity:目标速度。设置对象预期将要达到的速度值。 Force:作用力。设置为了达到目的速度而施加的作用力。 Free Spin:自动转动。勾选该项,则发动机永远不会停止,旋转只会越转越快。 Use Limits(使用限制):勾选该项,铰链的角度将被限定在最大值和最小值之间。 Limits(限制):当Use Limits参数开启时,此属性有效。 Min:最小值。设置铰链能达到的最小角度。 Max:最大值。设置铰链能达到的最大角度。 Min Bounce:最小反弹。设置当对象触到最小限制时的反弹值。 Max Bounce:最大反弹。设置当对象触到最大限制时的反弹值。 Contact Distance:接触距离。控制关节的抖动。 Break Force(断开力):设置铰链关节断开的作用力。 Break Torque(断开转矩):设置断开铰链关节所需的转矩。 Enable Collision(激活碰撞):勾选该项,关节之间也会检测碰撞。 Enable Preprocessing(启用预处理):勾选该项,实现关节的稳定。(该项默认为开启状态) 5-2、Fixed Joint(固定关节)的属性及参数详解固定关节用于约束一个游戏对象对另一个游戏对象的运动。类似于对象的父子关系,但它是通过物理系统来实现而不像父子关系那样是通过Transform属性来进行约束。(使用固定关节的对象自身需要有一个刚体组件) Fixed Joint属性面板
Connected Body (连接刚体):用于指定关节要连接的刚体。(若不指定刚体,则该关节默认与世界相连) Break Force(断开力):设置关节断开的作用力。 Break Torque(断开转矩):设置断开关节所需的转矩。 Enable Collision(激活碰撞):勾选此项,则关节之间也会检测碰撞。 Enable Preprocessing(启用预处理):勾选该项,实现关节的稳定。(该项默认为开启状态) 5-3、Spring Joint(弹簧关节)的属性及参数详解弹簧关节组件可将两个刚体连接在一起,使其像连接着弹簧那样运动。 Spring Joint属性面板
Connected Body(连接刚体):用于为弹簧指定要连接的刚体。(若不指定刚体,则该关节默认与世界相连) Anchor(锚点):设置Joint在对象局部坐标系中的位置。(注意:不是对象将弹向的点) Auto Configure Connected Anchor(自动设置连接锚点):勾选该项,连接锚点会自动设置。(该项默认为开启状态) Connected Anchor(连接锚点):自动连接锚点项开启时,此项会自动设置。自动连接锚点项未开启时,可手动设置连接锚点。 Spring(弹簧):设置弹簧的强度,数值越高弹簧的强度就越大。 Damper(阻尼):设置弹簧的阻尼系数,阻尼数值越大,弹簧强度减小的幅度越大。 Min Distance(最小距离):设置弹簧启用的最小距离值。如果两个对象之间的当前距离与初始距离的差小于该值,则不会开启弹簧。 Max Distance(最大距离):设置弹簧启用的最小距离值。如果两个对象之间的当前距离与初始距离的差大于该值,则不会开启弹簧。 Break Force(断开力):设置弹簧关节断开所需的作用力。 Break Torque(断开转矩):设置弹簧关节断开所需的转矩力。 Enable Collision(激活碰撞):勾选该项,关节之间也会检测碰撞。 Enable Preprocessing(启用预处理):勾选该项,实现关节的稳定。(该项默认为开启状态) 5-4、Character Joint(角色关节)的属性及参数详解角色关节主要用于表现布娃娃效果,它是扩展的球关节,可用于限制关节在不同旋转轴下的旋转角度。 Character Joint属性面板
Connected Body(连接刚体):用于为角色关节指定要连接的刚体。(若不指定刚体,则该关节默认与世界相连) Anchor(锚点):设置游戏对象局部坐标系中的点,角色关节将按围绕该点进行旋转。 Axis(扭动轴):设置角色关节的扭动轴。(以橙色的圆锥gizmo表示) Auto Configure Connected Anchor(自动设置连接锚点):勾选该项,连接锚点会自动设置。(该项默认为开启状态) Connected Anchor(连接锚点):自动连接锚点项开启时,此项会自动设置。自动连接锚点项未开启时,可手动设置连接锚点。 Swing Axis(摆动轴):设置角色关节的摆动轴。(以绿色的圆锥gizmo表示) Twist Limit Spring(弹簧的扭曲限制) Spring:设置角色关节扭曲的弹簧强度。 Damper:设置角色关节扭曲的阻尼值。 Low Twist Limit(扭曲下限):设置角色关节扭曲的下限。 Limit:设置角色关节扭曲的下限值。 Bounciness:设置角色关节扭曲下限的反弹值。 Contact Distance:设置用于为了避免抖动而限制的接触距离。 High Twist Limit(扭曲上限):设置角色关节扭曲的上限。 Limit:设置角色关节扭曲的上限值。 Bounciness:设置角色关节扭曲上限的反弹值。 Contact Distance:设置用于为了避免抖动而限制的接触距离。 Swing Limit Spring(弹簧的摆动限制) Swing 1,2 Limit(摆动限制1,2):1与2的限制是对称的,即更改一个里面的三项属性即可。 Limit:设置角色关节摆动的限制值。 Bounciness:设置角色关节摆动限制的反弹值。 Contact Distance:设置用于为了避免抖动而限制的接触距离。 Enable Projection(启动投影):该项用于激活投影。 Projection Distance(投影距离):设置当对象与其连接刚体的距离超过投影距离时,该对象会回到适当的位置。 Projection Angle(投影角度):设置当对象与其连接刚体的角度超过投影角度时,该对象会回到适当的位置。 Break Force(断开力):控制角色关节断开所需的作用力。 Break Torque(断开转矩):设置角色关节断开所需的转矩。 Enable Collision(激活碰撞):勾选该项,则关节之间也会检测碰撞。 Enable Preprocessing(启用预处理):勾选该项,实现关节的稳定。(该项默认为开启状态) 5-5、Configurable Joint(可配置关节)的属性及参数详解可配置关节组件支持用户自定义关节,它开放了PhysX引擎中所有与关节相关的属性,因此可像其他类型的关节那样来创造各种行为。 Configurable Joint属性面板
connected boby(连接刚体):用于为关节指定要连接的刚体。(若不指定则该关节将与世界相连接) anchor(锚点):设置关节的中心点,所有基于物理效果的模拟都会以此点为中心点来进行计算。 axis(主轴):设置局部旋转轴,该轴决定了对象在物理模拟下自然旋转的方向。 Auto Configure Connected Anchor(自动设置连接锚点):勾选该项,连接锚点会自动设置。(该项默认为开启状态) Connected Anchor(连接锚点):自动连接锚点项开启时,此项会自动设置。自动连接锚点项未开启时,可手动设置连接锚点。 Secondary Axis(副轴):主轴和副轴共同决定了关节的局部坐标。第三个轴与这两个轴所构成的平面相垂直。 Xmotion(X轴移动):设置游戏对象在X轴的移动形式,有自由移动(Free)、锁定移动(Locked)及限制性移动(Limited)。 Ymotion(Y轴移动):设置游戏对象在Y轴的移动形式,有自由移动(Free)、锁定移动(Locked)及限制性移动(Limited)。 Zmotion(Z轴移动):设置游戏对象在Z轴的移动形式,有自由移动(Free)、锁定移动(Locked)及限制性移动(Limited)。 Angular Xmotion(X轴旋转):设置游戏对象围绕X轴的旋转形式,有自由旋转(Free)、锁定旋转(Locked)及限制性旋转(Limited)。 Angular Ymotion(Y轴旋转):设置游戏对象围绕Y轴的旋转形式,有自由旋转(Free)、锁定旋转(Locked)及限制性旋转(Limited)。 Angular Zmotion(Z轴旋转):设置游戏对象围绕Z轴的旋转形式,有自由旋转(Free)、锁定旋转(Locked)及限制性旋转(Limited)。 Linear Limit Spring(弹簧线性限制) Linear Limit(线性限制):设置自关节原点的距离为基准对其运动边界加以限定。 Limit:限制。设置从原点到边界的距离。 Boundciness:反弹。设置当对象到边界时施加给它的反弹力。 Contact Distance:设置用于为了避免抖动而限制的接触距离。 Angular X Limit Spring(X轴旋转限制) Spring:弹簧。设置将对象拉回边界的力。 Damper:阻尼。设置弹簧的阻尼值。 Low Angular X Limit(X轴旋转下限):以与关节初始旋转的差值为基础设置旋转约束下限的边界。 Limit:旋转的限制角度。设置对象旋转角度的下限值。 Bounciness:反弹。设置当对象到边界时施加给它的反弹力。 Contact Distance:设置用于为了避免抖动而限制的接触距离。 High Angular X Limit(X轴旋转上限):以与关节初始旋转的差值为基础设置旋转约束上限的边界。 Limit:旋转的限制角度。设置对象旋转角度的上限值。 Bounciness:反弹。设置当对象到边界时施加给它的反弹力。 Contact Distance:设置用于为了避免抖动而限制的接触距离。 Angular YZ Limit Spring(Y轴和Z轴旋转限制) Angular Y Limit(Y轴旋转限制)* Angular Z Limit(Y轴旋转限制)* Target Position(目标位置):关节在X,Y,Z三个轴向上应达到的目标位置。 Target Velocity(目标速度):关节在X,Y,Z三个轴向上应达到的目标速度。 XDrive(X轴驱动):设置了对象沿局部坐标系X轴的运动形式。 Position Spring:位置弹簧力。朝预定义方向上的皮筋的拉力。 Position Damper:位置阻尼。抵抗位置弹簧力的力。 Maximum Force:最大作用力。推动对象朝预定方向运动的作用力的总和。 YDrive(Y轴驱动):设置了对象沿局部坐标系Y轴的运动形式。 ZDrive(Z轴驱动):设置了对象沿局部坐标系Z轴的运动形式。 Target Rotation(目标旋转):目标旋转是一个四元数,它定义了关节应当旋转到的角度。 Target Angular Velocity(目标旋转角速度):目标旋转角速度是一个三维向量,它定义了关节应当旋转到的角速度。 Rotation Drive Mode (旋转驱动模式):通过X&YZ轴驱动或插值驱动来控制对象自身的旋转。 Angular X Drive (X轴角驱动):设置了关节如何围绕X轴进行旋转。 Position Spring:位置弹簧力。朝预定义方向上的皮筋的拉力。 Position Damper:位置阻尼。抵抗位置弹簧力的力。 Maximum Force:最大作用力。推动对象朝预定方向运动的作用力的总和。 Angular YZ Drive (YZ轴角驱动):设置了关节如何围绕自身的Y轴和Z轴进行旋转。 Slerp Drive(差值驱动):设置了关节如何围绕局部所有的坐标轴进行旋转。 Projection Mode(投影模式):设置当对象离开其限定的位置过远时,会让该对象回到其受限制的位置。可设置为位置和旋转(Position and Rotation)以及不选择(None)。 Projection Distance(投射距离):设置当对象与其连接刚体的距离超过投影距离时,该对象会回到适当的位置。 Projection Angle(投影角度):设置当对象与其连接刚体的角度差超过投影角度时,该对象会回到适当的位置。 Configured In World Space(在世界坐标系中配置):勾选该项,所有与目标相关的数值都会在世界坐标系中来计算,而不在对象的局部坐标系中计算。 Swap Bodies(交换体):勾选该项,则应用交换刚体功能,连接着的两个刚体会发生交换。 Break Force(断开力):设置控制关节断开所需的作用力。 Break Torque(断开转矩):设置关节断开所需的转矩。 Enable Collision(激活碰撞):勾选该项,关节之间也会检测碰撞。 Enable Preprocessing(启用预处理):勾选该项,实现关节的稳定。(该项默认为开启状态) |
|
来自: failurewyy > 《工程软件》