用于对身体创建动画的系统和方法

文档序号:6515058阅读:143来源:国知局
用于对身体创建动画的系统和方法
【专利摘要】本发明涉及用于对身体创建动画的系统和方法。公开了用于以预定和直观的方式将可控制和可预测的肌肉振荡施加到诸如人物的身体的部分的系统和方法。在整个时间线上分析分离的肌肉定位的位置。计算分离的肌肉的位置相对于时间的三阶导数,以测量特定的关注点的加速度的变化。加速度的变化产生所施加的力的正向变化或负向变化。所施加的力的方向和大小被传递给解决方案的一部分,该解决方案在肌肉空间中基于所施加的力的大小和方向创建过程振荡。
【专利说明】用于对身体创建动画的系统和方法
【技术领域】
[0001]本发明涉及用于对身体创建动画的系统和方法。
【背景技术】
[0002]人物动画已变得日益复杂。例如,除了仅对人物的移动创建动画之外,人物身体还对人物自身内例如响应于人物移动和碰撞而变形创建动画。例如,当人物弯曲关节时,可提供用于皮肤表面的隆起的变形参数。
[0003]用于皮肤变形的更复杂的技术包括对肌肉的模拟。肌肉可通过由控制点构成的几何形状来限定,并且在肌肉与骨头或其它肌肉交互时,可采用碰撞检测使肌肉几何形状移动或变形。
[0004]然而,这样的技术迄今为止没有在所有场景中产生令人满意的视觉效果。例如,复杂动态模拟(例如采用连续介质力学的那些复杂动态模拟,其中通过考虑先前帧中施加到对象上的力来计算后续帧中的要素)是计算密集并且非常不方便的。

【发明内容】

[0005]本系统和方法提供这样的工具,该工具允许以预定和直观的方式将可控制和可预测的肌肉振荡或“摇晃(jiggle)”施加到整个身体,例如人物。以此方式,系统避免了必须手动确定运动的关键帧或运行复杂动态模拟。
[0006]根据本原理的一个方面是计算被简化。可在整个时间线上快速分析分离的肌肉定位的世界空间位置。然后求取位置相对于时间的三阶导数,这相当于测量特定的关注点的加速度的突然变化。例如,为了获得恒定不变的加速度,需要恒定不变的力。通过测量加速度的变化,可以检测所施加的力的正向变化或负向变化。这在物理学中已知是作为向量的“抽搐(jerk)”或“摇晃(jolt)”。通过测量这些向量的方向和大小并且与预定阈值进行比较,可以确定潜在的力是否强到足以引起肌肉振荡,以及还可以确定作为结果的肌肉运动的一般方向。还可以关于可以实现的最大摇晃大小和/或肌肉运动的最大量来设置限制。这对于在导致方向或速度的非常快速和突然变化的情形下进行工作的同时,还使作为结果的肌肉振荡对微妙的动画保持足够的灵敏度来说是重要的。任何超出预定阈值的摇晃被传递到解决方案的一部分,该解决方案基于在肌肉空间中向量的大小和方向创建过程振荡。在还考虑阻尼系数的作用的情况下,将该振荡作为简单的动画关键点施加到肌肉,并且通过波长和大小来限定该振荡。
[0007]在一个方面,本发明涉及一种对身体的外层创建动画的方法,包括:针对身体的外层上的点位置,求取位置相对于时间的三阶导数以确定向量,该向量的大小是所述点位置的加速度的变化速率;以及如果向量大小大于预定阈值,则对所述外层施加振荡。
[0008]该方法的实现可包括下面中的一个或更多个。身体可以是人物,并且外层可表示肌肉组或身体块组,例如肌肤、脂肪或肌肉。身体块组可被限定在多个关节之间,并且身体块组可在与每个所述关节连接的点处相对于振荡受到约束,并且身体块组可在连接点处经受振荡的大小的最小值并在连接点之间经受振荡的大小的上限。身体块组可与包括最大纵向值、最大旋转值和阻尼系数的参数的集合相关联,并且参数可具有公共因子,其中通过改变公共因子将参数中的每个缩放为适当值。在施加振荡接下来的时间延迟之后,可将另一个振荡施加到另一个身体块组。时间延迟可与显示I至5帧所需的时间相关联。另一个振荡的大小可以是所述振荡的大小的分数。振荡的大小可以与向量大小成比例。振荡可具有相关联的波长、大小和阻尼系数。向量大小可具有上限,以及振荡大小可与向量大小基本上相同。外层可对应于两个关节之间的具有纵向轴的骨头上的身体块组,并且该方法还可包括通过纵向分量和旋转分量来表示向量,并且该方法还可包括:将纵向分量沿着骨头的纵向轴应用到身体块组的振荡;以及将旋转分量围绕骨头的纵向轴应用到身体块组的旋转振荡。该方法还可包括:将纵向分量的大小与最大纵向值进行比较,并且如果该大小大于最大纵向值,则在将纵向分量沿着骨头的纵向轴应用到身体块组的振荡中使用最大纵向值。该方法还可包括:将旋转分量的大小与最大旋转值进行比较,并且如果该大小大于最大旋转值,则在将旋转分量围绕骨头的纵向轴应用到身体块组的旋转振荡中使用最大旋转值。骨头上的身体块组可限定沿骨头的长度的平移单位向量,并且还可限定垂直于平移单位向量的旋转单位向量,以及振荡的纵向分量可与摇晃向量和平移单位向量的点积成比例,以及振荡的旋转分量可与摇晃向量和旋转单位向量的点积成比例。
[0009]在另一个方面,本发明涉及一种非暂态的计算机可读介质,包括用于使计算环境实现以上方法的指令。
[0010]在另一个方面,本发明涉及一种以非暂态的计算机可读介质实现的用于对身体的外层创建动画的系统,包括:摇晃确定模块,所述摇晃确定模块用于接受表示身体上或身体内的位置的一个或更多个动画曲线,并且确定是否应该将振荡施加到所述身体内的身体块组,并且如果应该施加振荡,则确定振荡的大小和方向;以及振荡施加模块,用于将振荡施加到所述身体块组,所述振荡施加模块通过纵向分量和旋转分量来表示振荡。
[0011]本发明的实施方式可包括:所述摇晃确定模块求取位置相对于时间的三阶导数,其中,所述身体块组被限定在两个关节之间的具有纵向轴的骨头上,以及其中,所述纵向分量沿着纵向轴被施加到身体块组,以及其中,所述旋转分量围绕纵向轴被施加到身体块组。
[0012]本发明的优点可包括下面中的一个或更多个。通过采用简化的计算,可以以快速的方式来执行模拟。例如,在实验中,所描述的系统可花费30秒用于之前花费几个小时的运算。高度逼真的肌肉运动可以以方便的方式被模拟,并且可以以预定和直观的方式被施加到人物的整个运动。该系统和方法避免必须手动确定肌肉运动的关键帧或运行复杂的动态模拟。该系统和方法考虑所涉及的特定的力,而不是仅仅混合振荡。该系统和方法可以特别适合于例如在人群拥挤的情况下通过动画计算大量的力,这是因为可以快速地识别和采用特别重要的摇晃力。根据下面的包括附图和权利要求的说明书,其它优点对本领域技术人员来说将是明显的。
【专利附图】

【附图说明】
[0013]图1的(A)和(B)图示其上具有相关联的诸如肌肉组的身体块组的示例性骨头和关节系统、以及图示施加到身体块组上的摇晃力的向量图。
[0014]图2图示可以传播摇晃的相邻身体块组的系统。[0015]图3是图示根据这里描述的原理的示例性方法的流程图。
[0016]图4图示可对身体创建动画的、包括考虑施加到身体块组上的摇晃力的模块化系统。
[0017]图5图示可以放置和执行系统和方法的示例性计算环境。
[0018]相同的附图标记在全文中表示相同的部件。
【具体实施方式】
[0019]参考图1的㈧,图示包括身体块组22的系统10,该身体块组22围绕限定在两个关节14和15之间的骨头12。身体块组22—般表示人物的外层,即可以与骨头分离地移动的层。身体块组22被图示为简单的示例;应当理解可以类似地对其它身体块组进行建模。例如,胸部肌肉可被建模为身体块组或肌肉群,但是可被建模为具有多于两个关节,其中这样的肌肉在关节处附连到骨头。在身体块组或肌肉群附连到骨头的地方,在图1中被示为点24和点26,可能出现身体块组22的运动的最小值。换言之,身体块组22的振荡的边界条件可以使得在点24和点26处出现最小或零运动。
[0020]系统10的动画包括分析系统10在世界空间中的运动,即系统10相对于固定参考帧而不是相对于例如其他人物或车辆的运动。由于人物和身体块组被视为相对于场景的固定参考帧而移动,所以力、加速度和摇晃指示真实的人物将要经历什么。另外,如以下更详细描述的,使用世界空间参考帧更方便限制或固定(clamp)系统的输入。
[0021]注意,在可替换的计算中,人物的移动可被抵消,即可被设置为零,并且场景可在人物周围移动。然而,在该情况下,可能必须为每个场景采用不同的默认振荡参数集合,并且这可能是不方便地复杂的。相反,在根据这里描述的原理采用的一个实现方式中,可为大多数场景采用单个的参数集合(对于每个身体块组)。这样的参数可包括阻尼系数、最大纵向值、最大旋转值等、以及如果计算方便则可采用的高阶项。这样的参数仍然可被改变,并且可以期望改变一个参数而不必改变其它参数。在一些情况下,参数均可具有公共因子,并且通过改变公共因子,用于特定身体块组的参数均可针对例如高速膨胀相对于低速碰撞而改变。通过对输入向量设置限制或固定,系统可本质上禁止永恒运动、无限振荡等。当然,也可对振荡的输出、例如振荡的大小设置限制或固定。另外,位于振荡系统外部的其它方面也可提供显著的禁止,例如在场景的结束处使运动淡出。
[0022]摇晃运算特别方便,这是因为摇晃运算一般指示加速度的稀疏关键时刻(moment),而不是恒定不变地模拟基本上恒定不变的加速度。以此方式,仅捕获并在计算中使用关键时刻、即特别重要的时刻,从而节省计算时间。
[0023]这样的摇晃计算在该时刻必须施加到身体块组的力,并且使用这些力来计算身体块组将如何振荡。为了抑制重要度较低的计算,可对摇晃计算设置下限或阈值,从而可要求(位置相对于时间的三阶导数的)向量的大小大于某个预定阈值以导致或产生身体块组振荡。在预定阈值以下,不使身体块组振荡,因为其被视为太小而不会导致显著的移动。在一些情况下,如果身体块组被较少地约束到人物骨架,或者如果摇晃向量在特别地倾斜以导致显著的肌肉振荡的方向上,则可以采用较低的阈值。
[0024]如上所述,也可对输入向量设置上限或固定,以考虑身体块组运动的物理现实。也可以采用阻尼阈值,其中阻尼的作用已使得振荡大小减小到阻尼阈值以下。此时,系统可使身体块组不再振荡。当然,在计算时间不是显著的成本因素的系统中,可简单地允许身体块组继续振荡直至阻尼使得振荡消失为止。
[0025]返回参考图1的(A),图示这些方面中的一些。对于动画中的任意给定时刻,身体块组22上的点36的运动可被计算,并且计算的结果可被施加到整个身体块组22。点36可表示皮肤或身体块组上的变形最大的点,但是该点可能已经受到其它运动或变形的影响,因此实际上需要限定新的点(变换的或伪的关节)作为基本骨架的、可针对世界空间运动而被分析的一部分。以此方式,计算被进一步简化并且独立于其它潜在的计算。因此,可以非常快速地执行计算,因为对于每个身体块组仅需要计算一个点。当然,对于特别大的身体块组,可以采用更多点,例如用于前侧的一个点和用于后侧的一个点。点24和点26是受到来自作为结果的振荡的零影响的点,而点36是将受到来自振荡的完整影响的点。因此,图1的(A)可以是如何将振荡施加到人物的最终皮肤的典型的结合示例。点36也可被用作将“关注点”放置到何处的向导,因为点36可与期望的效果具有显著的相关性。
[0026]身体块组22可构成或表示肌肤、肌肉、脂肪、皮肤等。在许多情况下,方便的是将身体块组22视为构成肌肉组簇,并且皮肤被视为跟随肌肉组的运动,即结合到肌肉组。在其它实施方式中,可对皮肤创建动画,皮肤可被视为其自己的身体块组,例如在许多点处附连到肌肉组,皮肤可以以其它方式被处理等。换言之,创建皮肤的方法一般是任意的。
[0027]在一些情况下,系统甚至可以应用于创建衣服。一般,衣服可简单地结合到皮肤。然而,自由飘动的衣裙可被建模,使得底部在摇晃力的作用下自由地旋转,但是可经受比肌肉组中少得多的力。然而,在许多情况下,衣服可简单地进行单独的衣服模拟。
[0028]在图1的(A)中,系统10例如可表示二头肌,该二头肌具有限定在诸如肩膀和肘部的关节之间的身体块组22。在该身体块组22的中央,二头肌可潜在地经受最大的运动,因为身体块组22的中央可以是肌肉组的最自由移动的部分。运动可在关节处减小或淡出。一般,在给定的肌肉组内,可以描述特定点受到摇晃的0%的影响、50%的影响等。身体块组可经受沿纵向轴18的平移或纵向振荡,并且可经受围绕纵向轴18的旋转振荡。
[0029]在图1的(B)中,假设动画运动的分析、即一个或更多个动画曲线已确定如下内容:身体块组22上的点36所经受的摇晃向量J(元素40)已被确定具有大于预定阈值的大小。因此,输入向量40被施加到身体块组22以导致振荡。为了施加向量,身体块组可将在初始正向平移或纵向运动的方向上的单位向量jtran以及在初始正向旋转的方向上的单位向量jMt与身体块组相关联。于是,旋转JMt的大小可由旋转的单位向量」_与J之间的点积来限定,而平移振荡的大小可由与jtMn的类似的点积来限定。对于旋转,模型因此被减小为在远离旋转的中心轴的位置处的不平衡的块。如果将力从侧面施加到该偏移的块,则将触发旋转。
[0030]更详细地,向量因此可被分解为平移分量Jtran和旋转分量JMt。可沿着轴18施加Jttan以产生身体块组22的纵向振荡,并且可围绕轴18施加Jrot以产生身体块组22的旋转振荡。一般,对于诸如二头肌的身体块组,旋转振荡相对于平移振荡可具有数量上的优势,因为肌肉纤维一般沿着骨头的长度延伸并且身体块组一般被固定在关节处,从而导致比平移或纵向更多的旋转自由度。然而,本领域技术人员将认识到身体块组在这方面可改变。例如,如果力与纵向轴18基本上共线,则仅可产生轻微的旋转振荡(或无旋转振荡)。
[0031]如图1的⑶所示,Jtran可被固定在JtMnmax,而Jrot可被固定在JMtmax。这样的最大值可与(纵向和旋转两者的)振荡大小的最大值结合使用,或者可替代(纵向和旋转两者的)振荡大小的最大值。振荡大小的最大值在图1的(A)中由要素32 (旋转)和要素35 (纵向)来图示。另外,针对导致径向振荡的摇晃,图示了径向振荡大小最大值34。
[0032]在一个实施方式中,可限定肌肉对准向量MV37。于是,可相对于MV来限定单位向
里 J'rot 矛口 tran。
[0033]注意,摇晃向量J的作用可被固定,使得只有最大值被允许输入到振荡计算中。例如,动画绘制者可能期望肌肉组的旋转的最大量应该为45°。于是,输入固定可被设置为使得无论JMt是多少,最大旋转振荡大小、即初始旋转振荡的大小不会超过45°。
[0034]可以以许多方式来进行这样的固定。例如,对于由适当的动画曲线确定的最大Jrot,旋转振荡的大小可被设置为45°,而对于小于最大值的任何JMt,振荡大小可简单地以单调的方式线性地(或在其他情况下平滑地)改变。在另一个实施方式中,JMtmax可被设置为小于由适当的动画曲线确定的最大Jrot,而对于大于Jrotmax的任何JMt,可以使用Jrotmax。对于较小的值,可以使用线性或其它关系来确定JMt。
[0035]对于纵向或平移振荡,可以采用其它最大值,例如骨头长度的25 %的最大位移。可类似地应用以上关于在最大值处如何处理旋转振荡所讨论的其它考虑。
[0036]一般,期望固定将在输出的范围以外的值而不是将在输入的范围以外的值,这是可以通过考虑导致输出处的最大幅度的输入值来确定输入范围极限的原因。否则,可能缺少会实际发生的、物理的和适当的运动的可视化。
[0037]作为示例性的情形,超级英雄人物可能撞击动画中的墙,使得他或她的速度在短时间段内从高值下降到零。这将是显著的减速,并且也可导致加速度的显著变化,即摇晃。这样的突然变化很可能超出振荡系统的输入最大值,因此会继而产生受影响的身体块组的纵向的或旋转的最大振荡。如果最大值为例如值50并且阻尼系数为0.5,则第一振荡将具有50的大小,下一振荡(在相对侧)将为25,下一个为12.5等。将对系统中的所有的肌肉组重复这样的计算,并且这样的计算将被分解为平移分量和旋转分量。
[0038]类似的肌肉组可具有类似的参数,尽管可为更关注的运动设置细微的随机化。例如,每个胸肌肌肉组可略微不同地振荡。如上所述,用于平移和旋转向量动作的参数可采用公共因子,从而可以通过调整公共因子来方便地调整这两个参数。
[0039]图2图示可根据这里公开的原理进行处理的系统22的另一个实施方式,其中图示了多个(具有关节的)身体块组46a、46b和46c。身体块组46a、46b和46c相邻,并且可具有类似的或相关的参数,尽管相关的参数在任何给定的实施方式中是不需要的。这样的身体块组的集合可适合于例如长颈的动画。
[0040]通过分析动画曲线,可确定在46a处发生摇晃,但是在其它处没有(尽管可以类似地处理其它处的影响)。可通过使摇晃基本上沿骨头的集合向下传播,例如从46a到46b并且从46b到46c来提供高度逼真的视觉效果。可对46a执行振荡计算,然后例如以时间延迟简单地将计算的结果施加到下一个身体块组。在该系统中也会发生“阻尼”,使得针对每个组的大小是针对先前组之前计算的大小的分数。例如,每个可以是在其之前的一个的80%。每个身体块组可具有相同的参数或者可以不同。可以理解,除了线性传播之外,圆形或其它传播或波浪形效果也在本公开的范围以内。
[0041]时间延迟可改变,并且可以基于身体块组的特性。在特别简单的波浪形效果中,时间延迟可以在1-5帧之间。
[0042]图3是根据这里公开的原理的示例性方法的流程图20。第一步骤是,针对身体的外层上的点位置,求取位置相对于时间的三阶时间导数以获得摇晃向量(步骤48)。可根据点位置的动画、即动画曲线的分析来计算三阶时间导数。外层是如上所述的,并且一般可指示诸如肌肉组的身体块组(步骤52)。换言之,外层可对应于关节集合之间的身体块组(步骤54),其中身体块组至少部分地由参数来限定。参数可具有公共因子以允许方便的调整。
[0043]下一个步骤是,如果向量大小大于预定阈值,则向外层施加振荡(步骤52)。振荡一般具有波长和大小。在一个实施方式中,振荡的大小与向量的大小成比例,但是通过输入摇晃向量的大小来约束振荡(步骤58)。在另一个实施方式中,振荡的大小与向量的大小成比例,但是在输出处约束振荡大小(步骤62)。以此方式,仅允许身体块组的最大平移和旋转。在其它实施方式中,以这两个方式约束振荡。一般,尽管不要求,但是振荡(即振荡大小)的最小量可发生在身体块组与关节相会的地方,例如为零,其中最大值在关节之间(步骤 64)。
[0044]然后,对振荡进行阻尼,并且阻尼系数可以为振荡、肌肉组或其两者的函数。阻尼系数也可以为常量。
[0045]然后,振荡可传播到另一个身体块组(步骤56)。传播可在时间延迟之后发生,并且例如可通过作为每个先前振荡大小的分数而被阻尼。
[0046]图4图示用于对身体创建动画的模块系统30。系统30接受动画曲线41、或者其它这样的可指示身体的动画位置的数据作为输入。应当理解,这样的数据可被指示作为时间的函数的、由身体经受的速度或加速度的数据替换。
[0047]系统30包括摇晃确定模块66,该摇晃确定模块66计算位置信息相对于时间的三阶导数,并且根据三阶导数确定摇晃向量。应当理解,如果输入速度或加速度而不是位置,则导数的阶数将改变。如果摇晃向量具有大于预定阈值的大小,则将摇晃向量输入到振荡施加模块68。摇晃向量大小可被如上所述地固定或限制。模块68可采用诸如最大纵向位移、最大旋转角、阻尼系数等参数来确定并施加摇晃的作用,以产生给定身体块组的振荡。应当理解,也可采用其它参数以用于给定的效果。如此,振荡施加模块可分解摇晃向量并且使用与肌肉对准向量的点积和交叉积,以向给定的身体块组施加摇晃向量。
[0048]应当理解,系统30可以以任何方式对模块进行组织,其中功能在各个模块之间分布或共享。也可以采用其它模块。
[0049]已经描述的是可以快速和方便地计算动画人物的外层(例如身体块组)的高度逼真的振荡的系统。高度逼真的描绘不需要复杂动态模拟,并且导致对运动的有效和准确的描绘。
[0050]一个实施方式包括一个或更多个可编程处理器和对应的计算机系统部件以存储和执行计算机指令,例如提供用于接收动画曲线、计算摇晃并且将摇晃的效果施加到动画身体的工具。以下公开一个这样的计算环境。
[0051]参考图5,图示了用于动画系统的示例性计算环境100的表示。
[0052]计算环境100包括控制器72、存储器76、贮存器82、介质装置86、用户接口 94、输入/输出(I/o)接口 96和网络接口 98。部件通过公共总线102互连。替选地,可以使用不同的连接配置,例如在中央具有控制器的星型模式。[0053]控制器72包括可编程处理器,并且控制系统及其部件的操作。控制器72从存储器76或嵌入式控制器存储器(未示出)装载指令,并且执行这些指令以控制振荡系统74。
[0054]存储器76可包括非暂态的计算机可读存储器78,存储器76存储系统的其它部件临时使用的数据。在一个实施方式中,存储器76被实现为DRAM。在其它实施方式中,存储器76还包括长期或永久存储器,例如闪存和/或ROM。
[0055]贮存器82可包括非暂态的计算机可读存储器84,贮存器82存储系统的其它部件临时或长期使用的数据,例如用于存储系统或计算环境用来计算身体块组振荡的数据。在一个实施方式中,贮存器82为硬盘驱动器或固态存储器。
[0056]介质装置86可包括非暂态的计算机可读存储器88,介质装置86接收可移除介质,并且读和/或写数据到插入的介质。在一个实施方式中,介质装置86为光盘驱动器或盘烧录器,例如可写蓝光Blu-rav?盘驱动器92。
[0057]用户接口 94包括州于接收用户输入(例如期望的身体块组振荡的用户指示)的部件,并且将振荡结果呈现给用户。在一个实施方式中,用户接口 94包括键盘、鼠标、音频扬声器和显示器。控制器72使用来自用户的输入调整计算环境的操作。
[0058]I/O接口 96包括一个或更多个I / O端口,一个或更多个I/O端口连接到对应的I/o装置,例如外部贮存器或补充装置,例如打印机或PDA。在一个实施方式中,I/O接口 96的端口例如包括如下端口:USB端口、PCMCIA端口、串口和/或并口。在一个实施方式中,I/O接口 96包括用于与外部装置无线通信的无线接口。可采用这些I/O接口以连接到一个或更多个内容回放装置。
[0059]网络接口 98允许与局域网的连接,还允许可选地与外部网络的连接。网络接口 98包括有线和/或无线网络连接,例如RJ-45或以太网连接或“W1-Fi”接口(802.11)。应当理解,可以使用许多其它类型的网络连接,包括WiMax、3G或4G、802.15协议、802.16协议、卫星、蓝牙Bluetooth?等。
[0060]计算环境可包括这样的系统的典型的附加硬件和软件,例如电源和操作系统,尽管这些部件为了简化而没有具体示出在附图中。在其它实施方式中,可以使用装置的不同配置,例如不同的总线或存储配置或多处理器配置。
[0061]已经描述了本发明的各种说明性的实施方式。然而,本领域技术人员将认识到附加的实施方式也是可能的并且在本发明的范围以内。例如,为了使振荡系统的结果可视化,可以在3D模型系统内移动定位器或其它这样的变换器以使结果可视化。可以应用其它变换以产生平移和旋转向量动作。这可以是用以实现和可视化该系统和方法的高度模块化的方式,并且可以直接在许多用户接口内实现。用户接口可允许实质上一次触摸操作,以允许动画绘制者看见动画中施加的肌肉振荡的结果。动画绘制者可以调整肌肉参数并且重新运行动画,以立即看见调整的结果。这样的用户接口也可以允许动画绘制者改变关键帧以调整场景(及其中的人物),因此根据艺术指导的需要调整结果。
[0062]还请注意,对于在一点处具有超过预定阈值的大小的多个摇晃的情形,最大者可以占优势,或者可以在叠加内考虑全部。在相关的情形下,如果在振荡发生的同时另一个较大的振荡开始了,则较大的新的振荡可替换较早的较小的振荡。
[0063]虽然以上实施方式集中于动画电影,但是应当理解,根据这里公开的原理的系统和方法也可以在采用虚拟模型的电子游戏或其它音频可视媒体中被采用。[0064]另外,虽然已关于动画人物描述了该系统,但是可以对任何柔性主体上的层进行摇晃,并且可以使用根据所描述的原理的系统和方法有效地对任何柔性主体上的层创建动画。
[0065]最后,虽然已经公开了将摇晃向量大小与预定阈值进行比较以确定是否发生振荡,但是本公开所给定的领域中的技术人员应当清楚,同样的可以应用于摇晃向量的各个分量,其中一个或两个分量必须超过预定阈值以传递振荡。
[0066]因此,本发明不限于以上的说明书,而是仅由所附的权利要求书及其等同物来限定。
[0067]本发明可以具有以下【具体实施方式】。
[0068](I).一种对身体的外层创建动画的方法,包括:
[0069]a.针对身体的外层上的点位置,求取位置相对于时间的三阶导数以确定向量,该向量的大小是所述点位置的加速度的变化速率;以及
[0070]b.如果向量大小大于预定阈值,则对所述外层施加振荡。
[0071](2).如项目(I)所述的方法,其中,所述身体是人物。
[0072](3).如项目(2)所述的方法,其中,所述外层表示肌肤、脂肪或肌肉。
[0073](4).如项目(3)所述的方法,其中,所述外层表示肌肉群。
[0074](5).如项目(2)所述的方法,其中,所述外层表示身体块组。
[0075](6).如项目(5)所述的方法,其中,所述身体块组被限定在多个关节之间,并且所述身体块组在与每个所述关节连接的点处相对于振荡受到约束,以及其中所述身体块组在所述连接点处经受振荡的大小的最小值并且在所述连接点之间经受振荡的大小的上限。
[0076](7).如项目(6)所述的方法,其中,所述身体块组与包括最大纵向值、最大旋转值和阻尼系数的参数的集合相关联,以及其中所述参数具有公共因子,其中通过改变所述公共因子将所述参数中的每个缩放为适当值。
[0077](8).如项目(5)所述的方法,其中,在所述施加振荡接下来的时间延迟之后,将另一个振荡施加到其它身体块组。
[0078](9).如项目⑶所述的方法,其中,所述时间延迟与显示I至5帧所需的时间相关联。
[0079](10).如项目⑶所述的方法,其中,所述另一个振荡的大小是所述振荡的大小的分数。
[0080](11).如项目⑴所述的方法,其中,振荡的大小与所述向量大小成比例。
[0081](12).如项目⑴所述的方法,其中,所述振荡具有相关联的波长、大小和阻尼系数。
[0082](13).如项目⑴所述的方法,其中,所述向量大小具有上限,以及其中振荡大小与所述向量大小基本上相同。
[0083](14).如项目⑴所述的方法,其中,所述外层对应于两个关节之间的具有纵向轴的骨头上的身体块组,并且所述方法还包括通过纵向分量和旋转分量来表示所述向量,并且所述方法还包括:
[0084]a.将所述纵向分量沿着所述骨头的纵向轴应用到所述身体块组的振荡;以及
[0085]b.将所述旋转分量围绕所述骨头的纵向轴应用到所述身体块组的旋转振荡。[0086](15).如项目(14)所述的方法,还包括:将所述纵向分量的大小与最大纵向值进行比较,并且如果该大小大于最大纵向值,则在所述将所述纵向分量沿着所述骨头的纵向轴应用到所述身体块组的振荡中使用最大纵向值。
[0087](16).如项目(14)所述的方法,还包括:将所述旋转分量的大小与最大旋转值进行比较,并且如果该大小大于最大旋转值,则在所述将所述旋转分量围绕所述骨头的纵向轴应用到所述身体块组的旋转振荡中使用最大旋转值。
[0088](17).如项目(14)所述的方法,其中,骨头上的身体块组限定了沿骨头的长度的平移单位向量,并且还限定了垂直于平移单位向量的旋转单位向量,以及其中振荡的纵向分量与摇晃向量和平移单位向量的点积成比例,以及其中振荡的旋转分量与摇晃向量和旋转单位向量的点积成比例。
[0089](18).一种以非暂态的计算机可读介质实现的用于对身体的外层创建动画的系统,包括:
[0090]a.摇晃确定模块,所述摇晃确定模块用于接受表示身体上或身体内的位置的一个或更多个动画曲线,并且确定是否应该将振荡施加到所述身体内的身体块组,并且如果应该施加振荡,则确定振荡的大小和方向;以及
[0091]b.振荡施加模块,用于将振荡施加到所述身体块组,所述振荡施加模块通过纵向分量和旋转分量来表不振荡。
[0092](19).如项目(18)所述的系统,其中,所述摇晃确定模块求取位置相对于时间的三阶导数,其中,所述身体块组被限定在两个关节之间的具有纵向轴的骨头上,以及其中所述纵向分量沿着纵向轴被施加到身体块组,以及其中所述旋转分量围绕纵向轴被施加到身体块组。
【权利要求】
1.一种对身体的外层创建动画的方法,包括: a.针对身体的外层上的点位置,求取位置相对于时间的三阶导数以确定向量,该向量的大小是所述点位置的加速度的变化速率;以及 b.如果向量大小大于预定阈值,则对所述外层施加振荡。
2.如权利要求1所述的方法,其中,所述身体是人物。
3.如权利要求2所述的方法,其中,所述外层表示肌肤、脂肪或肌肉。
4.如权利要求2所述的方法,其中,所述外层表示身体块组。
5.如权利要求4所述的方法,其中,所述身体块组被限定在多个关节之间,并且所述身体块组在与每个所述关节连接的点处相对于振荡受到约束,以及其中所述身体块组在所述连接点处经受振荡的大小的最小值并且在所述连接点之间经受振荡的大小的上限。
6.如权利要求1所述的方法,其中,所述外层对应于两个关节之间的具有纵向轴的骨头上的身体块组,并且所述方法还包括通过纵向分量和旋转分量来表示所述向量,并且所述方法还包括: a.将所述纵向分量沿着所述骨头的纵向轴应用到所述身体块组的振荡;以及 b.将所述旋转分量围绕所述骨头的纵向轴应用到所述身体块组的旋转振荡。
7.如权利要求6所述的方法,还包括:将所述纵向分量的大小与最大纵向值进行比较,并且如果该大小大于最大纵向值,则在所述将所述纵向分量沿着所述骨头的纵向轴应用到所述身体块组的振荡中使用最大纵向值。
8.如权利要求6所述的方法,还包括:将所述旋转分量的大小与最大旋转值进行比较,并且如果该大小大于最大旋转值,则在所述将所述旋转分量围绕所述骨头的纵向轴应用到所述身体块组的旋转振荡中使用最大旋转值。
9.一种以非暂态的计算机可读介质实现的用于对身体的外层创建动画的系统,包括: a.摇晃确定模块,所述摇晃确定模块用于接受表示身体上或身体内的位置的一个或更多个动画曲线,并且确定是否应该将振荡施加到所述身体内的身体块组,并且如果应该施加振荡,则确定振荡的大小和方向;以及 b.振荡施加模块,用于将振荡施加到所述身体块组,所述振荡施加模块通过纵向分量和旋转分量来表示振荡。
10.如权利要求9所述的系统,其中,所述摇晃确定模块求取位置相对于时间的三阶导数,其中,所述身体块组被限定在两个关节之间的具有纵向轴的骨头上,以及其中所述纵向分量沿着纵向轴被施加到身体块组,以及其中所述旋转分量围绕纵向轴被施加到身体块组。
【文档编号】G06F17/50GK103729491SQ201310471416
【公开日】2014年4月16日 申请日期:2013年10月11日 优先权日:2012年10月11日
【发明者】D·P·舍尔林 申请人:索尼公司, 索尼图片技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1