Blender学堂   

【首页】

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


【2024-04-19】 【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-2024 blender.gotopie.com