发布人:视觉设计师 Cassidy Curtis 及首席科学家 David Salesin,Google Research
3D 计算机动画是一种费时的高级技术媒体,即使要完成一个动画场景也需要历经诸多步骤,如建模、绑定和动画制作,整个流程中的每个步骤本身
都是一门学科分支,且需要花费数年时间才能熟练掌握。由于 3D 动画的复杂性,其通常会交由技艺娴熟的专家团队来制作完成,尽管技术和工具在过去几十年间不断发展进步,但 3D 动画这一领域尚未走进大众的眼帘。随着工具在近年以来的不断发展,游戏人物创建 和 平衡游戏 变得更加便利,自然我们就会产生这样一个问题:是否有可能让 3D 动画制作流程走向大众,让所有人都能涉足这一领域?
为探索这一概念,我们首先观察到,大多数的艺术表现形式都具有即兴性质,即古典吉他手可能会在没有乐谱的情况下即兴演奏,训练有素的演员可能会在排练时即兴说出一两句台词,油画家可能会快速画下一幅动态素描。这些即兴模式的共同之处在于,艺术家可以在其中快速、直观地表达自己的完整想法,而不必担心会犯错。随心所欲对于创作过程而言至关重要,如果艺术家能够轻松绘制草图,那就可以更加高效地反复探索无限的可能性。
在本文中,我们将为您介绍在 SIGGRAPH Asia 2020 上 亮相 的开源工具 Monster Mash,专家和业余爱好者都可通过这款工具,从零开始创建丰富、富有表现力和形状可变的 3D 模型,并为这些模型赋予动画效果。所有流程都可随心而动,无需脱离 2D 平面来完成。用户可以在 Monster Mash 中勾勒出人物草图,然后软件会自动将草图转换为柔软、可变形的 3D 模型。用户可以抓取这些模型中的部位,通过实时移动模型来生成即时动画。您可访问 在线演示版,直观感受一下此工具。
使用 Monster Mash 创建步行动作循环。第 1 步:绘制人物。第 2 步:为其添加动画
创建 2D 草图
随意描绘草图的这种方法之所以可行,是因为存在这样的共识,即可以用 2D 区域的有序集合来描述很多 3D 模型(尤其是那些有机形态的 3D 模型)。这种抽象的解释让复杂的 3D 建模任务变得更加简单:用户通过绘制线条轮廓来创建 2D 区域,然后算法会缝合并扩充绘制的区域,以此创建 3D 模型。因此我们可以利用简单直观的用户界面绘制 3D 图形。
例如,假设用户想要创建一头大象的 3D 模型。首先,用户需要用封闭线条绘制大象的身体 (a)。然后,通过添加线条来绘制其他身体部位,比如象腿 (b)。这些以开放曲线绘制的额外线条将提示系统,它们应与重叠区域平滑连接。用户还可以通过鼠标右键进行绘制,指定某些新绘制的线条应位于现有线条的后方 (c),双击线条即可将其标记为对称 (d)。这样一来,我们便可得到一个 2D 区域的有序列表。
大象 2D 草图创建步骤
缝合和扩充
为了解如何用这些 2D 区域创建 3D 模型,让我们来仔细看看大象的这一部分。首先,系统会通过找到连接开放曲线两个端点所形成的线段(红),识别出腿与身体相连的部位 (a)。然后系统会沿着该线段切割身体的前表面,并将腿的前部与身体缝合在一起 (b)。接着系统通过求解修正形式的泊松方程,将模型扩充为 3D 模型,以生成具有圆形横截面的表面 (c)。最终得到的模型 (d) 表面平滑、形状良好,但由于所有的 3D 模型都是根据 2D 绘制的平面图形制作而成,这些 2D 平面可能会彼此产生交点,导致“大象”的形状看起来有些奇怪。交点问题可通过变形系统解决。
缝合和扩充过程的详细图示。示意图 (b) 和 (c) 是从大象正面观察到的截面图
分层变形
截至目前,我们得到的只是一个静态模型,我们需要让用户能够轻松为模型添加动作,同时以某种方式分离相交的部分。Monster Mash 的分层变形系统采用众所周知的平滑变形方法 as-rigid-as-possible (ARAP), 可以同时解决以上两个问题。分层“ARAP-L”方法的创新之处在于:该方法可以将变形和其他约束条件结合到单个优化框架中,从而可令系统与交互速度并行地运行这些过程,便于用户实时操作模型。
该框架包含一组分层和等式约束,从而可令身体部位沿着 z 轴移动,防止它们之间产生明显的交点。系统仅会针对重叠部分的轮廓应用这些约束,并会在每一帧中对其进行动态更新。
在以上步骤 (d) 到 (h) 中,我们通过 ARAP-L 方法,将一个 3D 部分重合的模型转换为一个按照用户指定深度顺序进行排列的模型。分层约束迫使腿部轮廓保持在身体的前方(绿),以及身体轮廓保持在腿部后方(黄)。等式约束(红)会将腿部和身体之间的松散边界密封起来
同时,我们在另一个框架线程中遵循了点约束 ,使模型能够随着 xy 平面中用户定义的控制点(详见下文)而变形。借助 ARAP-L 方法,我们得以将建模、绑定、变形和动画制作等所有流程整合为单个流程,更便于非专业用户接触这一领域。
模型会随着点约束(红色点)来进行变形,而分层约束则可以防止各部分出现明显相交
动画制作
要为模型添加动作,用户可以在模型表面的任意地方创建并移动控制点。变形系统会对多帧进行收敛,让模型的动作具有松软的质感,便于用户直观地掌握其动态特性,而这是动觉学习的必要前提。
由于变形产生的效果会在多帧上收敛,我们的系统将赋予 3D 模型柔软的动态质感
为创建动画,系统会实时记录用户动作。用户可以为一个控制点制作动画,然后在记录其他控制点时回放该动作。通过这种方式,用户可以一次为一个身体部位制作分层动画,从而构建如步行这类复杂的动作。在动画制作过程的各个阶段,用户唯一需要完成的任务就是在 2D 平面来回移动点,这项工作流程风险极低,旨在鼓励用户以实验和游玩的方式多加尝试。
结论
我们认为这种制作动画的新方法相当直观,有助于将计算机动画领域推向大众,适合通常情况下无法自行尝试动画制作的初学者,以及 长期需要在紧迫交期内快速迭代 的专家。以下是我们通过 Monster Mash 制作的几个动画角色。大多数角色都是在几分钟之内制作完成。
使用 Monster Mash 创建的精选动画角色。用于创建每个 3D 模型的原始手绘图将以小图形式呈现在每个角色的上方
Monster Mash 的所有代码均为开放源代码,如需了解详情,您可以观看我们的 演示 并阅读 SIGGRAPH Asia 2020 论文。我们希望这款软件可以让更多人能够制作 3D 动画。快来试试在线演示版,亲自体验一下!
致谢
Monster Mash 由 Google Research、布拉格捷克理工大学、苏黎世联邦理工大学和华盛顿大学联手打造。主要贡献者包括:Marek Dvorožňák、Daniel Sýkora、Cassidy Curtis、Brian Curless、Olga Sorkine-Hornung 和 David Salesin。我们还要感谢参与早期互动会议的 Hélène Leroux、Neth Nom、David Murphy、Samuel Leather、Pavla Sýkorová 和 Jakub Javora。
原文:Monster Mash: A Sketch-Based Tool for Casual 3D Modeling and Animation
中文:TensorFlow 公众号