跳至主要内容

平台特定配置

本指南涵蓋了 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 平台上的寫實模型產生衝突。此衝突會阻止寫實的嘴型同步功能正確初始化。

解決方案

為了解決此衝突,您需要修改插件設定檔:

  1. 導覽至您的 Unreal Engine 安裝資料夾
  2. 前往 Engine/Plugins/Marketplace/
  3. 找到 RuntimeTextToSpeech 插件資料夾
  4. 使用文字編輯器開啟 RuntimeTextToSpeech.uplugin 檔案
  5. 完全移除以下區段:
,
"Plugins": [
{
"Name": "NNERuntimeORT",
"Enabled": true
}
]

重要說明

  • 此修改僅影響 Mac 和 Linux 平台。 Windows 使用者無需進行此變更。
  • 此修正僅適用於 UE 5.6 及更新版本。 較舊的引擎版本不受影響。
  • 您可能需要重複此流程,因為更新外掛程式時,更新會還原原始設定檔。