《UE5_C++多人TPS完整教程》学习笔记28 ——《P29 Mixamo 动画(Mixamo Animations)》

2024-03-20 03:04

本文主要是介绍《UE5_C++多人TPS完整教程》学习笔记28 ——《P29 Mixamo 动画(Mixamo Animations)》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


本文为B站系列教学视频 《UE5_C++多人TPS完整教程》 —— 《P29 Mixamo动画(Mixamo Animations)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C++ Multiplayer Shooter》 的中文字幕翻译版,UP主(也是译者)为 游戏引擎能吃么。


文章目录

  • P29 Mixamo 动画(Mixamo Animations)
  • 29.1 从 Mixamo 官网获取动画
  • 29.2 Mixamo 角色动画重定向为 “Animation Starter Pack” 角色动画
  • 29.3 “Animation Starter Pack” 角色动画重定向为 “LearningKit_Games” 角色动画
  • 29.4 资产迁移至项目 “Blaster”
  • 29.5 Summary


P29 Mixamo 动画(Mixamo Animations)

本节课将从 Mixamo 官网获取免费角色动画,然后将其重定向(Retargeting)为虚幻引擎的骨骼(Skeleton)中,以便将其用于我们的角色模型中。
在这里插入图片描述


29.1 从 Mixamo 官网获取动画

  1. 访问 Mixamo 官网,注册账户后登录。
    在这里插入图片描述

  2. 在 “Character” 中选择 “CRYPTO”,然后点击 “DOWNLOAD” 按钮,下载格式(Format)选择 “FBX Binaries(fbx)”,姿势(Pose)选择“T-Pose” ,因为这个姿势类似于虚幻引擎骨骼的默认姿势。
    在这里插入图片描述
    在这里插入图片描述

  3. 在 “UnrealLearningKitGames” 项目目录下,新建目录 “/Content/Mixamo/Character" ,将下载好的 FBX Binaries 文件 “Ch45_nonPBR” 其移动该目录下,并重命名为 “MixamoCharacter”。
    在这里插入图片描述 在这里插入图片描述

  4. 在虚幻引擎中打开 “UnrealLearningKitGames”,导入 “MixamoCharacter”,“FBX导入选项” 对话框的设置保持默认。
    在这里插入图片描述
    此时消息日志窗口出现 “无平滑组” 错误提示信息,忽略即可。可以在内容浏览器中看到导入的内容。
    在这里插入图片描述
    在这里插入图片描述

  5. 双击 “MixamoCharacter_Skeleton”,与 “/Content/AnimStarterPack/SK_Mannequin/Mesh/”目录下的 “SK_Mannequin” 对比可以发现它们的(顶点)层次和名称略有不同(Slightly different),因此在之后进行重定向时需要考虑这一点(Take this into account)。
    在这里插入图片描述
    在这里插入图片描述

  6. 返回 Mixamo 官网,在选定角色 “CRYPTO” 的基础上,在 “Animations” 中搜索 “Right Turn”,下载蹲下且在预览中不会转向的 “Turn Right”(之后的课程将在虚幻引擎中通过代码逻辑实现转向),下载设置保持默认。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  7. 下载站立且在预览中不会转向的 “Turning Right 45 Degrees”(之后的课程将在虚幻引擎中通过代码逻辑实现转向),下载设置保持默认。
    在这里插入图片描述
    在这里插入图片描述

  8. 搜索 “Left Turn”,下载蹲下和站立且在预览中不会转向的动画,下载设置保持默认。
    在这里插入图片描述
    在这里插入图片描述

  9. 搜索 “Jump”,下载 “Jump Up”、“Jump Down” 和 “Jump Loop” 动画。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  10. 将上述动画均移动至新建的目录 “/Content/Mixamo/Animations/” 下。返回虚幻引擎导入以上动画,注意在 “FBX导入选项” 对话框中,取消勾选 “导入网格体” 复选框,在 “网格体-骨骼” 选项下选择 “Ch45_nonPBR_Skeleton”,在 “动画-动画长度” 选项下选择 “设置范围”,这样在 “高级-帧导入范围” 选项就可以进行设置,设置 “最大” 为 30(因为我们从 Mixamo 官网上下载的动画都是保持默认的每秒 30 帧)
    在这里插入图片描述
    在这里插入图片描述

  11. 导入后发现目录下同时生成了六个以 “Take_001” 为后缀的动画序列,它们是角色保持 T-pose 的动画,我们并不需要,可以直接删除。
    在这里插入图片描述


29.2 Mixamo 角色动画重定向为 “Animation Starter Pack” 角色动画

  1. 我们希望上述动画都能够绑定(Rig)到同一个角色上,这就需要进行将 “MixamoCharacter_Skeleton”重定向为虚幻引擎骨骼 “SK_Mannequin”。不同于 UE 4 使用 “Retarget Manager” 进行重定向,UE 5 使用了全新的重定向目标工具 “IK Retarget” ,因此下面的步骤将主要参考 《【UE5教程】10分钟学会新功能动画重定向!》,这与本节课教学视频中展示的步骤有所不同。

    UE5 有了一个全新的重定向目标工具,能够快速、轻松地重用和增强现有动画。新的 IK 绑定系统提供了一种以交互方式创建 IK 解算器(包括新的全身 IK)并为其定义目标的方法。生成的 IK 绑定资产可以嵌入到动画蓝图中,在运行时可以控制目标。这种新的重定向方法取代了 UE4 中的 Retarget Manager。


    —— 《UE5正式版发布》

  2. 在 “内容浏览器” 中新建两个 “IK绑定” ,它们的命名保持默认,即 “NewIKRig” 和 “NewIKRig1”,骨骼网格体分别选择 “SK_Mannequin” 和 “MixamoCharacter”。
    在这里插入图片描述
    在这里插入图片描述

  3. 在 “NewIKRig” 和 “NewIKRig1” 编辑窗口中 设置重定向根在 “SK_Mannequin” 和 “MixamoCharacter” 的 “骨盆” 处( “SK_Mannequin” 的重定向根为 “pelvis”,“MixamoCharacter” 的重定向根为 “Hips”)。
    在这里插入图片描述
    在这里插入图片描述

    此步骤非常关键,可能会影响下面的 步骤 7 。因为在 IK 重定向器编辑界面,为了让 “NewIKRig1” 和 “NewIKRig” 的人物模型姿势相同( “MixamoCharacter” 的姿势为 “T-Pose”,因此需要将 “SK_Mannequin” 的姿势 “A-Pose” 改为 “T-Pose”),如果没有设置 “SK_Mannequin” 的重定向根为 “pelvis”,启用编辑姿势按钮后,将无法使用旋转工具控制 “SK_Mannequin 的骨骼网格体节点进行旋转(拖动无反应)
    https://zhuanlan.zhihu.com/p/615133089?utm_id=0

  4. 分别 “NewIKRig” 和 “NewIKRig1” 编辑窗口选择 “SK_Mannequin” 和 “MixamoCharacter” 的骨骼节点,然后单击鼠标右键,在弹出的下拉菜单栏中新增重定向链条,注意一一对应关系。
    在这里插入图片描述
    在这里插入图片描述

    笔者在这里新增的重定向链条可能与本节课教学视频中进行重定向的骨骼节点对应关系(下图)不同,即 没有在 “NewRig” 新增与 “root” 和 “pelvis” 链条,没有在 “NewRig1” 中新增与 “Hips” 链条。因为经测试发现,在不新增上述链条的情况下进行重定向后 “MixamoCharacter” 的动画和 “SK_Mannequin” 动画也能保持相似。
    在这里插入图片描述
    如果一定要新增上述链条,经笔者测试,在 “链映射” 中保证 “MixamoCharacter_Skeleton” 的 “Hips” 与 “SK_Mannequin” 的 “root” 对应,“SK_Mannequin” 的 “pelvis” 对应 “None”,进行重定向后 “MixamoCharacter_Skeleton” 的动画和 “SK_Mannequin” 动画还是可以保持相似的。

  5. 在内容浏览器中新建 “IK重定向器”,命名保持默认 “NewIKRetargeter”,“选择要复制动画的 IK 绑定” 为 “NewIKRig1”。
    在这里插入图片描述
    在这里插入图片描述

  6. 在 “NewIKRetargeter” 编辑窗口的右侧 “细节” 面板设置 “目标IKRig资产” 为 “NewIKRig”。设置完成后,就可以看到 “SK_Mannequin” 也出现在预览窗口中,在右侧资产浏览器中选择动画进行预览,但是 “SK_Mannequin” 的手臂有些奇怪,下面我们将对其进行调整。
    在这里插入图片描述
    在这里插入图片描述

  7. 在 “NewIKRetargeter” 编辑窗口工具栏处点击 “新建姿势” 按钮,新建重定向姿势 “CustomRetargetPose”(即名称保持默认),然后点击 “编辑姿势” 按钮,此时我们可以调整 “SK_Mannequin” 的手臂角度。
    在这里插入图片描述
    在这里插入图片描述

    注意,如果在 步骤 3 中没有在 “NewIKRig” 编辑窗口中设置 “SK_Mannequin” 的 “骨盆”(“pelvis”)为重定向根 ,启用编辑姿势按钮后,将无法使用旋转工具控制 “SK_Mannequin” 的骨骼网格体节点进行旋转(拖动时骨骼无反应)。
    在这里插入图片描述

  8. 在编辑窗口 “设置旋转网格对齐值” 为 5°。依照教学视频中将骨骼网格体 “SK_Mannequin” 的 “A-Pose” 改为 “T-Pose” 的方法进行如下调整:把 “SK_Mannequin” 的 “upperarm_l” 和 “upperarm_r向上旋转 45°,将 “lowerarm_l” 和 “lowerarm_r向外旋转 10°,这是教学视频作者反复实验和试错(Through trial and error)找到的数字;笔者同时还将 “foot_l” 和 “foot_r向外旋转 20°,这样在 进行 “Turn_Left_45_Degrees” 和 “Turn_Right_45_Degrees” 动画重定向时, “SK_Mannequin” 的脚部动作会与 “MixamoCharacter” 更加相近。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

  1. 再次点击 “编辑姿势” 按钮即可退出编辑模式。在右侧资产浏览器中选择动画进行预览,两个骨骼网格体的动画非常相似。
    在这里插入图片描述
  2. 导出动画到目录 “/Content/AnimStarterPack/” 下的新建文件夹 “FromMixamo” 下。
    在这里插入图片描述
    在这里插入图片描述
  3. 在内容浏览器中打开并查看重定向后的动画。如果发现骨骼错位(Bones misplaced),则在左侧 “骨骼树” 面板设置 “显示重定向选项”,然后右键单击 “root” 节点,在弹出的下拉菜单栏中选择 “递归设置平移重定向骨骼”后,设置 “root” 的平移重定向为 “动画”,“pelvis” 的平移重定向为 “缩放动画”。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

29.3 “Animation Starter Pack” 角色动画重定向为 “LearningKit_Games” 角色动画

  1. 在 “内容浏览器” 中新建一个 “IK绑定” , “NewIKRig2”,骨骼网格体选择 “SK_EpicCharacter” 。
    在这里插入图片描述

  2. 在 “NewIKRig2” 编辑窗口中 设置 “SK_EpicCharacter” 的重定向根为 “骨盆” “pelvis,接着在 “NewIKRig2” 编辑窗口选择 “SK_EpicCharacter” 的骨骼节点,然后单击鼠标右键,在弹出的下拉菜单栏中新增重定向链条,注意参照 “NewIKRig” 中 “SK_Mannequin” 的链条,保持一一对应关系。
    在这里插入图片描述

  3. 在内容浏览器中新建 “IK重定向器”,命名保持默认 “NewIKRetargeter1”,“选择要复制动画的 IK 绑定” 为 “NewIKRig”,在 “NewIKRetargeter1” 编辑窗口的右侧 “细节” 面板设置 “目标IKRig资产” 为 “NewIKRig2”。设置完成后,就可以看到 “SK_EpicCharacter” 也出现在预览窗口中。由于“SK_EpicCharacter” 相比于 “SK_Mannequin” 更细长(Lengthier and skinnier),手臂也更直(Straighter),下面我们将对其进行调账,以保证两者动画相似。
    在这里插入图片描述
    在这里插入图片描述

  4. 在 “NewIKRetargeter1” 编辑窗口“设置旋转网格对齐值” 为 5°,接着在工具栏处点击 “新建姿势” 按钮,新建重定向姿势 “CustomRetargetPose”(即名称保持默认),然后点击 “编辑姿势” 按钮。教学视频中是将 “SK_EpicCharacter” 改为 “T-Pose”,并且在 “SK_Mannequin” 的姿势为 “T-Pose” 的基础上将其手臂改直;然而,这里只能修改 “SK_EpicCharacter”,于是笔者通过反复实验和试错得到了如下的调整方案: “SK_EpicCharacter” 的 “upperarm_l” 和 “upperarm_r不做改动,将 “lowerarm_l” 和 “lowerarm_r向内旋转 25°
    在这里插入图片描述

  5. 再次点击 “编辑姿势” 按钮即可退出编辑模式。在右侧资产浏览器中选择动画进行预览,两个骨骼网格体的动画非常相似。导出动画到目录 “/Content/AnimStarterPack/” 下的新建文件夹 “FromMixamo” 下。
    在这里插入图片描述

  6. 在内容浏览器中打开并查看重定向后的动画。如果发现骨骼错位(Bones misplaced),则在左侧 “骨骼树” 面板设置 “显示重定向选项”,然后右键单击 “root” 节点,在弹出的下拉菜单栏中选择 “递归设置平移重定向骨骼”后,设置 “root” 的平移重定向为 “动画”,“pelvis” 的平移重定向为 “缩放动画”。
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


29.4 资产迁移至项目 “Blaster”

  1. 修改 Mixamo 重定向动画的名称。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 把其他动画的后缀名 “_Retargeted”删去,可以通过使用 UE 中的 Python 脚本实现(此步骤可以忽略)。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  3. 将目录 “/Assets/Animations/” 迁移至项目 “Blaster” 的目录 “Content” 下。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  4. 打开项目 “Blaster”,可以看到 “UnrealLearningKitGames" 的角色动画成功迁移至项目目录 “Contents” 下,在内容浏览器中对文件夹进行整理:将 “LearningKit_Games”、“MilitaryWeapSilver”、“Characters” 和 “LevelPrototyping”(UE 4 中名称为 “Geometry”) 移动至 “Assets” 目录下,然后删除 “ThirdPerson” 文件夹。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    如果对某个文件夹进行移动后,原位置仍存在该文件夹,但文件夹中内容为空,这是因为虚幻引擎仍然保留了该文件夹的重定向器(Redirectors),即包含移动之前该文件夹中的资产路径,我们可以右键单击该文件夹,在弹出的下拉菜单中选择 “修复文件夹中的重定向器”(Fix up Redirectors in Folder),然后删除该文件夹即可。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  5. 最后在内容浏览器中的文件结构如下图所示。
    在这里插入图片描述


29.5 Summary

本节课从 Mixamo 官网获取角色 “CRYPTO”,下载其对应的 FBX Binaries 文件 “Ch45_nonPBR” 导入虚幻引擎中,重命名为 “MixamoCharacter”;我们还下载了该角色有关的动画,包括跳跃、站立转向和蹲下转向等。接着,借助虚幻引擎 5 的重定向工具 “IK Rig” 和 “IK Retargeter” 将 Mixamo 角色 “MixamoCharacter” 的动画重定向为 “Animation Starter Pack" 角色 “SK_Mannequin” 的动画:我们使用 “IK Rig” 工具新增来自两个角色骨骼的重定向链,并使用 “IK Retargeter” 工具进行链映射以及角色姿势调整,这使得两个角色的动画更加相似,然后输出重定向动画即可。参照以上过程,我们也可以将角色 “SK_Mannequin” 的所有动画重定向为 “LearningKit_Games” 的角色 “SK_EpicCharacter” 的动画。最后,我们将项目 “UnrealLearningKitGames” 的角色 “SK_EpicCharacter” 及其所有动画资产迁移至项目 “Blaster”,并在项目 “Blaster” 的内容浏览器中对文件结构进行整理。
在这里插入图片描述

29.1 从 Mixamo 官网获取动画步骤 8 中, “FBX导入选项” 对话框的几个设置都非常重要:取消勾选 “导入网格体” 复选框,在 “网格体-骨骼” 选项下选择 “Ch45_nonPBR_Skeleton”,在 “动画-动画长度” 选项下选择 “设置范围”,这样在 “高级-帧导入范围” 选项就可以进行设置,设置 “最大” 为 30

29.2 Mixamo 角色动画重定向为 “Animation Starter Pack” 角色动画 中,由于 UE5 使用了不同于 UE4 的重定向目标工具 “IK Retarget” ,因此进行动画重定向的步骤将主要参考 《【UE5教程】10分钟学会新功能动画重定向!》,这与本节课教学视频中展示的步骤有所不同。
步骤 3 中如果没有在 “NewIKRig” 编辑窗口中 设置 “SK_Mannequin” 的 “骨盆”(“pelvis”)为重定向根 ,那么在下面的 步骤 7 中启用编辑姿势按钮后,将无法使用旋转工具控制 “SK_Mannequin” 的骨骼网格体节点进行旋转(拖动时骨骼无反应)。
步骤 4 建立链映射关系时,笔者没有在 “NewRig” 新增与 “root” 和 “pelvis” 相关的链条,没有在 “NewRig1” 中新增与 “Hips” 相关的链条。因为经笔者测试发现,在不新增上述链条的情况下进行重定向后 “MixamoCharacter” 的动画和 “SK_Mannequin” 动画也能保持相似。如果一定要新增上述链条,需要在 “链映射” 中保证 “MixamoCharacter_Skeleton” 的 “Hips” 与 “SK_Mannequin” 的 “root” 对应,“SK_Mannequin” 的 “pelvis” 对应 “None”,进行重定向后 “MixamoCharacter_Skeleton” 的动画和 “SK_Mannequin” 动画还是可以保持相似的。
步骤 11 查看重定向后的动画时,如果发现骨骼错位,则可以在左侧 “骨骼树” 面板设置 “显示重定向选项”,然后右键单击 “root” 节点,在弹出的下拉菜单栏中选择 “递归设置平移重定向骨骼”后,设置 “root” 的平移重定向为 “动画”,“pelvis” 的平移重定向为 “缩放动画”。

29.4 资产迁移至项目 “Blaster”步骤 4 移动某个文件夹后,发现原位置仍存在原文件夹,但该文件夹中内容为空,这是因为虚幻引擎仍然保留了该文件夹的重定向器,即包含移动之前该文件夹中的资产路径,我们可以右键单击该文件夹,在弹出的下拉菜单中选择 “修复文件夹中的重定向器”,然后删除该文件夹即可。


这篇关于《UE5_C++多人TPS完整教程》学习笔记28 ——《P29 Mixamo 动画(Mixamo Animations)》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/828084

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

C++包装器

包装器 在 C++ 中,“包装器”通常指的是一种设计模式或编程技巧,用于封装其他代码或对象,使其更易于使用、管理或扩展。包装器的概念在编程中非常普遍,可以用于函数、类、库等多个方面。下面是几个常见的 “包装器” 类型: 1. 函数包装器 函数包装器用于封装一个或多个函数,使其接口更统一或更便于调用。例如,std::function 是一个通用的函数包装器,它可以存储任意可调用对象(函数、函数

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�