动画创建程序 【技术领域】
本发明涉及采用三维计算机图形学的动画创建程序,更具体地说,涉及用于显示包含三维空间中构造的多个链接的结构以及创建此结构的动画(活动图像)的动画创建程序。背景技术
一般来说,在创建二维单元式动画的领域中,角色运动的创建被分为“原始图像”和“活动图像”。“原始图像”是一个画面,其中画出确定作为一个整体的运动的姿势,而“活动图像”是通过在一个“原始图像”与另一个图像之间内插而生成的画面。
同时,三维计算机图形学被广泛用作另一种造型方法。在三维计算机图形学图像中,创建了称为“关键帧”的数据之后,通过仿样内插等自动创建关键帧之间的数据。当“关键帧”被当作单元式动画中的“原始图像”时,可以说两种情况中采用地工作方法是极为相似的。
但是,按照目前的情况来看,三维计算机图形学造型尚未达到二维单元式动画的表现能力。主要原因据说在于下文以实例说明的工作原理。
例如,在创建人物类模型的运动时,在三维计算机图形学中,在三维人物类模型的形状创建上已经有所改进,但是,对于使人物类模型的各个部位如手、脚和头部活动的方法,就目前情况而言,按粗率分类,仅采用了运动捕获和三维旋转数据的计算处理的方法。运动捕获只提供真人的运动,因而有时限制了动画制作者的自由表达。此外,人物类模型是包括各种各样链接的结构,因而具有复杂性和很大自由度。链接是具有构成旋转中心的关节部分和从所述关节部分延伸的长形部分的结构单元。链接还可能仅仅由关节部分构成。
图19表示多个链接构成的简单人物类模型的实例。在图19中,各个链接10的关节部分11表示为圆形部分,从关节部分11延伸的长形部分12表示为直线部分。通过常规计算处理方法(例如,简单逆向运动学方法)来控制这种人物类模型的运动存在一些问题。例如,对于采用常规逆向运动学方法的动画创建程序,当移动一个链接时,无法自动确定其它链接的位置以使该人物类模型保持尽可能自然的姿势。更确切地说,常规动画创建程序将所有链接的关节部分预先设定为可移动的或固定的。这样就有麻烦之处:当选择任一个链接并移动(或旋转)此链接的位置时,其它可移动链接的位置移动得要超出其关节部分的旋转范围,而固定的关节部分的位置不移动,这就导致人物类模型的姿势不自然;以及无法将所选链接移动到期望的位置,因为其它链接是固定的。在此情况中,动画制作者需要执行操作来取消每个关节部分的固定设置,以便创建人物类模型的姿势,通过移动每个链接创建期望的姿势。因此,常规动画创建程序的操作复杂且效率低,而且对于动画制作者来说,该程序很难用。发明的公开
因此,本发明的一个目的是提供一种动画创建程序,由此,可以通过更简单的操作来确定包括多个链接的结构的姿势。
本发明的另一个目的是提供一种这样构成的动画创建程序,使得根据给定链接的移动,包括多个链接的结构保持尽可能自然的姿势。
为了实现上述目的,本发明提供一种动画创建程序,它根据给定链接的移动确定结构中其它链接的位置,使得包括多个链接的结构保持尽可能自然的姿势。
例如,本发明的动画创建程序采用逆向运动学计算法,该计算法用于控制人物类机器人(人形机),并且基于雅可比矩阵及其逆矩阵,后者称为奇异健壮逆矩阵(SR-逆矩阵)。通过在动画创建程序中采用此计算方法,在包含多个链接的结构的动画的创建中,在移动屏幕上显示的结构的一个链接时,可以自动确定该结构的其它链接的位置,使得该结构的姿势在整体上不会变得不自然,并且通过更简单和容易的操作创建包含多个链接的结构的动画。附图简介
图1是显示包含多个链接的结构的屏幕的实例;
图2用于说明所选择的链接的颜色的改变;
图3用于说明根据本实施例的结构的姿势改变的实例;
图4用于说明根据本实施例的结构的姿势改变的另一个实例;
图5说明显示链接的旋转范围的屏幕的实例;
图6用于说明根据本发明的实施例的时间表;
图7用于说明该结构的幻像显示;
图8用于说明该结构的幻像显示;
图9是其中多个结构以幻像方式显示的屏幕的实例;
图10用于说明附加结构的链接的功能;
图11用于说明附加结构的链接的功能;
图12用于说明附加结构的链接的功能;
图13表示其中在时间表窗口中显示选择区域的屏幕的实例;
图14提供对构成结构的一部分的一组动画的创建的说明;
图15提供对构成结构的一部分的一组动画的创建的说明;
图16提供对构成结构的一部分的一组动画的创建的说明;
图17提供对构成结构的一部分的一组动画的创建的说明;
图18提供对构成结构的一部分的一组动画的创建的说明;
图19表示由多个链接构成的人物类模型的实例。本发明的最佳实施方式
下文将说明本发明的实施例。但是,本发明的技术范围不限于此实施例,也不受此实施例的限制。
图1是显示包含多个链接的结构的屏幕的实例。图1的屏幕是例如运行根据本实施例的动画创建程序的计算机的屏幕。包含在预定三维空间中构造的多个链接的人物类结构显示在此屏幕上。如图所示,链接10由关节部分(圆形部分)11和从关节部分11延伸出来的长形部分(直线部分)12构成。虽然未说明,但是直线部分具有预定宽度。链接10还可能只由关节部分11构成。关节部分是对应于人物或动物关节的旋转中心。此外,关节部分的旋转范围(角度)可以由用户预设和更改。图1中的结构是人物类模型,但是只要结构是包含多个链接的对象(动物、挖掘机等),结构就不限于是人物类结构。
用户能够通过操纵鼠标等将光标(指示装置)20对准所显示的结构的一个链接来选择任意链接。在本实施例中,更具体地说,只需将光标对准一个链接即可选择该链接,不需要采用预定的链接选择操作、比如以下操作:操纵鼠标以使光标对准所需链接,通过左键单击操作或右键单击操作显示一个菜单,然后指定该菜单中的“选择”。因此,用户可以更容易地选择链接。此外,根据本实施例,将光标对准随意链接会改变该链接的颜色。因而用户可以识别所选择的链接。
图2用于说明所选择的链接的颜色的改变。如图2(a)至图2(b)所示,移动光标使该光标对准任意链接会改变该链接的颜色。
用户可以将所选链接的关节部分的空间位置设为可移动的或固定的。例如,如图2(c)所示,在将光标对准任意链接而选择此链接之后,所选链接的关节部分可以通过右键单击并选择由此显示的菜单中所含的“固定”以将其设为固定的。此外,当初始设置是可移动的且想要将此设置从固定的改为可移动的时,可以选择“取消固定”。最好使关节部分的显示颜色按照其设置而有所不同,以便区分关节部分的设置是固定的还是可移动的。
用户利用鼠标拖动所选择的链接来移动和旋转屏幕上的链接,从而操纵结构的姿势。此时,被设置成可移动的链接的关节部分可根据被拖动的链接的移动而移动,而根据被拖动的链接的移动和旋转,被设置成固定的链接的关节部分处于不会使结构的姿势变得不自然的范围内而且不移动。
此外,根据所选链接的移动,其它链接处于使结构保持自然姿势的范围内且旋转不超过旋转范围。
这样,根据本实施例的动画创建程序根据被拖动的链接的移动和旋转确定其它链接的位置,使得结构的姿势尽可能地自然。
为此目的,根据本实施例的动画创建程序,作为一个实例,采用逆向运动学计算法,它基于称为雅可比的矩阵及其称为奇异健壮逆矩阵(SR-逆矩阵)的逆矩阵,(下文称为“基于雅可比及其SR-逆矩阵的逆向运动学计算法”)。基于雅可比及其SR-逆矩阵的逆向运动学计算法是一种为控制人物类机器人(人形机)开发的计算方法,通过在动画创建程序中采用此计算方法,可以在移动屏幕上显示的结构的一个链接时确定该结构的其它链接的位置,使得结构的姿势在整体上不会变得不自然。
在基于雅可比及其SR-逆矩阵的逆向运动学计算法中,当用户希望通过选择给定链接并移动这个选择的链接来更改结构的姿势时,在确定结构的姿势时可考虑以下三个条件:
(1)当所选链接以外的链接被设为固定的时,结构的姿势改变的同时其它链接的位置保持固定。固定链接的数量和安排是任意的。
(2)这些链接的旋转不超过预设的旋转范围(角度)。
(3)这样确定姿势,使得链接的角度尽可能地靠近各自的目标值(理想值)。
上述条件有时会彼此冲突,以致于存在利用计算方法无法找到解或出现分歧的情况等。但是,利用根据本实施例的上述计算方法控制结构的姿势以达到理想状态,可以持续获得还针对上述条件的稳定解。通过本实施例中所用的上述计算方法,可以对每个链接执行将每个条件“打开”和“关闭”的设置以及设置各条件的重要性,这样,即使强加了有冲突的条件,实现的程度也会根据重要性自动调节,并且可以找到稳定解,其中结构采用尽可能自然的姿势。因此,可能会有固定的关节部分移动或者链接旋转超过其旋转范围的情况。
由于动画创建方法中采用这种计算方法,所以用户通过单个操作、如移动单个任意链接的一个操作,就可以确定整个结构的自然姿势,使得此链接放置在所指定的位置。因此,在逐个移动链接时,与常规操纵方法相比,可以极为简单和直观地操纵结构的姿势,从整体上确定结构的姿势。
下列文档中,详细描述了基于雅可比和SR-逆矩阵的逆向运动学计算的具体方法,例如:
Nakamura,Y.和Hanafusa,H:“用于机器人操作手控制的具有奇异健壮性的逆向运动学解决方案”,《Journal of Dynamic System,Measurement,and Control》第108卷第163至171页(1986);
Nagasaka,Inaba,Inoue:“采用运动学运动转换滤波器组的人形机器人的系统行为设计”,《Proceedings of the 17th AnnualConference of the Robotics Society of Japan》第3卷第1207至1208页(1999);
DasGupta,A.和Nakamura,Y:“根据人类运动捕获的数据实现人形机器人的合理行走运动”,《Proceedings of InternationalConference on Robotics and Automation》第1044至1049页(1999)。
Popovic,Z:“编辑捕获的人类运动的动态属性”,《Proceedingsof IEEE international Conference on Robotics and Automation》第670至675页(2000)。
Nakamura,Yamane,Nagashima:“改变运动链系的结构的动态计算及其对人物的应用”,《Journal of the Robotics Society of Japan》第16卷第8期第124至131页(1998年)。
Nakamura,Yamane,Nagashima:“约束条件不连续地改变的运动链系的动力学一在与其环境接触的过程中移动的人物上的应用”,《Journal of the Robotics Society of Japan》第18卷第3期第435至443页(2000)。
图3用于说明根据本实施例的结构的姿势改变的实例。在构成人物类结构的多个链接的图3的实例中,构成肢体(头、手和足)的链接A、B、C、D和E是固定链接。同样在图3中,对应于腰部部分的链接F也是固定链接。根据本发明的实施例,即使一个链接被设为固定的,也可以通过选择来拖曳和移动这个设置的链接。
因此,当要拖动的(要移动的)链接被设为固定的时,可以拖动此固定链接,而不象常规情况那样执行操作以将此链接的设置临时改为可移动,从而可以简化操作。而且,在拖动链接之后,设为固定的链接的设置仍保持为固定的,当拖动另一个链接时,这样的链接被作为固定链接来处理。当然,也可以通过选择此链接来任意拖动非固定链接(设为可移动的链接)。
在图3(a)中,当选择例如作为人物类结构的腰部部分的链接F,并且如图3(b)所示,沿屏幕(省略窗口框的图示)的横向拖动此链接的关节部分时,通过本实施例的动画创建程序的算法,确定每个链接的位置,以便保持整体上尽可能自然的结构姿势。例如,屏幕上的手和足链接B、C、D和E的关节部分的位置不改变且不移动,但是头链接A的位置移动,尽管它被设为固定的。
再者,如图3(c)所示,当类似于图3(b)的情况、沿屏幕向右方向拖动时,手和足链接B、C、D和E的关节部分的位置不改变且不移动,但是头链接A的位置移动,尽管它被设为固定的。
因此,有些情况中,根据所选链接的移动,本实施例的动画创建程序显示所选链接之外的链接的位置,使得即使这类链接是固定的,也移动这些位置。
图4用于说明根据本实施例的结构的姿势改变的另一个实例。在图4的实例中,拖动腰部链接F致使包括其它设置的链接A、B、C、D和E的所有链接都按图4(a)、4(b)和4(c)的顺序移动。
此外,根据本实施例,通过将光标对准任意链接而选择此链接,然后右键单击并选择由此显示的菜单中包含的“显示旋转范围”(参见图2(c)),可以显示所选链接的旋转范围。
图5说明显示链接的旋转范围的屏幕的实例。图5(a)是其中显示一个链接的旋转范围的实例。这个旋转范围的范围可以通过用户的操作来更改。例如,通过选择链接,然后从右键单击的菜单中选择“更改旋转范围”(见图2(c))并拖动指示旋转范围的扇形(或椭圆形)部分,可以如图5(b)所示减小旋转范围或如图5(c)所示扩展旋转范围。
此外,如图5(d)所示,根据本实施例的动画创建程序,链接还可以超出当前的旋转范围。换言之,有些情况中,当拖动所选链接时,因为其它链接的位置被确定,使得结构在整体上保持尽可能自然的姿势,所以本实施例的动画创建程序显示链接的位置,以便旋转超出预设的旋转范围。
而且,在一些链接超出其旋转范围等的情况中,当拖动并旋转该链接,使得该链接位于其旋转范围的限度内或者刚好位于此限度内或外时,还可以使旋转范围的颜色改变。
此外,如图5(e)所示,显示旋转范围的链接数目不限于一个。而是还可以同时显示任意多个链接的旋转范围。
除显示上述结构的窗口之外,屏幕中还显示动画时间表窗口。
图6用于说明根据本发明实施例的时间表。图6(a)是与显示图1所示结构的窗口屏幕并排显示的时间表窗口屏幕的外观图,图6(b)是此窗口屏幕的放大图。根据本实施例,所显示的时间表具有沿垂直方向的时间轴。因此,帧栏中对应于时间的各帧的位置和时间栏中整个动画经过的时间等在垂直方向上显示。最好,还可以显示关键帧的位置和当前屏幕中正在显示的帧的位置。
通过如下操作创建结构的动画。首先,在当前屏幕的帧中,创建图3(a)中结构的姿势,例如将其建为第一关键帧。然后,选择此帧之后预定数目的帧之后的一帧作为当前屏幕,并在此屏幕中创建图3(b)中结构的姿势,并将其建为第二关键帧。另外,选择此帧之后预定数目的帧之后的一帧作为当前屏幕,并在此屏幕中重新创建图3(a)中结构的姿势,并将其建为第三关键帧。然后,再选择此帧之后预定数目的帧之后的一帧作为当前屏幕,并在此屏幕中创建图3(c)中结构的姿势,并将其建立为第四关键帧。在以此方式创建这些关键帧之后,通过执行预定插入处理操作创建关键帧之间的帧图像。由此,可以创建使结构的腰部横向移动的平滑运动的动画。
常规动画创建程序将时间表这样显示,使得时间表的时间轴沿水平方向布局。但是,根据本实施例,时间表以垂直形式设置。因此,可以常规电影等中垂直输送影片的方式想象剪辑流,并提供对于常规二维单元式动画的制作者易于理解的界面。
本发明的动画创建程序不限于上述实施例中所述的采用基于雅可比及其SR-逆矩阵的逆向运动学计算法的动画创建程序,而还可以是包括允许自动确定结构的链接位置、以使结构保持尽可能自然的姿势的计算方法(算法)的程序。
(附加的实施例)
下文说明本发明的一个附加实施例。本实施例的动画创建程序包括在显示对应于当前时间的关键帧的结构的窗口屏幕中、以幻像形式显示对应于另一时间的帧的结构的功能。通过幻像显示来显示另一时间的结构,使得颜色淡化和/或透明度比当前时间的结构更高。
图7和图8用于说明结构的幻像显示。在图7的屏幕实例中,显示了显示结构的操作窗口1和显示时间表的时间表窗口2。在操作窗口1中,显示了与时间表窗口2的时间表上的当前时间的关键帧K1对应的结构M1。此处,当用户单击时间表窗口2的菜单中的显示内容并选择例如由此显示的下拉菜单中的“显示前一关键帧的幻像”时,作为关键帧K1之前的一帧的关键帧K2所对应的结构M2以幻像形式显示,如图8的屏幕实例中所示。
以幻像形式显示的结构的数目不限于一个,可以显示多个。此外,以幻像形式显示的结构不限于作为当前时间之前的一帧的关键帧的结构。还可以选择当前时间之后的下一关键帧的更前面的关键帧的结构,或更后面的关键帧的结构。此外,如下拉菜单中所显示的,不仅关键帧的结构、而且关键帧之间的帧的结构(下列菜单中显示为“帧”)可以幻像形式显示。
此外,另一时间的结构不限于幻像显示,相反还可以显示在操作窗口1中,使其可与当前时间的结构相区分,例如可以用不同的颜色显示。
图9是其中多个结构以幻像方式显示的屏幕的实例。图9的时间表窗口2中的关键帧K5是当前时间的关键帧,除关键帧K5所对应的结构M5之外,关键帧K3、K4、K6、K7所对应的结构M3、M4、M6、M7,其中两个在关键帧K5之前,两个在关键帧K5之后,均以幻像形式显示。而且,虽然未在图9中表示,当多个结构以幻像形式显示时,会提供允许选择多个帧进行幻像显示的菜单。
由此,通过在显示当前时间的关键帧的结构的窗口中、以幻像形式显示另一关键帧的结构,用户能够创建当前时间的关键帧的结构,同时确认另一时间的关键帧的结构的姿势和位置,从而实现高效率的操作。
最好,当通过将光标对准在操作窗口1中以幻像形式显示的结构并单击鼠标来选择以幻像形式显示的结构时,可以将当前时间的关键帧移至所选结构所对应的关键帧。例如,在图8中,当选择结构M2时,时间表窗口2中当前时间的关键帧从关键帧K1改为关键帧K2。因此,在操作窗口1,结构M2从幻像显示改为正常显示。此外,在此情况中,超前关键帧K2又一个关键帧的关键帧的结构以幻像形式显示。
此外,本实施例的动画创建程序还可以具有允许当前时间的关键帧的结构中的链接附加到以幻像方式显示的结构所对应的链接上的功能。
此附加功能是在用户希望将不同关键帧之间的结构的链接的位置进行匹配的情况下有用的功能。
图10、11和12用于说明附加结构的链接的功能。如图10所示,当用户选择和拖动当前时间的结构M1中的链接L1(虚线包围的链接)时,例如图11所示,所选链接L1移近以幻像方式显示的结构M2所对应的链接L2(虚线包围的链接)。当屏幕上链接L1与链接L2之间的距离等于或小于预定距离时,链接L1自动将所选链接移至以幻像方式显示的相应链接L2的位置,如图12所示。因此,链接L1和链接L2彼此重叠着显示。换言之,当窗口屏幕中链接L1的预定点的(三维)坐标和对应于链接2的点的坐标比较,且这两组坐标之间的距离等于或小于预定距离时,链接1被移动,使得链接L1的坐标变成链接L2的坐标。此时,根据基于雅可比及SR-逆矩阵的逆向运动学计算法,确定结构M1的其它链接的位置和姿势,使得结构M1保持自然姿势。
因为根据本实施例的动画创建程序在二维屏幕上显示三维结构,所以当没有给出这种附加功能时,即使用户设法在视觉上将链接L1和链接L2重叠,即使在屏幕上看上去这两个链接彼此重叠,但是有时这两个链接在屏幕景深方向上彼此不匹配。在此情况中,当更改视点来显示结构时,这两个链接不重叠,需要再次进行操作来拖动链接1,使得链接1和链接2彼此重叠,这是低效率的。因此,在用于创建三维结构的本实施例的动画创建程序中,上述附加功能特别有效,而且实质性地帮助用户在创作动画时提高工作效率。
此外,根据本实施例的动画创建程序允许通过针对时间表执行预定的选择操作来选择至少一帧(包括关键帧)。此时,所选的一(或多)帧的区域(选择区域)显示在时间表上。
图13表示其中在时间表窗口中显示选择区域的屏幕的实例。在图13中,选择区域S显示在所选帧的旁边,以便紧随垂直取向的帧栏。在图13中,帧号1至13被选择。通过单击显示在选择区域S旁边的重放按钮(“[向上的阴影三角]”(反向重放)或“[向下的阴影三角]”(正向重放)),就可以重放选择区域S的帧。此外,在重放按钮“[向上的阴影三角]”和“[向下的阴影三角]”之间的“[阴影方块]”按钮是重放停止按钮。
此外,根据本实施例的动画创建程序可以将选择区域S的帧复制到另一时间间隔的帧。首先,(1)虽然图13未表示,但是通过将光标对准选择区域S并右键单击来显示菜单,通过选择此菜单中所含的“复制”可以复制选择区域S的所有帧。接下来,(2)选择预定的帧(图10中选择了帧号16),以及(3)通过右键单击并选择由此显示的菜单中所含的“粘贴”,将所选帧作为起始位置而粘贴所复制的帧。换言之,在图13中,编号1至12的帧被“粘贴”到编号16至28的帧。由此,可以容易地创建重复运动的动画。
根据本实施例的动画创建程序还可以与用于创建构成结构的所有多个链接的运动的帧组分开地创建一组(帧组),用来创建关于一些(至少一个)链接的运动。也就是说,除了用于整个结构的帧栏外,还可以另行设置用于某些链接的组的帧栏。由此,可以与作为整体的结构的运动分开,另行创建对应于某些链接的运动。还可以将对应于某些链接的运动与作为整体的结构的运动进行合成。此功能可以剪切结构的仅仅一部分,从而创建对应于此部分的运动。
图14至18提供对创建构成结构的一部分的一组动画的说明。图14中的时间表窗口2中显示作为整体的结构所用的帧栏,对应于所选帧的结构显示在操作窗口1中。通过图14的屏幕,用户能够通过选择预定的关键帧来为作为整体的结构创建运动。在图14中,尚未创建“组”。
在图15中,为了创建组,用户首先选择构成组的链接。在图15中,构成结构上半部分的多个链接(虚线内的链接)被选择(被选择的链接的颜色改变为不同于未选链接的颜色)。例如,通过选择链接同时按下键盘上的“Shift”键可以选择多个链接。当完成链接的选择时,通过选择(单击)时间表窗口中的“创建”按钮来创建组名为“组1”的组。
图16是创建组之后的屏幕的实例,时间表窗口2中显示了用于在结构“整体”和“组1”之间切换的按钮。当选择“组1”时,对应于组1的一些链接(构成结构的上半部分的那些链接)通常显示在操作窗口1中,由于不是组1的链接,其余链接利用另一种显示方法显示(例如显示为透明的,如图所示)。
用户可以在屏幕显示组1中,与针对作为整体的结构创建的运动分开,另行创建对应于组1的运动。如图17所示,对应于组1的关键帧的位置还可以不同于作为整体的结构的关键帧的位置,以便可以独立于作为整体的结构的运动,创建组1的运动。
还可以将针对组1创建的帧与作为整体的结构的帧进行合成。图18是合成屏幕的实例。在图18的时间表窗口中,作为整体的结构的关键帧和组1的关键帧都被登记为关键帧,使得作为整体的结构的运动是合成二者而生成的运动。也就是说,在上述实例中,结构的上半部分与组1中创建的帧所对应的运动相配,而结构的下半部分与整个结构的帧的未更改的运动相配。例如,可以通过选择(单击)图17中时间表窗口2中的“组1”所对应的“删除”按钮来自动执行帧合成。换言之,通过删除组1,将为组1创建的帧与作为整体的结构的帧进行合成。
另外,根据本实施例的动画程序在操作窗口中的预定位置显示记录按钮(图7中操作窗口1中的“[阴影圆]”(实际是红色圆)符号)。通过选择(单击)此记录按钮,用户还可以在计算机的存储设备(例如硬盘)上记录所有操作、如用户执行的工作操作,即结构链接的选择、拖动操作和视点切换操作,还可以记录对应于这些操作的图像。由此可以按原样存储用户的工作历史。显示在记录按钮“[阴影圆]”旁边的“[阴影方块]”按钮是记录停止按钮。
本发明的保护范围不限于或受限于上述实施例,而是涵盖权利要求中所示的发明及其任何等效物。
工业实用性
根据上述本发明,提供一种动画创建程序,可以自动确定结构的各个链接的位置,使得包括多个链接的结构保持尽可能自然的姿势。因此,可以在移动屏幕上显示的结构的一个链接时确定该结构的其它链接的位置,使得结构的姿势在整体上不会变得不自然,并且可以通过更简单和容易的操作确定包含多个链接的结构的姿势。