平台特定配置
本指南涵蓋了 Runtime Text To Speech 外掛程式的平台特定設定需求與配置。
Android 和 iOS 崩潰
在某些情況下,Android 和 iOS 平台可能會在執行期間發生崩潰(例如在 TestFlight 測試期間)。這是由於底層 ONNX Runtime 函式庫的記憶體分配需求與 Unreal Engine 在這些平台上的預設分配器發生衝突所致。
為了解決此問題,您需要在專案的 Target.cs 檔案中強制使用 ANSI 分配器:
針對 Unreal Engine 5.5 及更早版本:
- 您的專案必須使用原始碼建構的引擎(而非預編譯的二進位檔)
- 在您的
Target.cs檔案中加入以下這行程式碼:
GlobalDefinitions.Add("FORCE_ANSI_ALLOCATOR=1");
適用於 Unreal Engine 5.6 及更新版本:
- 可與原始碼建置及預編譯的引擎版本搭配使用
- 請將以下兩行內容新增至您的
Target.cs檔案中:
bOverrideBuildEnvironment = true;
StaticAllocator = StaticAllocatorType.Ansi;
這會強制 Unreal Engine 在 Android 和 iOS 上使用 ANSI 分配器,以匹配 ONNX Runtime 所使用的分配器。
Mac / Linux 配置 (UE 5.6+)
NNERuntimeORT 插件衝突
如果您在 Mac 或 Linux 平台上使用 Unreal Engine 5.6 或更新版本,您將會遇到一個插件衝突,導致寫實模型無法正常運作。
問題說明
從 UE 5.6 開始,引擎包含了 NNERuntimeORT 插件,這與 Runtime MetaHuman Lip Sync 插件在 Mac 和 Linux 平台上的寫實模型產生衝突。此衝突會阻止寫實的嘴型同步功能正確初始化。
解決方案
為了解決此衝突,您需要修改插件設定檔:
- 導覽至您的 Unreal Engine 安裝資料夾
- 前往
Engine/Plugins/Marketplace/ - 找到
RuntimeTextToSpeech插件資料夾 - 使用文字編輯器開啟
RuntimeTextToSpeech.uplugin檔案 - 完全移除以下區段:
,
"Plugins": [
{
"Name": "NNERuntimeORT",
"Enabled": true
}
]
重要說明
- 此修改僅影響 Mac 和 Linux 平台。 Windows 使用者無需進行此變更。
- 此修正僅適用於 UE 5.6 及更新版本。 較舊的引擎版本不受影響。
- 您可能需要重複此流程,因為更新外掛程式時,更新會還原原始設定檔。