对象动作装置及方法与流程

文档序号:12009084阅读:408来源:国知局
对象动作装置及方法与流程
本发明是关于为了将连续执行的对象的两个不同动作无不协调感的连接而将运动数据混合的对象动作装置。

背景技术:
以往,在三维视频游戏中已广泛运用了使存在于假想三维空间的角色等对象动作而透过假想摄影机将这些对象动作的样子透视转换并生成的方法。此处,为了忠实的再现对象动作,在连续执行两个不同动作的情形,是在其之前的动作与之后的动作的移行期间,进行这些不同动作的运动数据的混合,根据该混合后的运动数据使对象动作,借此将该动作的移行无不协调感的表现。作为此种混合运动数据经常使用的技法,有一种在连续的前后动作的运动数据中,在其之前的动作与之后的动作重复的期间一边慢慢改变那些动作的运动数据的混合率、一边加以混合的方式。详细的说,是通过绕X轴、绕Y轴的旋转角度求出运动合成率(运动混合率),并以所求出的运动合成率合成基准动作生成角色的运动数据,以所生成的运动数据使角色动作(专利文献1)。又,亦有通过样条插补来将两个不同动作的移行无不协调感的表现的方式。专利文献1:日本特开2010-237882号公报(段落0118等)

技术实现要素:
然而,专利文献1所揭示的技术,是进行以依其旋转角度等决定的模块的形状作为特征的合成,当在前后各个的动作的运动数据中有不同的移动或旋转速度的特征时,即会忽视其速度特征。又,在进行前后各个运动数据的混合的重复的多个帧期间,亦必须设定算出慢慢变化的运动数据的混合率的方法,又,此种运动数据的混合,若运动数据重复的多个帧期间较短,则难以适用。另一方面,当通过样条插补表现两个不同动作的移行时,针对将上述的混合率慢慢改变来移行的情形所需要的运动数据中的多个帧期间的重复,不论是其重复较短的情形或无重复的情形均能适用。然而,在对前后动作的位置或角度的数据进行样条曲线的搭配时,会需要花费步骤来进行该曲线种类的选择或曲线参数的最佳化。又,在样条插补的情形,也会忽视前后各个不同动作中的移动或旋转速度的特征,不论何种方式都是将运动的边界平滑化以将之隐藏,借此执行动作的移行。本发明,其目的在于提供以包含旋转动作的连续执行的对象的两个不同动作可顺畅连接的方式生成介于该两个动作之间的运动数据的对象动作装置等。为了达成上述目的,本发明第1观点的对象动作装置,是在使存在于假想三维空间的对象进行第1动作后,使该对象进行与该第1动作不同的第2动作,并以使该第1动作和该第2动作中的至少一个动作包含三维旋转动作的方式使上述对象动作,其特征在于,包括:运动数据存储构件,存储由规定上述第1动作的多个单位时间的数据构成的第1运动数据与由规定上述第2动作的多个单位时间的数据构成的第2运动数据;第1运动数据设定构件,对构成上述第1运动数据的多个单位时间的数据中的使上述对象依据上述第1运动数据动作的终端数据进行设定;第2运动数据设定构件,对构成上述第2运动数据的多个单位时间的数据中的使上述对象依据上述第2运动数据动作的始端数据进行设定;插补运动数据生成构件,作为运动数据生成介于使上述对象依据上述第1运动数据动作的终端和使上述对象依据上述第2运动数据动作的始端之间的多个单位时间的数据;以及对象动作构件,使用至上述第1运动数据的上述终端为止的各单位时间的数据、通过上述插补运动数据生成构件生成的各单位时间的数据、从上述第2运动数据的上述始端开始的各单位时间的数据,使上述对象动作;上述插补运动数据生成构件包括:旋转量特定构件,在介于上述终端和上述始端之间的多个单位时间的各单位时间中,分别特定出依据上述第1运动数据时的上述对象的三维旋转动作的旋转量、和依据上述第2运动数据时的上述对象的三维旋转动作的旋转量;旋转量分解构件,将上述旋转量特定构件所特定出的依据上述第1运动数据时的上述对象的三维旋转动作的各单位时间中的旋转量、和依据上述第2运动数据时的上述对象的三维旋转动作的各单位时间中的旋转量,分别分解成标量旋转量;标量速度算出构件,根据上述旋转量分解构件所分解出的依据上述第1运动数据时的各单位时间中的标量旋转量、和依据上述第2运动数据时的各单位时间中的标量旋转量,算出依据上述第1运动数据时的上述对象的三维旋转动作的各单位时间中的标量速度、和依据上述第2运动数据时的上述对象的三维旋转动作的各单位时间中的标量速度;标量速度特定构件,根据上述标量速度算出构件所算出的依据上述第1运动数据时的各单位时间中的标量速度、和依据上述第2运动数据时的各单位时间中的标量速度,特定出介于上述终端和上述始端之间的多个单位时间中应适用的上述对象的三维旋转动作的各单位时间中的标量速度;标量旋转量算出构件,对上述标量速度特定构件所特定出的各单位时间的标量速度进行规定的运算,算出介于上述终端和上述始端之间的多个单位时间中的各单位时间中应适用的上述对象的三维旋转动作的标量旋转量;以及旋转量再生构件,根据上述标量旋转量算出构件所算出的标量旋转量,再生介于上述终端和上述始端之间的多个单位时间的各单位时间中应适用的上述对象的旋转量。上述第1观点的对象动作装置中,上述标量旋转量算出构件作为上述规定的运算进行使用了规定的矩阵的矩阵运算。此处,上述使用了规定的矩阵的矩阵运算可以是利用泊松方程的运算。上述第1观点的对象动作装置中,上述标量旋转量算出构件也可以是在算出介于上述终端与上述始端之间的多个单位时间的各单位时间中应适用的标量旋转量时,对上述标量速度的第X个要素仅使用上述规定的矩阵的X行来进行运算。上述第1观点的对象动作装置中,上述旋转量分解构件,也可以通过指数映像将上述对象的三维旋转动作的旋转量分解成标量旋转量;上述旋转量再生构件,也可以通过对数映像根据上述标量旋转量再生上述对象的旋转量。上述对象动作装置中,对存在于假想三维空间的对象,使该对象成为设定有第1运动数据所规定的第1动作的终端的数据后,使该对象从设定有第2运动数据所规定的第2动作的始端的数据开始。此处,在从第1动作移行至第2动作为止,通过插补运动数据生成构件生成的多个单位时间的数据是作为运动数据而介在。此外,于第1动作与第2动作中的至少一动作包含三维旋转动作。三维旋转动作的数据是非线性数据,欲以至少一动作包含此种非线性数据的第1运动数据与第2运动数据无不协调感而顺畅连接的方式生成从第1动作移行至第2动作的运动数据,并不简单。不过,上述对象动作装置,是将三维旋转动作的旋转量依每个单位时间特定,并分别分解成标量旋转量。接着,从分解出的各单位时间的标量旋转量特定出标量速度,进而算出标量旋转量。接着,根据所算出的标量旋转量,在从第1动作移行至第2动作的运动数据中,再生在依据第1运动数据动作的终端与依据第2运动数据动作的始端之间的多个单位时间中的各单位时间中应适用的对象的旋转量。由于使用此种方法生成依据第1运动数据动作的终端与依据第2运动数据动作的始端之间的多个单位时间的运动数据来作为利用线性数据的计算,因此以第1运动数据与第2运动数据无不协调感而顺畅连接的方式生成从至少一方包含旋转动作的第1动作移行至第2动作的运动数据,可较为单纯。又,用以算出标量旋转量的规定的运算,是以使用了规定的矩阵的矩阵运算、例如利用泊松方程的运算来进行,运算较为单纯。而且,进行对标量速度的第X个要素仅使用规定的矩阵的X行来算出标量旋转量的运算,借此能减轻该运算的处理量。进而,通过将指数映像适用于分解标量旋转量,将对数映像适用于对象旋转量的再生,而能使对标量旋转量的分解或对象旋转量的再生较为单纯。上述第1观点的对象动作装置中,上述第1动作与上述第2动作均包括三维旋转动作;上述标量速度特定构件是按照每个对应的单位时间对上述标量速度算出构件所算出的依据上述第1运动数据时的各单位时间的标量速度、和依据上述第2运动数据时的各单位时间的标量速度,将各单位时间中绝对值较大者的标量速度特定为介于上述终端和上述始端之间的多个单位时间中应适用的上述对象的三维旋转动作的各单位时间的标量速度。如上述,通过将各单位时间中绝对值较大者的标量速度特定为在依据第1运动数据动作的终端与依据第2运动数据动作的始端之间的多个单位时间的各单位时间的标量速度,即能生成第1运动数据与第2运动数据无不协调感而顺畅连接的从第1动作移行至第2动作的运动数据。上述第1观点的对象动作装置中,包括:近似数据特定构件,分别对构成上述第1运动数据的多个单位时间的数据中的上述终端之后的单位时间的数据、和构成上述第2运动数据的多个单位时间的数据中的上述始端之前的单位时间的数据进行比较,针对各个数据特定出彼此最近似的单位时间的数据;以及时移构件,使上述第1运动数据和上述第2运动数据时移以使其与上述近似数据特定构件所特定出的单位时间的数据一致,上述插补运动数据生成构件根据被上述时移构件进行时移后的上述第1运动数据和上述第2运动数据,生成介于使上述对象依据上述第1运动数据动作的终端和使上述对象依据上述第2运动数据动作的始端之间的多个单位时间的数据。此情形下,于依据第1运动数据动作的终端与依据第2运动数据动作的始端之间的多个单位时间的各单位时间中的数据中,包含根据第1运动数据所含的各单位时间的数据与第2运动数据所含的各单位时间的数据中最近似的数据彼此而生成的数据、亦即第1运动数据与第2运动数据均为差最少的数据。借此,即能生成第1运动数据与第2运动数据无不协调感而顺畅连接的从第1动作移行至第2动作的运动数据。为了达成上述目的,本发明第2观点的对象动作方法,是在计算机装置中,在使存在于假想三维空间的对象进行第1动作后,使该对象进行与该第1动作不同的第2动作,并以使该第1动作和该第2动作中的至少一个动作包含三维旋转动作的方式使上述对象动作的方法,其特征在于,包括:第1步骤,使上述计算机装置预先存储由规定上述第1动作的多个单位时间的数据构成的第1运动数据、和由规定上述第2动作的多个单位时间的数据构成的第2运动数据;第2步骤,对构成上述第1运动数据的多个单位时间的数据中的使上述对象依据上述第1运动数据动作的终端数据进行设定;第3步骤,对构成上述第2运动数据的多个单位时间的数据中的使上述对象依据上述第2运动数据动作的始端数据进行设定;第4步骤,作为运动数据生成介于使上述对象依据上述第1运动数据动作的终端和使上述对象依据上述第2运动数据动作的始端之间的多个单位时间的数据来;以及第5步骤,使用至上述第1运动数据的上述终端为止的各单位时间的数据、上述生成的各单位时间的数据、从上述第2运动数据的上述始端开始的各单位时间的数据,使上述对象动作;上述第4步骤包括:在介于上述终端和上述始端之间的多个单位时间的各单位时间中,分别特定出依据上述第1运动数据时的上述对象的三维旋转动作的旋转量、和依据上述第2运动数据时的上述对象的三维旋转动作的旋转量的步骤;将依据上述第1运动数据时的上述对象的三维旋转动作的各单位时间中的旋转量、和依据上述第2运动数据时的上述对象的三维旋转动作的各单位时间中的旋转量分别分解成标量旋转量的步骤;根据依据上述第1运动数据时的各单位时间中的标量旋转量、和依据上述第2运动数据时的各单位时间中的标量旋转量,算出依据上述第1运动数据时的上述对象的三维旋转动作的各单位时间中的标量速度、和依据上述第2运动数据时的上述对象的三维旋转动作的各单位时间中的标量速度的步骤;根据依据上述第1运动数据时的各单位时间中的标量速度、和依据上述第2运动数据时的各单位时间中的标量速度,特定出介于上述终端和上述始端之间的多个单位时间中应适用的上述对象的三维旋转动作的各单位时间中的标量速度的步骤;对上述各单位时间的标量速度进行规定的运算,算出介于上述终端和上述始端之间的多个单位时间中的各单位时间中应适用的上述对象的三维旋转动作的标量旋转量的步骤;以及根据上述标量旋转量,再生介于上述终端和上述始端之间的多个单位时间中的各单位时间中应适用的上述对象的旋转量的步骤。为了达成上述目的,本发明第3观点的程序,是在计算机装置中,在使存在于假想三维空间的对象进行第1动作后,使该对象进行与该第1动作不同的第2动作,并以使该第1动作和该第2动作中的至少一个动作包含三维旋转动作的方式使上述对象动作的程序,其特征在于,该程序使上述计算机装置发挥以下构件的功能:运动数据存储构件,将由规定上述第1动作的多个单位时间的数据构成的第1运动数据和由规定上述第2动作的多个单位时间的数据构成的第2运动数据预先存储在上述计算机装置;第1运动数据设定构件,对构成上述第1运动数据的多个单位时间的数据中的使上述对象依据上述第1运动数据动作的终端数据进行设定;第2运动数据设定构件,对构成上述第2运动数据的多个单位时间的数据中的使上述对象依据上述第2运动数据动作的始端数据进行设定;插补运动数据生成构件,作为运动数据生成介于使上述对象依据上述第1运动数据动作的终端和使上述对象依据上述第2运动数据动作的始端之间的多个单位时间的数据;以及对象动作构件,使用至上述第1运动数据的上述终端为止的各单位时间的数据、通过上述插补运动数据生成构件生成的各单位时间的数据、从上述第2运动数据的上述始端开始的各单位时间的数据,使上述对象动作;上述插补运动数据生成构件包括:旋转量特定构件,在介于上述终端和上述始端之间的多个单位时间的各单位时间中,分别特定出依据上述第1运动数据时的上述对象的三维旋转动作的旋转量和依据上述第2运动数据时的上述对象的三维旋转动作的旋转量;旋转量分解构件,将上述旋转量特定构件所特定出的依据上述第1运动数据时的上述对象的三维旋转动作的各单位时间中的旋转量、和依据上述第2运动数据时的上述对象的三维旋转动作的各单位时间中的旋转量分别分解成标量旋转量;标量速度算出构件,根据上述旋转量分解构件所分解出的依据上述第1运动数据时的各单位时间中的标量旋转量、和依据上述第2运动数据时的各单位时间中的标量旋转量,算出在依据上述第1运动数据时的上述对象的三维旋转动作的单位时间中的标量速度、和依据上述第2运动数据时的上述对象的三维旋转动作的各单位时间中的标量速度;标量速度特定构件,根据上述标量速度算出构件所算出的依据上述第1运动数据时的各单位时间中的标量速度、和依据上述第2运动数据时的各单位时间中的标量速度,特定出介于上述终端和上述始端之间的多个单位时间中应适用的上述对象的三维旋转动作的各单位时间中的标量速度;标量旋转量算出构件,对上述标量速度特定构件所特定出的各单位时间的标量速度进行规定的运算,算出介于上述终端和上述始端之间的多个单位时间中的各单位时间中应适用的上述对象的三维旋转动作的标量旋转量;以及旋转量再生构件,根据上述标量旋转量算出构件所算出的标量旋转量,再生介于上述终端和上述始端之间的多个单位时间的各单位时间中应适用的上述对象的旋转量。上述第3观点的程序,也可以记录于计算机可读取记录媒体来提供。此计算机可读取记录媒体,可以是构成为能拆装于上述计算机装置,而与上述计算机装置个别提供的记录媒体。此计算机可读取记录媒体也可以是设于上述计算机装置内、与上述计算机装置一起被提供的硬盘装置等记录媒体。上述第3观点的程序,也可以从存在于网络上的服务器装置将其数据讯号重迭于载波并透过网络对上述计算机装置传送。又,将上述第3观点的程序所含的各构件执行的处理作为各步骤的处理的方法也包含于本发明的范围。附图说明图1是显示适用于本发明的实施形态的视频游戏装置构成的方块图。图2是表示移行动作被混合时所执行的动作的流程的模式图。图3是显示终端后帧与始端前帧的时点的设定的模式图。图4是表示插补速度的抽出的模式图。图5是表示适用于移行运动的插补速度曲线的模式图。图6是表示适用了泊松方程的移行运动的运动数据的生成的模式图。【主要组件符号说明】100视频游戏装置101视频游戏装置本体103控制部105RAM107HDD109声音处理部111图形处理部112帧存储器113DVD/CD-R驱动器115通讯接口117接口部119内部总线121显示装置122显示画面125声音输出装置131记录媒体151网络161输入部162存储卡具体实施方式图1是显示适用于本实施形态的视频游戏装置构成的方块图。如图标,视频游戏装置100是以装置本体101为中心建构。此装置本体101,包含连接于其内部总线119的控制部103、RAM(RandomAccessMemory)105、硬盘(HDD)107、声音处理部109、图形处理部111、DVD/CD-R驱动器113、通讯接口115、以及接口部117。此装置本体101的声音处理部109连接于扬声器即声音输出装置125,图形处理部111连接于具有显示画面122的显示装置121。于DVD/CD-R驱动器113能安装记录媒体(本实施形态中为DVD-ROM或CD-ROM)131。通讯接口115连接于网络151。于接口部117连接有输入部(控制器)161与存储卡162。控制部103包含CPU(CentralProcessingUnit)或ROM(ReadOnlyMemory)等,执行存储于HDD107或记录媒体131上的程序,进行装置本体101的控制。控制部103具备内部定时器。RAM105是控制部103的工作区,后述的与游玩角色的基本动作等相关的信息暂存于RAM105。HDD107是用以保存程序或与游玩角色的基本动作等相关的数据的存储区域。声音处理部109,在通过控制部103执行的程序指示进行声音输出时,即译码该指示,对声音输出装置125输出声音讯号。图形处理部111,依据从控制部103输出的描绘命令,于帧存储器112(图中虽描绘于图形处理部111外侧,但实际上设于构成图形处理部111的芯片所含的RAM内)展开影像数据,输出于显示装置121的显示画面122上显示影像的视频讯号。从图形处理部111输出的视频讯号所含的影像的1帧时间,例如是60分之1秒。帧存储器112设有两组,数据的写入用与读出用依每个帧期间被切换。图形处理部111,生成将存在于假想三维空间的对象(游玩角色、非游玩角色、以及角色以外的对象)通过假想摄影机透视转换而成的二次元影像的影像数据,写入帧存储器112。DVD/CD-R驱动器113是对记录媒体131进行程序及数据的读出。通讯接口115连接于网络151,与其它计算机进行通讯。输入部161具备方向键及复数个操作按钮。游玩角色在假想三维空间的位置,是通过从输入部161的方向键输入的指示而移动。接口部117将来自输入部161的输入数据输出至RAM105,控制部103将其译码而实施运算处理。接口部117又根据来自控制部103的指示使RAM105所存储的显示游戏进行状况的数据保存于存储卡162,读出保存于存储卡162的中断时的游戏数据,传送至RAM105。用以以视频游戏装置100进行游戏的程序及数据,最初例如存储于记录媒体131。作为存储于记录媒体131的数据,包含用以构成游戏空间(假想三维空间)的对象的图形数据、与游玩角色的基本动作等相关的数据。存储于记录媒体131的程序及数据,在执行时通过DVD/CD-R驱动器113读出,载入至RAM105。控制部103处理加载RAM105的程序及数据,将描绘命令输出至图形处理部111,将声音输出的指示输出至声音处理部109。在控制部103进行处理的期间的中间数据存储于RAM105。本实施形态的视频游戏,于作为游戏空间的假想三维空间存在多数个三维对象,将这些对象通过假想摄影机透视转换后的影像作为游戏的影像显示于显示装置121的显示画面122。作为存在于假想三维空间的对象,包含通过玩家对输入部161的输入而动作的游玩角色、游玩角色以外的角色即非游玩角色(通过控制部103而动作)、角色以外的地形、建筑物等在假想三维空间内的位置不会移动的对象。玩家能使其游玩角色执行手腕动作或脚的动作等各种不同动作,如作为此游玩角色的基本动作的走路、跑步、坐下、站起、投掷等。接着,这些基本动作,是通过与决定各帧的姿势的三维位置P(t)及三维旋转R(t)相关的数据被分别定义。这些与三维位置P(t)及三维旋转R(t)相关的数据,作为构成游戏程序的一部分的运动数据存储于记录媒体131,传送至HDD107等。接着,针对无法仅以此基本动作表现的动作,将这些基本动作混合而生成为其次说明的复合动作、移行动作。复合动作,是将同时执行的两个不同的基本动作的数据混合而生成,又,复合动作,例如是通过将跑步动作与投掷动作、或走路动作与投掷动作之类同时执行的两个不同基本动作的数据混合、或从缓慢跑步的动作与快速跑步的动作改成以中间速度跑步的动作的数据加以运动混合(motionblend)而生成。此混合由于与本发明无直接的关联,因此详细说明省略。另一方面,移行动作,是在连续执行两个不同的基本动作时动作被移行期间的接续动作,是为了从之前的基本动作往之后的基本动作的移行无不协调感的被进行而生成。又,移行动作,例如是游玩角色从走路中的状态改成跑步、或从跑步中的状态改成走路的情况,为了在游戏进行中两个不同的基本动作以一连串流程连续进行时连接该两个不同的基本动作而生成。如上述,针对以一连串流程连续执行的用以连接两个不同的动作的接续在之前的动作后执行的移行动作,如图2所示,为了消除在往之后的动作的迁移时的不自然,以不快速变更动作的方式接续在之前的动作后执行将其前后的动作(运动,motion)混合(运动混合,motionblend)而生成的移行运动,使之往次一动作迁移。以下,说明用于此实施形态的移行动作的运动混合。首先,如图3所图示,存储于HDD107的两个不同的基本动作(以下单称为运动),是针对连续执行的两个运动,对之前的运动(以下称为运动A)设定作为终端姿势的帧(以下称为终端帧)与对之后的运动(以下称为运动B)设定作为始端姿势的帧(以下称为始端帧)。此外,运动A的终端姿势及运动B的始端姿势的设定,只要使用以往的方法即可,例如也可以由程序设计者对连续执行的运动的每个组合预先决定之前的运动的终端姿势与之后的运动的始端姿势,此预先决定的终端姿势与始端姿势,与决定连续执行的两个运动的同时自动的设定。接着,在运动混合时,首先从此运动A的运动数据中在作为终端姿势的帧之后的各帧(以下称为终端后帧)的数据与此运动B的运动数据中在作为始端姿势的帧之前的各帧(以下称为始端前帧)的数据以循环比对的方式检索各个数据彼此最近似的帧。此外,关于帧的循环比对检索,由于只要使用图案匹配等以往的方法即可,因此详细说明省略。只要能检索终端后帧与始端前帧中最近似的帧(图3中运动A的终端后帧的附网点部分与运动B的始端前帧的附网点部分),即如图3中所图示,以始端前帧中的该帧不与终端后帧中该帧的时点重复的方式相对运动A设定运动B的执行时点。在以此方式设定的运动A、运动B的终端姿势至始端姿势的帧期间,将终端后帧与始端前帧相关的运动混合而生成移行运动相关的运动数据。此外,介于运动A的终端帧至运动B的始端帧之间的运动的混合详细情形,留待后述。如上述,在使游玩角色进行运动A的动作后,要使之进行运动B的动作时,是使用至如上述方式设定的终端姿势为止运动A相关的运动数据、通过混合而生成的移行运动相关的运动数据、以及自如上述方式设定的始端姿势开始运动B相关的运动数据,在其间的各帧进行动作。此实施形态的运动混合,是从决定在决定连续执行的两个运动的终端后帧与始端前帧的姿势的三维位置P(t)及三维旋转R(t)相关的数据算出速度成分,并根据所算出的各运动的速度成分进行运动混合。接着,通过对该混合后的运动的速度成分适用泊松方程,求出决定在该混合后的运动的各帧的游玩角色的姿势的三维位置P(t)及三维旋转R(t)的相关数据。此处,首先算出决定运动混合前的运动A的终端后帧、及运动B的始端前帧的各帧的游玩角色的姿势的三维位置P(t)及三维旋转R(t)的速度成分。此处,三维位置P(t)是为了表示假想三维空间上的位置而具有px(t)、py(t)、pz(t)作为个别独立的线性值。虽对此三维位置P(t)能直接适用泊松方程,但非线性的三维旋转R(t)无法表示绝对量,无法直接适用泊松方程。因此,为了适用泊松方程,系通过对决定游玩角色姿势的三维旋转R(t)适用指数映像(Exponentialmaps),来近似于线性数值。此处说明指数映像对三维旋转R(t)的适用。由于三维旋转R(t)无法表示绝对量,因此适用指数映像来求出自基准旋转起的相对旋转。此处,由于表示三维旋转R(t)的相对量rx(t)、ry(t)、rz(t),因此作为基准旋转,是在作为前后运动的混合对象的各帧期间算出平均旋转Rm。例如,在两个帧的三维旋转R1、R2中,平均旋转Rm及rx(t)、ry(t)、rz(t)是以下述方式表现。[数式1]Rm=mean(R1,R2)R1→(R1-Rm)→Expmap[rx1,ry1,rz1]R2→(R2-Rm)→Expmap[rx2,ry2,rz2]又,关于此平均旋转Rm,是用以将适用对数映像(Logarithmicmaps)而混合后的运动相关的rx(t)、ry(t)、rz(t)再度转换成三维旋转R(t)。此外,关于平均旋转Rm的算出、以及使用指数映像、对数映像的详细计算方法,由于在本发明中并无直接关系,因此省略说明。接着,从以上述方式在指数映像表现中求出的三维旋转R(t)相关的rx(t)、ry(t)、rz(t)与三维位置P(t)相关的px(t)、py(t)、pz(t)分别适用微分方程,来算出各个的速度成分。以此方式,针对求出的三维位置P(t)及三维旋转R(t)的各速度成分,从如图4所示设定有先前执行的时点的混合的两个不同运动相关的运动数据的终端后帧与始端前帧,抽出各帧的各速度成分的绝对值的最大值。将该值作为插补用速度v(t)(此处并不就三维位置P(t)及三维旋转R(t)各要素的速度成分作区别),如图5所示,作为从运动A的终端姿势至运动B的始端姿势所执行的移行运动所适用的三维位置P(t)及三维旋转R(t)的各要素速度成分。接着,通过对插补用速度v(t)适用泊松方程,求出混合后的运动中的各帧的三维位置P(t)及三维旋转R(t)相关的各要素px(t)、py(t)、pz(t)、rx(t)、ry(t)、rz(t)(以下总称为要素d(t))。此外,关于三维旋转R(t),必须对通过泊松方程求出的rx(t)、ry(t)、rz(t)适用上述的对数映像。接着,适用了泊松方程的要素d(i)与此插补用速度v(i)的关系能如下表示。[数式2]接着,通过从上述式使用联立方程的反复解法(使用Gauss-seidel法等),针对要素d(i)能如下表示。[数式3]通过以上述方式表示,矩阵的各要素d规律地被决定,解析上能算出相反矩阵(以下称数式5)。又,计算要素d(i)需要相反矩阵的第i行。接着,数式2所适用的矩阵能以如下般加以一般化,因此在数式3所适用的相反矩阵的一般式能如下求出。[数式4][数式5]如上述,能从所求出的一般式(数式5),仅以四则运算计算要素d(i),且也可以就各要素d独立计算。图6是显示将如上述般适用泊松方程而从运动A的运动数据的终端后帧与运动B的运动数据的始端前帧将终端姿势至始端姿势的移行运动相关的运动数据混合并生成的流程。如图示,由于混合前的运动A与运动B的各个运动数据中关于三维位置P(t)的数据是线性数值,因此能直接适用泊松方程。另一方面,由于三维旋转R(t)是非线性数值,因此无法直接适用泊松方程。因此,通过将指数映像适用于三维旋转R(t),并分解成表示独立的线性旋转量的rx(t)、ry(t)、rz(t),并根据这些来适用泊松方程。针对通过适用泊松方程所得的rx(t)、ry(t)、rz(t),为了表现成移行运动的运动数据相关的三维旋转R(t),而通过再度使用为了分解成线性旋转量所使用的平均旋转Rm,再度合成三维旋转。如以上所说明,对存在于假想三维空间的游玩角色,使运动A的运动数据所定义的动作进行至成为终端姿势后,使之从设定有运动B的运动数据所定义的动作的始端姿势开始进行。此处,从运动A移行至运动B为止,是通过利用混合而生成的移行运动的运动数据来动作。此外,于运动A的动作与运动B中的至少一动作包含三维旋转R相关的动作。三维旋转R相关的动作的数据是非线性数据,欲以包含此种非线性数据的运动A的运动数据与运动B的运动数据无不协调感而顺畅连接的方式生成从运动A移行至运动B的运动数据,并不简单。不过,本实施形态中,通过在运动A的终端后帧与运动B的始端前帧中适用指数映像,将三维旋转R(t)算出为rx(t)、ry(t)、rz(t)。接着,从算出的终端后帧与始端前帧的各帧期间中的rx(t)、ry(t)、rz(t)算出速度成分,将运动A的终端后帧、设定有执行时点的运动B的始端前帧中的各速度成分的绝对值最大值抽出作为移行运动期间中的插补用速度v(t)。接着,移行运动相关的混合后的运动数据的各帧的rx(t)、ry(t)、rz(t),能通过在与所抽出的插补用速度v(t)中适用泊松方程来求出。由于使用此种方法生成介于依据运动A相关的运动数据动作的终端姿势之后和依据运动B相关的运动数据动作的始端姿势之前之间的多个帧期间的运动数据来作为利用线性数据的计算,因此以运动A的运动数据与运动B的运动数据无不协调感而顺畅连接的方式生成从包含三维旋转动作的运动A移行至运动B的运动数据,可较为单纯。又,用以求出移行运动相关的混合后的运动数据的各帧的rx(t)、ry(t)、rz(t)的运算,是采用泊松方程的运算来进行,借此运算较为单纯。而且,对第i个速度成分v(t)仅使用规定的矩阵的i行来算出混合后的运动数据的各帧的rx(t)、ry(t)、rz(t),借此能减轻该运算的处理量。进而,通过将指数映像适用于将非线性三维旋转R(t)转换至线性的rx(t)、ry(t)、rz(t),将对数映像适用于三维旋转R(t)的再生,而能使对rx(t)、ry(t)、rz(t)的转换或三维旋转R(t)的再生较为单纯。又,通过将帧中绝对值较大者的要素d(i)的各速度成分特定为介于依据运动A相关的运动数据动作的终端姿势之后和依据运动B相关的运动数据动作的始端姿势之前之间的多个帧期间的各帧中的插补用速度v(t),而能生成运动A相关的运动数据与运动B相关的运动数据无不协调感而顺畅连接的从运动A移行至运动B的运动数据。又,介于依据运动A相关的运动数据动作的终端姿势之后和依据运动B相关的运动数据动作的始端姿势之前之间的多个帧期间的各帧中的数据,包含根据运动A的运动数据所含的各帧的数据与运动B的运动数据所含的各帧的数据中最近似的数据彼此而生成的数据、亦即运动A的运动数据与运动B的运动数据均为差最少的数据。借此,即能生成运动A的运动数据与运动B的运动数据无不协调感而顺畅连接的从运动A移行至运动B的运动数据。本发明不限于上述的实施形态,能作各种变形、应用。以下,说明能适用于本发明的上述实施形态的变形态样。上述实施形态中,生成移行运动的前后动作即运动A、运动B虽是基本动作,但也可以对从基本动作生成的不同的两个复合动作间的动作移行生成移行动作。例如,也可以将本发明适用于从复合有运动A与运动B的运动A+C移行至复合有运动B与运动D的运动B+D时的移行运动生成。又,也可以将移行动作生成为生成移行运动前后的动作中的一方是复合动作、另一方是基本动作。借此,由于移行运动即不仅从基本动作生成,能执行多样化的移行运动,即使不是预先存储于记录媒体131等的动作,也能执行对应前后动作迁移的无不协调感而顺畅的移行运动。再者,本发明也可以适用于,生成从运动A移行至运动B时的移行运动、从运动C移行至运动D时的移行运动,并使运动变化成复合有运动A与运动C的运动、复合有各移行运动的运动、复合有运动B与运动D的运动。不过,这个情形,并不是对从运动A移行至运动B时的移行运动的生成及从运动C移行至运动D时的移行运动的生成的各个直接适用使上述实施形态中近似帧的时点一致的处理,而必须使从运动A移行至运动B时的移行运动与从运动C移行至运动D时的移行运动的时点一致。上述实施形态中,虽是在运动A的运动数据、运动B的运动数据的各个中生成移行运动来作为包含三维旋转R(t)相关的动作,但此种三维旋转R(t)相关的动作只要包含于任一方的运动即可,也可以任一方中不包含此种旋转动作。上述实施形态中,虽从两个不同动作相关的运动数据的终端后帧与始端前帧抽出各帧中的各速度成分的绝对值最大值,并将该值作为插补用速度v(t)而作为适用于移行运动的各要素速度成分,不过也可以使用加权平均或权重平均来作为各要素的速度成分,或使用各个的最大值来作为各要素的速度成分。上述实施形态中,虽通过对插补用速度v(t)适用泊松方程来进行三维位置P(t)及三维旋转R(t)相关的各要素px(t)、py(t)、pz(t)、rx(t)、ry(t)、rz(t)的计算,但只要是如同泊松方程般能得到较佳结果的运算,也可以是其它的矩阵运算,也可以是矩阵运算以外的运算。当然,利用泊松方程的运算可作为本发明较佳方法来适用。又,虽仅以相反矩阵的第i行使运算简化来计算要素d(i),但也可以不简化此种运算。上述实施形态中,虽通过将指数映像适用于三维旋转R(t),分别分解成表示独立的线性旋转量的rx(t)、ry(t)、rz(t),对通过适用泊松方程而取得的rx(t)、ry(t)、rz(t)适用对数映像来进行三维旋转的再度合成,但只要是能进行利用了泊松方程的运算来作为线性的值,也可以适用除此以外的方法。当然,指数映像或对数映像的适用对本发明而言是较佳手法。上述实施形态中,虽举出对三维视频游戏中的游玩角色的动作适用本发明的情形为例进行了说明,但也可以将本发明适用于不是通过玩家的操作来动作而是与玩家操作无关系的通过规定处理例程的执行来动作的非游玩角色的动作。又,即使不是角色,只要是进行包含三维旋转动作的动作者例如机械类或构造物等其它对象的动作,也可以适用本发明。上述实施形态中,是将本发明适用于视频游戏的情形,作为各玩家进行游戏所使用的终端装置是适用游戏专用机的视频游戏装置100。相对于此,本发明只要是三维计算机图像的运动混合,也可以适用于视频游戏以外、混合对象动作的情形。只要不是实时计算机图像,运动A的终端姿势与运动B的始端姿势,也可以按照使用者视状况来个别手动设定。又,以本发明的手法进行运动混合的处理的装置,只要是具备与视频游戏装置100相同的构成要素者,则也可以适用通用的个人计算机等。只要有能处理三维计算机图像的能力,也可以适用具有将显示装置121及声音输出装置125与装置本体101收纳于相同壳体内的构成的携带游戏机(包含具有应用程序执行功能的携带电话)。作为记录媒体131,能取代DVD-ROM或CD-ROM而适用半导体存储卡。也可以取代DVD/CD-R驱动器113而设置用以插入此存储卡的卡槽。当是通用个人计算机的情形,也可以不将本发明的程序及数据存放于记录媒体131来提供,而是预先存放于HDD107来提供。用以存放本发明的程序及数据来提供的记录媒体,能按照硬件的物理形态及流通形态来适用任何物。上述实施形态中,视频游戏装置100的程序及数据,视存放于记录媒体131来发送。相对于此,也可以将这些程序及数据存放于网络151上存在的服务器装置所具有的硬盘装置,并过网络151来配送至装置本体101。视频游戏装置100中,通讯接口115从服务器装置接收的程序及数据,能保存于HDD107,在执行时加载至RAM105。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1