UE5 Motion Warping功能学习

MotionWarping是UE5提供的一种技术,用于修改角色根运动,确保动画结束时角色能准确停在指定位置。通过添加MotionWarping组件到Character蓝图,设置Warping目标,并在蒙太奇动画中使用AnimNotify触发,可以简化翻越障碍等复杂动作的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MotionWarping(运动扭曲)可对角色根运动进行修改,从而让角色根运动动画结束时准确停在某一点,如图:
在这里插入图片描述

此外UE5还提供移动步幅、转向的Warping功能(防滑步),之前写过一个简单的介绍可参考:
https://blog.csdn.net/grayrail/article/details/131434689

使用该功能后,对于翻越障碍物这类原先需要禁用根运动用代码做位移的操作,将变得简便。

1.安装插件

安装Motion Warping自带插件:
在这里插入图片描述

2.操作流程

整个Motion Warping流程是这样,首先保证Character蓝图根运动功能正确,因为需要在根运动的基础上进行修改,然后为Character蓝图挂载MotionWarping组件,在动画播放前,提前设置好Warping目标点。
动画播放时(一定要是蒙太奇,否则没有效果),通过动画通知触发MotionWarping,修改跟运动结束位置为Warping目标点。

2.1 为Character添加MotionWarping组件
在这里插入图片描述

2.2 创建蒙太奇文件,添加含有根运动的动画,添加MotionWarping类AnimNotify,填写WarpTargetName作为Key。
在这里插入图片描述
2.3 在场景中创建一个空Actor对象,在蓝图中链接该对象,并播放蒙太奇(也支持对旋转的Warping):
在这里插入图片描述
播放测试即可。


参考:
https://zhuanlan.zhihu.com/p/466538055

UE4中,motion vector(运动矢量)是指用来描述图像中像素点在时间上的运动关系的矢量。具体来说,对于第i帧(当前帧)的像素p,motion vector MV_i\[p\]表示该像素从当前帧位置到前一帧的运动变换值,即π_i→i-1(p)。\[2\] 在UE4中,motion vector是后向运动矢量,表示当前帧到前一帧的运动关系。通过使用产生的后向运动矢量,可以进行图像的扭曲。其中,forwardWarping()函数用于给出帧i-1到i的图像扭曲,而backwardWarping()函数用于给出帧i到i-1的图像扭曲。需要注意的是,backwardWarping()函数的实现可能会进行一定的舍入操作,导致像素的错位。\[3\] 在具体的代码实现中,可以使用numpy和OpenCV库来处理图像和运动矢量。通过计算运动矢量和像素的位置关系,可以实现图像的扭曲效果。需要注意的是,UE4和numpy在图像坐标系和原点位置上存在差异,因此在计算时需要注意坐标的正负转化。\[1\] 总结起来,UE4中的motion vector是用来描述图像中像素点在时间上的运动关系的矢量。通过使用产生的后向运动矢量,可以进行图像的扭曲操作,实现帧与帧之间的图像变换。在具体的实现中,需要注意坐标系和原点位置的差异,以及舍入操作可能导致的像素错位。 #### 引用[.reference_title] - *1* *2* *3* [利用UE4生成的运动矢量(Motion Vector)在Python下对渲染图像进行前向与后向Warping](https://blog.csdn.net/xym_CSDN/article/details/129735022)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值