- UE4示例项目的位置如下,用于详细确认如何使用作为 用于创建或获取口形数据类 的 "ULipsAtomAnalyzer"。 使用“ 如何安装CRIWARE ADX LipSync Plugin ”构建和启动此项目,可以在UE4编辑器看中到以下画面。
角色模型示例 "FaceSample" 的面部将显示于视图(Viewport)中。 执行Play In Editor时,将播放台词音频,请确认角色模型的口形变化。 关于角色模型的口形设计,请参照 “ 适用于ADX LipSync的脸部口形 ”。
- 为介绍如何实现唇音同步,此示例中仅提供一个称为 "FaceSample_BP" 的角色蓝图。 于编辑器中打开后,将显示以下图表。
该蓝图主要执行的內容如下:
- BeginPlay事件触发时,將在 SetupAdxLipsyncAnalyzer 宏设置 ULipsAtomAnalyzer 对象。同时绑定其中的 UAtomComponent 对象。
- 调用绑定于 ULipsAtomAnalyzer 的 UAtomComponent 的 Play() 方法,开始播放台词音频。而台词音频预设于 UAtomComponent 对象中。
- Tick事件触发时,如果正在播放音频,将获取口形数据并反映于模型的网格。可以根据IsLipSyncBasedOnJapaneseVowel 变量的值切换变形的种类。预设为获取日语五元音的口形数据并反映至角色模型网格。
详细说明如下。
ULipsAtomAnalyzer对象的设置
- SetupAdxLipsyncAnalyzer宏的图表如下。
此宏中主要执行的內容如下。
- 从ULipsAtomAnalyzer类构成(创建)对象。 这是必须的操作。
- 调用ULipsAtomAnalyzer的 Init() 方法进行初始化。 这是必须的操作。用戶可以指定采样率为参数,而示例中则是预设值0。后文将详细说明。
- 调用ULipsAtomAnalyzer的 Attach() 方法,可以绑定UAtomComponent对象。此时播放音频,可以即时进行实时解析或创建口形数据。这是必须的操作。
- 调用ULipsAtomAnalyzer的 GetInfoAtSilence() 方法,并将静音时的口形数据的某些值保持在WidthAtSilence变量中。 这不是必须的操作。后文将详细说明。
- 补充事项:关于初始化时指定的采样率
- 使用ADX LipSync解析音频时,必须预先指定输入波形的采样率。 建议用户为播放的音频数据使用相同的采样率。 播放不同采样率的音频数据时,则请先设置为预先调用 ULipsAtomAnalyzer 的 SetSamplingRate() 方法。
- 补充事项:关于静音时的口形数据
- ULipsAtomAnalyzer确定输入声音为静音时,将返回“嘴巴闭合时”的口形数据。 预设情况下,静音时的嘴巴宽度値为0.583。角色模型示例 FaceSample 虽然包含 LipWidthOpen 作为对应嘴巴宽度的变形目标, 但假定“嘴巴闭合时”混合値为0.0。也就是说,ULipsAtomAnalyzer和变形目标之间存在对“静音时”的解释偏差。 因此将口形数据应用于变形目标时,必须修正这些偏差。可以以 GetInfoAtSilence() 方法获取的值保持在 WidthAtSilence 变量中,方便日后处理。
获取口形数据和反映于网格 (以日语五元音进行时)
- 在 UpdateMouthShapeBasedOnJapaneseVowel 宏中获取口形数据并反映于网格。此处理以网格包含日语五元音各自的变形目标为前提。 其图表如下。
在此宏中使用 ULipsAtomAnalyzer 对象的 GetMorphTargetBlendAmountAsJapanese() 方法获取 A、I、U、E、O 的混合値,并设置至各变形目标。
获取口形数据和反映于网格 (以嘴巴宽度或高度进行时)
- 在 UpdateMouthShapeBasedOnJapaneseVowel 宏中获取口形数据并反映于网格。此处理以网格包含嘴巴宽度和高度的变形目标为前提。 其图表如下。
在此宏中, 对于使用 ULipsAtomAnalyzer 对象的 GetInfo() 方法获取的值,以使用 WidthAtSilence 的值进行修正,并设置到各变形目标中。
如何自定义示例
- 用户可以自定义 UE4示例项目 来学习如何使用 CRIWARE ADX LipSync Plugin。 建议用户测试以下自定义的例子:
- 可以将示例中的角色模型网格替换为自己的角色模型网格
- 示例项目中的 "FaceSample_BP" 蓝图添加了 Mesh 组件。您可以编辑详细信息面板和替换为独有的网格。 但请注意包含网格的变形目标种类。在此蓝图中,仅支持示例网格 "FaceSample" 的变形目标名。
- 让角色说出用户的台词音频
- 示例项目中的 "FaceSample_BP" 蓝图添加了 UAtomComponent (UE4编辑器中以 "Atom" 的名称存在)。 可以从详细信息面板编辑Atom和替換Sound属性为其他Cue Asset。 关于如何创建Cue Asset和ADX数据,请参照 " \ref criware_ue4_atom " 和 "CRI ADX2用户手册"。