UE5 与 C++ 入门教程·第二课:动画重定向

news2024/11/17 15:51:23

虚幻中的角色动画都是基于 骨骼网格体 (Skeletal Mesh)实现,换言之,动画是跟骨骼网格体绑定的。如果有两个骨骼网格体,各自有一套角色动画,那么就可以通过重定向(Retargeting)将两个骨骼网格体做绑定(Rig),从而迁移动画,实现在不同网格体间的角色动画的复用。

(本篇没有 C++ 代码,只是不讲这个,好像没法玩下去。毕竟如果下载别人角色或动画,然后不知道怎么用到自己的项目上,那等于没用)

使用模板

UE4 动画重定向到 UE4

UE5 带有 Mannequin 的 IK Rig,可以不需要手动绑定,手动绑定的方法见下面。

使用第三人称模板就自带了 Mannequin 的 IK Rig,就不需要手动进行绑定了。同时也提供了两个 Retargeter,分为处理从 UE5 Manny 角色到 UE4 的 Mannequin 之间的重定向,以及 UE4 的 Mannequin 到 UE5 的 Manny 角色之间的重定向。

模板自带的 IK Rig

此时我们 UE5 第三人称模板里只有一个 Mannequin 动画:

默认动画

假设现在从商店导入了一个 Mannequin 动画包(选 5.0 即可):

动画包

由于动画资产一般都自洽(自带 Mesh):

动画包中的Mesh

所以这个时候发现我们自己的 Mannequin 还是只有一个动画。当我们知道这两个 Mannequin 都是一样的。那么只需要拷贝一份 IK,将预览的骨骼改成 AnimStarterPack 中的骨骼。这样就算绑定好了。

具体步骤:

  1. 复制 IK_UE4_Mannequin,重新命名;
  2. 将 Preview Skeletal Mesh 修改成 AnimStarterPack 的 Mesh;修改 Mesh
  3. 新建一个 RTG 资产,选择这两个 IK 资产进行重定向即可。由于是要将下载的动画重定向到本地项目,那么源 Source 就应该是 AnimStarterPack 的 IK 和 Mesh,Target 是本地的 IK 和 Mesh;创建 Retargeter 资产
  4. 导出需要的动画,可以添加前缀、后缀等等。导出动画

UE4 动画重定向到 UE5

UE4 的 Mannequin 重定向到 Manny 和 Metahuman 只需要用自带模板即可。直接复制自带的 RTG,即 RTG_UE4Manny_UE5Manny。然后将 Source IK 修改成需要动画对应的 IK 即可。但会发现一个问题,就是手部有明显问题。

动画错误

解决这个问题,需要在 Chain Mapping 面板中将以下骨骼设置为 None

  • Metacarpal (掌骨)系列
    • LeftPinkyMetacarpal
    • LeftMiddleMetacarpal
    • LeftRingMetacarpal
    • LeftIndexMetacarpal
  • Arm:
    • LeftLowerArmTwist02
    • LeftUpperArmTwist02
  • 右手对称设置:
    • RightPinkyMetacarpal
    • RightRingMetacarpal
    • RightMiddleMetacarpal
    • RightIndexMetacarpal
    • RightLowerArmTwist02
    • RightUpperArmTwist02

修复重定向的问题
需要注意,Metahuman 角色骨骼和 UE5 的 Manny 兼容,所以也会有这个问题,同样将上述骨骼设置为 None 即可

这样动画就正常重定向了,可以看到手部是正常的。这样就可以导出需要的动画。

重定向效果

手动创建 IK Rig 与 RTG

如果骨骼名称不一样,或者骨骼层次也不一样的情况下,通常是需要手动建立需要绑定的骨骼,从而建立两个骨骼网格体之间的映射。

Mixamo 角色动画

Mixamo 是一个免费的角色和动画库,但是它有它自己的一套骨骼名称,没法直接套用模板。那么就需要手动进行重定向。我们试着从上面下载一个角色,还有动画,然后重定向到小白人 Mannequin 身上。

我们随便选择一个角色,然后下载,之后下载对应角色的动画。(不需要跟我选一样的,最重要的是开心)
Mixamo 角色和动画

将下载的角色和动画导入 UE(fbx 直接拖入 Content Browser 就行了)
导入后的动画和角色

创建 IK Rig

接下来就是为这个骨骼创建 IK Rig。

作为动画用的骨骼都会有一个根骨骼,这里的根骨骼是 Hips,将其设置为 Retarget Root。

设置根骨骼

接下去主要是按人体结构进行分组,至于怎么分组准确来讲并没有标准。只是作为人类角色来讲,人体结构大致都差不多,基本都是两胳膊、两腿、一个头……

我们这里就命名就和小白人(基本)一致,这样就省去创建小白人的 IK,如果你非要起自己名字,那么就要创建两个 IK,才能进行重定向,并省略掉 IK 的部分。

接下来的步骤相对而言比较无聊,就是一个个的手动 Add New Chain,然后命名。(如果重定向发现动画有问题,可能就是骨骼选错了,就需要重新回来重新调整对应的骨骼或命名)

大概就是这样,IK 部分就算完成了。

Mixamo 的IK Rig

因为第三人称模板已经有了小白人的 IK,如果没有的话,也是需要手动建立 IK 的。

创建 RTG

创建一个 Retargeter,选择这两个骨骼对应的 IK Rig。(此步骤过于简单,不赘述)

调整姿势

T-Pose 与 A-Pose

可以看到,Mixamo 是 T-Pose,而并不是 A-Pose,那么重定向的时候就需要调整骨骼到(尽可能同样的姿势),否则解算出来的骨骼就会差距太大。

我们这里创建一个新的重定向姿势进行调整。

创建 Pose

当然,我这里只是调一下幅度比较大的,至于手指部分,我就不调了,主要是手臂和腿的旋转。当然,两个骨骼越接近,重定向的效果肯定就越好。

调整成 T-Pose

现在就可以看看动画效果了,

重定向后的效果

小白人至此也就学会了爬。

小结

本文主要是动画向的,并不是程序向的,手动重定向还涉及调整骨骼的旋转,但都是非常简单的操作(有手和不瞎即可上手操作)。

  • 由于目前很多角色动画还是基于 UE4 的小白人 Mannequin,所以我们的 Character 可能仍然使用的是基于 Mannequin 的 Mesh。
  • UE4 与 UE5 的相互重定向:如果是下载了基于 Mannequin 的动画,项目中的角色是基于 UE5 的 Manny 或者是 Metahuman 的角色,那么使用官方自带的 IK Rig 和 Retargeter 进行重定向。
  • 通用方法(例如去绑定动物骨骼),那么就需要手动绑定,至于需要使用哪些骨骼,就看各自的需求了。

现在无论是商城上的角色还是网上的角色或动画都可以愉快的使用了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/809850.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

cglib动态代理、jdk动态代理及spring动态代理使用

1.项目初始化 1.1 pom.xml <dependencies><!-- spring依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.5.RELEASE</version></dependency>&l…

6个电池均衡,buckboost电路,精度高,均衡速度快,BMS均衡

6个电池均衡&#xff0c;buckboost电路&#xff0c;精度高&#xff0c;均衡速度快&#xff0c;本人原创。 1、主体电路图如下 2、均衡电压如图 3、平均电压波动图

SpringBoot使用PropertiesLauncher加载外部jar包

启用SpringBoot的PropertiesLauncher 使用SpringBoot的PropertiesLauncher可以优先加载外部的jar文件, 这样可以在程序运行前替换jar包, 官方文档: Launching Executable Jars 使用演示 建立一个SpringBoot工程, 工程中依赖一个叫自定义的utils包, 版本是1.0.0, 通过http接口…

Java基础_网络编程

Java基础_网络编程 网络编程三要素InetAddress网络模型 UDP通信程序单播发送数据接收数据聊天室 组播广播 TCPTCP通信程序三次握手和四次挥手 来源Gitee地址 网络编程三要素 IP: 设备在网络中的地址&#xff0c;是唯一的标识端口号: 应用程序在设备中唯一的标识。协议: 数据在…

2023OpenFeign源码

原理-源码 让我们看着源~码~ 按顺序走~趟流~程~ 分为两大部分&#xff1a;启动原理、调用流程 Feign 的Java 代码才 3w 多行&#xff0c;放眼现在热门的开源项目&#xff0c; Dubbo、Naocs、Skywalking 中 Java 代码都要 30w 行起步。 重要通知&#xff01;看源码&#xff0c;…

Winform制作的用户界面在高DPI下缩放问题

引言 熟悉Winform的小伙伴应该都遇到过 在100%缩放下制作的用户界面在其他缩放百分比下会出现字体超出边框的情况&#xff0c;导致用户体验大打折扣。用户程序DPI感知是默认打开的&#xff0c;此时可以通过关闭这种感知来禁用字体的缩放&#xff0c;在这种情况下&#xff0c;用…

C语言指针详解

目录 指针是什么? 指针和指针类型 指针-整数 指针的解引用 野指针 野指针成因 如何规避野指针 指针运算 指针- 整数 指针-指针 指针的关系运算 指针和数组 二级指针 指针数组 指针数组 模拟二维数组 指针是什么? 指针理解的2个要点: 1. 指针是内存中一个…

51单片机——串行口通信

目录 1、51单片机串口通信介绍 2、串行口相关寄存器 2.1 、串行口控制寄存器SCON和PCON 2.1.1 SCON&#xff1a;串行控制寄存器 (可位寻址) 2.1.2 PCON&#xff1a;电源控制寄存器&#xff08;不可位寻址&#xff09; 2.2、串行口数据缓冲寄存器SBUF 2.3、从机地址控制…

iOS - 解压ipa包中的Assert.car文件

项目在 Archive 打包后&#xff0c;生成ipa包 将 xxx.ipa文件修改为zip后缀即 xxx.zip &#xff0c;然后再双击解压&#xff0c;会生成一个 Payload 文件夹&#xff0c;里面一个文件 如下图&#xff1a; 然后显示改文件的包内容&#xff1a; 解压 Assets.car 文件的方式&…

基于x-scan的渲染算法

基于x-scan算法实现的z-buffer染色&#xff0c;.net core framework 3.1运行。 x-scan算法实现&#xff1a; public List<Vertex3> xscan() {List<Vertex3> results new List<Vertex3>();SurfaceFormula formula getFormula();Box rect getBound();for …

力扣 968. 监控二叉树

题目来源&#xff1a;https://leetcode.cn/problems/binary-tree-cameras/description/ C题解&#xff08;来源代码随想录&#xff09;&#xff1a;节点可以分为3个状态&#xff1a;0无覆盖&#xff1b;1有摄像头&#xff1b;2有覆盖。 要想放的摄像头最少&#xff0c;应当叶子…

无涯教程-jQuery - stop( clearQueue, gotoEnd)方法函数

stop([clearQueue&#xff0c;gotoEnd])方法停止所有指定元素上的所有当前正在运行的动画。 stop( [clearQueue, gotoEnd ]) - 语法 selector.stop( [clearQueue], [gotoEnd] ) ; 这是此方法使用的所有参数的描述- clearQueue - 这是可选的布尔参数。设置为true会清除动画…

绕过TLS/akamai指纹护盾

文章目录 前言TLS指纹什么是TLS指纹测试TLS指纹绕过TLS指纹使用原生urllib使用其他成熟库&#xff01;&#xff01;修改requests底层代码 Akamai指纹相关&#xff08;HTTP/2指纹&#xff09;什么是Akamai指纹测试Akamai指纹绕过Akamai指纹使用其他成熟库 实操参考 前言 有道是…

Eureka 学习笔记3:EurekaHttpClient

版本 awsVersion ‘1.11.277’ EurekaTransport 用于客户端和服务端之间进行通信&#xff0c;封装了以下接口的实现&#xff1a; ClosableResolver 接口实现TransportClientFactory 接口实现EurekaHttpClient 接口实现及其对应的 EurekaHttpClientFactory 接口实现 private …

【雕爷学编程】MicroPython动手做(16)——掌控板之图片图像显示2

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…

第120天:免杀对抗-防朔源防流量防特征CDN节点SSL证书OSS存储上线

知识点 #知识点&#xff1a; 1、CS-CDN节点-防拉黑 2、CS-SSL证书-防特征 3、CS-OSS存储-防流量#章节点&#xff1a; 编译代码面-ShellCode-混淆 编译代码面-编辑执行器-编写 编译代码面-分离加载器-编写 程序文件面-特征码定位-修改 程序文件面-加壳花指令-资源 代码加载面-D…

springCloud Eureka注册中心配置详解

1、创建一个springBoot项目 2、在springBoot项目中添加SpringCloud依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>2021.0.3</version><type>…

IDEA 使用 maven 搭建 spring mvc

1. 创建项目 1.1 创建成功之后配置 Spring MVC 1.2 勾选 Spring MVC 2.更改配置文件 2.1 更改web.xml配置 更改为 <servlet-mapping><servlet-name>dispatcher</servlet-name><url-pattern>/</url-pattern></servlet-mapping>2.2 dispat…

CF1833 A-E

A题 题目链接&#xff1a;https://codeforces.com/problemset/problem/1833/A 基本思路&#xff1a;for循环遍历字符串s&#xff0c;依次截取字符串s的子串str&#xff0c;并保存到集合中&#xff0c;最后输出集合内元素的数目即可 AC代码&#xff1a; #include <iostrea…

Michael.W基于Foundry精读Openzeppelin第15期——SignedMath.sol

Michael.W基于Foundry精读Openzeppelin第15期——SignedMath.sol 0. 版本0.1 SignedMath.sol 1. 目标合约2. 代码精读2.1 max(int256 a, int256 b) && min(int256 a, int256 b)2.2 average(int256 a, int256 b)2.3 abs(int256 n) 0. 版本 [openzeppelin]&#xff1a;v…