π导航  


【首页】

Blender游戏引擎教程:生命条HP


【2021-04-09】 Blender学堂】


浏览图片
Blender
游戏引擎教程


浏览图片

1.  渲染引擎: Blender游戏

 Info menu >> Engine box >> Blender Game

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

2.  视口着色:纹理

3D View menu >> Viewport Shading box >> Texture

注:

纹理视口着色使用添加的纹理渲染游戏对象。

3.  材质着色: GLSL

Properties menu >> Render button >> Shading tab >> GLSL button

注:

也适用于材质着色:多重纹理

4.  启用GLSL设置

Enable Shaders

Enable Shadows

Enable Lights

Enable Color Management

Enable Ramps

Enable Nodes

Enable Extra Textures

注:

GLSL设置仅在选择“渲染引擎:Blender游戏”时出现。

5. 添加一个新场景

Info menu >> Scene box >> + (plus) button >> New

注:

新场景将用作覆盖场景

生命条将位于覆盖场景中

6. 渲染引擎: Blender游戏

Info menu >> Render Engine box >> Blender Game

7. 给新场景一个独特的名称

Info menu >> Scene box >> Name

注:

我们将其命名为HUD

8. 将摄像头添加到名为hud的场景中

3D View menu >> Add >> Camera

9. 在相机前面添加平面

3D View menu >> Add >> Mesh >> Plane

注:这个平面将成为生命条。

10.给平面一个唯一的名字

Properties menu >> Object button >> Name box

注:我们把平面命名为: Health_Bar

11. 在编辑模式下调整生命条大小

3D View >> Select Health_Bar

3D View menu >> Mode box >> Edit Mode

 

3D View menu >> Mesh >> Transform >> Scale

注:

将生命条的大小调整为您希望生命条的大小

平面X轴是生命条的长度。Y轴是高度。

使用X键仅在X轴上缩放

使用Y键仅在Y轴上缩放

12.添加一个材质到Health_Bar

 Properties menu >> Materials button >> New

13.设置材质颜色

 Properties menu >> Material button >> Diffuse tab >> Color box

注:

这是你生命条的颜色

14.将材质设置为无阴影

 Properties menu >> Material button >> Shading tab >> Shadeless box

注:

叠加场景中没有灯光。将“材质”设置为“无阴影”以查看颜色。

15.选择左侧顶点

3D View >> Select Health_Bar

3D View menu >> Mode box >> Edit Mode

3D View menu >> Select >> Left side vertices

注:

缩放X轴上的生命条,更改生命条的长度。

使用对象的中心位置进行缩放。

16. 将三维光标移动到选定顶点

3D View menu >> Mesh >> Snap >> Cursor to Selected

17. 将生命条对象中心移动到三维光标

3D View menu >> Mode box >> Object Mode

3D View menu >> Object >> Transform >> Origin to 3D Cursor

18.  将当前动画帧设置为100帧

Timeline menu >> Current Frame box >> 100

注:

为生命条制作动画,展示玩家的健康状况。

 

在0帧时,它的状况将为0%健康。在100帧时,它将是100%健康。

19.为100%健康处添加动画关键帧

3D View >> Select Health_Bar >> Mode box >> Object Mode

3D View menu >> Object >> Animation >> Insert Keyframe >> Scaling

20.将当前动画帧设置为0帧

Timeline menu >> Current Frame box >> 0

21. 在X轴上将Health_Bar缩放为0

Properties menu >> Object button >> Transform >> Scale

X: 0.000

22. 为0%生命添加动画关键帧

3D View menu >> Object >> Animation >> Insert Keyframe >> Scaling

23. 为操作指定一个唯一的名称

Dope Sheet >> Mode box >> Action Editor

 

Action Editor >> Name box

注:

我将我的行动命名为:Action_Health

当我们插入动画关键帧时,该操作自动创建。

24. 将动作F曲线插值模式设置为线性

Graph Editor menu >> Mode box >> F-Curve

Graph Editor menu >> Key >> Interpolation Mode >> Linear

注:

线性插值模式:生命条与玩家的健康比例为1:1

25.  在文本编辑器中打开healthbar.txt

Text Editor >> Text >> Open

注:

healthbar.txt是一个简单的python脚本,它读取消息的正文。

一条消息将把玩家的健康状况从主场景发送到覆盖场景。

下载healthbar.txt

该脚本可作为文本文件下载,因为某些Internet提供商不允许将该脚本作为python文件下载。

26.  重命名为HealthBar.py

Text Editor menu >> Name box

注:

您不必重命名它

您可以将其保留为healthbar.txt

27.将消息传感器添加到生命条

Logic Editor >> Sensors >> Add Sensor >> Message

 

Subject: Update_Health_Bar

注:

信息传感器将使用主题更新生命条收听信息。

连接到播放器(在主场景中)的消息执行器将发送该消息。

28.  添加一个Python控制器

Logic Editor >> Controllers >> Add Controller >> Python

 

执行方法:脚本

注:

您需要一个python控制器来运行python脚本

29. 选择名为healthbar.py的python脚本

Logic Editor >> Controllers >> Python Controller

Script >> Script List >> HealthBar.py

注:

之前,我们在文本编辑器中打开过healthbar.py

在游戏引擎的python脚本列表中添加了healthbar.py

30. 添加动作执行器

Logic Editor >> Actuators >> Add Actuator >> Action

31.将3个游戏属性添加到生命条

Logic Editor menu >> View >> Properties

Properties tab >> Add Game Property button

注:

我们将添加3个游戏属性,这些属性将被python脚本用作变量。

一个用于传感器名称。另一个用于执行器名称。最后一个是为了健康。

这样我们就可以为游戏中的所有生命条使用一个(并且只有一个)python脚本。

32. 第一个游戏属性

Logic Editor >> Properties tab >> Property Name: sen

Logic Editor >> Properties tab >> Property Type: String

Logic Editor >> Properites tab >> Property Value: Message

注:

属性名必须命名为sen(用于传感器)。

HealthBar.py中的代码查找名为sen的字符串游戏属性。

属性名是消息传感器的名称。默认消息名

33. 第二个游戏属性

Logic Editor >> Properties tab >> Property Name: act

Logic Editor >> Properties tab >> Property Type: String

Logic Editor >> Properites tab >> Property Value: Property

注:

属性名必须命名为ACT(用于执行器)。

HealthBar.py中的代码查找名为act的字符串游戏属性。

属性名是操作执行器的名称。设为默认的属性名称

34.第三个游戏属性

Logic Editor >> Properties tab >> Property Name: Health

Logic Editor >> Properties tab >> Property Type: Integer

Logic Editor >> Properites tab >> Property Value: 100

注:

属性名必须命名为Health。

HealthBar.py中的代码查找名为health的整数游戏属性。

35. 动作执行器类型: 属性

Action Actuator >> Action Type >> Property

36. 选择动画关键帧动作

Action Actuator >> Action List box>> Action

注:

命名为关键帧动作:Action_Health

37. 选择名为Health的属性

Action Actuator >> Action List box>> Property

38. 连接逻辑块

Always Sensor >> Python Controller >> Action Actuator

注:

连接逻辑块,从一个逻辑块输出到另一个逻辑块输入拉一根“线”

39. 将场景从HUD切换到保存有玩家的场景 

Info menu >> Scene box

注:

本教程中, Player位于Scene的场景中

40. 添加一个Always传感器

3D View >> Select Player

 

Logic Editor >> Sensors >> Add Sensor >> Always

 

TRUE Level Triggering deactivated

 

FALSE Level Triggering deactivated

注:

Player明为Fred

Always传感器载入名为HUD的覆盖场景

它将使用玩家当前的健康状态初始化生命条。 

42. 给玩家添加一个场景执行器

Logic Editor >> Actuators >> Add Actuator >> Scene

Mode: Add Overlay Scene

 

Scene: HUD

43. 连接逻辑块

Always Sensor >> And Controller >> Scene Actuator

注:

连接逻辑块,从一个逻辑块输出到另一个逻辑块输入拉一根“线”

44. 给玩家添加一个游戏属性

3D View >> Select Player

Logic Editor >> View >> Properties

Properties tab >> Add Game Property button

45.游戏属性

Logic Editor >> Properties tab >> Property Name: Health

Logic Editor >> Properties tab >> Property Type: Integer

Logic Editor >> Properites tab >> Property Value: 100

注:

游戏属性命名为Health

起始值为100 

46. 给玩家添加一个属性传感器

Logic Editor >> Add Sensor >> Property Sensor

Logic Editor >> Property Sensor >> Evaluation Type: Changed

Logic Editor >> Property Sensor >> Property: Health

注:

玩家属性"Health"将被检测

当玩家生命值变化时,触发属性传感器 

47.再给玩家添加一个And控制器

Logic Editor >> Controllers >> Add Controller button >> And

48.给玩家添加一个消息执行器

 Logic Editor >> Actuators >> Add Actuator >> Message

 

To: Health_Bar

Subject: Update_Health_Bar

Body: Property

Property: Health

注:

每当玩家健康状况发生变化时,消息执行器将向健康栏发送信息。

在叠加场景HUD中,小拍戏传感器由主题更新生命条触发。

玩家的健康是消息的主体。

49. 连接第一个And控制器到消息执行器

 And Controller >> Message Actuator

注:

连接第一个And控制器被连接到一次运行Always传感器

当场景加载时,将第一个And控制器连接到消息执行器,初始化玩家的健康状况。

50. 连接逻辑块

 Property Sensor >> Second And Controller >> Message Actuator



                

copyright©2018-2021 gotopie.com