基于描述数据的角色模块化骨架系统构造方法及装置的制作方法

文档序号:6586541阅读:170来源:国知局
专利名称:基于描述数据的角色模块化骨架系统构造方法及装置的制作方法
技术领域
本发明涉及三维角色动画骨骼系统的构造方法,尤其是涉及一种基于描述数据的 角色模块化骨架系统构造方法及装置。
背景技术
骨骼系统是三维角色动画中不可或缺的一部分,它将角色模型以及动画师用来设 置关键桢的控制器通过一定的约束与驱动关系联接起来。良好的骨骼系统可以使动画师有 效地控制角色的姿态,提高工作效率。同时,能够实现更加真实可信的肢体行为。对于有机 体角色,一套完整强大的骨骼系统是非常复杂的,其中可以牵扯到各方面的知识细节。为了 给一个角色制作完整的骨骼系统,甚至可以耗去一个技术人员两周以上的时间。对于角色 数可上至几十人的大型动画来说,每一个角色还可能会有多套不同版本的骨骼系统,这样 的成本消耗是巨大的。为了简化这个过程,很多软件开发公司以及动画工作室都自行编写了自己的骨骼 系统工具,从而达到快速创建以及降低创建骨骼系统时对相关知识的要求。通过这些工具 制作时间往往可以大大缩减到一天以内。而其易用型也会使得整个过程只需要移动一下骨 骼然后点选几个按钮一般简单。然而,自动化的同时,使用这些工具就必须在功能性和复杂 性上做出很大牺牲了。就目前自动化骨骼创建技术来说,大体使用的都是预先置入代码的骨骼模版,或 者提供多套模版,如二足与四足动物等,由用户选择需要的模版,然后按照固定的方式来配 置骨骼系统。这样的方法在一些情况下是足够的,但是,随着现在三维动画技术的不断发 展,角色的骨骼设置方法已经变得极其丰富了。由于技术或者计算量的原因,很多方法不可 能在同一套骨骼系统中共存,所以对于预置模版的工具来说,使用者通常只有非常有限的 选择。

发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种复杂性高、扩展 性好的基于描述数据的角色模块化骨架系统构造方法及装置。本发明的目的可以通过以下技术方案来实现—种基于描述数据的角色模块化骨架系统构造方法,其特征在于,包括以下步 骤1)启动时从硬盘或网络中加载模块化的骨骼数据;2)解释部件中的基础描述数据,判断是否为无效部件,若为是,删除该无效部件, 并返回步骤2),若为否,在内存中构造各个有效部件的依赖关系,并得出有效部件的列表;3)解释部件中的图形化相关数据,生成用于显示的几何体数据,并提交给绘图 api绘制交互界面,用户通过界面装备各个部件,设置部件中的可变量的值或使用默认值;4)把可变量的值代入,构造出完整骨骼信息,并检查是否有不被支持的关联,若为是,则提示错误信息,并返回步骤3),若为否,进入步骤5);5)生成骨骼模板;6)提示用户按照具体角色微调每个骨骼的定位点;7)读取当前骨骼位置信息;8)按照需要进行设置的部件依赖关系,构造设置的优先顺序;9)解释部件中的设置组合数据,按照优先顺序依次调用各部件的设置过程,并判 断设置过程是否发生错误,若为是,执行步骤10),若为否,则执行步骤11);10)生成错误报告并撤销设置,并判断错误是否来自骨骼微调,若为是,则返回步 骤6),若为否,返回步骤3);11)依据各个部件的组合指示组合各个部件,并判断是否发生错误,若为是,返回 步骤10),若为否,执行步骤12);12)将各个部件中提供的辅助数据注册骨骼系统中,并清理无用记录与数据;13)骨骼系统完成设置。 所述的基础描述数据包括部件组成信息、部件连接接口信息、部件接口需求信息。所述的图形化相关数据包括部件几何体信息、部件骨骼节点定位信息。所述的设置组合数据包括部件依赖信息、部件组合指示信息。一种基于描述数据的角色模块化骨架系统构造装置,其特征在于,包括服务器、工 作站,所述的工作站包括硬盘、内存、CPU、GPU、输入控制模块、显示模块,所述的工作站为多 个,各个工作站通过网络与服务器连接,所述的硬盘与内存连接,所述的CPU分别与内存、 GPU、输入控制模块连接,所述的GPU分别与内存、显示模块连接。与现有技术相比,本发明为现有的骨骼系统提供了一种新的组合构造方法,不同 于传统的骨骼系统中骨骼的定义必须要预先置入程序代码,本发明允许将整个骨骼系统拆 分成肢体片断,使得原来必须预先置入代码的完整骨骼模版可以由用户在使用时从片断拼 装而成,从而大大提高骨骼系统的复杂性和扩展性。


图1为本发明的流程图;图2为本发明的硬件结构示意图;图3为本发明的工作站的结构示意图。
具体实施例方式下面结合附图和具体实施例对本发明进行详细说明。实施例1本发明将完整的角色拆分为多个部件,如手臂、手、头、脊椎、腿、尾、翅膀等等。这 些部件能够由用户自由拼装。只要提供的部件类型足够丰富,本方法就可以满足几乎所有 的角色类型。同时也可以让同一种肢体部件有多种设置方案供用户按照制作需要来选择。如图1所示,一种基于描述数据的角色模块化骨架系统构造方法,包括以下步骤步骤1、启动时从硬盘或网络中加载模块化的骨骼数据;步骤2、解释部件中的基础描述数据,判断是否为无效部件,若为是,删除该无效部件,并返回步骤2,若为否,在内存中构造各个有效部件的依赖关系,并得出有效部件的列 表;步骤3、解释部件中的图形化相关数据,生成用于显示的几何体数据,并提交给绘 图api绘制交互界面,用户通过界面装备各个部件,设置部件中的可变量的值或使用默认 值;步骤4、把可变量的值代入,构造出完整骨骼信息,并检查是否有不被支持的关联, 若为是,则提示错误信息,并返回步骤3,若为否,进入步骤5 ;步骤5、生成骨骼模板;步骤6、提示用户按照具体角色微调每个骨骼的定位点;步骤7、读取当前骨骼位置信息;步骤8、按照需要进行设置的部件依赖关系,构造设置的优先顺序;步骤9、解释部件中的设置组合数据,按照优先顺序依次调用各部件的设置过程, 并判断设置过程是否发生错误,若为是,执行步骤10,若为否,则执行步骤11 ;步骤10、生成错误报告并撤销设置,并判断错误是否来自骨骼微调,若为是,则返 回步骤6,若为否,返回步骤3 ;步骤11、依据各个部件的组合指示组合各个部件,并判断是否发生错误,若为是, 返回步骤10,若为否,执行步骤12 ;步骤12、将各个部件中提供的辅助数据注册骨骼系统中,并清理无用记录与数 据;步骤13、骨骼系统完成设置。所述的基础描述数据包括部件组成信息、部件连接接口信息、部件接口需求信息。1)部件组成信息描述具体骨骼名称,骨骼之间的相互层级关系;2)部件连接接口信息描述可以被连接的位置,以及可接受的连接方式;3)部件接口需求信息描述该部件可用的前提接口需求。所述的图形化相关数据包括部件几何体信息、部件骨骼节点定位信息。1)部件几何体信息描述该部件在三维空间中存在时的大致几何形状;2)部件骨骼节点定位信息描述每个骨骼的默认位置信息以及范围限制。所述的设置组合数据包括部件依赖信息、部件组合指示信息。1)部件依赖信息与实际设置相关的信息,描述该部件设置前必须先完成设置的 部件类型;2)部件组合指示信息描述部件被连接时所要连接的接口以及连接方式。如图2、图3所示,一种基于描述数据的角色模块化骨架系统构造装置,包括服务 器a、工作站b,所述的工作站包括硬盘bl、内存Id2、CPU b3、GPU b4、输入控制模块b5、显示 模块M,所述的工作站b为多个,各个工作站b通过网络与服务器a连接,所述的硬盘bl与 内存M连接,所述的CPU b3分别与内存1^2、GPU b4、输入控制模块沾连接,所述的GPU b4 分别与内存1^2、显示模块M连接。实施例2部件名定义为[Namespace ] Type :PartName [ (markl,mark2, mark3,......)];
Type定义基本类型; PartName为调用时使用的部件名;Namespace为可选的命名空间;部件实例化后可在名字后添加额外标记信息以识别诸如左右对称肢体、阵列复制 对称、实例化标号;具体信息定义如下部件组成信息DJointNamel > JointName2 > JointName3 > . . . > JointNameX |,JointName4 > JointName5 > JointName6 > . . . > JointNameX ,......,JointNameX记录骨骼名,改命名在同一模块中不可重复,用$JointNameanterpolate Method)可表示可变数量的骨骼链,0中的类型名 决定骨骼链的插值方法,I符号开始新骨骼链;2)部件连接接口信息LinkName (LinkMethod) {JointNamel (weightl), JointName2 (weight2),.......},LinkName定义一个新接口,接口可以包括复数的骨骼以及其他有坐标对象,最终 的定位由所有列举对象以及其后方的0中定义的权重值来加权平均,LinkMethod 定义连接方式,包括 Position、Orientation、Scale、Parent、 Hierarchy、Follow、Invert 等等连接方法;3)部件接口需求信息[Namespace ] [Type ] LinkName,定义Type后Type成为搜索的必要条件,定义Namespace后Namespace成为搜索必要条件;4)部件几何体信息Matrix :obj,Matrix为一个4x4变换矩阵,定义ob j的坐标变换,Obj内容参考obj格式定义,该定义可以单独另行保存,从而允许实例化关联复 制;5)部件骨骼节点定位信息a. JointName (χ, y, ζ),b. JointName (χ, y, ζ, w),c. JointName (rx, ry, rz, d),d. JointName (mil, ml2, ml3, m21, m22, m23, m31, m32, m33),骨骼位置可以用以上四种方式中任何一种来定义,a定义在世界坐标空间中,b、c、 d定义在父骨骼的坐标空间中,b定义为相对位置,C定义为父骨骼的X轴偏转后位移获得, d用3x3矩阵定义父骨骼坐标空间中相对变换,其中X,y,z,w,d参数都可以用诸如min :max :default方式来定义最大、最小以及默认值;6)部件依赖信息[Namespace ]Type,定义Namespace后Namespace成为搜索必要条件;7)部件组合指示信息AbstractInterface > [Namespace :]Type PartName [ (mark 1, mark2,......)]
LinkName,Abstracthterface为每个模块自行定义的对象,该对象在各部件设置完成后与 具体对象成对提交给骨骼设置系统的连接机制。其他参数含义同前述同名信息定义。
权利要求
1.一种基于描述数据的角色模块化骨架系统构造方法,其特征在于,包括以下步骤1)启动时从硬盘或网络中加载模块化的骨骼数据;2)解释部件中的基础描述数据,判断是否为无效部件,若为是,删除该无效部件,并返 回步骤2),若为否,在内存中构造各个有效部件的依赖关系,并得出有效部件的列表;3)解释部件中的图形化相关数据,生成用于显示的几何体数据,并提交给绘图api绘 制交互界面,用户通过界面装备各个部件,设置部件中的可变量的值或使用默认值;4)把可变量的值代入,构造出完整骨骼信息,并检查是否有不被支持的关联,若为是, 则提示错误信息,并返回步骤3),若为否,进入步骤5);5)生成骨骼模板;6)提示用户按照具体角色微调每个骨骼的定位点;7)读取当前骨骼位置信息;8)按照需要进行设置的部件依赖关系,构造设置的优先顺序;9)解释部件中的设置组合数据,按照优先顺序依次调用各部件的设置过程,并判断设 置过程是否发生错误,若为是,执行步骤10),若为否,则执行步骤11);10)生成错误报告并撤销设置,并判断错误是否来自骨骼微调,若为是,则返回步骤 6),若为否,返回步骤3);11)依据各个部件的组合指示组合各个部件,并判断是否发生错误,若为是,返回步骤 10),若为否,执行步骤12);12)将各个部件中提供的辅助数据注册骨骼系统中,并清理无用记录与数据;13)骨骼系统完成设置。
2.根据权利要求1所述的一种基于描述数据的角色模块化骨架系统构造方法,其特征 在于,所述的基础描述数据包括部件组成信息、部件连接接口信息、部件接口需求信息。
3.根据权利要求1所述的一种基于描述数据的角色模块化骨架系统构造方法,其特征 在于,所述的图形化相关数据包括部件几何体信息、部件骨骼节点定位信息。
4.根据权利要求1所述的一种基于描述数据的角色模块化骨架系统构造方法,其特征 在于,所述的设置组合数据包括部件依赖信息、部件组合指示信息。
5.一种基于描述数据的角色模块化骨架系统构造装置,其特征在于,包括服务器、工 作站,所述的工作站包括硬盘、内存、CPU、GPU、输入控制模块、显示模块,所述的工作站为多 个,各个工作站通过网络与服务器连接,所述的硬盘与内存连接,所述的CPU分别与内存、 GPU、输入控制模块连接,所述的GPU分别与内存、显示模块连接。
全文摘要
本发明涉及一种基于描述数据的角色模块化骨架系统构造装置,包括服务器、工作站,所述的工作站包括硬盘、内存、CPU、GPU、输入控制模块、显示模块,所述的工作站为多个,各个工作站通过网络与服务器连接,所述的硬盘与内存连接,所述的CPU分别与内存、GPU、输入控制模块连接,所述的GPU分别与内存、显示模块连接,一种基于描述数据的角色模块化骨架系统构造方法,包括启动时从硬盘或网络中加载模块化的骨骼数据等13个步骤。与现有技术相比,本发明具有大大提高骨骼系统的复杂性和扩展性等优点。
文档编号G06T13/40GK102117490SQ20091026183
公开日2011年7月6日 申请日期2009年12月30日 优先权日2009年12月30日
发明者陈涛 申请人:上海幻维数码创意科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1