《Unreal Engine 4蓝图可视化编程》一2.1 通过扩展蓝图添加加速技能

2.1 通过扩展蓝图添加加速技能

开始探索FirstPersonCharacter蓝图,以使玩家在关卡中移动时拥有更多的战术选项。没做修改前,玩家还只是局限在一个速度进行移动。我们可以通过蓝图节点监听按键的动作来进行调整,将调整移动速度功能附加在CharacterMovement蓝图组件中。

2.1.1 分解角色移动蓝图

现在我们打开FirstPersonCharacter蓝图。它与第1章的Cylinder- Target_Blueprint蓝图位于同一个文件夹下。在内容浏览器中找到FirstPerson- Character,双击打开蓝图。选中事件图表标签,你将发现有许多的蓝图节点。我们首先研究的是加了Stick input注释的这一组节点,如图2.1所示。

红色的触发器节点在每帧都被调用,并将TurnRate和LookUpRate节点的值分别通过一个控制器输入传递出去。这些值通常与我们实际用的模拟摇杆的上/下、左/右轴相匹配。注意到这里只有两个输入轴触发器,却完成了向上看/向下看、向左转/向右转等4个功能,因为向上看与向下看传递的Axis Value为正值和负值,向左转和向右转也是一样,传递的Axis Value为正值和负值。

然后,两个轴向触发器的值都与一个变量相乘,表示玩家转身或向上(下)看的速率。这些值也都与world delta seconds相乘来归一化,避免了不同帧率的影响,尽管触发器会每帧都调用,但是玩家速率保持不变。3个输入引脚的乘积分别传递给Add Controller Yaw Input函数和Add Controller Pitch Input函数。这两个函数将控制器输入转化为展现在玩家摄像机中的效果。

在Stick Input蓝图节点组下方有另外一个注释为Mouse Input的节点组,它们看起来很像。Mouse Input转换鼠标移动输入,与轴向摇杆控制器不同,它直接获取数据然后将这些值直接传递给相应的Add Controller Yaw Input函数和Add Controller Pitch Input函数,而不需要像模拟输入做那些计算。

管理玩家移动功能的节点组的设置与摇杆和鼠标输入节点组有些类似。从输入轴MoveForward和输入轴MoveRight获取的轴值是由控制器或键盘输入的。与Stick input节点组一样,Movement input节点组也通过返回负的轴值来完成向后和向左运动的功能。在运动转换中很大的不同是我们需要actor移动的方向,这样移动转换可以被应用正确的方向。方向由Get Actor Forward Vector节点和Get Actor Right Vector节点获取并附加给Add Movement Input节点的World Direction输入引脚,如图2.2所示。

在新的版本中,添加了对VR支持,新增了First Person Camera、Get Forward Actor、Get Right Actor、Is Head Mounted Display Enabled等节点,如图2.3所示。

最后一个与移动相关的就是注释为Jump的节点组。它由输入动作Jump触发节点、Jump函数和Stop Jumping函数组成,输入动作Jump触发节点检测与跳起事件绑定的按键的按压和释放,并且从按键按下至抬起的时间内都有相关函数进行事件监听。

2.1.2 自定义输入控制

在FPS模板在蓝图中,绑定了一些玩家输入动作来产生一些行为,比如向前移动或跳跃。为了创建新类型的行为,我们将新的物理控制输入添加到玩家动作当中。为了改变游戏的输入设置,单击虚幻编辑器菜单的编辑按钮,找到项目设置(Project Settings)选项。在弹出的窗口左侧,引擎分类下找到输入(Input)选项并选择。

在引擎-输入(Engine-Input)菜单中的Binding(绑定)分类下,有两个部分,分别称为:Action Mappings和Axis Mappings,其中,Action Mappings监听按键和鼠标单击事件触发玩家动作;Axis Mappings针对的玩家移动和事件都有个范围,比如W键和S键同样影响Move Forward动作,但是结果不一样(控制角色向前走/向后走)。比如冲刺和变焦功能,它们有启用或不启用等两个选项,所以我们会将它添加作为Action Mappings。动作和按键映射(Action Mappings,Axis Mappings)提供了一种通过在输入行为和激活行为的按键之间插入一个中间层来方便地映射按键和坐标轴的机制。动作映射针对按键按下和释放,而坐标轴映射则针对具有连续范围的输入。

单击Action Mappings右侧的加号两次添加两个Action Mappings,将第一个重命名为Sprint,从下拉菜单中选择左Shift键与Sprint事件绑定。将第2个动作命名为Zoom,然后将它与鼠标右键绑定,如图2.4所示。

2.1.3 添加冲刺功能

上面我们讲到了输入节点接收控制器输入并将它应用到游戏角色中,既然有了基本的了解,接下来将为玩家扩展冲刺(Sprint)功能。我们需要在FirstPerson- Character蓝图中设置好一系列的节点。

首先我们需要创建触发器来激活冲刺功能。回想我们之前将冲刺动作映射到左Shift键,为了进入那个输入触发器,需在事件图表的空白区域单击鼠标右键,搜索Sprint,选择输入>>动作事件>>Sprint(InputAction Sprint)事件节点。

现在我们希望修改玩家的移动速度。如果你尝试添加一个新的节点,在搜索框内搜索speed并且勾选情境关联(context-sensitive),那你将仅仅只能找到检测最大速度并校验是否超过最大速度的节点,而并不能设置最大速度。所以,我们需要检索到一个值,从FirstPersonCharacter附加到actor的角色运动组件上。查看组件面板并选中CharacterMovement(继承)。之后,细节面板将会出现一系列的变量,如图2.5所示。

在这个变量列表中,你可以找到Max Walk Speed。这个变量的值定义了玩家可以达到的最大移动速度,并且它需要成为冲刺(Sprint)函数的目标。我们希望从角色移动组件中获取这个值并添加到事件图表中。为了做到这个,在组件面板选中CharacterMovement(继承)组件,将它拖曳到事件图表中,放置在左Shift节点附近。这个操作将生成一个Character Movement节点,如图2.6所示。

从Character Movement节点的输出引脚拖出引线至事件图表的空白区域,确保勾选了情境关联,在搜索框内键入“walk speed”,找到设置Max Walk Speed,将输出动作Sprint节点的Pressed输出执行引脚与设置Max Walk Speed节点的输入执行引脚连接,使得按下左[Shift]键的时候能够修改最大移动速度。最后,在输出动作Sprint节点中改变Max Walk Speed的值,将默认数值由0.0改为2200。

我们同样需要确保玩家能够在左[Shift]按键抬起的时候减速。为了做到这个,再次从Character Movement节点的输出引脚拖出引线,然后在搜索并添加另一个设置Max Walk Speed节点。这次连接输出动作Sprint节点的Released输出执行引脚和新的设置Max Walk Speed节点的输入执行引脚,然后将Max Walk Speed的默认值0.0改为600。为了养成良好的添加注释的习惯,选中本节我们添加的所有节点后,按下[C]键(或者单击鼠标右键,选择注释组>>从选中项中创建注释,将注释命名为Sprint,如图2.7所示。

现在编译、保存,最小化蓝图后在UE4编辑器中按下播放按钮进行测试。你将会注意到当你在移动过程中按下左[Shift]按键时,玩家角色显著地提高了速度。

时间: 2024-12-31 19:00:24

《Unreal Engine 4蓝图可视化编程》一2.1 通过扩展蓝图添加加速技能的相关文章

《Unreal Engine 4蓝图可视化编程》一第2章 升级玩家的技能

第2章 升级玩家的技能 Unreal Engine 4蓝图可视化编程 在本章中,我们将通过修改玩家控制器(player character)蓝图,来扩展在第1章中创建的射击交互的核心部分.FPS模板中玩家控制器的蓝图--特别是当它与上一章相对简单的目标圆柱体的蓝图比较时--乍一看很复杂.我们将会分析玩家控制器蓝图并将它分解为很多部分,弄明白每个部分的功能,以及它们组合在一起时能够控制角色和射击的原因. 我们可以很容易且快速地使用现有的资源来照着搭建这个蓝图,甚至不需要花时间去思考它是如何完成这些

《Unreal Engine 4蓝图可视化编程》一第1章 使用蓝图进行对象交互

第1章 使用蓝图进行对象交互 Unreal Engine 4蓝图可视化编程 当开始开发一个游戏时,你想到的第一步应该是建立一个原型.幸运的是,虚幻引擎4和蓝图让基本的游戏功能实现起来比以往任何时候都更容易.这样用户便可以很快地开始测试自己的想法.为了让大家熟悉虚幻编辑器(Unreal Editor)和蓝图(Blueprint),我们将使用一些自带的资源和蓝图建立游戏玩法机制. 本章我们将学习以下内容. 创建新的项目和关卡. 在关卡中置入对象. 通过蓝图改变对象的材质. 使用蓝图编辑器链接所有的蓝

《Unreal Engine 4蓝图可视化编程》一导读

前 言 Unreal Engine 4蓝图可视化编程 游戏引擎(例如虚幻引擎4)作为强大的商业游戏的制作工具,越来越受传统游戏工作室以外的新老游戏开发者所欢迎.虚幻引擎为过去10年中发布的许多最受欢迎的控制台和PC游戏提供了动力,最新版本的虚幻引擎尽可能地包含了开发者所需的工具.这些工具中最具变革性的是蓝图可视化编程系统,其允许非专业程序人员创建和实现游戏机制.用户界面(User Interface,UI)和交互. 本书采用分步方法,指导读者使用可视化的蓝图节点构成蓝图行为,并将它们链接在一起以

《Unreal Engine 4蓝图可视化编程》一1.7 小结

1.7 小结 本章通过UE4蓝图创建了第一个原型,迈出了游戏开发的第一步! 在本章中,利用FPS模板创建了一个工程和一个初始关卡.然后设置了一个目标,通过改变自身颜色来响应子弹的射击.最后,设置了一个蓝图,能够快速地创建很多移动的目标.读者在本章所学到的这些技巧,将为后续章节创建更加复杂的交互性行为打下扎实的基础. 你或许会希望花更多的时间来调试游戏原型,包括布局.目标移动速度.由于我们将继续游戏开发,后续很多时候都在候选效果面前徘徊并作出选择.蓝图可视化编程最好的地方就是可以快速地让用户测试自

《Unreal Engine 4蓝图可视化编程》一1.1 创建项目和关卡

1.1 创建项目和关卡 在开始创造游戏元素之前,我们需要创建一个项目,这个项目将包含游戏的内容.为了获取虚幻引擎4(Unreal Engine 4,以下简称UE4),并开始设定我们的项目,需要打开Epic Games launcher,通过它便可以从UE4官网下载UE4引擎.单击Epic Games launcher的UE4标签.如果你是第一次在你的计算机中使用虚幻引擎,你将会看到灰色的未安装(Not Installed)按钮.在Launcher的左侧,会看到一些选项. 工作标签可以让你选择已经

《Unreal Engine 4蓝图可视化编程》一1.5 制作移动标靶

1.5 制作移动标靶 既然我们有目标来响应玩家的射击,则可以添加一些挑战性的东西来让项目像一个游戏,一个简单的方法是为目标制作移动的标靶.为了完成这个功能,首先我们需要将目标actor是设为可移动的,然后需要通过蓝图设置逻辑.这样便可以控制目标移动.我们的目标是使目标圆柱体在关卡中来回移动. 1.5.1 改变actor的移动性和碰撞 为了让目标移动,首先需要改变actor的移动性(Mobility)为可移动(Moveable).这个操作将允许对象在玩游戏时可以被操纵.在UE4编辑器的世界大纲视图

《Unreal Engine 4蓝图可视化编程》一2.2 制作瞄准镜效果

2.2 制作瞄准镜效果 现代FPS的核心元素就是以瞄准镜的形式将FOV(field of view,视野)呈献给玩家.这是一个很重要的因素,给游戏带来了精确感和控制感.现在将这一功能的简化版添加到项目中. 在事件图表中靠近Mouse input节点组的空白区域单击鼠标右键,搜索输入动作Zoom(InputAction Zoom)触发器节点并添加.我们希望修改FirstPerson- Camera组件中的FOV值,于是到组件面板中找到FirstPersonCamera并将它拖入事件图表中. 从Fi

《Unreal Engine 4蓝图可视化编程》一2.3 添加音效和粒子效果

2.3 添加音效和粒子效果 既然我们已经拥有了更好的玩家移动和射击属性,将我们关注的点转向敌方目标.现在的效果是射击目标圆柱体后圆柱体会变成红色.然而,目前没有任何可以被玩家完全摧毁的目标. 我们可以通过添加蓝图逻辑来添加更多的与目标之间的交互,比如在击中目标两次及以上时销毁物体,同时增加玩家的奖励,一旦目标被摧毁,就产生一个令人满意的声音和视觉效果. 2.3.1 为目标状态添加分支 我们需要保证CylinderTarget蓝图中有使目标圆柱体的状态变化逻辑.打开Blueprints文件夹中的C

《Unreal Engine 4蓝图可视化编程》一1.4 创建第一个蓝图

1.4 创建第一个蓝图 现在游戏世界中放置了一个圆柱体,在当圆柱体被击中时,我们需要为圆柱体赋上前一节创建的材质.最后一个交互是游戏逻辑判断圆柱体被选择,然后将圆柱体的材质改变为红色材质.为了创建这一行为并添加到圆柱体上,我们需要创建一个蓝图.创建蓝图的方式有很多种,但是为了简便,我们可以创建蓝图并直接添加给圆柱体.为此,确保在场景中选中了CylinderTarget对象.单击细节面板顶端的蓝色蓝图/添加脚本(Blueprint/Add Script)按钮,将可看到路径选择窗口. 在这个项目中,