在player类构造函数中,我使用ConstructorHelpers::FObjectFinder获取指向蓝图动画类的链接:
static ConstructorHelpers::FObjectFinder<UAnimBlueprint> finderAnim(TEXT("AnimBlueprint'/Game/MixamoAnimPack/Mixamo_Adam/Anims/MixamoAnimBP_Adam.MixamoAnimBP_Adam'"));然后调用SetAnimClass()方法:
if (finderAnim.Succeeded())
PlayerMesh->SetAnimClass(finderAnim.Object->GetAnimBlueprintGeneratedClass());所有工作都在UE4编辑器中进行,但是当我开始打包项目时,出现了一些问题,我得到了一个错误:
> PackagingResults: Warning: Error: CDO Constructor (Enemy): Failed to find /Game/MixamoAnimPack/Mixamo_Mortimer/Anims/MixamoAnimBP_Mortimer.MixamoAnimBP_Mortimer是否有解决这个问题的方法,或者我应该创建一个播放器的蓝图类并选择那里的动画?
发布于 2020-06-03 15:01:14
这里是一个类似的问题在虚拟发动机论坛。
这是拟议的解决办法:
在文件名末尾添加"_C“,并将该文件作为"UClass”处理,使事情运行更加顺畅。现在它在编辑器和打包游戏上都能正常运行。
因此,您的finderAnim初始化将类似于:
static ConstructorHelpers::FObjectFinder<UClass> finderAnim(TEXT("AnimBlueprint'/Game/MixamoAnimPack/Mixamo_Adam/Anims/MixamoAnimBP_Adam.MixamoAnimBP_Adam_C'"));PS:查看JamesG(首席程序员- UE4动画/物理/音频团队)在这线程上的答案,以更清楚地理解它。
发布于 2020-06-03 19:48:51
另一个可能更健壮的解决方案是使用FClassFinder。
static ConstructorHelpers::FClassFinder<UAnimInstance> finderAnim(TEXT("/Game/MixamoAnimPack/Mixamo_Adam/Anims/MixamoAnimBP_Adam"));之后你可以简单地
PlayerMesh->SetAnimClass(finderAnim.Class);https://stackoverflow.com/questions/62175144
复制相似问题