蓝图大师挑战赛【笔记二】

一、虚幻引擎编辑器基础——Actor和蓝图

在关卡蓝图中,设置一个径向力的冲量效果。蓝图思路:

找到径向力,设置径向力的引用。设置绑定键并把它连接到冲量上,建立发射器,设置播放音效或粒子效果。

测评:

在模拟运行中保存有“模拟物理”的对象只会设定该对象在项目运行时的位置,并且无法在编辑器中更改。

关卡蓝图是默认创建的独特蓝图,并且可以使用关卡中所有的Actor实例。

你可以在Actor的“选择”菜单中通过“选择匹配(所有类)”来选择同一类的所有Actor。

你可以从哪里进入关卡蓝图?

  • 工具栏中“蓝图”的下拉菜单。

你可以利用以下哪个快捷键组合临时修改关卡中Actor的 锚点

  • Alt + 鼠标中键

二、蓝图运行时的保存和加载

如何创建游戏存档系统,让玩家能够保存和加载他们的游戏进度。

创建游戏存档对象,首先我们创建一个蓝图类,我们希望“保存游戏”作为一个父类。

 然后我们在蓝图中创建一个浮点变量存储玩家的血量,我们想要将退出修改为退出并保存。我们找到对应的蓝图。

创建保存游戏节点,然后设置相应对象为SG_Basic,然后拖出设置玩家血量(相应的获得Player Health)

 但是我们还缺少加载数据,回到Custom Character,断开添加到视口的节点,在这里我们将保存到硬盘里的数据加载出来,并在游戏开始时,展现在HUD中:

首先我们Load Slot,注意到我们这里不能从return value中得到玩家生命值,这是因为这里Return Value只是个通用的游戏存档,它不是我们创建的那个特定的基本游戏存档,我们需要转换一下然后获取数值。然后读取数据,设置玩家血量:

 这里可能会存在一个问题,就是我们读取的数据可能不存在,我们在load前添加一个“游戏存档存在”节点,添加一个分支,如果为真就读入数据。如果为否,就执行之前的操作。

(三)保存和加载辅助选项

在之前的选项系统中,我们的选项菜单有很多调整选项,但是这些都没有保存。当再次运行游戏时,又回到了默认设置。

同样的,我们也创建一个Save的蓝图,在里面我们创建一个变量,类型为Optiion Struct。

进入到GI_OurGame中,我们创建保存。我们先创建一个自定义事件,拖出一个保存游戏(对象为刚刚的变量),然后设置Option,保存到Slot:

然后我们需要一个方法来加载,这个过程和刚刚的差不多: 

 然后我们添加如果存档不存在时的情况。我们最后进入GM_OurGame,这是我们的游戏模式,这里做的事就是在一定延迟后模拟屏幕,然后更新用户界面。现在我们希望它能加载已经保存的选项,我们在游戏实例里有代码。

首先我们获得游戏实例,然后将其转换为GI_OurGame,然后读入数据即可。

 我们接下来添加一些接口,来帮助我们测试,进入UMG_OptionMenu的事件图表。我们在最后获得游戏实例,然后转换,保存选项,再将其连起来。

测评:

你正在尝试首次制作一个的游戏存档对象来存储变量,你会使用哪个节点?

  • 创建游戏存档对象

如果你想把游戏存档对象保存到存储设备,你可以使用哪个节点? 

  • 将游戏保存到插槽

(四)设置对象

我们将游戏中已经收集过的收藏品,在游戏再次加载时不会出现。简单的一个方法,是添加ID。我们可以在收藏品蓝图中,添加新变量ID,字符串形式,给它一个默认值。

但是如果我们的id过多时怎么办?我们也可以尝试做一些自动化的东西,我们要利用Construction Script,我们双击进入。这是当构建对象时运行的内容,或者我们在编辑器中操作时,通常只激发一次。我们可以用它来生成唯一的标识符。

首先我们添加Guid节点,然后设置ID变量,这样当我们每次移动Actor时,会获取一个新的Guid

 我们可以对其进行升级,当没有ID时才会创建,否则ID会持续的变化。获取ID,然后用Equal节点判断一下即可。

 在这个示例中,我们在拾取结束后,要销毁Actor。一个简单的处理方法是使用蓝图接口,它能在运行时改变物体的状态。

我们创建一个蓝图接口。将函数名修改为GetID,并添加一个新的参数,字符串类型。我们再创建一个函数“修改状态”,我们会调用它来修改物品状态。

我们回到物品蓝图中,在Class Setting下,添加BPI interactable,然后编译保存。这样我们就在左边就可以找到刚刚定义的两个接口。

我们在GetID的接口里,添加ID获取:

 对更改状态,我们可以右击Implement Event,进入之后添加销毁actor节点:

三、游戏设计师的蓝图与游戏玩法

课程会介绍如何创建自己的动作:冲刺和蹲伏。我们还会学习UMG编辑器、Sound Cue编辑器、声音、粒子效果以及虚幻引擎中的其它功能。

这些内容大部分已经在前面提到过,这里我们只补充没提到的内容,重复内容不再记录。

游戏玩法设计师的职责:

  • 为新的游戏物品和系统提出概念(重点,是概念)
  • 寻找当前可改进的空间
  • 编写并维护设计文件
  • 能够与团队流畅协作,迅速完成迭代。

创建蹲伏动作,除了绑定按键外,可以通过更改摄像头的位置,更改按键后的行走速度,来达到目的。然后通过时间轴来平滑蹲下和起身的动作。

但是这样没有改变胶囊体的位置,没办法蹲伏通过障碍物。所以还需要一个事件来更新胶囊半体高度,通过设置胶囊高度节点。

你想要在关卡中使用多个后期处理体积来调整饱和度。体积有些部分重叠了。确保启用正确体积的最简单的方式是什么?

  • 使用“优先级”设置

创建父蓝图可以节约时间,我们可以创建大门的父项:

我们添加两个静态网格体(门),然后进入事件图表中,添加两个自定义事件,开门和关门,添加时间轴平滑。然后保证门的旋转的坐标,使用设置相对旋转节点 。

这样我们可以创建子蓝图,在这里可以加入一些重叠开门(添加碰撞组件)或其他互动开门方式。

进入门的一定范围后开门,离开关门:

 压力板开门:

 注意下面的GEt要设置成1,如果是0,它就可以获取自身。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部