我尝试在ThreeJS中对ReadyPlayer.me的角色进行LipSync。该偶像已经具备Viseme Face Rigged Morph Target。我使用Microsoft Speech SDK来检索音频和Viseme值(时间代码/ ID)并正确映射它。
演示(第一部分):https://www.youtube.com/watch?v=vLbQ2arXzRk 以下是我使用的算法/工作流程:
- 开始播放音频 - 将 N-1 MorphTargetInfluence 重置为0 - 更新 MorphTargetInfluence
- 动画变换不平滑,如何将动画从0到0.7设置为平滑? - 我应该将先前的morphTarget重置为0吗? (我认为是) - 在此论坛中使用TWEEN,但我不认为每50ms创建一个对象是有效的?动画可能持续多长时间,可能低于100或200ms,这不重要吗?
感谢,我是Three.js的新手。
演示(第一部分):https://www.youtube.com/watch?v=vLbQ2arXzRk 以下是我使用的算法/工作流程:
- 开始播放音频 - 将 N-1 MorphTargetInfluence 重置为0 - 更新 MorphTargetInfluence
head.morphTargetInfluences[ viseme.id ] = 0.7
- 等待下一个偏移 setTimeout(...)
- 在 AnimationLoop 中调用 renderer.render( scene, camera );
问题和问题解决:- 动画变换不平滑,如何将动画从0到0.7设置为平滑? - 我应该将先前的morphTarget重置为0吗? (我认为是) - 在此论坛中使用TWEEN,但我不认为每50ms创建一个对象是有效的?动画可能持续多长时间,可能低于100或200ms,这不重要吗?
感谢,我是Three.js的新手。