首页 > 解决方案 > 文本到 Unity 中的 2d Lipsync

问题描述

我对团结非常陌生,我不确定从哪里开始。我正在尝试使用统一将文本制作为 2d 口型同步。我试过搜索教程,但我发现的只是人们使用现成的脚本或插件来制作类似的东西,但我想尝试从头开始制作。只是我只知道编码的基础知识,只能修改现有的代码,还没有能力从头开始做任何东西,因为我还在学习,所以我想知道你们是否可以给我一个线索?

例如,如果你们可以指点我一些从头开始制作文本到语音的教程,或者制作 2d 口型同步的教程,或者一些制作文本到语音的示例代码,或者制作 2d 口型同步的示例代码,等等是的,只要是与统一制作二维口型相关的,我都会欣然接受和研究。先感谢您。(如果我的英语有很多错误请见谅,我不是本地人)

这是我正在尝试制作的示例:

(这两个的问题是他们让口型同步检测音频而不是文本中的语音)

或类似的东西,但用 2d 代替:

如果我的问题听起来很愚蠢,我很抱歉。我只是非常绝望:') 任何形式的帮助将不胜感激。

标签: unity3danimation2dtext-to-speech

解决方案


根据您的用例,您可能比真正的文本到口型同步功能更简单,但首先 -

当你刚开始学习编码时,很多事情一开始可能会让人不知所措。没有程序员能一下子解决大问题。你想先把它分解成块,把这些块分解成更多的块,然后像清单一样一次处理一个。

对于这个项目,我会这样分解。

  • 视觉效果
    • 动画的 2D 精灵图像(您发送的示例仅使用了一些不同的图像,并且只是循环浏览它们)
    • 精灵动画
    • Sprite 动画师和控制器
  • 文本逻辑控制器
    • 文本 ui 更新
    • 文本控制器触发各种动画

编程的另一个重要部分是分阶段工作。确定您的最小可行产品是什么,并在您的基本概念验证工作后对其进行迭代。

现在,对于您的 MVP,我要做的就是创建一个基本的说话动画,然后设置您的文本控制器,以便任何时候文本出现在屏幕上,它都会在 X 时间段内对其进行动画处理。

最后,使用插件或其他人的代码并不丢人。即使是最好的程序员也会在有意义的时候使用框架或其他人的代码。只要代码是开源的或获得许可供您根据需要使用,就没有理由重新发明轮子。插件和其他人的代码也可以成为学习如何编写代码的好方法,通过查看他们是如何编写代码、解构它并使其成为您自己的代码。

编辑:如果您只是在寻找一种在文本出现时启用动画的方法,请将类似的内容添加到您的文本控制器或您用来显示文本的任何内容中。

public Animator myAnimator; (drag and drop your animator onto this in the inspector)

public void UpdateOnScreenTextDialogue() {
    // logic to update your GUI with the new text
    myAnimator.Play("nameOfTalkingAnimation");
}

您还需要处理重置动画或转到特定动画,但这都可以在统一文档中查找,或者如果您在 Unity 中搜索启动/停止动画。


推荐阅读