【UE开发】ACT Game Template Demo

1.Demo介绍

        1.游戏:玩家以第三人称视角控制角色与敌人进行战斗。拥有血量的角色组合使用单击,连击,重击,冲刺,闪避,避退为主与场景中拥有血量的小兵和精英怪进行攻击,直至血量为0。

        2.附件

                1.工程源码:https://github.com/CNEarly/ActGameTemplateDemo

                2.演示视频:ActGameDemo演示_单机游戏热门视频

        3.内容

                1.移动:使用WSAD键控制角色前后左右移动,ALT键控制角色慢走,鼠标控制玩家视角转动(角色左右移动玩家视角会轻微转动)

                2.冲刺:使用Q键和E键控制角色向前向后冲刺(用于规避伤害,期间碰撞到的敌人会被撞开)

                3.翻滚:使用SHIFT键控制角色进行向前翻滚(用于追击敌人)

                4.轻击:使用鼠标左键进行轻击

 

                5.重击: 使用鼠标右键进行重击

                6.连击:连击鼠标左键进行轻连击

                7.重连击:连击鼠标左键加鼠标右键进行重连击

                8.受伤:角色收到攻击进入受伤状态

                9.阵亡:角色血量为0进入阵亡状态

                10.BOSS:精英怪相比小兵血量更多且会使用连击

2.人物实现

        1.角色蓝图

                1.角色类构造:角色蓝图继承自character基类

                2.角色类组件构造:①胶囊体组件:碰撞

                                                ②骨骼网格体组件:角色网格体

                                                ③静态网格体组件:武器网格体

                                                ④摄像组件:弹簧臂和摄像机

                                                ⑤移动组件:移动

                3.角色类参数配置:①角色类取消使用控制器旋转yaw

                                                ②胶囊体组件开启碰撞

                                                ③骨骼网格体组件添加网格体→取消碰撞

                                                ④静态网格体组件添加网格体→开启碰撞→绑定骨骼网格体插槽

                                                ⑤弹簧臂组件开启使用pawn控制旋转

                                                ⑥移动组件开启将旋转朝向运动

                4.角色变量:①移动输入(向量)

                                     ②获取移动输入(布尔)

                                     ③最后一次旋转输入(旋转体)

                                     ④阵亡(布尔)

                                     ⑤当前血量(浮点)

                                     ⑥受伤(布尔)

                                     ⑦检测类型(数组)

                                     ⑧最大血量(浮点)

                                     ⑨延缓时间(布尔)

                5.角色函数:①计算移动输入变量:通过移动输入变量和获取移动输入变量设置最后一次旋转输入变量

                                     ②设置旋转动画:通过最后一次旋转输入变量设置角色旋转

                6.角色事件:①阵亡事件:播放阵亡蒙太奇→显示游戏阵亡UI

                                     ②Tick事件:进行计算移动输入变量

                                     ③发出伤害事件:生成对象的多球体检测→检测到AI→对AI应用伤害→AI旋转朝向角色

                                     ④接收伤害事件:角色接收到伤害→阵亡变量为假→设置受伤变量为真→血量计算→播放受伤蒙太奇→连击重置

        2.控制器蓝图

                1.控制器类构造:控制器蓝图继承自PlayerController基类

                2.控制器变量:①攻击(布尔)

                                         ②攻击蒙太奇(数组)

                                         ③攻击计数(整数)

                                         ④记录攻击(布尔)

                                         ⑤翻滚(布尔)

                                         ⑥重击(布尔)

                                         ⑦重连击(布尔)

                3.控制器键位绑定:①轴映射

                                                ②操作映射

                4.控制器事件:①视线前后移动:添加Pitch输入

                                         ②视线左右移动:添加Yaw输入

                                         ③角色前后移动:类型转换→未阵亡条件下→获取向前向量→添加移动输入

                                         ④角色左右移动:类型转换→未阵亡条件下→获取向右向量→添加移动输入→添加Yaw输入

                                         ⑤角色行走:类型转换→设置速度

                                         ⑥攻击:类型转换→未阵亡条件下→未受伤条件下→未翻滚条件下→未重击和重连击条件下→攻击变量为真设置记录攻击变量为真→攻击变量为假设置攻击变量为真→设置攻击计数变量→根据当前攻击计数变量播放对应攻击蒙太奇的动画→连招播放完毕设置攻击计数为-1

                                         ⑦记录连击:记录攻击为真条件下→设置记录攻击为假

                                         ⑧连击重置:设置攻击计数变量为-1→设置攻击变量为假→设置记录攻击为假

                                         ⑨前冲:类型转换→未阵亡条件下→未受伤条件下→未翻滚条件下→未攻击条件下→设置翻滚变量为真→类型转换→播放蒙太奇→设置翻滚变量为假

                                         ⑩后退:类型转换→未阵亡条件下→未翻滚条件下→设置翻滚变量为真→类型转换→播放蒙太奇→设置翻滚变量为假→调用连击重置函数

                                         ⑪翻滚:类型转换→未阵亡条件下→未翻滚条件下→设置翻滚变量为真→类型转换→播放蒙太奇→设置翻滚变量为假→调用连击重置函数

                                         ⑫重击:类型转换→攻击计数大于等于2→未翻滚条件下→进行一次→调用连击重置函数→设置重连击变量为真→播放蒙太奇→设置重连击变量为假/攻击计数小于2→攻击计数变量为-1条件下→未翻滚条件下→未重击和重连击条件下→类型转换→调用连击重置函数→设置重击变量为真→播放蒙太奇→设置重击变量为假

                                         ⑬开始运行:添加游戏界面UI

        3.游戏模式蓝图

                1.游戏模式类构造:游戏模式蓝图继承自GameModeBase基类

                2.参数设置:①玩家控制器类设置为控制器蓝图

                                     ②默认pawn类设置为角色蓝图

        4.小结

                1.在人物蓝图中添加角色特殊事件的触发

                2.在控制器蓝图中添加角色控制事件的触发

                3.在游戏模式蓝图中利用控制器来控制角色

3.动画实现

        1.动画蒙太奇

                1.连击蒙太奇:①动画启动根运动

                                         ②动画添加发出伤害通知

                                         ③蒙太奇添加动画旋转,连击开启,连击结束通知

                2.重击蒙太奇:①动画启动根运动

                                         ②动画添加发出伤害通知

                3.重连击蒙太奇:①动画启动根运动

                                            ②动画添加发出伤害通知

                                            ③蒙太奇添加动画旋转,连击开启,连击结束通知

                4.前冲蒙太奇:①动画启动根运动

                5.后退蒙太奇:①动画启动根运动

                6.翻滚蒙太奇:①动画启动根运动

        2.角色动画蓝图

                1.动画类构造:动画蓝图继承自AnimInstance基类

                2.动画图表:状态机+插槽+输出姿势

                3.事件图表:①事件蓝图更新动画→获取速度→设置速度

                                     ②连击开启动画通知→类型转换→调用记录连击函数

                                     ③连击关闭动画通知→类型转换→调用重置连击函数

                                     ④发出伤害动画通知→类型转换→调用发出伤害函数

        3.AI动画蓝图

                1.动画类构造:动画蓝图继承自AnimInstance基类

                2.动画图表:状态机+插槽+输出姿势

                3.事件图表:①事件蓝图更新动画→获取速度→设置速度

                                     ②发出伤害动画通知→类型转换→调用发出伤害函数

        4.小结

                1.在动画蓝图的图表中利用状态机进行角色动画的转换

                2.在动画蓝图的事件中利用蒙太奇通知进行函数的调用

4.AI实现

        1.AI蓝图

                1.AI类构造:AI蓝图继承自character基类

                2.AI类组件构造:①胶囊体组件:碰撞

                                            ②骨骼网格体组件:AI网格体;武器网格体

                                            ③控件组件:血量显示

                                            ④移动组件:移动

                3.AI类参数配置:①自身组件添加AI控制器类

                                            ②胶囊体组件添加区域类→开启碰撞

                                            ③AI骨骼网格体组件添加网格体→取消碰撞

                                            ④武器骨骼网格体组件添加网格体→取消碰撞

                                            ⑤控件组件添加控件类→设置显示空间

                4.AI变量:①阵亡(布尔)

                                  ②当前血量(浮点)

                                  ③最大血量(浮点)

                                  ④检测类型(数组)

                                  ⑤伤害(浮点)

                                  ⑥阵亡蒙太奇(动画蒙太奇)

                                  ⑦延迟销毁时间(浮点)

                                  ⑧阵亡蒙太奇播放速率(浮点)

                5.AI事件:①开始运行事件:AI显示血量控件

                                  ②发出伤害事件:AI发出伤害后生成球体检测,对球体内角色应用伤害,角色朝向AI旋转

                                  ③接收伤害事件:AI受到伤害后旋转朝向角色,计算血量,播放蒙太奇,判断是否阵亡

                                  ④阵亡事件:阵亡后播放蒙太奇,一段延迟后销毁组件和Actor

                                  ⑤胶囊体组件命中事件:AI碰撞到移动角色会主动后退,AI碰撞到移动BOSS会主动避让

        2.控制器蓝图

                1.控制器类构造:控制器蓝图继承自AIController基类

                2.控制器事件:①开始运行事件:运行AI行为树

        3.AI行为树蓝图

                1.AI行为树:用于控制AI在指定的行为框架下运行

                2.AI黑板:用于添加记录保存AI行为树中所需的一些变量

                3.AI模组:用于自定义AI的行为函数

                                  ①检测玩家:在AI位置生成球体检测角色是否存在

                                  ②随机移动:以AI位置为圆心获取指定半径内的随机点

                                  ③播放蒙太奇:AI在未阵亡未播放蒙太奇的前提下播放蒙太奇

        5.小结

                1.利用AI控制器运行AI行为树来控制AI

5.UI实现

        1.AI血量UI:将该控件添加到AI蓝图类的控件组件下

        2.游玩界面UI:界面显示玩家实时血量

        3.重启菜单:显示重启游戏提示文字

        4.小结

                1.UI可以放置在界面或者人物类身上达到不同效果

6.关卡实现

        1.关卡蓝图:控制游戏的运行

                1.重启游戏:调用进行关卡函数

                2.退出游戏:调用退出游戏函数

        2.小结

                1.重启游戏就是重新进入当前关卡

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值