狗吐派文   

【首页】

Blender游戏引擎教程:给车辆添加碰撞盒


【2024-04-22】 Blender学堂】


A、我的汽车模型

2706个多边形

浏览图片

注:当你的车与另一个物体相撞时,碰撞力是为每个多边形计算的。
 
大量的多边形意味着大量计算。这会影响游戏的帧率。

B、我的碰撞箱

68多边形

浏览图片

注:碰撞箱是一个简单的汽车模型。
多边形越少,每次碰撞所需的计算就越少。
这意味着游戏的帧速率更快。

C、更换网格执行器

浏览图片

本教程使用“替换网格”执行器将碰撞箱网格替换为赛车网格。
它不会替换碰撞边界。

1.  渲染引擎: Blender游戏
 Info menu >> Engine box >> Blender Game

注:只有当选择了Blender Game渲染引擎时,菜单才可用。

2.  创建车辆 

注:游戏引擎车辆包装器使用车辆的X轴表示宽度,Y轴表示长度,Z轴表示高度。

3. 为您的车辆创建一个低多边形碰撞框

注:游戏引擎车辆包装器使用车辆的X轴表示宽度,Y轴表示长度,Z轴表示高度。

4. 检查车辆比例
Vehicle selected
3D View menu >> View >> Properties
 
Properties shelf >> Transform tab >> Scale

注:除非有充分的理由,否则比例应始终为1.0

5. 将车辆比例设置为1.0。

将所有轴上的比例设置为1.0(如果尚未设置)。X轴、Y轴和Z轴

6. 检查碰撞盒比例
Vehicle selected
3D View menu >> View >> Properties
 
Properties shelf >> Transform tab >> Scale

注:除非有充分的理由,否则比例应始终为1.0

浏览图片

7.将碰撞盒比例设置为1.0。

将所有轴上的比例设置为1.0(如果尚未设置)。X轴、Y轴和Z轴

浏览图片

8.定位车辆和碰撞盒对象中心 
Collision Box selected:  Edit mode
Select all verts
Move mesh
Vehicle selected:  Edit mode
Select all verts
Move mesh
 
注:车辆包装器使用对象中心作为重心。
替换网格执行器使用对象中心来定位替换网格

浏览图片

9.添加一个传感器
Select the Collision Box
Logic Editor >> Sensors >> Add Sensor >> Always
 
设置为运行一次(禁用真触发和假触发)
注:本教程使用始终传感器设置运行一次

浏览图片

浏览图片

10. 添加一个控制器
 Logic Editor >> Controllers >> Add Controller >> AND

注:在本教程中,使用的是And控制器

11. 添加编辑对象执行器
Logic Editor >> Actuators >> Add Actuator >> Edit Object

注:替换网格是编辑对象执行器的一部分。
更换网格执行器必须位于更换网格的对象上。

12.  选择编辑对象:替换网格
Edit Object selection box >> Replace Mesh


13.  从列表中选择替换网格
 Logic Editor >> Actuators >> Replace Mesh Actuator
 
Mesh List box >> Select replacement mesh

14.  设置Gfx按钮
Logic Editor >> Actuators >> Replace Mesh Actuator
 
启用gfx按钮

注:
gfx按钮:将碰撞框的网格替换为车辆模型的网格

15. 禁用Phys按钮
Logic Editor >> Actuators >> Replace Mesh Actuator
 
禁用Phys按钮
注:
Phys按钮:将碰撞盒的物理替换为车辆模型的物理。

16. 设置碰撞框的物理类型
3D View >> Select Collision Box
 
Properties menu >> Physics button >> Physics tab
 
Physics Type: Rigid Body
 
Actor checkbox: Enabled
 
No Sleeping checkbox: Enabled
 
Attributes >> Mass: 200

注:
Rigid Body: 移动且旋转
 
Static: 不移动
 
Dynamic: 移动但不旋转
 
No Collision: 不与其他游戏对象冲突
Note:
Actor enabled: 作用于其他游戏对象并与之反应
 
No Sleeping checkbox enabled: 这个游戏对象的物理永远不会被禁用。
 
No Sleeping checkbox disabled: 此游戏对象的物理在一定程度的不活动后被禁用。

17. 设置碰撞边界
Properties menu >> Physics button >> Physics tab
 
Collision Bounds checkbox enabled
 
Bounds: Convex Hull
 
Margin: 0.02

注:
Bounds: 游戏引擎用于计算碰撞的方法。
 
Box:使用简单的框计算碰撞.
 
Triangle Mesh: 将网格的每个多边形分解为三角形。使用三角形计算碰撞。
 
Convex Hull: 创建最小数量的平面以覆盖网格。使用创建的平面计算碰撞。

注:
Margin:游戏对象之间允许的最小间隙

18. 连接逻辑块
 Always Sensor >> And Controller >> Replace Mesh Actuator

注:连接逻辑块,从一个逻辑输出拉线到另外一个逻辑输入。

19. 启动游戏引擎

Info menu >> Game >> Start Game Engine


copyright©2018-2024 wenxue.gotopie.com