UE4官方课程笔记
前言,该笔记是 官方教材,游戏设计师的蓝图与游戏玩法 中的一些蓝图和实例。
包含:角色的移动:冲刺,蹲伏,声音粒子特效,事件互动开关门等,细致且全面,是非常好的教材。
在资料中,门没有碰撞,可以在静态网格体中,双击,添加简单盒体碰撞。(在后续课程中会说明,如何解决这个问题。)
一,玩家相关
1,设置移动。
- 1,框选蓝图节点,按住c则可添加注释。
- 2,要将更改应用到具体的角色上,需要事件开始运行actor。
2,使用鼠标滚轮设置不同的移动速度,并将其输出字符串。
结果输出:
3,添加冲刺
1,在设置——项目设置——输入——添加一个操作映射 Sprint
2, 绑定按键。
3,设置两个变量,一个是正常速度,另一个是冲刺速度,最后判断是否冲刺
4,添加蹲伏
1,添加动作映射Crouching
2,添加时间轴
3,设置时间轴的长度为0.5s【蹲伏过度时间】
4,添加浮点型轨道,使其曲线变得平滑。
5,设置相机高度,实现蹲伏视角(没有必要,相机在胶囊体下,只要设置胶囊体即可)。
6,设置胶囊体高度,进一步使其高度降低。
7,解决一些逻辑(使用分支)
- 当蹲伏时不能冲刺,如果冲刺将自动解除蹲伏状态。
- 当冲刺时,蹲伏,则自动解除冲刺状态。
5,加血条和伤害测试
1,添加一个浮点型变量,用来表示生命值。
2,按住P即可减少血量。
3,如果血量为0,则重启游戏。
6,使用插件蓝图(控件),添加血条显示。
1,在内容浏览器中右键——用户节目——控件蓝图,命名为(WB_Healtbar),双击打开即可编辑。
2,添加一个水平盒体,然后加入文本和进度条。
3,进入图表,添加自定义事件,设置百分比,如果血量低于50则进度条显示为红色,如果不是则显示为绿色。
4,在开始运行蓝图中,创建控件,制订class为我们之前船舰的WB_Healtbar,然后添加到试图。
5,应用Healthbar控件,在Create WB Healtbar Widget 返回值提升为变量,获得引用WB_Healthbar,即可设置更新。
6,回到调试生命值。更新生命值
7,效果
7,后期处理体积(PostProcessVolume)
当角色受伤时,场景变暗。
1,添加PostProcess(后期处理组建),优先级设置为1,混合权重设置为0(设置场景中应用的比例)
2,随着生命值的降低,场景中饱和度随之降低。混合权重到0时,饱和度也到0,设置PostProcess。
3,添加和生命值的互动。
4,限制映射范围,表示,当生命值高于70,则混合权重为1,当生命值低于20时,混合权重输出为0,此时饱和度为0
5,效果。
二,场景相关
1,创建大门父项。
在蓝图文件夹,创建Actor蓝图类,BP_Door_Parent
创建静态网格体组件,设置静态网格体。
添加事件列表
设置时间轴,开门时间0.75s。
- 设置更新旋转角度,勾选最近path防止旋转。
2,创建门子蓝图,并添加盒体碰撞。
调整门的宽度。在父蓝图上,右键创建子类、
在子蓝图中,添加盒体碰撞,调整大小。设置重叠碰撞。
在事件中,创建重叠事件。
设置蓝图
将门子蓝图放入场景。
3,与其它Actor互动开门。
目的:创建一个压力板Actor,当有东西在其上时,门会打开。
创建Actor,和上面的几个步骤一致。
获得Door的父引用,创建一个变量,设置可编辑性。
编辑重叠事件。
当有actor与其重叠时,则开门。
当玩家或者其他actor离开时关门。重叠对象返回的数组第一个actor为自身,故需要设置为1(其它actor).
加入场景,为堆积物设置重叠事件。
设置压力板引用。
效果
4,互动开门
- 添加一个操作映射,绑定到E键
- 获取玩家控制器,处理所有玩家输入。当玩家与门进行重叠时,则触发启用输入,离开时禁用输入。
- 当用户输入时,则可以进行轮换开门和关门动作(Flip Flop)。
- 在视口中,添加文本组件,用于提示。设置渲染为游戏中隐藏。
效果:
5,使用蓝图接口开门
创建蓝图接口BPI_Interaction,创建一个函数,“Interact”
创建一个子蓝图。
设置接口,右键实现方法,实现和4中的互动方法。
回到第一人称视角蓝图中。
将门加入。
设置通道监测球体(从一个点,向向量方向,画出一条线,碰到actor则可监测。)整个流程如下:
三,在场景中放入音效和粒子效果。
1,放置声音和效果。
在StarterContext中,放置声音和效果。当靠的越近声音越大。
2,在蓝图中放置声音和效果。
当子弹射击到物体表面时,产生爆炸。
- 打开BP_FirstPersonProjectile蓝图类,修改在碰撞配置之后添加音效和粒子系统,如果没有碰撞,则在延迟3s后,产生碰撞。
效果:
2,在蓝图中放置声音和效果。
当子弹射击到物体表面时,产生爆炸。
- 打开BP_FirstPersonProjectile蓝图类,修改在碰撞配置之后添加音效和粒子系统,如果没有碰撞,则在延迟3s后,产生碰撞。
效果: