CRIWARE Unity Plugin Manual  Last Updated: 2024-07-12
使用插件组件实时控制口形
本节将解释如何使用CRIWARE Unity Plug-in和ADX LipSync扩展插件从已播放的音频 获取实时口形,并将其应用于模型中。

导入插件

请对已导入CRIWARE Unity Plug-in的项目,新增导入
以下的插件。

  * cri

  \ * expansion

    \ * cri_adx_lipsync

      \ * unity

        \ * plugin

          o * cri_adxlipsync_unity_plugin_vX_XX_XX_[平台].unitypackage(AssemblyDefinition相对应插件)

          \ * obsolete

            \ * cri_adxlipsync_unity_plugin_vX_XX_XX_[平台].unitypackage(常规配置插件)

 

 

 

 

 

 

 

 

 

使用插件组件

通过使用该组件,您可以轻松地进行口型同步。
请参照以下页面以了解每个组件的详细信息。

SDK 更新时的注意事项

注意
如果您使用的是SDK Ver3.05.xx并希望更新到SDK Ver3.06.00
添加了基于 CriWare.CriLipsDeformer 的组件用以替换基于 CriWare.CriLipsShape 的组件。
CriWare.CriLipsDeformer 类组件是一组新组件,与现有组件相比增加了以下功能。
  • 简化了 AddComponent 以及执行中的变形目标的重新设置
  • 可以通过继承 CriWare.ICriLipsMorph 接口自定义变形处理
随着新组件的添加, CriWare.CriLipsShape 组件已被淘汰。
(除了一些较旧的无法使用 CriWare.CriLipsDeformer 的 Unity 版本)
基于 CriWare.CriLipsShape 的组件提供的所有功能都可以在基于 CriWare.CriLipsDeformer 的组件中使用。

注意
从SDK Ver3.00.xx升级到SDK Ver3.01.00时
更改了内部类 CriLipsMeshMorph 的 BlendShapeNameMapping 结构体的属性。
在此设计更改后,如果您在更新插件后重新打开场景,已经设置好的的BlendShape映射将被初始化。
请在更新插件后重新设置BlendShape。

如果要修改的位置很多,可以用文本编辑器等打开Unity场景文件,编辑需要更新的映射的相关描述部分,如下所示。

exp4u_adxlipsync_namemapping_diff.png
删除widthHeightName、japaneseAIUEOName并对齐缩进

如果不使用插件组件

在不使用组件、直接挂载至 CriAtomExPlayer 使用时,
可由如下所示方法从脚本中获取嘴形信息。
/* 创建Atom协同口形解析模块 */
CriLipsAtomAnalyzer criLipsAtomAnalyzer = new CriLipsAtomAnalyzer();
/* 设置预备播放音频的采样率 */
criLipsAtomAnalyzer.SetSamplingRate(48000);
/* 添加到CriAtomExPlayer */
criLipsAtomAnalyzer.AttachToAtomExPlayer(criAtomExPlayer);
...
/* 在已添加到criAtomExPlayer获取播放中的音频口形数据 */
criLipsAtomAnalyzer.GetInfo(out info);
criLipsAtomAnalyzer.GetMorphTargetBlendAmountAsJapanese(out morphTargetBlendAmountAsJapanese);

如果要播放的音频包含多个采样率,则还可以按以下方式
在执行时获取采样率。
/* 音频波形信息结构体 */
CriAtomEx.WaveformInfo waveformInfo;
/* 从acb句柄指定要播放的Cue名,获取Cue的波形信息 */
atomExAcb.GetWaveFormInfo(cueName, out waveformInfo);
/* 从已获取的波形信息将采样率设置至与Atom协同的口形解析模块 */
criLipsAtomAnalyzer.SetSamplingRate(waveformInfo.samplingRate);