UE4在运行时导入动画

Posted

技术标签:

【中文标题】UE4在运行时导入动画【英文标题】:UE4 import Animation during runtime 【发布时间】:2021-10-20 23:58:10 【问题描述】:

我想知道这是否可能,或者是否有人已经在使用此功能。

基本上我想做的是使用Assimp库在里面导入FBX和动画,当导入FBX文件时里面有一个动画,但真的不知道如何使用这个动画来转换我可以用来触发的东西它。

有人知道吗,先谢谢了

【问题讨论】:

【参考方案1】:

在 UE4 中使用 Assimp 库非常简单。以Windows为例,将dll复制到“YourGame/Binaries/Win32 or Win64/”中,然后需要导入includes头源,可以在主游戏库中进行,也可以为它创建一个单独的插件。然后在您的 Build.cs 文件下添加行 PublicAdditionalLibraries.Add(Path.Combine(LibrariesPath, "assimp-vc140-mt.lib"));

如果你想为它创建一个单独的插件,步骤是相同的​​。就动画而言,UE4 在后台使用 fbx,所以我可以根据经验告诉您,您可以获得顶点变换并将它们直接应用于 UE4 网格。不过,我会考虑为此使用 UProceduralMeshComponent,这就是它的用途。

虚幻论坛有一些关于如何做到这一点的指南。

【讨论】:

感谢您的回复,我觉得我说的不够清楚,导入FBX并使用Procedural Mesh显示网格的步骤在我这边完成。我写这篇文章的主要目的是了解如何在这个 FBX 文件中导入骨架网格物体和动画。当我尝试导入 FBX 文件时,我可以看到 FBX 内部有一个动画,但我不知道如何处理它并在运行时播放它。(例如:导入“直升机”,从“直升机”触发动画,然后直升机旋翼开始旋转) 是的,这里的动画格式只是网格中每个骨骼的一堆基于时间的变换,我确信 Assimp 有读取这些值的方法,然后你只需迭代通过每个骨骼并将相同的变换应用于程序网格组件骨骼。您可能需要某种方式来管理时间,否则动画播放的速度可能比您预期的要快。好消息是骨骼不需要相同的名称,根据我的经验,虚幻引擎并没有做很多事情来从 fbx 转换为它的 uasset 格式,所以你只需简单地遍历骨骼。 如果我能在 rutnime 期间使用 assimp 库导入和播放动画,那就太好了,有点知道你的意思,非常感谢你的信息,但我仍然需要检查如何实现

以上是关于UE4在运行时导入动画的主要内容,如果未能解决你的问题,请参考以下文章

UE4超过20万个动画角色的优化实战

UE4高级动画系统 ML_DoWhile(TrueFalse) 的含义

UE4运行时虚拟纹理教程RVT

UE4运行时虚拟纹理教程RVT

UE4运行时交互工具框架

ue4音效动画结合实例