我找了很多资料都没有找到方法,目前想用SaveArrayToFile(TArray, *FilePath)函数来保存,可是在USoundWave类中又找不到存储声音信息的二进制数组
感谢您的回复,但是我需要的是在项目运行时导出为wav
运行时导出干嘛呢?描述一下你的需求?
导出后我想用python加工语音,python脚本里读取本地文件进行声音克隆,然后UE再去读取进行播放,现在读取已经实现了,但是保存成本地文件不行。
void UAssetManager::SaveSoundWaveToFile(USoundWave* SoundWave)
{
if (SoundWave == nullptr)
{
return;
}
TArray<UObject*> ObjectsToExport;
ObjectsToExport.Add(SoundWave);
FAssetToolsModule& AssetToolsModule = FModuleManager::GetModuleChecked<FAssetToolsModule>("AssetTools");
AssetToolsModule.Get().ExportAssetsWithDialog(ObjectsToExport, true);
}
原理就是用了编辑器导出按钮调用的函数。
这个函数我放在AssetManager里的,你可以放在你想要的地方。
我测试了能在PIE里用,但这个模块依赖了UnrealED,肯定不能打发行包。
1 Like
好吧,还是谢谢您
花了一天时间在网上找各种TArray的PCMData转换到USoundWave的方法,没想到的是虚幻已经有直接将文件保存成.wav的方法了
图1
这就是整个功能的蓝图节点图表,我放在了玩家控制器里,你看你习惯。
图2
没什么好解释的。
图3
最终文件存放的位置。
有什么直接问,点个 吧。
2 Likes
请问代码在哪下载啊???