您当前的位置: 首页 >  ue4

开发游戏的老王

暂无认证

  • 3浏览

    0关注

    803博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

[玩转UE4动画系统>功能模块] 之 Advanced Locomotion System V4 的工具函数及工具宏详解

开发游戏的老王 发布时间:2021-05-16 09:02:25 ,浏览量:3

欢迎关注《玩转UE4动画系统》系列教程 作者|开发游戏的老王

本文介绍一下Advanced Locomotion System V4 的工具函数及工具宏,一方面本部分内容是ALS V4中很多功能模块的实现基础;另一方面,我们也可以在自己的项目中复用这些工具函数和工具宏。

文章目录
      • 工具宏
        • ML_IsDifferent(Byte)
        • ML_MultiTraceHit
        • ML_ComponentWorldToLocal
        • ML_ComponentLocalToWorld
        • ML_Transform-Transform
        • ML_Transform+Transform
        • ML_DoWhile(TrueFalse)
        • ML_SetPreviousAndNewValue
        • ML_GetNextArrayItem
        • ML_GetPreviousArrayItem
      • 工具函数
        • GetControlForward/RightVector
        • GetCalpsuleBaseLocation
        • GetCapsuleLocationFromBase
        • GetAnimCurveValue

工具宏

下面的宏库定义在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由世界坐标系转换成以Component的Transform为基的局部坐标系的Transform

其中ALS_ComponentAndTransform是ALS V4中定义的一个如下所示的结构体,只有两个分量Transform和Component

在这里插入图片描述

ML_ComponentLocalToWorld

在这里插入图片描述 将ALS_ComponentAndTransform局部坐标系中的Transform转换成世界坐标系的Transform

ML_Transform-Transform

在这里插入图片描述Transform相减,实际上把两个Transform的上述对应分量值分别相减

ML_Transform+Transform

在这里插入图片描述Transform相加,实际上把两个Transform的上述对应分量值分别相加

ML_DoWhile(TrueFalse)

在这里插入图片描述

本节点在老王的博文《虚幻引擎图文笔记:从ALS中淘宝 之 ML_DoWhile(TrueFalse)宏节点》中介绍过,本文就不再重复了

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。

关注
打赏
1656935939
查看更多评论
立即登录/注册

微信扫码登录

0.0422s