动物动画及模拟技术的制作方法

文档序号:6411189阅读:490来源:国知局
专利名称:动物动画及模拟技术的制作方法
技术领域
本发明涉及一种模拟技术,该技术用计算机逼真地模拟两足动物、四足动物、和更复杂生物的生命特征,以及简单物体的运动。发明人预见到该发明将首先在娱乐界用计算机实时生成画面的领域中获得应用。然而,本发明在更复杂的非实时的计算机图形学领域也有应用潜力,例如制作卡通、编排游戏、制作广告、再现事件、模拟任何活的生物、和简单物体逼真的运动。
本发明的技术背景自从第一套计算机系统问世以来,已经找出多种计算机模拟方法使模拟行为逼真、可信。计算机用户已经将计算机的逻辑“思维”能力与模仿真实动物行动的能力等同起来,但结果往往不尽人意。诸如难于获得体现个性的自主行为之类的特征,而且获得达到可识别程度的这类特征需要相当高的运用计算机语言编程的造诣(该计算机语言是以难学著称的,而且语法僵硬,极易出错)。此外,为了配置和执行这类特征需要大量的计算机资源。一些简明的实例可用于说明这个问题。怎样使一个被模拟生物具有可识别的行为(如“疲劳”),并且得到用户认同 怎样被模拟生物如此逼真,以致用户忘记它是虚拟的,而情不自禁地要同它交谈 为了将逼真的模拟提供给用户(即观众),已经做了大量的尝试。在这个领域中大量的工作(例如迪斯尼工作室等单位所做的工作),就发明人所知的全部实例已经使用人物动画。其中一些已经使用子画面为基础的动画,这种动画片通常需要由画家事先制作排序的动画画面。最近,随着计算机系统的能力飞速发展,元件价格下降、存贮器容量增大、处理器功能增强,多少逼真一些的模拟产品已经开始在市场上出现,但是,这些产品仍然是提前制作的排序动画画面,这些画面集中储存在大容量媒体(如CD ROM)上,备有供回放的综合检索目录,并且能迅速地出现在功能日益增强的计算机上,以致用户感觉它们是在实时运行(例如Doug Sharp ofMicrosoft Corporation′s Advanced Authoring Tools Division改编的人机对话故事“The King of Chicago”,它使用数百个可能出现的场景镜头)。
值得注意的是前面的陈述还有一些例外,包括MassachusettsInstitute of Technology′s Media Lab的工作,例如装备在“ArtificalLife Interactive Video Environment”系统上的Bruce Blumburg的“虚拟狗”。但是,计算机用户渴望找到超越“虚拟狗”的大幅度的改进,他们需要真正的三维交互式模拟,模拟低级动物和人类,甚至赋予物体活生生的行为。进一步说,为创造一个术语,他们渴望找到对典型的模拟作了改进的“合成生物(synthetic creature)”(与基于纯表象模拟技术的早期技术的内涵大不相同)。更进一步说,热情的作者渴望找到一些支持用户注释命令的工具,一些使作品产品具有再次使用性和可移植性的工具,而且这些工具不需要他们努力学习传统的编程语言和技术,使他们避免在处理传统编程系统的硬性规定中遭受的挫折和失败。
最后,虽然上面已经使用术语“虚拟狗”,但应当注意术语“虚拟宠物”已经开始流行。Bruce Blumburg完成的工作是非常值得注意的,但还有另外一些类似的值得注意的工作(例如,由PF Magicof San Francisco,California完成的DOGZ)。但是,据发明人所知,迄今还没有模拟技术能交代什么是第一关键性障碍,该障碍阻碍在通用计算机上实时地完成和展示逼真的模拟行为、阻碍为产生可有效运行的基本物理过程、机械性能、和用户能感受到的合成生物的性质(如看得见听得着的性质)提供有效的可用工具。此外,发明人还知道迄今没有模拟技术交代在这个领域中什么是为定义和执行合成生物各种行为提供简单有效的机理的第二关键性障碍。
本发明概述因此,本发明的一个目的是提供逼真性得到改进的模拟。
本发明另一个目的是提供在常规计算机系统上有效运行的模拟。
本发明第三个目的是提供制成高级动画并真正能人机对话的模拟。
本发明第四个目的是提供一些工具,这些工具用于创作前面讨论的改进的模拟物。
简要地说,本发明的一个优选实施方案是一种在计算机上生成和模拟合成生物的方法,该方法包括创作合成生物的特征,该特征包含键和软连接点,其中除了一个事先定义的键之外,所有的键都和软连接点连接,然后创作用于合成生物的动作,其方法是将这些键移到希望的位置,使该特征定位于某个姿势并将一种或多种这类姿势作为动作储存起来。到这时,合成生物是完整的,足以在计算机上执行。可选择的,创作用于合成生物的行为树,其方法是将动作的样本和原先定义的其他行为编成组,定义一些新行为,并且按在计算机上可执行的分层结构将这些行为递归排序并纳入行为树。
本发明的一个优点是将高度逼真的惹人喜爱的栩栩如生的效果赋予采用本发明的模拟。
本发明的另一个优点是利用本发明生产的模拟可以在各式各样的可利用的计算机上执行,其中包括个人计算机,工作站和中央处理机。
本发明的第三个优点是利用本发明生产的模拟容易与计算机生成的环境的其它诸方面产生交互作用,能够与计算机系统的使用者实现人机对话。
本发明的第四个优点是利用本发明生产的模拟高水平地创作动画内容,它更接近人的思维过程。
本发明的第五个优点是利用本发明生产的模拟允许定义制作动画的工作软件,该软件是一些小型高效的动画片段编码。
本发明的第六个优点是它容易适应新兴的计算机技术(如联网),以便在线应用本发明创作的软件产品。
鉴于本说明书中结合附图介绍的实施本发明的最佳模式以及本发明的优选实施方案的工业实用性,熟悉这项技术的人将更清楚地理解本发明的上述目的和优点以及本发明的其它目的和优点。
附图的简要说明依据下面结合附图的详细介绍,本发明的目的和优点将变得明朗起来。


图1是一张分层图以及一些在创作本发明的合成生物时在各层面使用的要素。
图2描绘的是基本的模拟生物,说明键与连接点的关系。
图3描绘的是模拟生物,着重说明正重量要素。
图4与图3描绘的是同一模拟生物,着重说明正重量要素与负重量要素在一起。
图5是仿效某种风格的定时线和描述合成生物动作的图象帧。
图6描述的是作为一组独立自主行为配置的视点变化的流程图。
图7描述的是当独立的行为没有全面完成时故障弱化(graceful degration)的流程图。
图8描绘的是本发明特有的特征编辑器的屏幕显示,表示开始创建合成生物。
图9描绘的是屏幕显示,说明在特征编辑器控制窗中如何调整合成生物中键的性能。
图10描绘的是屏幕显示,说明在从图8开始的连续创作过程中补充键结构。
图11描绘的是屏幕显示,说明合成生物对称结构的初始定义。
图12描绘的是屏幕显示,说明借助合成生物对称部分的镜面拷贝完成对称结构。
图13描绘的是屏幕显示,说明给合成生物添加补充主体。
图14描绘的是屏幕显示,说明结构完整的合成生物,现在它是一个可识别的模拟狗,并且包括运用明暗对比和阴影的视觉效果。
图15a、15b、和15c描绘的是模拟海豚的屏幕显示,图15a是强调海豚中椭球状键的实例,图15b强调海豚中呈海豚形的网格结构,图15c表示加上“皮肤”纹理的海豚。
图16是使用本发明典型的动物编辑器时的屏幕显示。
图17是图16中键控部分的放大图。
图18是使用本发明典型的动物编辑器时的屏幕显示。
图19、图20、和图21是图18中键控窗的放大图本发明的优选实施例本发明中优选的实施方案是合成生物以及一组用于创作这种合成生物的创作工具。具体地说,这组创作工具包括宇宙编辑器、特征编辑器、动作编辑器、行为编辑器、和环境编辑器。此外,不是所有的创作工具都必须各具特色,或者对于全面完成合成生物都是必需的。
本发明最初的研制目的是创作合成生物,具体地说是创作“模拟宠物”,该宠物在计算机创造的环境中“生活”并且可选择地能够与计算机主机系统的用户交流。后来,发明人经过进一步深入研究完成了本发明,并提高了该发明的模拟能力,可以模拟非宠物动物、模拟有个性的人、以及将生命特征赋予无生命的物体。本发明的产品被称为模拟物、虚拟宠物、和合成生物。在此文中将使用术语“合成生物”并用数字10表示。
(1)在合成生物中定义生命发明人利用具有许多层面12的系统(图1)为他们的合成生物10建立(数学)模型。在优选的实施方案中,这些层面12包括为合成生物10提供生存环境的宇宙14、合成生物10的特征16(基本的物理特征,例如猫与狗的区别、长肢体与短肢体的差异等)、合成生物10的动作18、合成生物10的行为20、以及实现该合成生物10的环境22。借助分别处理这些层面12,发明人能够将模拟中出现的许多复杂的事情提取出来。采用分层结构12的另一个优点是使该发明更容易实施,以致作者(在本文中该术语指的是那些创作合成生物的人)和用户(在本文中指的是那些最终使用合成生物作品的人)本人不需要具有任何编程经验,因为他们可以使用简单的“应用程序”类型的界面创作各个层面12,所以他们不需要使用传统的计算机语言“编码”(尽管在需要的时候可以使用更传统的计算机编码方法建立一些特殊模块,并且通过补充这些特殊模块大大提高分层结构12的能力)。对于采用这种方法创作的合成生物10,人们可以非常迅速非常容易地改变它和完善它。此外,采用这种方法可以使创作合成生物10的工作变成在各个层面12上完成的大量的重复和移植。例如,一种合成生物…狗10的属性(即使被储存在程序库中配置给其他的作者)可以为了创作其它的合成生物…另一种狗10被再次使用,甚至可以为了创造异乎寻常的效果将合成生物…狗10的物理属性与合成生物…猫10的行为属性结合起来。再者,采用不同的层面12允许将创作过程中许多复杂的事情提取出来。
分层结构12的各个层面可以是能够识别的,但是这样做并非总是绝对必要的。例如,宇宙层面14和特征层面16是两个层面,发明人并没有使它们有很大的区别。迄今,发明人还是将宇宙层面14简单地并入特征层面16的实施方案。但是,没有理由说宇宙14不能作为真正独立的层面12,可以想象,如果这样做了,将提高合成生物10的能力,例如作为讲授物理力学的教具,或者演示非牛顿物理定律。
(A)合成生物的宇宙为了使合成生物10看上去是真实的,合成生物10赖以生存的宇宙14应当是恒定不变的,即应当迫使在那个宇宙14中生存的合成生物10与其它物体遵守相同的物理定律,例如牛顿物理。这要求宇宙14以某种方式规定基础物理(underlying physics)24。
如上所述,在当前的配置中,发明人将宇宙14与特征16结合起来。这样可以减少关心宇宙的作者在使用正常的地球型宇宙时的工作量。
从概念上说,宇宙14是最低的层面12。但是,不象缺乏较低的层面12就毫无意义的较高层面12(例如,不存在动作层面18就不可能创作行为层面20,不存在特征层面16就不可能创作动作层面18),对于创作较高层面12,预置的宇宙层面12并非总是必要的。然而,如果不将宇宙14置于最低层面12可能带来一些问题。力学上经典的二分之三次方律问题就是一个例子(这是一个支撑结构与质量关系的问题,它说明了为什么笨重的动物一定象大象或河马那样具有粗壮的腿,为什么象蚂蚁和蜘蛛那样非常轻的动物的腿非常细)。如果不事先将宇宙的“现实”强加给合成生物10的特征层面16,那么大量的有关动作层面18和行为层面20的劳动将付诸东流。
(B)合成生物的特征图2描绘了一个非常基本的合成生物10。在图中合成生物10的关节和身体部分被表示成松散连接并相互制约的独立键26(用椭圆表示,因为特征16是三维的,更确切的是用椭球表示)和连接点(用带箭头的线段表示,箭头末端指向较高级别的键26),它们完成日常生活的物理过程(即它们的活动将服从宇宙14的规律)。键26代表刚性对象,而连接点28表现两个具体键26之间的相互作用。这样将一种在迄今的作品中不曾有过的异常柔和的动感赋予合成生物10。
从概念上说,特征层面16也是分层的,它以最高级别的非缔合键30为起点,并且有挂在该非缔合键上的级别较低的子键32。子键32是有缔合连接点28的键26,它通过缔合连接点逐级连接在级别较高的键26上,直至到达非缔合键30为止。键26承受来自分层结构中每个较低级别连接点28的作用力和力矩(尽管这可以受到控制,其方法是规定按特殊方式相互作用的各种连接点的类型)。
图3表示典型的合成生物10的许多可识别的身体部分。这些部分包括头部键34(具有诸如眼睛键36之类的特征),胸部键38、下体键40,足部键42和尾部键44。
图3和图4还说明合成生物10如何使自己保持稳定以及如何在环境22中控制自己。每个键26的重量和质量分开表示并分别进行处理,以便使合成生物10的总体行为严格地模仿真实动物受闭环控制的行为,赋予合成生物10更多的逼真性。重量用箭头表示,向下的箭头表示正重量46,向上的箭头表示负重量48。质量决不会是负的,在图中不用任何符号表示,因为它的存在是不言而喻的。
(C)软连接点合成生物还需要模拟它的键26(即它的肢体部分)和连接这些键的连接点28的动态特征。解决这个问题的经典方法是在代表每个肢体部分的键之间以数学约束条件形式设置无限刚性的连接点,然后,求解每个时刻该系统完整的数学模型。遗憾的是,采用这种方法在每个时间步的计算量随连接点数的三次方递增,或者由于需要反演复杂的非线性函数关系(“逆运动学”问题)而变得无法处理,因为必须事先将完整的描述运动特征的方程组全部用公式表示出来。此外,从总体上看这种方法产生的运动是僵硬的、机械的,象机器人一样。但是,这种传统的方法得到广泛应用,因为大多数动物的关节在某些方向上是比较僵硬的,而在其它方向上又是灵活的,所以引入一组描述刚性的数学约束条件最初看起来是适当的。这种方法在机器人学领域也是通用的,在该领域中,设备的线性运动自由度和角度自由度都受到限制。
与传统的方法相反,发明人给出与其它键无关的每个键26的公式,因此在每个时间步的计算量与键26的数目成正比,而不是与该数目的三次方成正比。发明人用术语“软连接点”表示这个概念,因为这是将合成生物10的连接点28和键26(即肢体部分)结合起来进行模拟的一种途径,这种途径导致非常流畅的柔和自然的造型。由于每个键26的行为都是独立的,所以它的运动方程只需要求解一次。采用这种方法使复杂的六个自由度的数学模型有可能获得有意义的近似解,并且将赋予合成生物10真实感。
发明人的方法进一步计算在每个时间步中连接点28之间的相互作用力。这些力可以利用状态变化速度直接依据连接点28的相互作用状态进行计算。但是,应当理解,常规的控制规则可以直接用于本发明的这个部分。为了确定复杂程度和计算量的变化范围,可以针对处理不同级别的相互作用力改变连接点28的类型,因此在满足要求的场合可以采用比较简单的连接点类型。本发明方法的另一个重要的方面是在分层结构中每个连接点28都与一个子键32缔合,而且以一个非缔合键30作为逐级缔合的终点,这个非缔合键30没有与它缔合的连接点28。这提供了很大的方便,其优点是不再有任何定义基础键的问题,而且不再需要计算质量中心的显解或在创作合成生物期间完成其他冗长的计算。采用普通的以对象为目标的编程技术可以形成特殊的键26,这些键没有质量,或者具有其它特殊性质,借此简化计算而且不会引起不稳定性问题。
发明人用于完成上述计算连接在一起的刚性键的质量性质的方程如下(ⅰ)用于刚性键中速度项和力项的坐标变换将加速度ν.0]]>和旋转加速度ω.0]]>赋予以ω旋转的对象。运动学的约束条件指的是在对象中的a点的局部加速度ν.a]]>和角加速度ω.a]]>为ν.a=ν.0+ω.0×a+ω×(ω×a);ω.a=ω.0]]>借助定义满足R(-a)=-R(a)=RT(a)的矩阵
我们可以通过下述等式将叉积表示成矩阵的乘积,该等式为a×b=R(a)b=RT(b)a=-R(b)a=R(-b)a=-b×a这允许我们利用所有量的列矢量,包括包含叉积的表达式。于是加速度方程可以写作
该方程可以通过反演提供逆变换
作用于a点的力Fa和力矩Ta与作用在重心的力F0和力矩T0是等价的,即F0=fa;T0=Ta+a×Fa,这样在考虑力和力矩时可以采用下述的坐标变换
(ⅱ)在连接点上的作用力和它们对身体运动的影响假定在连接点a有一个附加的外部质量,它产生的作用力是局部的线性加速度和旋转加速度的函数,并用局部坐标系表示,该方程为
我们首先确认在体心表示的力和力矩都必须保持平衡,即
然后将所有的项展开并按照上述的变换将所有的坐标变换成体心的局部坐标,并且求解必须作用在体心上而且是体心的线性加速度和旋转加速度函数的力和力矩,即
并项后得到在体心处力与加速度的关系
概括起来,我们可以说在物体中心的实际质量与力矩的关系受下式控制,即
其中,
(ⅲ)用于基本质量参数的坐标变换将已经提供的坐标变换代入,可以将计算质量参数的参考坐标变换成不同身体部位的参考坐标,所以只要已知刚体中一点的质量参数,就可以计算出其它点的质量参数,计算公式如下
所以,我们可以说坐标变化通常会改变质量参数,结果如下
对于用旋转变换矩阵C表示的坐标系的旋转变换,可以进行下述的相同类型的推演。C是将参考坐标系c内的坐标变换成某个基本参考坐标系0的矩阵,以致形成在矩阵中旋转的基本变换规律
然后进行关于f的类似计算
最后得到质量参数变换如下
(ⅳ)在某点输入力和力矩假定力Fa和力矩Ta作用在点a上持续时间为dt。于是,体心的线性动量变化dP0和体心的角动量变化dH0将由下式给出
(ⅴ)在某点输入速度变化假定环境迫使某点的速度发生瞬时变化,dv0和dω0。于是,体心的线性动量变化dP0和体心的角动量变化dH0将以下述方式给出。首先重新写出某点的基本质量方程,于是有
这个方程可以在上述的基本动量方程中使用,于是有
求dt趋于零时的极限,得到
(ⅵ)在某点输入速度变化加零力矩当输入是线性速度并且在界面中没有力矩时,方程必须重写,以便求解线性加速度项和力矩项中的力和角加速度,然后变换成物体中心的动量变化。为此,将质量参数矩阵Ma分解成若干个部分,即
让foadt和toadt趋于零,而Fadt和Tadt保留,重新整理后得到
求出第一个矩阵的逆矩阵,然后与方程的两侧相乘,得到
推出需要的各项并变换成体心坐标,得到
在Tadt为零时,该结果有简单的表达式
对于没有其它连接的单一的键,我们有
于是,
恢复成叉积表示法,即
(ⅶ)一个自由度的笨重键的PID控制用于简单质量的带PID控制的运动方程是p.=x;x.=ν;ν.=1mΣf=1m(g-aν-bx-cp)]]>
其中,x是位置,ν是速度,p是总体误差项。在这里g是外力。数值a、b、和c代表控制因子,通过选择控制因子的值使系统获得需要的闭环响应。
这个系统的传递函数是P(S)G(S)=1/mS3+amS2+bmS+cm]]>其中s代表拉普拉斯算子(d/dt)。借助选择a、b、c,使它们分别为a=3m/τ;b=3m/τ2;c=m/τ3该系统将在s=-1/τ时有三个实根,所以p的通解将是p(t)=Ae-t/τ+Bte-t/τ+Ct2e-t/τ引入变量u,上式将得到简化,以致其它的状态变量都可以作为上述方程的导数被计算出来,得到在时间t的解,即u=e-t/τp(t)=Au+Btu+Ct2ux(t)=-Au/τ+Bu-Btu/τ+2Ctu-Ct2u/τν(t)=Au/τ2-2Bu/τ+Btu/τ2+2Cu-4Ctu/τ+Ct2u/τ2当t=0时,上述方程简化成p(0)=A;x(0)=-A/τ+B;ν(0)=A/τ2-2B/τ+2C
从上述的初始条件p0=p(0),x0=x(0),ν0=ν(0),得到特解的系数为A=p0;B=p0/τ+x0;C=-p0/τ2+x0/τ+ν0/2将这些系数代入上述方程,以便计算任意状态下的特解和恒定不变的控制系数。具体地说,对于大模拟时间步,在PID控制下系统的效能可以用闭环形式来模拟,而且不因近似而失去精度。
最后,还应当理解本发明的方法有利于更精致的结构,例如限制动量的连接点28、高度非线性的连接点28(如木偶中存在的串联关系)、用于滑稽效果的线绳似的连接点28、以及在动物处在不同的引诱状态时出现的刚性可变连接点28的简单组合、或者控制性能由概率定义而不由确定的函数关系定义的均衡连接点。
(D)运动的浮力控制在试图模拟四足动物(如狗、猫、大象等)时,往往出现一些问题,这是因为它们的大部分质量在脚的上方。为了逼真地模拟四足动物,被模拟的合成生物10有时(例如在奔跑时)必须通过静态不稳定位置运动,不幸的是,这样模拟的动物容易跌倒。当然,这个问题在模拟人和双足动物时甚至变得更为突出。
解决这个问题的经典方法是对整个系统采用闭环控制。首先,系统配置必须齐全,足以使所有的状态变量都是“可观测的”,以便利用系统控制理论的专业术语。通常,这要求对于每个状态变量至少有一个测量结果。在模拟中,这些量是可以直接利用的,但是对于普通的合成生物10(比如说有21个键26的合成生物),还是需要观测126个变量(21×6=126)。按照控制规律将这些测量结果并入,以便控制这20个连接点28中的每个连接点,即这120个自由度中的每个自由度。由于涉及运动联动,线性控制规律在这里是不适用的,并且利用这种方法迅速地全面解决这个问题也是不实际的。
为了解决这个问题,发明人返回到人机工程学,采用交叉模型(crossover model)。这个交叉模型说的是当人作为控制的一个环节时(例如控制汽车或飞机),尽管该系统实际上是一个受控的开环系统并在诸如反应时间和强度等方面受人为因素的限制,但是他(或她)的工作都将使系统的闭环行为稳定并且始终如一。在控制独立肢体部分时或在控制完整的系统(如一个动物)时采用这个模型,发明人能够获得可计算的稳定控制而且不牺牲真实感。简单地说,因为合成生物…模拟狗10的表现好象是它的头部键34能飘浮,所以,在模拟时给它的头部键34提供浮力是一种充分的强制模拟(参见图4中的负重量48)。
为此,发明人将每个键26的质量与重量分开,并且分别进行处理。这两个概念往往被没有经验的人混淆,而且英国的测量体系至今仍然是混乱的,用相同的名称表示地心引力产生的重量(磅-重量)和保持静止或运动趋势(磅-质量)。虽然公制体系将它们分成“牛顿”和“千克”,但是人们通常还是用家用磅秤以“千克”称他们的重量。区分重量和质量的能力由于在日常生活中只有为数不多的几种物体具有正质量和负重量而被弄得含糊不清。例如,氦气球具有这些性质,它的质量可以忽略不计,当氦气球在加速的汽车中由于周围空气的浮力作用向上运动时,会使人们感到惊讶。
在发明人的模拟方法中,在正常的控制下保持接近地面的键26获得一附加的正重量46(用箭头描述),而在正常的控制下保持高高在上的键26(如头部键34)获得一负重量48(也用箭头描述)。如果重量增量的代数和趋于零,那么将没有净重量加到这组键26上,于是这组键在该环境内的微观行为将保持真实感。此外,可以将一对正重量46和负重量48加到同一个键26上,以便提供力矩型的飘浮性质(参见图4中的头部键34)。例如,对于控制合成生物10的头部键26这样做是适当的,因为最真实的动物都宁愿尽可能地保持它们的头在竖直的位置,这也是人们所期望的。
(E)合成生物的动作动作18是合成生物10能够完成的动作基元。主要的实例包括运动50和声音52,尽管还可能有其它类型的动作18(例如特殊的信息交流或表情,例如小丑型的合成生物10在它做了使它感到窘迫的某些事情时脸红的表情)。重要的是创作一批合成生物10可能完成的动作18,并借此生成有用的动作基元库,以后可以利用这个基元库创作更复杂的行为20。
实际上,大多数动作18是运动50,是按步进次数60分解的受特征16和宇宙14制约的姿势58序列。姿势58是合成生物10的键26和连接点28符合需要的几何形状。作为明确的约定,发明人还将单一姿势58作为运动50处理,并且将动作18的正常姿势59定义为由特征16的几何形状首先控制的姿势58。
图5是仿效定时线和描述典型的合成生物…狗10跳跃的影像图。姿势0(58a)是合成生物10处在正常姿势59。在步进0(60a)之后合成生物10处在姿势1(58b),后腿下蹲。在步进1(60b)之后合成生物10处在姿势2(58c),前腿向下弯曲。在步进2(60c)之后合成生物10处在姿势3(58d),前后腿伸展,向空中跃起。在步进3(60d)之后合成生物10达到姿势4(58e),前后腿着陆,稍微弯曲以吸收冲击。最后,在步进4(60e)之后合成生物10达到姿势5(58f),普通的完成位置(或许是与正常姿势59完全相同,但是有许多略有不同的姿势58可供选择,以便逼真地描述合成生物10的外貌)。
声音52是另一种重要的动作18类型。声音52的一个实例是合成生物…狗10陷入某件事情时发出的叫声。在优选的实施方案中,用回放预先录制的声音文件来处理声音52,这些声音文件可以做成常规的计算机格式(例如WAV型或MIDI型声音文件)。
(F)合成生物的行为合成生物10的智能行为是作为若干组既有协同又有竞争的过程来创建的,它使人感受到合成生物的自主性和意识,以及诸如故障弱化之类的性质和采用早期技术难以实现的可变性。通过采用这种方法以及在这里介绍的其它技术,与当前使用的诸方法相比可以大大减少计算量,首次使人们能够利用个人计算机实时模拟复杂程度中等的动物。
行为20是用户最终对合成生物10的综合活动的理解。行为20的一个实例或许是合成生物10追球。行为20在抽象级别上将包含诸如奔跑、转身、和吼叫之类的动作18,而动作本身的级别又高于特征16,特征16规定肢体的运动范围和连接点的弹性之类的细节(即键26和连接点28)。
为了定义合成生物10的总体行为20(即它的智慧),发明人使用行为树72,这是非必选的递归的子行为74的谱系,该谱系由行为20和动作18组成(参见图18和图19,在后面的章节…实施中详细讨论)。合成生物10的总体行为20是通过执行过程表现出来的,执行过程从行为树72的根部开始,通过枝干直到抵达叶片(即动作18)为止。在发明人的计划中,子行为74被分成四种类型,即顺序型子行为76、平行型子行为78、决定型子行为80、和中断型子行为82。当然,如果需要还可以有其它类型,但是从概念上说,至今遇到的所有情况似乎都可以在这四种类型以递归方式组成的行为树的枝干上找到。例如,计划和识别都可以作为采用决定型子行为80的结构来执行。具体地说,具有广泛的学习能力的合成生物10很可能需要具有增删行为20的能力,以便从总体上发展它现有的行为20(即学习)。
顺序型子行为76被表示成子行为74的排序表,而它本身又可以是另一种子行为74。对于顺序型子行为76,表内的子行为74顺序决定它们的执行顺序。平行型子行为78被表示成子行为74的无序表(即顺序是不确定的),表中列出的所有分支子行为74同时执行。
决定型子行为80也被表示成无序表,(在优选的实施方案中)该表中的每个子行为74最初都具有一个相等的加权因子88,随后可以由作者调整这些加权因子88。在开始执行决定型子行为80时,依据加权因子88的组合给定的概率分布进行随机选择和评估,以决定执行哪个子行为74。采用这种非常简单的原则,决定型子行为80能够获得十分复杂的结果(如个性)。为了领会这个概念,人们仅仅需要理解现实本身就是随机的,因此在建立模型时也需要一些随机量作为输入。
中断型子行为82被表示成一个缺省子行为90和一个主要刺激92与相关的子行为94配对的排序表。在开始执行中断型子行为82时,评估所有的主要刺激92,并执行第一个与主要刺激92对应的相关的子行为94。如果没有主要刺激92,执行缺省子行为90。
例如,描述合成生物…猫10的行为树72的一部分可能是这样的主行为(中断型)<空>睡觉(平行型)
<公鸡打鸣>醒来(平行型)眯起眼睛(顺序型)兴奋起来(中断型)<空>注视鱼(顺序型)向鱼盆走去(顺序型)盯着鱼(顺序型)对鱼作出反应(决定型)扑向鱼盆(顺序型)[1]把爪子伸进鱼盆(中断型)[1]<呵斥>对主人作出反应(决定型)向主人走去(顺序型)[5]等待主人走过来(平行型)[1]躲起来(中断型)
……<呼唤吃饭>向厨房跑去(顺序型)……在这个实例中,子行为74的类型用圆括号标出,主要刺激92用尖括号标出(<空>与缺省的子行为90对应),方括号内是加权因子88的数值。在上述实例中,标明“对鱼作出反应”的决定型子行为80中每个子行为74具有全然相等的加权因子88,好象缺省的加权因子尚未经过调整。反之,标明“对主人作出反应”的决定型子行为80中每个子行为74具有不同的加权因子88,这样提高了执行标明“向主人走去”的子行为74的概率,降低了执行标明“躲起来”的子行为74的概率(即这个猫型合成生物10作为其个性的一部分对主人的反应是随机的)。
在上述的实例中,说明了合成生物10个性的基本特征。复杂得多的个性用决定型子行为80很容易实现。例如,合成生物10采用标准的Myers-Briggs型个性优先权变量,以达到与人非常相似的个性平衡,如外向型与内向型的平衡、敏感与直觉的平衡、思维与感触的平衡、以及判断力与理解力的平衡。此外,使用其他的个性“引擎”也完全可能,这是显而易见的。
(G)基于过程的智能尽管描述当前用于探讨智能的各种方法的特征是困难的,但是大体上与经典的计算机结构等价的方法对于研究是有用的。被模拟的生命得到一种中心控制方法、一组它能够完成的任务、一个栈帧(a stack frame)、以及一个在新任务出现时用于完成任务切换的抢先系统。尽管这种方法有一些优点,但是它还是有局限性。首先,这样的系统一次只能做一件事情,这非常象计算机。其次,该系统经常失败。例如,当一个栈帧出现故障时,所有的系统都立即停止。第三,从方法上说这种方法是定向的,所以利用这些范例很难获得高级行为。
本发明的方法避免了这些问题,其方法是将一组为了达到具体目的而相互制约的独立的行为20(即过程,参见图6和图7)赋予合成生物10。此外,这些行为20可以由其它的行为20自由地起动或结束,因此创造了子行为74的递归行为树72分层结构。例如,在正常情况下动物身体部分的功能取决于动物的行为。在不同的时刻,动物的头可以用于保持行走时的平衡、用于表示视线的大致方向、或用于传递它希望得到食物或引起注意的信息。在本发明的方法中,独立的行为20用于控制某些事情,如头面对的方向、眼睛的凝视、航行和兴奋状态等。通过以这种方法实现智能,发明人完成一种故障弱化。当有关的行为20由于遭到破坏或不能利用或还在设计和研制中而失败时,具体的行为20仍然能够对它的有限的能力产生影响。通常人们认为有机系统往往具有这种故障弱化的性能,而在以机械为主的系统或仿真系统中很难实现故障弱化。
在其它条件一样时,变化是在行为20可以在某些特定条件下开始时或在为了同一目的随机选择不同的行为20时获得的。
例如,研究凝视方向、头的方向、和身体的定位之间的相互作用是有用的。观察真实动物向我们表明当感性趣的事物(如飞行)在狗的视野中心附近时,只有眼睛在运动以便盯着它。当越飞越远时,头也跟着运动。当这样还不够时,身体也要运动,如有必要首先改变站或坐的位置。
在典型的探讨智能的计算方法中,为了完成眼睛的定位必须同时解决头和身体的定位问题。此外,当动物在使眼睛定位时,必须同时完成头和身体的定位。通常在全面解决问题之前既不能实现眼睛的定位也无法试验。
正象在图6中描述的那样,在本发明以过程为基础的方法中,如有可能,眼睛定位行为98仅仅由眼睛键36的定位组成,或者在目标太远超出视场时包括头部键34的定位。为了完成眼睛定位行为98,不需要头部定位行为100或身体定位行为102的细节。在执行中,无论合成生物10是坐着还是站着,是在走动还是在追击,眼睛定位行为98都继续进行,而且没有需要解决的瓶颈(即过程中的冲突)。但是,正象在图7中描述的那样,如果头部定位行为100被破坏或尚未完成(如不正常的头部定位104所示),眼睛定位行为98仍然可以起作用,或者至少可以进行试验。应当理解这种方法对于建立其它方面的智能模型也是有用的。
(H)刺激和环境变量在本发明中,刺激62和环境变量64用于控制行为20的行为树72的运行时执行。用编程术语,刺激62作为表示诸如真伪、通断等二进制状态的“标记”发挥作用。所有的刺激62都与全球定位68有关,全球定位68用于识别在环境22中刺激62在运行时起源于何处。一个实例是合成生物10感觉球的存在(即判断球的存在是真还是伪)。由于全球定位68与表示球是否存在的刺激62相联系,所以合成生物10能够支配它的注意力并且最终支配它的行为20。在另一个实例中,单击鼠标型刺激62意味着看用户,该刺激62可以有用户全球定位68(即进入合成生物10世界的屏幕或窗口)用于改变合成生物10的方向。
与刺激不同,环境变量64是实数值,该变量可以在运行时动态地进一步影响作为决定型子行为80一部分的子行为74运行概率(即修改创作期间作者借助加权因子88设置的概率)。环境变量64的一个实例或许是被标注为“黑夜”的实数值,用该实数值将关于环境黑暗程度的信息传递给控制合成生物10笨拙程度的决定型子行为80。
(I)合成生物的环境环境22是合成生物10周围空间具体的物理特征和视觉特征,包括地板和墙壁之类的限制表面、空气和水之类的分布型物质、重力场之类的自由场、以及象树木倾倒和地震之类的事件。因此,环境22变得十分复杂,尽管这种复杂的环境并不总是必要的。事实上,从理论上说合成生物10可以没有任何环境22,尽管这样的合成生物10或许不能令用户十分满意。此外,合成生物10可以放在多重环境中,甚至穿越多重环境。例如,或许可以创作一种多重环境22,其一好象地球上的背景,其二好象月亮上的背景,只要采用同一宇宙14,这将是两个用于合成生物10的有效环境。
参照图1,环境22的主要组成部分包括可见的背景106、静态对象108、和动态对象110。当然,很容易想象和补充其他用于在环境中使用的成分,但是在这里只讨论这几种,以有利于理解发明的合成生物10。
可见的背景106由底表面112(例如建筑物外面的地面或建筑物内的地板)和远景114,其中远景既可以仅仅是水平方向可见的360度全景(即没有“顶部的”景象),也可以是真实的半球形的天空全景。在优选的实施方案中,将预先录制的位图(bit-map)用于底表面112和距离视野114。
静态对象108是在环境22中不能运动的物体。实例包括树木和墙壁。静态对象108要求频繁计算用户看到的情景(即静态对象108是在合成生物10的前面还是后面,或动态对象110相对静态对象的距离;类似于子画面问题)。静态对象108还要求解决空间冲突,因为合成生物10或动态对象110只能在静态对象108(比如树)的前面或后面运动,但不能直接穿越静态对象。
遗憾的是,这些要求需要使用相当大的运行时计算机系统,从而增加了总开销。所以,对于简单的环境22不考虑静态对象108往往是最容易的,而且在某些制作中发明人已经这样做了,在空旷的场地或海滩上绘制合成生物10。更遗憾的是,往往需要相当多的静态对象108。例如森林、迷宫和摆放了各式各样家具的房间。因此,作者不得不依靠某些技巧来减少使用静态对象108,比如将所有的树木和家具置于远景114中,于是合成生物10总是在该远景的前面活动。
尽管发明人在这里并没有直接提出解决上述的静态对象108问题的方法,但是应当看到应用这里介绍的有效地模拟合成生物10的技术将大大节约运行时资源。
与静态对象108相反,动态对象110在环境22中活动。动态对象110的一些实例包括球之类的玩具和其他的合成生物10。合成生物10可以自己玩球(即动态对象110),也可以与用户一起玩。它可以暗示球在运动,然后去追,象需要的那样在球的前后奔跑。或者由用户移动球(比如说用鼠标单击并拖动球,让它去追。类似地,第一个合成生物10可以在该环境中与其它合成生物10相互配合。应当注意多个合成生物10之间的相互作用可能是十分复杂的,例如不仅涉及位置信息(如追球场景中的位置信息),而且涉及配音(象猫或狗的叫声),甚至涉及其它类型的信息(例如在狗遇到臭鼬的场景中气味的相互作用)。
动态对象110与静态对象108一样,具有贴近观众和空间位置冲突的问题。但是,通常是有节制地使用动态对象110。因为在场景中独立活动的单元太多会使观众眼花缭乱,所以作者通常只需要为数不多的几个主要的合成生物10,以使观众关注作者的创作意图。至今在大多数配置中,发明人还没有遇到同时需要多于两三个动态对象110的场景(但是,这并不是限制,如果需要并且有运行时资源的支持,更大的数目无疑是可能的)。
(2)合成生物的实施前面的章节已经介绍了发明人制作合成生物10的方案。实施该方案需要一些工具,即用于作者在创作合成生物10时以计算机可读格式应用该方案的创作环境200(未示出)和最终将完成的合成生物10提供给观众的运行时计算机202(也未示出)。
(A)创作环境如上所述,发明人已经发现用不同的层面12(见图1)进行创作可以获得相当大的编程效率。所以用于每层面12的各具特色的工具是人们所希望的(不用“需要”这个词是因为将工具分开并非绝对必要,因此不应当把它看作是对本发明实际范围的限制)。正象在各张图中所描述的那样,各种工具的优选实施方案的基本形式分别借助各种普通的参考特征来描述,这些参考特征分别是用于非必选的宇宙编辑器的普通的参考特征204(未示出)、用于本发明的特征编辑器的普通的参考特征206(具体地示于图8至图15c)、用于本发明的动作编辑器的普通的参考特征208(具体地示于图16和图17)、用于本发明的行为编辑器的普通的参考特征210(具体地示于图18至图21)、用于本发明的环境编辑器的普通的参考特征212(未示出)。
(ⅰ)非必选的宇宙编辑器如上所述,创作宇宙14(图1)的最简单的方式是简单地将物理学24(例如描述“正常地球”的常规方程和系数)“硬性编入”特征16(更正确地说,将这种能力集中到特征编辑器206中,以致物理学24在创作时就变成每个特征16的一部分)。而不是使用发明人针对所有的实施方案已经完成的独立的宇宙编辑器204。但是,补充了一个额外的小步骤,即增添用户界面,以允许作者改变宇宙14的物理学24,譬如输入非牛顿方程或异常的地球系数(即物理常数,如万有引力、摩擦和材料的弹性)。
创作这样的宇宙14将包括输入或选择物理常数214(如万有引力、摩擦等),以及输入或修改标准方程216(如牛顿的运动方程),这两部分合在一起给出任何对象(即不仅限于合成生物10)在该宇宙14内的运动。
(ⅱ)特征编辑器在优选的实施方案中,第一项主要创作任务是建立合成生物10的特征16(即合成生物10的三维物理模型,包括形状、结构和视觉特征)。这要求规定键26(即肢体)和连接点28之间的关系。为了创作新的特征16、编辑现有的特征16和检验这些特征16,人们需要工具,在优选的实施方案中这个角色由特征编辑器206来承担。
图8至图15描述在应用中取自典型的特征编辑器206的各种屏幕显示。现在看看图8,特征编辑器206向作者提供了一个特征编辑屏218,在该编辑屏顶部有一信息栏220和一菜单栏222。通过输入键26与连接点28的联系来建立一个合成生物10,该合成生物10位于特征编辑屏218中,中心在地板栅格224上方并且最初在带横穿背景的水平线228的垂直平面栅格226的中央。在用鼠标双击现有的键26或用热键选择该键26时将进一步出现特征性质窗230(图9),该特征性质窗可以在特征编辑屏218内被作者拖到任何地方。
图9描绘了特征性质窗230的主要组成部分,包括色彩特性滑键232、连接点类型按钮组234、命名栏236、视觉特性复选框238、连接点特征行240、键物理特征行242和键结构特征行244。
色彩特性滑键232控制色调、饱和度和亮度。初始颜色可在菜单栏222中选定,或设置缺省值。一旦选定了键26的颜色,下一次自动生成的键26的颜色将略有差异,以便区分相邻的两个键26。作者可以利用菜单栏222控制进一步自由地改变颜色。
连接点类型按钮组234供作者选择键26的结构类型,包括接触型(即与上级键26刚性连接(例如,在图10中连接子键32与非缔合键30的连接点28)、连接型(能绕一条或多条轴就地旋转)、动态型(模拟基本运动)和笨重型(具有全面模式化的运动特征)。
命名栏236提供一下拉选择表,该表列出身体各部分(如头、右肩等)的常用标记,而且有补充新标记的创作能力。使用标准化的标记(优选用习惯的标记)使创作成果可以跨层面12重复使用和移植。例如,合成生物…猫10的动作18和子行为18利用这种常用标记可以转移给合成生物…狗10。
视觉特性复选框238允许选择选定键20的表示法,包括被遮蔽键的表示法、不透明键的表示法和不可见键表示法。注意,这些是键26的表示法,而不必是用户看到的最终的视觉效果。那些可以借助纹理252或借助在运行时环境22中发光部分进行修改。在本发明优选的实施方案中,这类表示法用于规定键26的某些物理性能。表示成视觉上被遮蔽的键26(见图14中的阴影246)还可相互穿过。反之,不透明的键20铸成可见的影子(见图11中的影子248)并且可能与其它键26碰撞(即意识到其他的键26并且不占据同一空间)。不可见型的键26是看不见的,对于补充隐藏的机械性能是有用的,因此往往获得臆想不到的效果。
连接点特征行240控制滑动速度(键26的滑移速度)、转动速度(键26旋转运动的速度)和键26的复原时间(非常象某些常见的肌肉结构,收缩和伸展速度不同;这仅仅适用于笨重型键)。键的物理特征行242控制选定键26的密度和浮力。
键结构特征行244控制键26的网格250和表面纹理252。在优选的实施方案中键26的缺省网格250是椭球(例如,见图15b)。但是,这种网格是可由作者改变的,比如说在图15c所示的表面纹理252实例之下的图15b所示的不规则的四边形或海豚形。大量的结构形状变化可以用常规的网格型结构表示出来,本发明完全能够使用这类结构。(应当特别注意尽管为了简单图中提出的大多数实例采用椭球网格,但是,许多合成生物10的实施将使用更复杂的网格250。表面纹理252是在键26表面上的共形映射(例如,在图15b中“包裹”在海豚合成生物10上的位图)。表面纹理252对赋予合成生物10“皮肤”非常有用,一些复杂的实例是绒毛和爬行动物的鳞片(图中提出了几种表面纹理252的实例,但是熟悉这项技术的人将看到本发明能够非常广泛地应用表面纹理252)。
特征编辑器206采用的优选的实施方案的许多特点是用热键和单击并拖动鼠标的操作来存取的。例如,在图8中,用户已经单击并拖动鼠标以调整键26的大小。在图10中,第二个键26已经被添加上去(在这里两个键26都用椭圆表示,以突出连接点28),并且已经采用了双击并拖动鼠标的操作以将连接点28添加在键26之间(在这个点精确地制作了一个子键32与另一个非缔合键30)。在图11中,左侧的前后足键42已经被添加上去。在图12中,作者已经在特征编辑屏218中旋转视图(通过热键存取摄影按钮点阵;这将在下面对动作编辑器208和行为编辑器210的介绍中详细说明),通过对称拷贝左侧足键42,建立右侧足键42。在图13中,将基本的头键34的子结构添加到合成生物10上,在图14中完整的合成生物10的结构已经完成。
(ⅲ)动作编辑器为了完成本发明定义的合成生物10,还需要创作新动作18、编辑现有动作18、以及检验动作18的工具。在本发明优选的实施方案中,这个角色由动作编辑器208来承担。正象前面讨论的那样,动作18被编排在一个(无序的)表中存储起来。在发明人提出的优选的实施方案中,动作编辑器208掌握的动作18仅仅是运动50。虽然声音52从概念上说也是动作18,但是在后面的行为编辑器210中才规定它们。这样做的一个基本理由是输入、更改、和检验声音52的能力在行为20层面12上对作者才有用。但是,应当理解这是设计优先权的问题,并且声音52以及其他类型的动作(包括由客户为特殊配置而定义的动作)都能够由动作编辑器208的另一种直达式配置来控制。
图16和图17描述典型的动作编辑器208在使用中提供的屏幕显示。在图16中动作编辑器208向作者提供了一个动作编辑屏254,在该编辑屏的顶部有信息条256和菜单条258。一旦调用(即打开包含特征16定义的文件),合成生物10出现在动作编辑屏254的中心,在地板栅格260的上方并且有水平线262横穿背景。进一步出现的是核心姿势控制窗264,在动作编辑屏254内作者能够将它拖到任何位置。
图17更详细地说明图16的核心姿势控制窗264。优选的核心关键姿势控制窗264包括5个主要的子控制组,包括姿势控制组266、动作控制组268、步进控制组270、模拟控制组272、和摄影控制组274。
优选的姿势控制组266向作者提供对独立姿势58细节的控制,并包括姿势识别行276、姿势识别表278、创建姿势按钮280、姿势复位按钮282、和删除姿势按钮284。当前动作18的当前姿势58的名称出现在姿势识别行276中,姿势58的排序表(图17)出现在姿势识别表278中。在姿势识别表278中适当的选择姿势58(例如,借助诸如鼠标双击或在向上翻卷时按输入键之类的常规选择方法)使某个姿势58变成选定姿势58,并且使该姿势的名称出现在姿势识别行276中。如果该表超出可利用的空间,姿势识别表278变成可向上翻卷的表(在该图中姿势识别行276和姿势识别表278有点象是一个,但是,它们在功能上是有区别的)。
为了给当前选中的动作18建立新姿势58可借助按压创建姿势按钮280来完成的。在优选的实施方案中,姿势58被自动地命名为姿势0、姿势1、姿势2…。所以,一旦按下创建姿势按钮280,新的姿势名就出现在姿势识别行276中。然后,作者在动作编辑屏254中单击并拖动合成生物10中组成当前姿势58的键26,直至姿势58令人满意为止。双击姿势识别行276将现在的姿势58存入目前选定的动作18,新姿势58被放在选定的当前姿势58的后面。在储存操作之前,任何时候作者都可以按压姿势复位按钮,以便使合成生物10的键26从原来的正常姿势59起动。但是,在储存操作之后,作者必须使用删除姿势按钮284来删除选定的姿势58,否则必须编辑该姿势58。编辑现有的姿势58的方法可以是选择需要编辑的姿势58,在需要的位置单击并拖动键26,然后重新储存该姿势58。
优选的动作控制组268向作者提供对独立动作18的细节的控制,该控制组包括动作识别行286、动作识别表288、新动作按钮290、动作编组按钮292、和动作复制按钮294。与姿势控制组266相似,它还提供合成生物10当前动作18的名称和该动作18的排序表(如果表长,该表可向上翻卷)。在该控制组中也可以类似的方式选择动作18。
建立新动作18是借助按压新动作按钮290来完成的。有缺省的动作18名称(如动作0、动作1等)存在,但是与姿势58不同,动作18名称可以在动作识别行286中编辑。接下来,作者可以用姿势控制组266创建用于该动作18的各种姿势58,最后双击动作识别行286以保存该动作18。但是要注意尚未规定步进次数60。在优选的实施方案中,在所有的姿势58之间提供缺省的步进次数60,然后由作者在需要时统调各个步进次数60。可以预见,选用姿势控制组266可以对现有的动作18进行编辑。动作编组按钮292将一组在姿势识别表278中选定的现有姿势58合并成一个新动作18(由于许多动作十分类似,所以这是一种便于创作的措施)。动作复制按钮294将选定的动作18复制到新动作18中,在作者通过动作识别行286修改新动作名称之前,该新动作使用缺省名称。
优选的步进控制组270和模拟控制组272部分地协同作业,步进控制组270包括向前步进按钮296、向后步进按钮298、姿势衔接按钮300,向前模拟按钮302、和向后模拟按钮304。模拟控制组272包括步进速度行306、步进速度滑键308、模拟起动按钮310、模拟停止按钮312、和模拟复位按钮314。
作者可以使用向前步进按钮296和向后步进按钮298步进查看动作18的各个姿势58。但是,这种步进仅仅是以快照方式再现各种姿势58。为了以运动画面的方式看到回放的动作18(即将特征16和宇宙14的全部特征衔接起来),作者使用向前模拟按钮302和向后模拟按钮304。最后,姿势衔接按钮300将两个连续的姿势衔接起来,是一种多余的能力,但是,是一个方便创作的按钮。
作者通过操作步进速度滑键308或在模拟控制组272中直接改变步进速度行306的数值来调整在选定的动作18中各个姿势58之间的步进次数60。通常作者要尝试若干个数值,才能完成步进次数60的“统调”。在这种场合许多作者情愿使用姿势衔接按钮300。模拟起动按钮310、模拟停止按钮312、和模拟复位按钮314控制对选定的完整动作18的模拟。
最后,摄像控制组274包括一个视图选择按钮矩阵316,该矩阵可预知地控制作者在动作编辑屏254中观看合成生物10的方向。
(ⅳ)行为编辑器为了完成发明人定义的合成生物10,还需要为合成生物10创作新行为20、编辑现有行为20、和效验新行为和现有行为20。在优选的实施方案中,这项任务由行为编辑器210承担。正象前面讨论过的那样,行为20被非必选地编排成递归的子行为74的行为树72,并以这种形式储存。子行为74的一些可能的类型是动作18(即运动50)、顺序型子行为76、平行型子行为78、决定型子行为80、和中断型子行为82。但是,在这里列出的不应当被理解成一种限制。至今发明人已经发现这些类型足以满足他们的需要,但是,事先定义其它类型是完全可能的,这对于实现某些行为编辑器210或许还是符合需要的,即使仅仅是为了创作方便。
图18描绘使用典型的行为编辑器210时的屏幕显示。行为编辑器210向作者提供行为编辑屏318,在屏幕的顶部包括信息条320和菜单栏322。一旦调用动作18的文件(常规的打开文件操作),合成生物10出现在行为编辑屏318的中央,在地板栅格324的上方并且有水平线326穿越背景(未示出,因为在这张图中视角向下,等价的实例是图16中动作编辑器208的水平线262)。被调用的合成生物10的第一个动作18的第一个姿势58是最早出现的姿势。进一步出现的,并且能在行为编辑屏318内由作者拖到任何地方的是刺激球328、行为树窗330、行为特性窗332、和行为控制窗334。
为了试验的目的,作者可以将刺激球328拖到任何需要出现刺激62的地方(在运行时环境22和用户将最终提供不同的有效刺激62)。正象前面讨论过的那样,所有的刺激62都被处理成在环境22内有全球定位68,在创作期间用于模拟这个的正是刺激球328的位置。
图19详细说明典型的行为树窗330。行为树窗330将包含对合成生物10的行为树72的描述(它由代表枝干和叶片的各种图形构成)和独特的子行为74识别标记。如果是创作新的行为树,将仅仅出现根连接点336。在优选的实施方案中,旗形验迄标记338用于表示当前选定的子行为74的起点。指向右侧的三角形340用于表示被压缩的枝干,其中每根枝干都包括一个不可见的子行为74排序表。指向下方的三角形用于表示延伸枝干,其中每根枝干都包括一个可见的子行为74排序表。实心圆图形344用于代表独一无二的叶片,每个叶片包括一个初级的(即非递归的)子行为74(但并非仅仅是一个动作18)。最后,开拍板图形346用于表示只包括一个动作18(如声音)的叶片。
图20详细地说明行为特性窗332。行为特性窗332允许作者将子行为74添加到行为树72上并且允许对在行为树72中现有的子行为74进行编辑。行为特性窗332包括行为标记行348、行为类型表350、行为条件表352、行为条件数值行354、刺激命名行356、行为关键字表358、行为速度控制360、行为复位检验盒362、行为衔接按钮364和行为设置起动按钮366。行为速度控制360包括行为速度滑键368和行为速度行370。在窗口中不能利用的控制都变暗(用图中使用的白描技法无法描绘)。
作者将子行为74的标记输入子行为标记行348。如果该标记是独特的,那么将假定作者要建立新子行为74。如果该标记与行为树72中已有的标记匹配,那么将假定作者要对相应的子行为74进行编辑并且在行为特性窗332中的其它控制将反映那个子行为74当前的参数。双击行为树窗330中的标记也是将那个标记“输入”行为标记行348的一种方法并且借此选中那个具体的行为20进行编辑。如果输入的标记是声音文件名(在优选的实施方案中用“.WAV”或另一种常规的声音文件后缀名表示),那么声音52变成输入的子行为74。从概念上说发明人把声音52看作是动作18的一种形式,安排在这里是为了便于在行为编辑器210中处理它们。
在图18和图20中,行为类型表350选择“播映的”子行为74是平行型子行为78。如果已经在行为标记行348中输入了全新的(即独特的)标记,作者必须依据行为类型表350来规定子行为74的类型。
行为条件表352和行为条件数值行354提供一种选择,选择将怎样完成子行为74。在优选的实施方案中,行为条件表352提出一个条件类型表372(见图1),该表包括定时条件374、一次性通过条件376和回应条件378。如果选中定时条件374,子行为74将运行一段时间,该时间周期是由作者在行为条件数值行354中规定的。这些数值以秒为单位,特殊情况,例如零用于表示不运行某个子行为74(对试验有用),-1用于表示子行为74应当不停地运行下去。如果选定的子行为74(包括任何可能的低级枝干上的子行为74,例如正在播映的部分是“舞蹈4”的动作18)尚未按行为条件数值行354中规定的时间完成,那么它的执行将被剪短。如果子行为74提前完成,那么它重新开始,直至时间到了为止。反之,一次性通过条件376规定当前的子行为应当精确地执行一次。如果选择一次性通过条件376,行为条件数值行354变暗。
应当理解完全可能执行其它的特殊条件372。例如,多次通过条件,其中行为条件数值行354用于输入通过的次数,或许零和负数象前面介绍的那样发挥作用。
回应条件378是发明人捕捉全部控制保障的方法之一。它是可以用定制的模块执行特殊条件372的场所。用户可以利用行为关键字表358输入或选择控制信息并将它传递给特殊的回应条件378。一个实例或许是“追球”一直追到“CloseEnugh”状态,其中利用“CloseEnugh”来评估“追球”子行为74,这种评估方法比“yes”或“no”这样的二进制的刺激62状态变化复杂。典型的关键字信息的实例或许是象“right”或“up”这样的字符串。
只要没有选择中断型子行为82,刺激命名行356就变暗。这种类型的子行为74要求作者输入文本标识符以规定该刺激62作为主要刺激92。由于在运行前不评估刺激62,所以任何文本字符串都可以使用,并且如果这样的字符串不是由环境22设置的,那么在运行时相关的子行为94将被忽略。
对于决定型子行为80,行为衔接按钮364用于打开可利用的子行为74菜单(未示出)并选一个与决定型子行为80衔接。在行为编辑器210当前的优选实施方案中,用概率(在运行时确定)来决定将运行哪个待衔接的子行为74,并且在最初设计决定型子行为80时所有待衔接的子行为74具有相等的概率。但是作者可以不管这些,选择一个待衔接的子行为74并修改出现在行为条件数值行354中的该子行为的加权因子88。在行为条件数值行354中可以将加权因子88设置为零,以保证不运行决定型子行为80中该具体的子行为74,这在试验时有用。
动作18型子行为74的具体参数可以用行为速度控制360来设置。例如,如果子行为“唱歌”74(图18)被选中,那么行为速度控制360和行为复位检验盒362将变暗。然后,作者可以使用行为速度滑键368或在行为速度行370中进行人工文本编辑来改变执行时间。行为复位检验盒362用于指令合成生物10的键26在开始执行前使动作18的姿势58复位到“姿势0”。
最后,行为设置起动按钮366将旗形验迄标记338移到当前在行为树窗330中醒目的子行为74上(图18),使它成为试验的起点(在发明人的优选的实施方案中,行为设置起动按钮366在行为特性窗332中,但是,很容易将它放进行为控制窗334或别的地方)。
图21详细说明行为控制窗334。优选的行为控制窗334包括模拟子控制组380、摄像子控制组382和刺激子控制组384。模拟子控制组380包括模拟起动按钮386、模拟停止按钮388和模拟复位按钮390。作者可以利用模拟子控制组380以预知的方式来执行完整的行为树72或子行为74,并且可以在行为编辑屏318中观看合成生物10如何完成行为20,其中所述子行为74被选作当前试验起点。为了使作者在试验时能够从不同的角度看到合成生物10,摄像控制组382改变观看合成生物10的方向(以类似于在动作编辑器208中使用摄像控制组274的方式使用视点选择按钮矩阵392)。最后,刺激子控制组384是一个刺激生成按钮394。这个按钮打开刺激62的上卷盒(子行为74当前的类型必须是决定型子行为80或中断型子行为82,否则这个操作不起作用)。双击刺激62的标记来触发它并且使它以刺激球328的当前位置作为起点(提醒作者和用户,你们可以在行为编辑屏318中将这个刺激拖到任何地方)。
(ⅴ)环境编辑器为了实现发明人定义的合成生物10,需要一种或多种工具来创造新环境22、编辑现有的环境22和对合成生物10的环境22进行试验。在优选的实施方案中,这些任务由一个被称为环境编辑器212的工具包来承担。
在本发明优选的实施方案中,环境编辑器212是一种功能强大的工具,它将现有的要素汇集成环境22并且规定环境22怎样产生刺激62。例如,位图是视觉背景106所需要的(例如,示于底表面112中的地面或地板和出现在远景114中的背景和画面和墙壁)。可能还希望将画外音s作为环境22的一部分。现在用于生成位图和声音文件的极好的工具已经存在并且到处可以买到,所以,发明人优先选用的环境编辑器212被用于将事先定义的要素汇集成环境22。如上所述,所有的刺激62都有相关的全球定位68。在环境编辑器212中,作者能够定义运行时这样的全球定位68在哪里,例如将它们与静态对象108甚至动态对象110联系起来。
环境22的复杂性可以变化,从实际不存在的到非常复杂的(从技术上说动作编辑屏254和行为编辑屏318都是环境22)。但是,采用上述的技术将低于环境22的层面12(如特征16、动作18和行为20)的研制单独划出来,因此减轻了需要关心环境22的作者的负担,在必要时(如果有过的话),由于用于合成生物10的环境22可以变成一个通用的小发明,需要使用该环境的作者或需要在该环境中与他们的合成生物10一起玩或一起工作的用户可以从卖主那里购买。
(ⅴ)运行时计算机本发明的主要目标是允许在当今常规的计算机系统上使用合成生物10,一般的说,这意味着允许在个人计算机上使用(比如说可以使用有4兆存储器和32位处理器的计算机,毫无疑问,更强大的工程型工作站和中央处理机型计算机也可以使用)。由于本发明为合成生物10提供了有效的特征16、动作18和行为20,所以这个目标可以达到。
除了上述的实例之外,不脱离本发明精神可以为合成生物10、宇宙204、特征编辑器206、动作编辑器208、行为编辑器210和环境编辑器212作出各种各样的改进方案和替代方案。工业实用性本发明的合成生物10非常用于在计算机实时生成的娱乐活动中应用。发明人为了研制“虚拟宠物”已经针对合成生物10做了大量的工作,发现它们非常逼真而且能够引起人们的兴趣,因此能符合用户的需要,此外,还发现它们甚至能很好地在具有当今常见的存储器和处理器资源的个人计算机系统上运行。
本发明的合成生物10还非常用于在非常复杂的应用程序中使用,例如计算机制图、制作动画片、编写计算机游戏、制作广告、模拟复杂的活生物和赋予物体模拟物活生生的特性。虽然这些应用中许多还是在娱乐范畴内,但是本发明也可以广泛地作为教学工具使用。除了显而易见的应用于计算机制图和模拟技术的教学之外,合成生物10还可以用于教授物理原理、力学、动力学、解剖学和控制理论。
本发明的创作工具(即宇宙编辑器204、特征编辑器206、动作编辑器208、行为编辑器210和环境编辑器212)都非常用于在研制有创造力的合成生物10中应用,而且可以应用于教授计算机制图和模拟技术。有创造力的合成生物10和有创造力的创作工具可以配置到当今在用的各种计算机系统上,包括个人计算机、工程型计算机工作站和计算机主机系统。此外,有创造力的合成生物10和有创造力的创作工具很容易适应计算机网络应用,包括因特网(Internet)。该创作工具的配置非常容易用于网络服务器安装和远距离网络用户使用,就象今天在网络上运行文字处理器程序和计算机辅助设计程序一样。合成生物10的简单配置甚至可以远距离执行,而且即使在当前的网络带宽限制下(如28.8波特的调制解调器存取速度)也能局部地看到。实际上,所有的合成生物10配置都应当在网络上传输。例如,在虚拟的水池中蓄养着合成生物…虚拟的鱼10,主人能在因特网上注册一个远距离“宠物仓库”,以补充他们的珍藏或调换由于衰老或缺乏主人的宠爱(即虚拟的喂养和虚拟的爱)而死亡的宠物。
由于上述理由和其他原因,可以预期本发明的合成生物10和创作工具将具有普遍的工业实用性。所以,可以预期本发明的商业价值将是广泛而持久的。
权利要求
1.一种创造在计算机系统上运行的合成生物模拟物的方法,该方法的特征在于包括创作合成生物的特征,其方法是借助定义一个键,然后定义若干补充键并用软连接点将每个所述补充键与前面定义的所述键连接起来;以及创作许多用于合成生物的动作,其方法是通过将所述键移至需要的位置使所述特征定位成某种姿势,并且至少将一种所述姿势储存到每个所述动作中,以便在计算机系统上执行。
2.根据权利要求1所述的方法,进一步包括调整每个所述键的一组键特性,该键特性至少包括下述特性之一键的色彩特性、键的清晰特性、键的物理特性以及键的皮肤特性。
3.根据权利要求2所述的方法,其中所述键的色彩特性至少包括由色彩、饱和度、亮度、反射率、折射率组成的一组特性中的一种特性;所述键的清晰特性是从由阴影、暗度和不可见度组成的一组特性中选定的;所述键的物理特性至少包括由形状、密度和弹性组成的一组特性中的一种特性;以及所述键的皮肤特性至少包括由网纹和质地组成的一组特性中的一种特性。
4.根据权利要求1所述的方法,进一步包括针对每个所述连接点调整一组连接点特性,至少包括由连接点类型和连接点动态组成的一组特性中的一种特性。
5.根据权利要求4所述的方法,其中所述连接点类型在由附着型、连接型、动态型、和厚实型组成的一组类型中选定;创建合成生物的行为树,其方法是给所述动作的样板和以前定义的所述行为的样板编组,借此定义新行为,并且按照在计算机系统上能够执行的分层结构将所述行为递归排序,形成行为树;以及所述连接点动态至少包括由滑动速度、螺旋速度、和复位时间组成的一组状态中的一种状态。
6.根据权利要求1所述的方法,进一步包括调整所述动作内相继的数对姿势之间的步进次数。
7.根据权利要求1所述的方法,其中中间姿势是借助创作所述特征定义的;并且进一步包括;调整每个所述动作的一组动作性质,其中包括在作为合成生物的一部分在计算机系统上运行之前所述动作是否复位到所述中间姿势。
8.根据权利要求1所述的方法,其中创作所述的各种动作包括至少规定一种计算机记录的声音文件。
9.根据权利要求1所述的方法,其中所述动作储存在程序库中,并且有选择地从所述程序库中调用,以便在创建行为树时再次利用。
10.根据权利要求1所述的方法,其中所述特征是第一特征;以及所述动作是储存在程序库中的、可以有选择地从所述程序库中调用的并且是用于在创建行为树时再次利用的。
11.根据权利要求1所述的方法,进一步包括创建合成生物的行为树,其方法是给所述动作的样板和以前定义的所述行为的样板编组,借此定义新行为,并且按照在计算机系统上能够执行的分层结构将所述行为递归排序,形成行为树。
12.根据权利要求11所述的方法,进一步包括从顺序型行为、平行型行为、中断型行为、和决定型行为中选定选定所述行为。
13.根据权利要求12所述的方法,其中所述顺序型行为在计算机系统上依次执行每个所述行为和所述行为内编组的所述动作。
14.根据权利要求12所述的方法,其中所述平行型行为在计算机系统上平行地执行所有的所述行为和所述行为内编组的所述动作。
15.根据权利要求12所述的方法,其中规定所述中断型行为进一步包括下述步骤将主要刺激与相关行为联系起来,借此规定至少一个刺激-行为对;给各个所述的刺激-行为对排序;以及规定缺省行为;其中所述中断型行为的执行方式是评估各个所述刺激-行为对中所有的主要刺激,运行与设置的所述主要刺激对应的第一个所述刺激-行为对,如果没有设置所述刺激,运行所述缺省行为。
16.根据权利要求12所述的方法,其中规定所述决定型行为进一步包括下述步骤选择至少一种行为,借此规定一组可能的行为;以及所述决定型行为的执行方法是以随机方式从所述的一组可能的行为中挑选一种行为,并且运行选中的所述行为。
17.根据权利要求16所述的方法,进一步包括为至少一种所述的可能行为规定加权因子,借此影响所述的一组可能的行为中各成员的执行概率。
18.根据权利要求11所述的方法,进一步包括选择行为终止条件,该条件是从下述一组条件中选定的定时终止,该条件规定所述行为的执行时间;一次通过终止,该条件规定所述行为只执行一次;以及多次通过终止,该条件规定所述行为执行到规定的次数。
19.根据权利要求11所述的方法,其中所述行为存贮在程序库中,并且有选择地从所述程序库中调用,以便在创作所述行为树时再次使用。
20.根据权利要求11所述的方法,其中所述特征是第一特征;以及所述行为存贮在程序库中,并且有选择地从所述程序库中调用,以便做为第二特征再次使用。
21.一种利用权利要求1所述的方法创造合成生物的工具,该工具包括用户创作所述行为的计算机系统。
22.一种利用权利要求11所述的方法创造合成生物的工具,该工具包括用户创作所述行为的计算机系统。
23.一种执行合成生物的计算机系统,其中合成生物是用权利要求1所述的方法建立的。
24.一种执行合成生物的计算机系统,其中合成生物是用权利要求11所述的方法建立的。
全文摘要
一种合成生物(10),其中,代表肢体的键(26)借助连接点(28)松散地连接起来,以便在特征(16)中独立地相互作用和实现日常生活的物理过程。质量、正重量(46)、和负重量(48)诸要素被单独处理,以便模仿真实动物的闭环控制特征。该合成生物(10)采用由动作(18)组成并且递归地安排在分层的行为树(72)中的有灵性的行为,以便在运行计算机(202)时合作和竞争,从而使人感觉到它的自主性和意识。进一步讲述的是用于创作合成生物(10)的特征(16)、动作(18)和行为(20)的创作工具的创作环境(200),它们在合成生物(10)的各个层面(12)上向作者提供反馈和模拟试验的能力。
文档编号G06F15/00GK1205790SQ96199030
公开日1999年1月20日 申请日期1996年10月11日 优先权日1996年10月11日
发明者詹姆斯·B·罗斯布拉夫, 梯莫西·J·科斯特兰斯基, 耶姆·R·德尔帕拉西奥 申请人:詹姆斯·B·罗斯布拉夫
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1