虚幻引擎图文笔记:免费插件APC中的推/拉箱子实现方法分析

APC即Advanced Puzzle Constructor(下文简称APC),是EPIC上个月赠送的免费第三人称解谜类游戏的工程模板,Epic商城地址

前言

之前写过博文《虚幻引擎图文笔记:如何实现角色推箱子(使用Line Trace By Channel实现)》介绍推箱子功能的简单实现,这两天老王在学习APC工程的时候看到一个在实现角色推拉箱子功能时一个不错的动画蓝图设计方式,在此记录并分享有需要的朋友。

APC推拉箱子功能简述

APC的角色正面遇到箱子以后,按E键进入推拉箱子模式,然后通过方向键控制推和拉箱子,并且可以攀爬到箱子上,算是推拉箱子这块功能比较完整的实现了。在学习APC的实现方法之前,先看一个与之对比的实现方式

一个非APC式的实现方法

如下图所示,推箱子状态被中规中矩地“扩充”到了默认状态里,按照这个思路以后越来越多的状态也会被“扩充”到这里,状态机会越来复杂,耦合度也会增大。

在这里插入图片描述

APC动画蓝图总览

下图就是APC的角色动画蓝图,开发者将推拉箱子放到了一个独立的状态机中,然后通过混合的方式(BlendPosesByBool)用一个PushingBox就控制了默认状态和推箱子状态的迁移

在这里插入图片描述

APC推/拉状态机

推/拉状态机本身非常简单

在这里插入图片描述
通过一个以为混合空间将推/闲置/拉三个动画混合到一起

在这里插入图片描述
在这里插入图片描述

APC的默认状态机

在APC的设计中默认状态机基本上永远可以保持在一个比较简单的状态

在这里插入图片描述

小结

APC的实现方法可以比较方便地把角色的一些相对比较复杂的行为,这些行为本身就拥有很多状态,而且角色处于这些行为状态时,可能连控制方式都是不同的,那么我们就可以采用APC的方式用独立的状态机实现它,然后让它与默认状态“混合”到一起,就像两座岛屿,它们之间唯一的桥梁就是那个布尔变量,非常便于控制。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开发游戏的老王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值