[玩转UE4动画系统>功能模块] 之 Advanced Locomotion System V4 的工具函数及工具宏详解
[玩转UE4动画系统>功能模块] 之 Advanced Locomotion System V4 的工具函数及工具宏详解
https://zhuanlan.zhihu.com/p/372660797
[玩转UE4动画系统>功能模块] 之 Advanced Locomotion System V4 的工具函数及工具宏详解
开发游戏的老王
开发游戏的老萌新
欢迎关注 《玩转UE4动画系统》系列教程
作者|开发游戏的老王
本文介绍一下Advanced Locomotion System V4 的工具函数及工具宏,一方面本部分内容是ALS V4中很多功能模块的实现基础;另一方面,我们也可以在自己的项目中复用这些工具函数和工具宏。
工具宏
下面的宏库定义在Content>AdvancedLocomotionSystemV4>Blueprints>Libraries 目录下的ALS_MacroLibrary中
ML_IsDifferent(Byte)
在Byte层级判断A和B是否相等,Inputs中的输入端A和B都是WildCard类型
ML_MultiTraceHit
Inputs中的Array是一个HitResult数组,这个宏实际就是判断该数组是否为空
ML_ComponentWorldToLocal
将ALS_ComponentAndTransform世界坐标系中的Transform转换成局部坐标系的Transform
其中ALS_ComponentAndTransform是ALS V4中定义的一个如下所示的结构体,只有两个分量Transform和Component
关于向量运算请参看
开发游戏的老王:[译文]游戏中的数学:向量数学(vector math)
zhuanlan.zhihu.com
ML_ComponentLocalToWorld
将ALS_ComponentAndTransform局部坐标系中的Transform转换成世界坐标系的Transform
ML_Transform-Transform
Transform相减,实际上把两个Transform的上述对应分量值分别相减
ML_Transform+Transform
Transform相加,实际上把两个Transform的上述对应分量值分别相加
ML_DoWhile(TrueFalse)
本宏节点在老王的博文
开发游戏的老王:虚幻引擎图文笔记:从ALS中淘宝 之 ML_DoWhile(TrueFalse)宏节点
zhuanlan.zhihu.com
中介绍过,本文就不再重复了
ML_SetPreviousAndNewValue
将New Value的值赋给New Target,并且使用Previous Target寄存New Target之旧的值,下面是该宏节点使用的例子。
ML_GetNextArrayItem
获取下一个数组元素。如果当前元素是最后一个元素,则返回第一个元素
ML_GetPreviousArrayItem
获取上一个数组元素。如果当前元素是第一个元素,则返回最后一个元素
工具函数
下面的函数定义在Content>AdvancedLocomotionSystemV4>Blueprints>CharacterLogic 目录下的ALS_Base_CharacterBP中
GetControlForward/RightVector
获取控制器的前向和右向分量。
GetCalpsuleBaseLocation
计算角色脚底的位置即胶囊体底部的位置。注:1.使用GetWorldLocation获取到的是胶囊体中心的位置;2. ZOffset适用于微调的偏移量。
GetCapsuleLocationFromBase
从角色脚底位置即胶囊体底部位置反算出胶囊体的Location。实际就是GetCalpsuleBaseLocation的逆运算。
GetAnimCurveValue
安全获取动画曲线值,所谓安全就是当AnimInstance无效时,返回默认值0。
编辑于 1 小时前
虚幻引擎
虚幻 4(游戏引擎)
游戏开发
文章被以下专栏收录
玩转UE4动画系统
一套UE4动画系统从入门到进阶的实战教程