1.9. 物理特性
一、物理简介¶
给物体赋予物理特性,可以增加动画表现的丰富性和场景的真实性。
用户可通过需要添加物理类型的组件到场景中,可添加的组件类型有角色控制器、布料、碰撞体、刚体、剖切、铰链关节和车辆。
二、物理属性及应用¶
(一)角色控制器¶
单击“组件>物理>角色控制器”,可为物体添加角色控制器;或者在细节面板的“组件”页签,单击添加组件进行添加。如图:
角色控制器的相关属性如图所示。
类型 | 说明 |
---|---|
高度 | 对应角色的胶囊碰撞体的高度。 |
半径 | 对应角色的胶囊碰撞体的半径。 |
行走速度 | 对应角色的行走速度。 |
旋转速度 | 对应角色的旋转速度。 |
倍率 | 行走速度、旋转速度的倍率。 |
步高 | 对应角色的步高的高度。 |
跳高 | 对应角色的跳跃的高度。 |
延迟起跳 | 对应角色的延迟起跳时间。 |
不使用重力 | 开启后,对应角色将不受重力影响。 |
前进 | 前进按键 |
后退 | 后退按键 |
左转 | 左转按键 |
右转 | 右转按键 |
跳跃 | 跳跃按键 |
待机动画名称 | 填写待机动画名称 |
行走动画名称 | 填写行走动画名称 |
左转动画名称 | 填写左转动画名称 |
右转动画名称 | 填写右转动画名称 |
跳跃动画名称 | 填写跳跃动画名称 |
倒退动画名称 | 填写倒退动画名称 |
动画Actor名称 | 填写动画Actor名称。 |
(二)碰撞体¶
支持碰撞体物理仿真功能。单击“组件>物理>碰撞体”;或者在细节面板的“组件”页签,单击添加组件进行添加。如图:
添加碰撞体可为物体添加碰撞体的物理特性。可模拟模型遇到障碍物的情况,提高物理模拟的实时性。相关属性如图所示。
类型 | 说明 |
---|---|
碰撞体类型 | 可选择碰撞体类型。类型包括网格碰撞体、盒子碰撞体、球形碰撞体、胶囊碰撞体。 |
启用 | 选择后启用碰撞体。 |
触发器 | 如果启用此属性,则该碰撞体将用于触发事件,并被物理引擎忽略。 |
中心 | 碰撞体在对象局部空间中的位置。 |
尺寸 | 碰撞体的尺寸。 |
(三)刚体¶
刚体模拟可用于模拟固定的运动。它会影响物体的位置和方向,并且不会使物体变形。
支持刚体物理仿真功能。单击“组件>物理>刚体”;或者在细节面板的“组件”页签,单击添加组件进行添加。如图:
添加刚体可为物体添加碰撞体的物理特性。可模拟模型遇到障碍物的情况,提高物理模拟的实时性。相关属性如图所示。
类型 | 说明 |
---|---|
线性阻力 | 移动对象时影响对象的空气阻力大小。 |
角度阻力 | 旋转对象时影响对象的空气阻力大小。 |
使用重力 | 如果启用此属性,则对象将受重力影响。 |
碰撞检测 | 用于防止快速移动的对象穿过其他对象。 |
约束 | 对刚体运动的限制。 |
抓取 | 控制是否允许抓取。 |
质量 | 刚体的质量。 |
(四)剖切¶
单击“组件>物理>剖切”;或者在细节面板的“组件”页签,单击添加组件进行添加。如图:
添加后可使用剖切功能。如图所示。
(五)车辆¶
支持车辆物理仿真功能。单击“组件>物理>车辆”;或者在细节面板的“组件”页签,单击添加组件进行添加。如图:
添加后可为物体添加车辆的物理特性。可模拟汽车在运动过程中的形态。相关属性如图所示。
类型 | 说明 |
---|---|
质量 | 车辆的质量。 |
牵引力 | 对车辆的牵引力。 |
刹车阻力 | 车辆的刹车阻力。 |
摩擦力 | 车辆对地面的摩擦力。 |
车身节点 | 需填写对应车身节点。 |
左前轮节点 | 需填写对应左前轮节点。 |
右前轮节点 | 需填写对应右前轮节点。 |
左后轮节点 | 需填写对应左后轮节点。 |
右后轮节点 | 需填写对应左后轮节点。 |
悬挂长度 | 轮胎与车身之间的悬挂距离。 |
转向幅度 | 转向时转向的角度。 |
转向速度 | 根据按下转向键的时间来算转向的程度,单位为 °/s。 |
三、物理应用实例¶
(一)车辆组件应用实例¶
以户外赛道模型为例,进行车辆组件使用示范。
1.导入“车辆组件教材案例”模型。
2.选择“Plane”平面模型,添加刚体组件。
3.在“Plane”平面模型细节栏的组件中更改刚体组件参数。
更改质量参数,参数数值为0时,模型不受重力影响,不管受多大的力都不会移动。
4.选择模型中“赛道>路肩”模型,添加碰撞体组件和刚体组件。
①添加碰撞体组件。
②更改碰撞体组件参数。
更改碰撞体类型,因为模型不规则,所以选择网格碰撞体。
③添加刚体组件。
④更改刚体组件参数。
更改质量参数,参数数值为0时,模型不仅不受重力影响,并且不管受多大的力都不会移动。
5.选择“小车”模型,添加车辆组件。
①调节车辆组件参数。
调节质量参数,参数数值越大,重量越大。可以根据实际要求添加质量,单位为kg。
调节刹车阻力参数,参数数值越大,按下刹车键(空格键)时车辆停的越快。
在车身节点、左前轮节点、右前轮节点、左后轮节点、右后轮节点处添加相对应的模型名称。
调节悬挂长度参数,参数数值越大,轮胎与车身悬挂距离越大,单位为m。
调节转向速度参数,参数数值相当于转向时转向的角度,根据按下转向键的时间来算转向的程度,单位为 °/s。
②车辆组件调节完成。
6.通过播放页面调节车辆在赛道上驾驶。
(二)刚体、碰撞体组件应用实例¶
以一组保龄球模型为例,进行刚体、碰撞体组件使用示范。
1.导入“物理系统教材案例”模型。
2.选择“底板”模型,添加碰撞体组件。
①在“底板”模型细节栏的组件中更改碰撞体组件参数。
更改碰撞体类型为“网格碰撞体”,网格碰撞体一般作为承载平面模型的碰撞体类型。
3.选择“底板”模型,添加刚体组件。
①在“底板”模型细节栏的组件中更改刚体组件参数。
更改质量参数,参数数值为0时,模型不受重力影响,不管受多大的力都不会移动。
4.选择“球台”模型,添加碰撞体、刚体组件。
①添加碰撞体组件后,在“底板”模型细节栏的组件中更改碰撞体组件参数。
模型显示为盒子状,因此碰撞体模式选择“盒子碰撞体”。
②添加刚体组件,在“底板”模型细节栏的组件中更改刚体组件参数。
更改质量参数,参数数值为0时,模型不受重力影响,不管受多大的力都不会移动。
5.选择“左侧挡板”模型,添加碰撞体、刚体组件。
①添加碰撞体组件后,在“左侧挡板”模型细节栏的组件中更改碰撞体组件参数。
模型显示为盒子状,因此碰撞体模式选择“盒子碰撞体”。
②添加刚体组件,在“左侧挡板”模型细节栏的组件中更改刚体组件参数。
更改质量参数,参数数值为0时,模型不受重力影响,不管受多大的力都不会移动。
6.选择“右侧挡板”模型,添加碰撞体、刚体组件。
①添加碰撞体组件后,在“右侧挡板”模型细节栏的组件中更改碰撞体组件参数。
模型显示为盒子状,因此碰撞体模式选择“盒子碰撞体”。
②添加刚体组件,在“右侧挡板”模型细节栏的组件中更改刚体组件参数。
更改质量参数,参数数值为0时,模型不受重力影响,不管受多大的力都不会移动。
7.选择“保龄球”模型,添加碰撞体、刚体组件。
①添加碰撞体组件后,在“保龄球”模型细节栏的组件中更改碰撞体组件参数。
模型显示为球状,因此碰撞体模式选择“球形碰撞体”。
②添加刚体组件,勾选抓取,这样保龄球才能被抓取。
8.选择“球瓶”模型,添加碰撞体、刚体组件。
①添加碰撞体组件后,在“球瓶”模型细节栏的组件中更改碰撞体组件参数。
模型显示为不规则状,因此碰撞体模式选择“网格碰撞体”。
②添加刚体组件。
9.将所有“球瓶”模型都添加碰撞体和刚体组件。
10.通过播放页面,按住ctrl键鼠标抓取保龄球模型,向球瓶模型扔去。
(三)角色控制器组件应用实例¶
以一个自带行走动画、跳跃动画、待机动画的人物模型为例,进行角色控制器组件使用示例。
1.导入“角色控制器教材案例”模型。
2.选择“角色”可以看到自带3种动画。
3.在父节点“角色控制器教材案例”中添加子节点“空物体”,并更改名字为“角色控制器”。
4.将子节点“角色”拖入子节点“角色控制器”中。
5.选择子节点“角色控制器”在属性中调节位置参数。
此处调节位置参数是因为要调节坐标轴的位置。坐标轴一般处于人物模型高度的一半,估算此人物模型高度为1.5m,因此坐标轴向上移动0.75m。
6.选择子节点“角色”在属性中调节位置和旋转参数。
此处调节位置参数是因为要调节人物模型的位置。人物模型向上移动了0.75m,为了让人物在地面上行走,因此将位置参数改为-0.75m。
此处调节旋转参数是因为人物模型现在是面对着视口区域,只有背对着视口区域才能让人物模型前进及转向操作正确。因此将旋转参数改为180°。
7.选择“角色控制器”,添加角色控制器组件功能。
①选择“角色控制器”,更改角色控制器的参数。
调节高度参数和半径参数,这两个数值是根据人物模型实际的来,整体呈现的是一个胶囊形状。半径数值是人物模型环周的半径,高度数值+2倍的半径数值≈人物模型估算高度。此处我们预估半径数值为0.35m,高度数值为0.75m。
调节步高参数,根据实际人物模型来估算每一步抬起来的高度,此处我们预估步高为0.2m。
调节延迟起跳参数,根据实际动作来估算延迟时间。
在待机动画名称处添加待机动画“idle”。
在行走动画名称处添加行走动画“Walking”。
在左转动画名称处添加左转动画“Walking”。
在右转动画名称处添加右转动画“Walking”。
在跳跃动画名称处添加跳跃动画“Jump”。
在倒退动画名称处添加倒退动画“Walking”。
在动画Actor名称处添加“角色控制器”中人物模型的名称。
②角色控制器组件完成。
8.通过播放页面调节人物在地面上行走、跳跃、爬楼梯等动作。