首页> 中国专利> 用于生成对动画模型性态进行近似的膨化组件的方法

用于生成对动画模型性态进行近似的膨化组件的方法

摘要

模型组件可被用于对人物模型进行姿态设置以创建各种真实的和艺术的效果。本发明的一则实施例分析模型组件的性态以确定该模型组件的统计表示,该统计表示非常近似与该模型组件输出。因为该模型组件的统计表示比原始模型组件执行起来更快速,则可用等价的模型组件的统计表示在动画时间中替换用于对人物模型进行姿态设置的模型组件以提高动画性能。通过对使用一组典型的训练姿态处理过的人物模型进行分析可以获得模型组件的统计表示。模型组件的统计表示是由姿态帧位置的加权组合加上由动画变量的非线性组合所控制的姿态误差集而组成的。

著录项

  • 公开/公告号CN101356549A

    专利类型发明专利

  • 公开/公告日2009-01-28

    原文格式PDF

  • 申请/专利权人 皮克萨公司;

    申请/专利号CN200480012925.2

  • 发明设计人 J·安德森;

    申请日2004-05-12

  • 分类号G06T13/00;G06T15/70;

  • 代理机构上海专利商标事务所有限公司;

  • 代理人钱慰民

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 21:19:23

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-04-26

    未缴年费专利权终止 IPC(主分类):G06T13/40 专利号:ZL2004800129252 申请日:20040512 授权公告日:20120104

    专利权的终止

  • 2012-01-04

    授权

    授权

  • 2009-03-25

    实质审查的生效

    实质审查的生效

  • 2009-01-28

    公开

    公开

说明书

相关申请的交叉引用

本申请要求一起于2003年5月14日递交的美国临时专利申请序列号 60/470,590,题为“膨化装置”(Rig Baking),和序列号60/470,767,题为 “去混淆化”(Defrobulation)的优先权,其结合在此用于各个目的的参考。 本申请还结合递交于____的美国专利代理证明序号21751-000910US,题为 “用于人物关节表示的去混淆角”(Defrobulated Angles for Character Joint Representation)用于各个目的的参考。

背景技术

本发明涉及计算机图形学领域,尤其是用于制作计算机生成人物的动画的 方法和装置。本发明涉及计算机图形学领域。许多计算机图形图像是通过从一 个给定的视点对光线与三维场景的交互进行数学建模而生成的。该处理(被称 为呈现)从给定的视点生成场景的二维图像,并类似于对真实世界景色拍摄一 张相片。可通过象场景随着时间逐渐改变那样呈现场景图像的序列来生成动画 序列。已经做出了很多努力来制作有真实视感的呈现图像和动画。

人物的计算机生成动画是通过将人物的三维模型处理为在帧序列上的一 系列身体位置、或姿态来完成的。有真实视感的人物模型通常是极度复杂的, 具有几百万个表面元素以及成百上千个属性。由于将如此复杂的模型动画化的 复杂性,动画工具通常依靠骨架结构(armature)和动画变量来定义人物动画。

骨架结构是表现人物姿态、或身体位置的“条状图”(stick figure)。 通过移动骨架结构片段(segment),也即“条状图”中的“条”,骨架结构 可以被处理为所期望的姿态。由于骨架结构是由动画制作者摆设的,动画工具 修改人物模型以使人物的身体姿态粗略地表现出骨架结构的身体姿态。

动画变量是另一种定义复杂人物模型的人物动画的方式。动画变量是修改 人物模型外观的函数的参数。动画变量和它们相关联的函数被用于将对人物模 型的复杂修改抽象为相对简单的控件。动画变量和它们相关联的函数可以处理 骨架结构片段,从而间接改变人物模型的外观,或跳过骨架结构直接处理人物 模型。

例如,单个动画变量可定义人物嘴部打开的程度。在这个示例中,动画变 量的值可处理多个不同部分的骨架结构和/或直接修改部分人物模型以创建嘴 部打开至所期望程度的修改后的人物模型。

与动画变量相关联的函数(被称为模型组件)可被用于创建各种真实和艺 术效果。例如,模型组件可被用于创建人物模型表面下的骨骼层、肌肉层、以 及脂肪层,这样人物模型的表面或皮肤能真实地按摆出姿态变形。模型组件也 可被用于模拟非刚性特征(诸如毛发和衣物)的运动。除了复制指定物理现象 外,模型组件可被用于根据算法或过程(诸如雕刻整形、球变换、以及物理学 仿真)来处理人物模型。

模型组件可以是极度复杂的并且因此其执行是耗时的。为了创建有艺术效 果的人物动画,动画制作者通过创建场景的粗略视图并随后重复微调人物动画 以创建最终场景的预期表演和表现。执行模型组件所需的时间(例如动画制作 者摆设和重复摆设人物模型姿态)阻碍了动画制作者的效率。在最坏的情况下, 动画制作者被迫使用简化的“替身”人物模型来创建最初的动画,并随后等待 查看使用最终人物模型的结果动画。在这种情况下,动画制作者本质上是盲目 地在工作并只能猜想最终结果。反之,用合理的时间(即使可能的话)处理模 型组件所需的额外计算机资源实质上增大了创建动画的开销。

因此需要一种最优化模型组件性能的系统和方法这样可以用合理的时间 执行它们而不花费过量的计算机资源。还需要能够最优化任何类型的模型组 件,而不考虑它的功能或复杂度。

发明内容

模型组件可被用于摆放人物模型姿态以创建各种真实的和艺术的效果。本 发明一则实施例分析模型组件的行为以确定模型组件的统计表示,该统计表示 非常近似于模型组件的输出。因为该模型组件的统计表示比原始模型组件执行 起来更快速,则可用等价的模型组件的统计表示在动画时间中替换用于对人物 模型进行姿态设置的模型组件以提高动画性能。通过对使用一组典型的训练姿 态处理过的人物模型进行分析可以获得模型组件的统计表示。模型组件的统计 表示是由姿态帧位置的加权组合加上由动画变量的非线性组合所控制的姿态 误差集而组成的。

在本发明的一则实施例中,使用模型组件将至少一部分人物模型处理为姿 态的方法包括从模型组件创建统计表示(称为膨化组件(baked component))。 该方法识别与膨化组件相关的一部分人物模型并根据姿态确定人物模型中点 集的几何设定姿态的位置集。该方法也根据膨化组件和姿态预测与该人物模型 的点集相关联的姿态误差集。姿态误差集中的每一个指定了点离开几何设定姿 态的位置的位移。随后通过将姿态误差集应用在点集的几何设定姿态的位置集 上来形成已处理的人物模型。

在另一则实施例中,通过至少一个影响一部分人物模型的参考帧来识别与 姿态相关联的一部分人物模型。此外,一则实施例通过动画变量集至少部分地 定义了姿态。在还有一则实施例中,动画变量(诸如关节旋转角)被表示为去 混淆形式。此外,姿态误差集可指定随着时间的经过点离开几何设定姿态的位 置的单个位移或一系列位移。

在另一则实施例中,通过识别与模型组件相关联的至少一部分人物模型从 模型组件创建膨化组件。该实施例随后通过训练姿态集中的每一个来处理人物 模型。训练姿态集由输入集定义并表示人物模型运动的范围。从训练姿态集, 该实施例确定用于人物模型至少一个点的训练姿态误差集并随后分析该训练 姿态误差集以确定输入集与训练姿态误差集之间的关系。在还有一则实施例 中,分析姿态误差集包括对输入集执行训练姿态误差集的回归分析。

在另一则创建膨化组件的实施例中,输入集包括动画变量集。动画变量集 的一部分是表示为去混淆形式关节旋转角。此外,训练姿态误差集中的每一个 是人物模型点的位置中从几何设定姿态的位置到至少一个由人物模型所定义 的位置之间的至少一个差值。姿态误差集中的每一个可指定人物模型中的点从 几何设定姿态的位置到由模型组件随着时间所指定的位置集之间的单个位移 或随着时间一系列位置差值。

附图说明

将结合附图描述本发明,其中:

图1示出适合实现本发明一则实施例的计算机系统的框图;

图2示出确定关节连接人物模型上的点的姿态位置的模型组件的现有使 用;

图3示出根据本发明的一则实施例确定关节连接人物模型上的点的姿态 设定位置的膨化组件的使用;

图4示出用于根据本发明一则实施例创建姿态设定人物模型的方法和两 个阶段;

图5示出用于根据本发明一则实施例使用与关节连接人物模型相关联的 模型组件创建膨化组件的方法;

图6A-6C示出用于根据本发明一则实施例使用与示例性关节连接人物模 型相关联的模型组件创建膨化组件的方法的示例性应用;

图7示出用于根据本发明一则实施例从膨化组件确定关节连接人物模型 上的点的姿态位置的方法;以及

图8A-8C示出用于根据本发明一则实施例从膨化组件确定关节连接人物 模型上的点的姿态位置的方法的示例性应用。

具体实施方式

图1示出适合实现本发明一则实施例的计算机系统的框图。图1示出 能够实现本发明一则实施例的示例性计算机系统100。计算机系统100通常 包括监视器110、计算机120、键盘130、用户输入设备140、以及网络接 口150。用户输入设备140包括计算机鼠标、轨迹球、轨迹垫、绘图写字板、 触摸屏、和/或其它允许用户创建或选择出现在监视器110上的图形、对象、 图标和/或文本的有线或无线输入设备。网络接口150的实施例通常使用电 子通信网络,诸如局域网、广域网(例如互联网)、和/或虚拟网络(例如 虚拟个人网络VPN)提供有线或无线通信。

计算机120通常包括组件诸如一个或多个通用处理器160、以及存储 器储存设备诸如随机访问存储器(RAM)170、磁盘驱动器180、以及连接上 述组件的系统总线180。RAM 170和磁盘驱动器180是实体介质的示例,用 于存储数据、音频/视频文件、计算机程序、小应用程序解释器或编译器、 虚拟机、文中所述发明的实施例包括几何场景数据、对象数据文件、阴影 描述符、呈现引擎、输出图像文件、纹理映射、以及位移映射。计算机120 的其它实施例可包括用于处理和输出音频和图形数据的专用音频和视频子 系统。其它类型的实体介质包括软盘、可移动硬盘、诸如DVD-ROM、CD-ROM 和条码的光学存储介质、诸如闪速存储器的非易失性存储设备、只读存储 器(ROM)、电池支持易失性存储器、以及网络化存储设备。

图2示出确定关节连接人物模型200上的示例点的姿态位置的模型组 件的现有使用。图2示出人物模型200的部分肩膀和手臂区域。在一则实 施例中,人物模型200是对象的三维计算机模型,虽然为了清晰的原因以 二维示出。此外,虽然人物模型200示为人类特征,人物模型200可采取 任何类型的对象(包括植物、动物、以及带有真实和/或人形属性的无生命 对象)的外形。

人物模型200可通过任何用于创建三维计算机模型的方法(包括在三 维建模软件中手动构建、程序化对象创建、以及对物理对象的三维扫描) 来创建。人物模型200可包括多边形、三维像素、高阶曲面(诸如贝塞尔 (Bezier)曲面或非均匀有理B样条(NURBS))、构造化固体几何、和/ 或其它用于表现三维对象的技术的集合。此外,人物模型200可包括定义 对象外部外观的属性,包括颜色、纹理、物质属性、透明度、反射率、光 亮以及阴影属性、位移映射、以及碰撞映射。

人物模型200通过骨架结构205而动画化。骨架结构205包括一个或 多个骨架结构片段。在图2中,骨架结构205被用于表现人物模型200的 上臂姿态。动画制作者处理骨架结构205片段的位置和定向以为人物模型 200定义一个姿态。

骨架结构片段可在大小、位置、或定向上有限制或可被动画制作者随 意处理。骨架结构片段的数目可根据角色的复杂度而改变,并且通常角色 可含有带有数百个或数千个片段的骨架结构。在一些情况中,骨架结构片 段的数目和位置类似于人物的“骨架”;然而,骨架结构片段也可定义微 妙的面部变化以及与骨头或其它解剖学特征不必相关的其它人物细节。此 外,虽然图2的骨架结构205中的骨架结构片段由线性片段集组成,在本 发明的可选实施例中,骨架结构片段可由表面集和/或体积集组成。

通过创建帧(或静止图像)序列来动画化人物模型205,其中人物模 型200从一个姿态逐渐移动到另一个姿态。人物模型200也可在帧与帧之 间被整体转移、旋转、缩放、或进行其它处理。动画制作者可为序列中的 每个帧手动创建人物模型200的姿态,或为两个或多个关键帧创建姿态, 在此后由动画软件进行内插来为每个帧创建姿态。姿态也可通过使用函数、 过程、或算法而自动创建。

不论是所有或部分的姿态由动画制作者手动创建或使用函数、过程、 或算法自动创建,人物模型200的姿态可通过动画变量组来定义。一种类 型的动画变量指定骨架结构片段围绕一个原点(称为关节)的旋转角。在 图2中,骨架结构205的上臂片段围绕关节210的旋转由动画变量215、217、 219和221所指定。在这个示例中,动画变量215、217、219和221中的每 一个指定关于一个坐标轴的旋转。

至少部分通过模型组件230确定人物模型200的点的位置。在一则实 施例中,动画变量225(其中可包括与关节210有关的动画变量215、217、 219和221)被输入至模型组件230中。模型组件230随后从所输入的动画 变量中确定人物模型200的一个或多个点的位置。模型组件230可使用任 何类型的数据处理函数、过程、或算法来确定人物模型200的点的位置, 包括但不限于对皮肤、骨头、脂肪和肌肉层的仿真;动态衣物仿真;雕刻 整形;球变换;以及物理仿真。模型组件可被用于为人物模型表面的点、 人物模型200内部的点、和/或人物模型200之外的点确定人物模型200的 几何配置或其它属性。

在图2中,模型组件230确定人物模型200中点240和250的位置。 模型组件230的输出235指定点240的位置。类似地,模型组件230的输 出245指定点250的位置。点240和250的位置可由模型组件230按照离 开基位或静止位上的人物模型200的位移来指定。

或者,人物模型的位置可根据附近的骨架结构片段而旋转以形成几何 设定姿态的人物模型260。几何设定姿态人物模型使用一个或多个几何操作 来从静止或未摆出姿态的定向转换为姿态定向。几何操作包括位移、缩放、 旋转、和其它类似的对人物模型各部分的处理,以及这些操作的加权或未 加权组合。几何操作可也包括将人物模型上的点从人物模型的表面突起。 模型组件230的输出235和245依次指定点240和250离开它们在几何设 定人物模型260上位置的进一步位移。如下所述,无论模型组件如何指定 人物模型上点的位置,与几何设定人物模型相关的膨化组件都可被用于近 似该模型组件。

多种类型模型组件的复杂度使人物模型的姿态设置变得耗时和耗费计 算。如上所述,这阻碍了动画制作者微调角色动画以制作所需的表演和表 现的能力。本发明的一则实施例通过创建用于对人物模型进行姿态设置的 模型组件的统计表示来最优化模型组件的性能。模型组件的统计表示(称 为膨化组件)非常近似于模型组件的性态并且执行时间大量减少。此外, 膨化组件可被用于近似任何类型的模型组件的性态。这样,可以用等价的 膨化组件来替代被用于对人物模型进行姿态设置的模型组件,以此提高执 行性能并减少对人物模型进行姿态设置所需的计算资源。

图3示出根据本发明一则实施例确定关节连接人物模型上一个点的姿 态位置的膨化组件的使用。人物模型300通过骨架结构305来动画化,在 图3中表示人物模型300的上臂姿态。动画制作者对骨架结构305片段的 位置和定向进行处理以为人物模型300定义姿态。

人物模型300的姿态可通过动画变量集来定义,动画变量集包括动画 变量315、317、319和321,这些指定了骨架结构305上臂片段围绕关节 310的旋转。可至少部分通过模型组件333来确定人物模型300的点的位置。 然而,本发明的一则实施例通过将模型组件333替换为与模型组件333性 态近似的对应的膨化组件330而减少创建姿态人物模型的执行时间。膨化 组件330从模型组件333获得(334)。膨化组件330可近似于任何类型的 数据处理函数、程序或算法以确定人物模型300的点的位置,包括但不限 于皮肤、骨头、脂肪和肌肉层的仿真;动态衣物仿真;雕刻整形;球变换; 以及物理仿真。

在一则实施例中,可在对人物模型300进行姿态设置之前从模型组件 333获得膨化组件330。此外,一旦从模型组件333获得后,膨化组件330 可被用于重复确定人物模型300的多个姿态。

在一则实施例中,动画变量325(可包括与关节310相关联的动画变 量315、317、319和321)被输入至膨化组件330。膨化组件330随后根据 所输入的动画变量325确定人物模型200的一个或多个点的位置。

在图3中,膨化组件330确定人物模型300的点340和350的位置。 模型组件330的输出335指定点340的位置。类似地,模型组件330的输 出345指定点350的位置。点340和350的位置可由模型组件330按照离 开基位或静止位上的人物模型200的位移,或者按照点340和350离开它 们在几何设定人物模型360上的位置的位移来指定。

如上所述,可在对人物模型进行姿势设置之前从模型组件获得膨化组 件。此外,一旦计算了膨化组件,可使用膨化组件重复对人物模型进行姿 态设置。这样,图4示出用于根据本发明的一则实施例创建姿态人物模型 的方法400的两个阶段。在第一阶段410中,在对人物模型进行姿态设置 之前从模型组件获得膨化组件。随着膨化组件的创建,可使用膨化组件在 第二阶段420中创建姿态人物模型。本发明的一则实施例可重复第二阶段 420以生成人物模型的其它姿态而不重新创建膨化组件。

在第一阶段410的实施例中,通过将人物模型在训练姿态集(称为训 练集)中进行分析来创建膨化组件。图5示出用于根据本发明一则实施例 从与关节连接人物模型相关联的模型组件创建膨化组件的方法500。

步骤505识别与模型组件相关联的动画变量和参考帧。所识别的动画变 量是被输入至模型组件用于对人物模型进行姿态设置的动画变量集的一部 分。参考帧定义受模型组件输出影响的人物模型区域。在一则实施例中, 每个参考帧定义用于一个或多个框架结构片段以及人物模型的邻近部分的 局部坐标系统。对于与模型组件相关联的参考帧集,选择一个帧作为母帧。

在一则实施例中,坐标参考帧由四个矢量组成:第一矢量定义坐标参考 帧的原点或位置并且三个矢量定义坐标参考帧的坐标轴。人物模型的每个 点通过参考帧权重集与一个或多个参考帧相关联。参考帧权重集定义在给 定点上一个或多个参考帧的移动影响的加权平均。在一则实施例中,手动 确定所关联的参考帧和动画变量。或者,模型组件的分析可以确定用作输 入的动画变量以及人物模型的点集,这样,参考帧潜在地受到它的输出的 影响。

图6A-6C示出用于根据本发明一则实施例从与示例性关节连接人物模型 相关联的模型组件创建膨化组件的方法的示例性应用。图6A示出使用在对人 物模型605进行姿态设置的示例性人物骨架结构600。骨架结构600包括多个 参考帧,诸如与骨架结构600的右下腿相关联的参考帧607以及与骨架结构600 右肩相关联的参考帧609。每个参考帧与一个或多个骨架结构片段以及人物模 型605的邻近部分相关联。例如,参考帧611关联于人物模型605的躯干区域; 参考帧613关联于人物模型605的左肩区域;参考帧615和617分别关联于人 物模型605的左上臂和左下臂。

在步骤505中,识别与模型组件相关联的参考帧和动画变量。例如,用于 确定人物模型605手臂变形的肌肉变形模型组件可关联于参考帧611、613、615 和617的集合并关联于用于对这些参考帧中的框架结构片段进行姿态设置的动 画变量。

在步骤510,根据训练姿态集对人物模型进行姿态设置。每个训练姿态是将 已识别动画变量集设置为示例值的结果。训练序列集理想下覆盖与模型组件相 关联的部分人物模型移动的正常区域。在一则实施例中,训练集中的姿态数目 至少对应于与模型组件相关联的不同参考帧的数目,如果不超过它的话。在一 则实施例中,通常人物模型可含有包括数千个姿态的训练集。

在一则实施例中,人物模型的点根据训练集中的每个姿态被几何设定姿态。 部分人物结构框架的移动或姿态设置也移动了相关联的参考帧。几何设定根据 相关联的参考帧的姿态位置移动人物模型中的点,而没有任何离开模型组件的 位移。步骤510为每个训练姿态记录动画变量的值和受到建模组件潜在影响的 人物模型中的点的对应位置。在一则实施例中,人物模型点的姿态位置表示在 参考帧集的每一个中。动画变量值集和人物模型点的对应位置组成了样本数据 集。

继续图6A的示例,图6B示出用于与步骤510所调用的人物模型左臂相关 联的参考帧和动画变量集合的训练姿态620的示例集。训练集620包括训练姿 态622、624、626、628、630、和632,其中每一个都将与模型组件相关联的 人物模型处理为一个不同的姿态。在步骤510的一个示例性应用中,记录用于 每个训练姿态的动画变量的值和人物模型的几何设定点以形成样本数据集。

步骤515分析样本数据集以确定帧基函数的最优化集。表示点的设定姿态 位置的部分样本数据集被组合以形成矩阵,并且计算该矩阵的单值分解以查找 用于该样本数据集的帧基函数集。在可选实施例中,也可使用其它计算帧基函 数集的方法(诸如经典分解)。帧基函数集可被用于表示为使用最小平方探测 对样本集最优化的模型点的位置。确定帧基函数的最优化集允许更紧凑地表示 样本数据集,这样最小化了方法500的后续步骤所要分析的数据量。在一则实 施例中,步骤515使用帧基函数集分解样本数据集以确定样本数据的最优化集。 然而,步骤515是可选的并且方法500的一个替代实施例跳过步骤515并在原 始样本数据集的基础上执行后续步骤。

步骤520从样本数据最优化集中确定姿态误差集。在一则实施例中,通 过将人物模型点的几何设定姿态的位置与用于同一个动画变量集的来自模 型组件的对应的位置输出进行比较来确定用于给定姿态的姿态误差。用于 人物模型点的给定姿态的姿态误差是模型组件输出的点的位置与几何设定 姿态的位置之间的差值。在还有一则实施例中,由模型组件输出的点的位 置随着时间改变。在该实施例中,用于给定训练姿态中的点的姿态误差是 随着时间输出的模型组件和点的几何设定姿态的位置之间的一系列差值。 对于训练集中的每个训练姿态,为受到模型组件潜在影响的人物模型中的 每个点确定姿态误差。

在另一个实施例中,几何设定人物模型定义人物模型“皮肤”的位置。 模型组件定义关于该皮肤的点的位置。例如,衣物仿真建模组件可定义与 该人物模型皮肤有关的人物模型衣物上的点的位置。在这则实施例中,几 何设定人物模型定义姿态误差的方向或定向,并且模型组件的输出定义了 沿着该定向的姿态误差。

在一则实施例中,帧权重集被用于表示每个点的姿态误差。每个点的姿 态误差被变换为步骤505中所选择的母参考帧。从母参考帧中,每个点的 姿态误差根据与该点相关联的参考帧权重集进行加权并根据步骤515中确 定的帧基函数从母参考帧变形为每个参考帧。通过将姿态误差从母参考帧 变换并分布至其它参考帧,与人物模型的每个点相关联的姿态误差将连同 其相关联的参考帧一起移动。

继续图6A和6B的示例,图6C示出用于示例训练姿态的姿态误差的确 定。定义训练姿态的动画变量(包括动画变量640、642、644和646)被输 入至模型组件以确定设定姿态人物模型650。人物模型的点(包括点652 和654)的位置与它们在几何设定人物模型648上的对应位置相比较。姿态 误差656和658是点652和654分别在在姿态人物模型650和几何设定人 物模型648上的位置的差值。

步骤525分析姿态误差的完整集以确定与模型组件性态非常近似的膨化 组件。在一则实施例中,使用统计回归分析以将人物模型上点的姿态误差 确定为动画变量的函数。在一则实现中,在姿态误差集上执行非线性二次 回归分析。在该实现中,动画变量被分割为正值和负值(称为分割动画变 量),这被视为是分割回归步骤。在还有一则实现中,如果正分割动画变 量小于零,将值箝住为零。类似地,如果负分割动画大于零,则将其箝住 为零。在还有一则实现中,分割动画变量、分割动画变量的平方根、以及 邻近分割动画变量(其为与同一个关节相关联的动画变量)的乘积的平方 根都被用于回归分析以确定近似于模型组件输出的函数。

在还有一则实施例中,表现关节旋转的动画变量被转换为去混淆形式以 防止视觉中断的出现。不象通常角度表现,去混淆角在关节移动的正常范 围内不含有任何的角中断。在一些应用中,去混淆角通常显示出与模型组 件的高度统计相关性,例如因为去混淆角缺少万向锁并且在关节移动的正 常范围内是连续的。关节角从四角度角延展欧拉(Euler)形式到对应的去 混淆形式的转换详细描述在相关临时和实用申请证明序号21751-000900US 和21751-000910US,题为“去混淆化”(Defrobulation)和“用于人物关节 表示的去混淆角”(Defrobulated Angles for Character Joint Representation)中。

对去混淆角形式概括而言,由标准四角度角旋转(tw,a,b,c)所表示的对 应于右手角度旋转形式(x,y,z,x)的关节旋转被转换为投影集 xp=cos(a)cos(b);yp=cos(c)sin(a)+sin(c)sin(b)cos(a);以及 zp=sin(c)sin(a)-cos(c)sin(b)cos(a)。由投影集xp、yp和zp,,可定义弦 角ch为ch=acos(xp)。弦角ch被用作中间值以确定去混淆角(q,r,et)。在 一则实施例中,q=ch*yp,并且r=ch*zp。本质扭曲et定义为:

et=tw+arctan(zpyp)+arctan(sin(b)cos(b)sin(a))

在对本发明实施例的应用中,表示关节旋转且还没有为去混淆形式的动 画变量如上所述被转换为去混淆形式。随后使用动画变量的去混淆形式执 行回归分析。在还有一则实施例中,去混淆动画变量被分割为正值和负值 并且这被认为是分割回归步骤。此外,去混淆动画变量、它们的平方根、 以及邻近动画变量乘积的平方根可被包括在回归分析中。

在方法500中确定的膨化组件可被用于在将人物模型设置为任何所期望 的姿态中替代模型组件,无论所期望的姿态是否包括在训练集中。此外, 多个膨化组件的输出可被组合以确定人物模型的所有部分或一个或多个部 分的姿态。

图7示出用于根据本发明一则实施例从膨化组件确定在关节连接人物模 型上点的姿态位置的方法700。对于所期望的人物模型姿态(它在可由动画 变量集定义的实施例中)步骤705确定与膨化组件相关联的部分动画变量 集。在一则实施例中,该部分动画变量集(称为相关联动画变量)是含有 与膨化组件统计相关的动画变量。此外,步骤705确定与膨化组件相关联 的参考帧。

图8A-8C示出用于根据本发明从膨化组件确定关节连接人物模型上的点 的姿态位置的方法的示例性应用。在图8A-8C的示例中,膨化组件表示肌 肉变形操作,该肌肉变形操作被用于确定人物模型的左臂到所期望姿态的 变形。图8A示出选择与用于所期望姿态的示例性膨化组件相关联的参考帧 集,如步骤705的实施例中所要求的。人物骨架结构800根据动画变量集 已经被处理为所期望的姿态。步骤705识别与该膨化组件相关联的部分动 画变量集。此外,也选择受到该膨化组件影响的参考帧(诸如参考帧805、 810、815和820)。

在步骤710,人物模型,或是替代的受到该膨化组件潜在影响的部分人 物模型,被根据相关联的动画变量进行几何设定设置。人物模型可用任何 本领域所知的方法进行几何设定设置。

图8B示出如步骤710的实施例所要求的确定人物模型上点的几何设定 姿态的位置。在图8B中,步骤710根据部分动画变量(包括动画变量835、 840、845和850)对受到膨化组件影响的部分人物模型830进行姿态设置。 部分动画变量的应用结果是几何设定人物模型855。几何设定人物模型包括 点860和865。

此外,步骤715将相关联的动画变量输入至膨化组件。对于相应于关节 角的动画变量,一则实施例将该动画变量转换为去混淆形式以将其输入膨 化组件。膨化组件的输出是用于所期望姿态的人物模型上的至少一个点的 姿态误差。在一则实施例中,膨化组件输出表示一段时间周期上的人物模 型上至少一个点的一系列姿态误差值。

如果在创建膨化组件中使用一组帧基函数的最优化集来减少样本数据 集的大小,则步骤720将帧基函数集应用到与人物模型每个点都相关联的 姿态误差。从而,姿态误差被分解为相关联的参考帧中的部分值。

步骤725将用于每个点的姿态误差加到几何设定人物模型上点的位置上 并将结果组合为姿态人物模型。由使用膨化组件产生的设定姿态人物模型 非常近似使用相同动画变量集的原始模型组件所产生的结果。

图8C示出如步骤715-725的实施例所要求的膨化组件输出的姿态误差 对人物模型的点的几何设定姿态的位置的应用。部分动画变量集870被输 入膨化组件875以产生姿态误差集,包括姿态误差880和885。姿态误差集 被用于将几何设定人物模型的点(包括点860和865)分别移动到新的位置 (如895和890)。人物模型的点的新的位置非常近似由应用原始模型组件 所产生的位置。

需要注意的是一旦使用一个或多个上述实施例创建了姿态或变形模型, 任何呈现技术(例如光线跟踪或扫描行呈现)可根据该模型结合光线、阴 影、纹理映射、以及任何其它图像处理信息创建最终图像或帧。

本领域熟练技术人员在阅读附加的文档后可预想出其它实施例。在其它 实施例中,可以方便地得出上面披露的本发明的组合和子组合。已经对体 系结构框图和流程图进行分类以方便理解。然而可以理解的是在本发明的 可选实施例中考虑到了框图的组合、新框图的增加、框图的重新安排、以 及类似情况。

因此说明书和附图被认为是示例性而不是限制性理解。然而,可以证明 的所得到的各种修改和改动不脱离权利要求所提出的本发明的广大的精神 和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号