Blender游戏引擎教程:生命条HP【2024-11-02】 【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-2024 gotopie.com