UE5 Stride Warping & Orientation Warping功能学习

本文介绍了UE5的LyraDemo中使用的AnimationWarping技术,特别是StrideWarping和OrientationWarping节点。StrideWarping通过调整角色跨步长度匹配移动速度,消除滑步现象;OrientationWarping则允许角色转身时头和躯干分步转动,提供更自然的动画效果。文章详细阐述了这两个节点的参数设置,并提供了参考示例。

在UE5的 Lyra Demo中,运用到了各类动画Warping(动画扭曲)技术,通过各类Warping节点在动画蓝图中的合理组织,可以有效的解决运动滑步问题,并为动画增添更多细节。

本文主要基于Animation Warping插件讲一下相关的2种Warp节点:Stride Warping、Orientation Warping。

此外UE5还提供了Motion Warping功能,之前写过一个简单的介绍:
https://blog.youkuaiyun.com/grayrail/article/details/131437242

1.导入插件

首先激活Animation Warping插件:
在这里插入图片描述

2.使用Stride Warping节点

Stride Warping节点可以实现角色移动时跨步长度根据移动速度进行匹配,避免角色移动时产生滑步现象:
在这里插入图片描述
该节点参数大致简介如下:

  • Evaluation
    • Mode 模式,分为Manual与Graph,Manual模式下暴露原始参数(大概0-10的调整区间),Graph模式下暴露实际速度参数(大概300-1000的调整区间)。
  • Settings
    • Pelvis Bone 骨盆骨骼
    • IK Foot Root Bone IK脚部节点父骨骼
    • Foot Definitions 脚部的IK、FK及大腿关节,建议下载Lyra Demo到ABP_ItemAnimLayersBase动画蓝图里看一下具体绑定节点
  • Stride Scale Modifier 设置具体拉伸约束

通常设置Graph模式,将对应移动速度传入即可。若调试可选用Manual手动模式,但要注意Stride Direction填写如不正确会影响到调试。

参数参考如下(使用Lyra角色可达到gif图中效果):
在这里插入图片描述

3.使用Orientation Warping节点

该节点可以分离角色旋转时的脚步动画与转身动画,博主的理解是该节点可以实现角色在转身时头和躯干先动,播放转身动画后动的效果:
在这里插入图片描述
该节点参数大致简介如下:

  • Evaluation
    • Mode 模式,分为Manual与Graph,Manual模式下填写实际角度值,Graph模式下修改参数没有起到作用,了解的朋友麻烦回复告知下。
  • Settings
    • Spline Bones 躯干关节,用于实现每一级脊椎沿着一定权重,逐级减少应用旋转弯曲效果
    • Distributed Bone Orientation Alpha 躯干关节权重应用比例。

参数参考如下(使用Lyra角色可达到gif图中效果):

在这里插入图片描述


参考文章:
https://docs.unrealengine.com/5.2/en-US/pose-warping-in-unreal-engine/

### Warping 错误的解决方案 当遇到 warping 错误时,这通常涉及到图像变换过程中坐标映射不准确或参数设置不当等问题。虽然提供的参考资料未直接提及 warping 错误的具体解决方法[^1],可以从一般性的角度出发来探讨此类问题。 #### 1. 检查输入数据的一致性和有效性 确保用于 warping 的源图像是有效的,并且其尺寸和通道数符合预期。任何异常的数据都可能导致计算过程中的错误。 #### 2. 校验变换矩阵 仔细验证所使用的仿射变换或其他类型的几何变换矩阵是否正确构建。这些矩阵应该能够精确表示所需的变形操作,比如平移、旋转、缩放等。可以通过可视化的方式检查转换后的效果,确认是否存在明显的扭曲现象。 #### 3. 调整插值算法的选择 不同的插值方式会对最终的结果产生影响,在处理warped image时可以选择更合适的插值策略,如双线性插值(bilinear interpolation)、最近邻插值(nearest neighbor interpolation)或是更高阶的方法如三次样条插值(bicubic interpolation),以减少因采样带来的失真。 #### 4. 边界填充模式优化 考虑如何处理超出原始图片边界的像素点。常见的做法有重复边缘像素、反射镜像以及常数值填充等方式。适当调整边界外区域的填充方案可以帮助改善warping的效果。 ```python import cv2 import numpy as np def apply_warp(image, M, dsize=(500, 500), border_mode=cv2.BORDER_CONSTANT, interp_method=cv2.INTER_LINEAR): """ 应用透视变换到给定图像上 参数: image (numpy.ndarray): 输入图像数组. M (numpy.ndarray): 变换矩阵. dsize (tuple): 输出图像大小,默认(500, 500). border_mode : 边缘填充模式,默认cv2.BORDER_CONSTANT. interp_method : 插值方法,默认cv2.INTER_LINEAR. 返回: warped_image (numpy.ndarray): 经过变换后的图像. """ try: warped_image = cv2.warpPerspective( src=image, M=M, dsize=dsize, flags=interp_method, borderMode=border_mode ) return warped_image except Exception as e: print(f"Warping Error Occurred: {e}") raise ``` 通过上述措施可以有效降低发生warping错误的概率,并提高图像配准的质量。当然具体实施还需要依据实际情况灵活运用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值