首页 / 专利库 / 人工智能 / 三维形变模型 / 一种采用草绘的三维动画姿态建模方法

一种采用草绘的三维动画姿态建模方法

阅读:360发布:2021-01-04

专利汇可以提供一种采用草绘的三维动画姿态建模方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种采用草绘的三维动画 姿态 建模方法,包括姿态生成、姿态编辑和运动生成与编辑三个部分:首先解析用户输入的组件化人体轮廓草图,提取人体骨架结构、骨架姿态和骨架轮廓等姿态参数,并生成三维人体姿态模型;其次,将三维人体姿态模型组件化投影到二维平面,通过二维草绘交互,对三维人体姿态模型的骨架空间 位置 、骨架长度和骨架轮廓进行编辑;最后,采用基于核规约的运动插值方法插值姿态关键 帧 生成三维人体动画,并采用草绘交互方式编辑人体动画。本发明与传统三维人体姿态建模方法相比,能有效支持动画师以二维草绘方式进行姿态设计和编辑,对于三维人体动画的发展有着重要意义。,下面是一种采用草绘的三维动画姿态建模方法专利的具体信息内容。

1.一种采用草绘的三维动画姿态建模方法,其特征在于,包括以下步骤:
步骤一,人体姿态模型生成:解析输入的人体轮廓草图,生成三维人体姿态模型,具体包括以下步骤:
步骤(11),草图处理与人体关节点定位:判断草图的有效性;解析人体轮廓草图,初始化初始关节点位置;根据关节点连接关系定位关节点;
步骤(12),姿态参数提取:识别人体骨架结构;根据人体骨架模板和人体姿态约束,解析骨架姿态;通过人体轮廓草图解析,获取骨架轮廓特征;
步骤(13),基于姿态模板形变的姿态生成:根据草图提取的姿态参数对姿态模板进行调整;根据姿态模板形变生成三维人体姿态模型;
步骤二,人体姿态模型编辑:选择视将三维人体姿态模型组件化投影到二维平面;
通过解析输入的姿态交互笔画,获取姿态调整信息,对三维人体姿态模型的骨架空间位置、骨架长度和骨架轮廓进行编辑,生成新的三维人体姿态模型;对三维人体姿态模型采用人体姿态模型编辑方法,生成多个三维人体姿态模型的关键
步骤三,运动生成与编辑:采用基于核规约的运动插值方法生成三维人体动画;调整三维人体动画的中间帧姿态模型,采用运动平滑方法得到新的三维人体动画。
2.根据权利要求1所述的一种采用草绘的三维动画姿态建模方法,其特征在于,步骤一中,所述草图处理与人体关节点定位包括以下步骤:
保存人体轮廓草图:所述人体轮廓草图由十个人体草图组件组成,分别为头部、躯干和四肢,其中头部和躯干各为一个组件,四肢为八个组件,表示为S=(S1,S2...,S10),其中Si为单笔画草图组件,Si={pj|pj=(xj,yj),j=1,...,Mi},pj表示草图组件中第j个采样点,xj和yj表示第j个采样点的坐标位置,Mi为该草图组件总的采样点数;
判断输入草图的有效性:识别人体轮廓草图中草图组件的个数,如果为十个草图组件,则判定是有效的人体轮廓草图,否则判定为无效的人体轮廓草图;
采用最小外接矩形法获取各草图组件的初始关节点位置集合,记为:
其中关节点 和关节点 表示草图组件Si对应的两个初始关节
点;
采用关节点定位方法定位关节点,得到人体关节点位置集合,记为:
J={Jn|n=1,2,...,14},其中Jn表示了人体第n个关节点的位置。
3.根据权利要求2所述的一种采用草绘的三维动画姿态建模方法,其特征在于,所述最小外接矩形法初始化关节点位置,包括以下步骤:
步骤(31):对于一个草图组件Si={pj|pj=(xj,yj),j=1,...,Mi},计算该草图组件中各采样点的中心点坐标Oi(xo,yo),所述 其中xj和yj表
示草图组件Si中第j个采样点的坐标位置,Mi为草图组件Si中总的采样点数;
步骤(32):将草图组件绕中心点Oi(xo,yo)逆时针方向旋转n度,得到新的草图组件,计算该草图组件外接矩形的面积,记为An;
其中,旋转的度数n为π的约数,草图组件旋转通过将草图组件Si中所有采样点绕中心点Oi(xo,yo)旋转实现;单个采样点旋转表示为旋转函数R(pj,Oi,α),即对草图组件中的一个采样点pj(xj,yj)绕中心点Oi(xo,yo)顺时针旋转α度得到p′j(x′j,y′j),所述p′j(x′j,y′j)计算方法为:
其中, 为该采样点pj(xj,yj)到中心点Oi(xo,yo)的距离;
草图组件的外接矩形面积计算方法为:计算草图组件Si所有采样点的横坐标xj和纵坐标yj的最大值xmax和ymax,最小值xmin和ymin,则草图组件Si的外接矩形面积A的计算方法为A=(xmax-xmin)(ymax-ymin);
步骤(33):逐次旋转草图组件,直至旋转π度,计算每次旋转后的草图组件的外接矩形面积,记为Aθ,其中θ为旋转的角度,则得到对应的草图组件的外接矩形面积序列Aθ(An,A2n,...,Aπ);
步骤(34):计算草图组件Si的外接矩形面积序列Aθ(An,A2n,...,Aπ)中面积的最小值,记为Aω,其中ω为对应取最小面积的旋转角度;
步骤(35):确定草图组件Si对应的初始关节点 和初始关节点 ,根据旋转ω度的草图组件Si,以及草图组件Si采样点的横坐标xj和纵坐标yj的最大值和最小值计算关节点初始位置:
如果|xmax-xmin|<|ymax-ymin|,则初始关节点分别为点((xmax+xmin)/2,ymax)和点((xmax+xmin)/2,ymin)绕中心点顺时针旋转ω度得到的点,即初始关节点 和初始关节点分别为:
如果|xmax-xmin|>|ymax-ymin|,则初始关节点分别为点((ymax+ymin)/2,xmin)和点((ymax+ymin)/2,xmax)绕中心点顺时针旋转ω度得到的点,即初始关节点 和初始关节点分别为:
步骤(36):对每个草图组件重复步骤31~步骤35,得到初始关节点位置集合其中点 和点 表示草图组件Si对应的两个初始关节点。
4.根据权利要求2所述的一种采用草绘的三维动画姿态建模方法,其特征在于,所述关节点定位方法,具体包括以下步骤:
步骤(41):在初始关节点位置集合 中,计算纵坐标最小的关节
点 ,以及与关节点 相关联的关节点 ;从初始关节点位置集合P中删除关节点 ,并在新的关节点位置集合P中计算距离关节点 欧氏距离最近的关节点,将该关节点标记为J1,并从集合P中删除关节点J1;
步骤(42):在初始关节点位置集合P中计算距离关节点J1欧氏距离最近的两个关节点,分别标记为关节点J3和关节点J4;对与关节点J1相关联的关节点,计算与其欧氏距离最近的两个关节点,分别标记为关节点J5和关节点J6;从初始关节点位置集合P中删除关节点J3、关节点J4、关节点J5以及关节点J6;
步骤(43):对于与关节点J3相关联的关节点Pi,计算与其欧氏距离最近的关节点Pj,将与关节点Pj相关联的关节点标记为J7,同时生成新的关节点生成关节点J8,关节点J8的位置为关节点Pi和关节点Pj的中点;从初始关节点位置集合P中删除关节点Pi、关节点Pj以及关节点J7;
步骤(44):对于关节点J4、关节点J5和关节点J6采用步骤43的计算方法,分别生成关节点J9、关节点J10、关节点J11、关节点J12、关节点J13以及关节点J14;由此得到人体关节点位置集合J={Jn|n=1,2,...,14}。
5.根据权利要求1所述的一种采用草绘的三维动画姿态建模方法,其特征在于,步骤二中,人体姿态模型编辑包括以下步骤:
步骤(51):将人体姿态模型的各组件的外轮廓投影到二维平面,包括以下步骤:对人体姿态模型的各组件,计算其网格点坐标在二维平面投影的最外轮廓坐标;将组件的外轮廓投影点相连得到组件的外轮廓,从而得到人体姿态模型的组件化外轮廓投影;
步骤(52):骨架空间位置编辑,包括以下步骤:对于输入的骨架空间位置编辑笔画,计算笔画的起始点Pstart和终止点Pend的位置;查找距离起始点Pstart距离最近的关节点记为P1;判断关节点P1的类型,当关节点P1为人体末关节点时,调整末关节点位置,当关节点P1为中间关节点时,调整该中间关节点以及与其相关联的末关节点位置;
关节点位置调整方法为:根据关节点P1确定旋转的轴点;根据终止点Pend的位置确定骨架的旋转角度;根据骨架的长度确定关节点的深度变化,由此得到各关节点的新的坐标;
步骤(53):骨架长度编辑,包括以下步骤:对于输入的骨架长度编辑笔画,计算笔画的起始点Pstart和终止点Pend的位置;查找距离起始点Pstart距离最近的关节点记为P1;将关节点P1的坐标设置为终止点Pend的坐标;通过计算终止点Pend相对于关节点P1的位移量,计算与关节点P1相关联的所有关节点的新的坐标;
步骤(54):骨架外观轮廓编辑,包括以下步骤:对于输入的轮廓编辑笔画,计算笔画的起始点Pstart和终止点Pend的位置,判断距离起始点Pstart距离最近的组件轮廓,该组件为需轮廓调整的组件;根据笔画的方向确定轮廓的调整方式,当笔画方向指向另一条轮廓线时,表示对该组件收缩轮廓,否则,表示扩大该组件轮廓;计算笔画的长度与骨骼长度比例,以此确定轮廓的缩放比例;通过对人体轮廓模板的缩放实现人体外轮廓的编辑。
6.根据权利要求1所述的一种采用草绘的三维动画姿态建模方法,其特征在于,步骤三中,采用基于核规约的运动插值方法生成三维人体动画,具体包括以下步骤:三维人体动画表示为 t=1,2,...,T,其中t表示了动画帧的序号,
表示了第t帧的第i个关节点的位置,T为总的帧的数目;
对于给定了其中N帧关键帧的姿态数据,求长度为T帧的动画序列,通过基于核规约的运动插值实现,具体包括:
所述动画每一帧的运动数据设为已有N帧关键帧运动数据的加权求和,其权重采用核函数表示为: 其中KW为核函数的宽度,Xt表示运动数据帧的序号,
Xt∈{1,2,...,T},则插值得到的三维人体动画为:
其中 为上述关键帧的权重, 为第Xi个关键帧的姿态数据,Xi为
关键帧的序号,j=1,2,...,15表示第j个关节点。
7.根据权利要求1所述的一种采用草绘的三维动画姿态建模方法,其特征在于,步骤三中,调整三维人体动画中间帧姿态模型,采用运动平滑方法得到新的三维人体动画,包括以下步骤:
步骤(71):对于三维人体动画 t=1,2,...,T,选定ti
时刻的帧 作为待调整的关键帧;
步骤(72):输入姿态调整笔画:将选定的三维人体姿态模型投影到二维平面;输入姿态调整笔画,笔画的起点为需要调整的人体末关节点,笔画的终点为该末关节点的新位置;
步骤(73):运动编辑笔画解析:计算笔画的起始点Pstart和终止点Pend的位置,并查找距离起始点Pstart距离最近的关节点P1,将关节点P1的目标位置调整到Pend;
步骤(74):采用逆运动学方法计算新的三维人体姿态模型;
逆运动学计算方法为: 其中
表示约束条件,即为所述的第ti帧末端关节的目标位置; 表示在 约
束条件下使用逆运动学方法计算人体姿态; 为计算得到的新的人体姿态,其中分别表示了新的关节点位置;
步骤(75):计算姿态偏移 ,姿态偏移 表示每个关节点的位置偏
移向量,计算方法如下:
其中 为新的关节点位置, 为原关节点位置;
步骤(76):在帧t∈(ti-range,ti+range)的范围,插值计算新的三维人体姿态,新的三维人体姿态计算方法为 其中range为影响区域。

说明书全文

一种采用草绘的三维动画姿态建模方法

技术领域

[0001] 本发明涉及一种采用草绘的三维动画姿态建模方法,属于计算机动画和计算机图形学技术领域,具体地说是一种支持用户以手绘草图进行三维动画姿态设计、姿态编辑和运动生成与编辑的技术。

背景技术

[0002] 在计算机动画中,三维人体动画是最具难度和挑战的研究课题之一。人体动画创作包括人体建模、姿态建模、动画建模三个步骤,其中姿态建模是指对人体的姿态所包含得骨架空间位置、骨架长度、骨架轮廓等信息进行设计和编辑的过程,其在人体动画过程中具有重要的作用。寻找一种简单有效的姿态建模方法是计算机人体动画领域的重要课题。
[0003] 姿态建模一般包含姿态生成、姿态编辑和姿态的动画三个过程。当前,传统姿态建模方法是:首先由模型设计师使用建模工具(如Maya、3DMax等)根据动画设计师在二维平面绘制的人物色,进行三维人体姿态模型设计;接着由模型设计师根据动画设计师创作的二维原动画序列,利用动画建模工具(如Motion Builder等)进行三维关键姿态设计。在这种动画设计模式中,动画设计和模型设计过程相分离,使得动画设计师的创作意图难以完整而真实地体现在人体模型和人体动画中;同时,动画建模工具对用户交互要求较高,用户需要频繁在菜单、工具条等传统WIMP界面上切换操作模式,操作相当复杂,使整个人物动画建模过程变得复杂冗长。因此,如何支持动画设计师有效表达自己的创作意图,并进行快速有效的进行姿态建模成了迫切需要解决的问题。
[0004] 事实上,计算机动画技术并未改变动画设计师对传统纸笔绘制模式的偏爱,绘制草图依然是动画师直接而快速的表达设计思想的有效方式。因此,能够支持动画师在二维平面以手绘草图方式进行姿态建模对人体动画技术的发展有着重要意义。采用手绘草图进行三维动画设计不仅更符合动画师设计习惯,且可以有效支持动画师设计意图的表达,简化动画设计过程提高动画创作效率。但实现基于手绘草图的姿态建模面临着两个巨大挑战:其一在于草图解析。草图绘制方式具有随意性的特点,原始输入中往往包含冗余和模糊信息,需要对用户输入的人体草图和交互的笔画进行预处理,同时草图的模糊性特点使得对草图的解析相当困难。另一个难点在于草图人体和原动画序列是平面化的人体表示,如何在二维草图与姿态模型之间建立映射关系,并在姿态模型和动画上保持动画师的创意存在巨大挑战。
[0005] 已有的基于草图的姿态建模技术研究主要包括以下几种方法:在姿态设计中文献1Chen Mao,Sheng Feng Qin,David Wright.A Sketch-based Approach to Human Body Modeling.Computers & Graphics,Volume 33,Issue 4,August 2009,Pages:521-541提出了一种基于三维人体模板形变的方法,该方法允许用户绘制人体骨架线及皮肤轮廓构造简单的人体几何模型。但该方法需要同时绘制人体的骨架和轮廓线才能实现三维人体姿态设计,这不符合动画师只通过勾画轮廓表现人物形象的绘制习惯。文献2Kho Y,Garland M.Sketching Mesh Deformations.Proceedings of the ACM Symposium on Interactive
3D Graphics,Washington D.C.,2005,Pages:147-154提出了一种基于手绘曲线的模型变形方法,该方法支持用户在任意视角通过在模型上绘制曲线来确定需要变形的区域,并且通过描绘另外一条曲线达到变形效果。该方法虽支持以笔画交互方式进行姿态编辑,但一方面,该方法在三维模型上进行操作的方式仍不符合动画师二维平面动画创作习惯,另一方面,该算法并未采用任何的骨骼结构,导致被调整后的姿态模型失去了在帧与帧之间模型的骨架结构和外观特征的一致性。文献3 Matthew Thorne,David Burke,Michiel van de Panne.Motion Doodles:An Interface for Sketching Character Motion.Computer Graphics Proceedings,Annual Conference Series,ACM SIGGRAPH 2004,Pages:424-431定义了一组运动手势,系统通过解析用户笔画所属的手势类型并调用对应的运动数据驱动人体模型生成动画。但该系统所能生成的人体动画局限于所定义的动作类型和使用的运动数据,不能生成丰富的动画,方法缺乏灵活性,不能满足动画创作要求。
[0006] 概括起来,手绘草图是支持动画师以二维纸笔模式进行三维动画姿态建模的有效方式,但现有方法并不能满足动画师姿态建模的要求。如:Chen Mao基于模板的方法要求用户首先绘制人体骨架再绘制人体轮廓线,这种复杂的交互方式使得用户操作起来相当复杂,无法满足快速姿态设计的需要;Kho Y提出的动画关键帧姿态模型编辑方法是基于三维模型的操作,而从二维平面的笔画交互实现三维姿态模型的编辑更符合动画师的操作习惯,同时该方法使用的模型不包括骨架信息,导致该方法不能保持姿态模型帧间的一致性;Matthew Thorne的笔画动作定义生成动画的方法,能有效生成人体动画,但该方法得到的人体动画局限于使用的人体运动数据,无法满足实际动画设计的要求。因此,如何有效支持动画设计师的绘制习惯,如何过二维的草绘交互实现姿态模型设计和编辑,以及如何快速有效生成灵活多变的动画成了当前草图人体动画研究的重要课题。

发明内容

[0007] 发明目的:本发明所要解决的技术问题是针对现有技术的不足,提出了一种采用草绘的三维动画姿态建模方法,该方法支持动画师以草绘方式进行三维动画姿态模型设计和编辑,以及方便灵活的进行三维人体动画生成。
[0008] 技术方案:本发明公开了一种采用草绘的三维动画姿态建模方法,包括以下步骤:
[0009] 步骤一,人体姿态模型生成:解析输入的人体轮廓草图,生成三维人体姿态模型,具体包括以下步骤:
[0010] 步骤(11),草图处理与人体关节点定位:判断草图的有效性;解析人体轮廓草图,初始化初始关节点位置;根据关节点连接关系定位关节点;
[0011] 步骤(12),姿态参数提取:识别人体骨架结构;根据人体骨架模板和人体姿态约束,解析骨架姿态;通过人体轮廓草图解析,获取骨架轮廓特征;
[0012] 步骤(13),基于姿态模板形变的姿态生成:根据草图提取的姿态参数对姿态模板进行调整;根据姿态模板形变生成三维人体姿态模型;
[0013] 步骤二,人体姿态模型编辑:选择视角将三维人体姿态模型组件化投影到二维平面;通过解析输入的姿态交互笔画,获取姿态调整信息,对三维人体姿态模型的骨架空间位置、骨架长度和骨架轮廓进行编辑,生成新的三维人体姿态模型;对三维人体姿态模型采用人体姿态模型编辑方法,生成多个三维人体姿态模型的关键帧;
[0014] 步骤三,运动生成与编辑:采用基于核规约的运动插值方法生成三维人体动画;调整三维人体动画的中间帧姿态模型,采用运动平滑方法得到新的三维人体动画。
[0015] 本发明步骤一中,所述草图处理与人体关节点定位包括以下步骤:
[0016] 保存人体轮廓草图:所述人体轮廓草图由十个人体草图组件组成,分别为头部、躯干和四肢,其中头部和躯干各为一个组件,四肢为八个组件,表示为S=(S1,S2...,S10),其中Si为单笔画草图组件,Si={pj|pj=(xj,yj),j=1,...,Mi},pj表示草图组件中第j个采样点,xj和yj表示第j个采样点的坐标位置,Mi为该草图组件总的采样点数;
[0017] 判断输入草图的有效性:识别人体轮廓草图中草图组件的个数,如果为十个草图组件,则判定是有效的人体轮廓草图,否则判定为无效的人体轮廓草图;
[0018] 采用最小外接矩形法获取各草图组件的初始关节点位置集合,记为:
[0019] 其中关节点 和关节点 表示草图组件Si对应的两个初始关节点;
[0020] 采用关节点定位方法定位关节点,得到人体关节点位置集合,记为:
[0021] J={Jn|n=1,2,...,14},其中Jn表示了人体第n个关节点的位置。
[0022] 本发明中,所述最小外接矩形法初始化关节点位置,包括以下步骤:
[0023] 步骤(31):对于一个草图组件Si={pj|pj=(xj,yj),j=1,...,Mi},计算该草图组件中各采样点的中心点坐标Oi(xo,yo),所述 其中xj和yj表示草图组件Si中第j个采样点的坐标位置,Mi为草图组件Si中总的采样点数;
[0024] 步骤(32):将草图组件绕中心点Oi(xo,yo)逆时针方向旋转n度,得到新的草图组件,计算该草图组件外接矩形的面积,记为An;
[0025] 其中,旋转的度数n为π的约数,草图组件旋转通过将草图组件Si中所有采样点绕中心点Oi(xo,yo)旋转实现;单个采样点旋转表示为旋转函数R(pj,Oi,α),即对草图组件中的一个采样点pj(xj,yj)绕中心点Oi(xo,yo)顺时针旋转α度得到p′j(x′j,y′j),所述p′j(x′j,y′j)计算方法为:
[0026]
[0027] 其中, 为该采样点pj(xj,yj)到中心点Oi(xo,yo)的距离;
[0028] 草图组件的外接矩形面积计算方法为:计算草图组件Si所有采样点的横坐标xj和纵坐标yj的最大值xmax和ymax,最小值xmin和ymin,则草图组件Si的外接矩形面积A的计算方法为A=(xmax-xmin)(ymax-ymin);
[0029] 步骤(33):逐次旋转草图组件,直至旋转π度,计算每次旋转后的草图组件的外接矩形面积,记为Aθ,其中θ为旋转的角度,则得到对应的草图组件的外接矩形面积序列Aθ(An,A2n,...,Aπ);
[0030] 步骤(34):计算草图组件Si的外接矩形面积序列Aθ(An,A2n,...,Aπ)中面积的最小值,记为Aω,其中ω为对应取最小面积的旋转角度;
[0031] 步骤(35):确定草图组件Si对应的初始关节点 和初始关节点 ,根据旋转ω度的草图组件Si,以及草图组件Si采样点的横坐标xj和纵坐标yj的最大值和最小值计算关节点初始位置:
[0032] 如果|xmax-xmin|<|ymax-ymin|,则初始关节点分别为点((xmax+xmin)/2,ymax)和点((xmax+xmin)/2,ymin)绕中心点顺时针旋转ω度得到的点,即初始关节点 和初始关节点分别为:
[0033]
[0034] 如果|xmax-xmin|>|ymax-ymin|,则初始关节点分别为点((ymax+ymin)/2,xmin)和点((ymax+ymin)/2,xmax)绕中心点顺时针旋转ω度得到的点,即初始关节点 和初始关节点分别为:
[0035]
[0036] 步骤(36):对每个草图组件重复步骤31~步骤35,得到初始关节点位置集合其中点 和点 表示草图组件Si对应的两个初始关节点。
[0037] 本发明中,所述关节点定位方法,具体包括以下步骤:
[0038] 步骤(41):在初始关节点位置集合 中,计算纵坐标最小的关节点 ,以及与关节点 相关联的关节点 ;从初始关节点位置集合P中删除关节点 ,并在新的关节点位置集合P中计算距离关节点 欧氏距离最近的关节点,将该关节点标记为J1,并从集合P中删除关节点J1;
[0039] 步骤(42):在初始关节点位置集合P中计算距离关节点J1欧氏距离最近的两个关节点,分别标记为关节点J3和关节点J4;对与关节点J1相关联的关节点,计算与其欧氏距离最近的两个关节点,分别标记为关节点J5和关节点J6;从初始关节点位置集合P中删除关节点J3、关节点J4、关节点J5以及关节点J6;
[0040] 步骤(43):对于与关节点J3相关联的关节点Pi,计算与其欧氏距离最近的关节点Pj,将与关节点Pj相关联的关节点标记为J7,同时生成新的关节点生成关节点J8,关节点J8的位置为关节点Pi和关节点Pj的中点;从初始关节点位置集合P中删除关节点Pi、关节点Pj以及关节点J7;
[0041] 步骤(44):对于关节点J4、关节点J5和关节点J6采用步骤43的计算方法,分别生成关节点J9、关节点J10、关节点J11、关节点J12、关节点J13以及关节点J14;由此得到人体关节点位置集合J={Jn|n=1,2,...,14}。
[0042] 本发明步骤二中,人体姿态模型编辑包括以下步骤:
[0043] 步骤(51):将人体姿态模型的各组件的外轮廓投影到二维平面,包括以下步骤:对人体姿态模型的各组件,计算其网格点坐标在二维平面投影的最外轮廓坐标;将组件的外轮廓投影点相连得到组件的外轮廓,从而得到人体姿态模型的组件化外轮廓投影;步骤(52):骨架空间位置编辑,包括以下步骤:对于输入的骨架空间位置编辑笔画,计算笔画的起始点Pstart和终止点Pend的位置;查找距离起始点Pstart距离最近的关节点记为P1;判断关节点P1的类型,当关节点P1为人体末关节点时,调整末关节点位置,当关节点P1为中间关节点时,调整该中间关节点以及与其相关联的末关节点位置;关节点位置调整方法为:根据关节点P1确定旋转的轴点;根据终止点Pend的位置确定骨架的旋转角度;根据骨架的长度确定关节点的深度变化,由此得到各关节点的新的坐标;步骤(53):骨架长度编辑,包括以下步骤:对于输入的骨架长度编辑笔画,计算笔画的起始点Pstart和终止点Pend的位置;查找距离起始点Pstart距离最近的关节点记为P1;将关节点P1的坐标设置为终止点Pend的坐标;
通过计算终止点Pend相对于关节点P1的位移量,计算与关节点P1相关联的所有关节点的新的坐标;步骤(54):骨架外观轮廓编辑,包括以下步骤:对于输入的轮廓编辑笔画,计算笔画的起始点Pstart和终止点Pend的位置,判断距离起始点Pstart距离最近的组件轮廓,该组件为需轮廓调整的组件;根据笔画的方向确定轮廓的调整方式,当笔画方向指向另一条轮廓线时,表示对该组件收缩轮廓,否则,表示扩大该组件轮廓;计算笔画的长度与骨骼长度比例,以此确定轮廓的缩放比例;通过对人体轮廓模板的缩放实现人体外轮廓的编辑。
[0044] 本发明步骤三中,采用基于核规约的运动插值方法生成三维人体动画,具体包括以下步骤:三维人体动画表示为 t=1,2,...,T,其中t表示了动画帧的序号, 表示了第t帧的第i个关节点的位置,T为总的帧的数目;对
于给定了其中N帧关键帧的姿态数据,求长度为T帧的动画序列,通过基于核规约的运动插值实现,具体包括:所述动画每一帧的运动数据设为已有N帧关键帧运动数据的加权求和,其权重采用核函数表示为: 其中KW为核函数的宽度,Xt表示运动数
据帧的序号,Xt∈{1,2,...,T},则插值得到的三维人体动画为:
[0045]
[0046] 其中 为上述关键帧的权重, 为第Xi个关键帧的姿态数据,Xi为关键帧的序号,j=1,2,...,15表示第j个关节点。
[0047] 本发明步骤三中,调整三维人体动画中间帧姿态模型,采用运动平滑方法得到新的三维人体动画,包括以下步骤:步骤(71):对于三维人
体 动 画 t = 1,2,...,T,选 定 ti 时 刻 的 帧
作为待调整的关键帧;步骤(72):输入姿态调整笔画:将选
定的三维人体姿态模型投影到二维平面;输入姿态调整笔画,笔画的起点为需要调整的人体末关节点,笔画的终点为该末关节点的新位置;步骤(73):运动编辑笔画解析:计算笔画的起始点Pstart和终止点Pend的位置,并查找距离起始点Pstart距离最近的关节点P1,将关节点P1的目标位置调整到Pend;步骤(74):采用逆运动学方法计算新的三维人体姿态模型;逆运动学计算方法为:
其中 表示约束条件,即为所述的第ti帧末端关节的目标位置; 表
示在 约束条件下使用逆运动学方法计算人体姿态; 为计算得到的新的人体姿
态,其中 分别表示了新的关节点位置;步骤(75):计算姿态偏移
,姿态偏移 表示每个关节点的位置偏移向量,计算方法如下:
,其中
为新的关节点位置, 为原关节点位置;步骤(76):在帧t∈(ti-range,
ti+range)的范围,插值计算新的三维人体姿态,新的三维人体姿态计算方法为:
[0048] 其中range为影响区域。
[0049] 有益效果:本发明公开了一种支持动画设计师以草绘方式进行三维动画姿态建模的技术方案,本发明与已有方法相比具有以下优点:1、通过对动画师在二维平面绘制的人体轮廓进行人体结构解析和姿态参数获取,直接生成三维人体姿态模型,有效支持动画师的平面化快速三维人体姿态设计;2、通过将三维姿态模型投影到二维平面,支持用户通过在二维平面进行骨架姿态、骨架长度和骨架轮廓的草绘交互,实现三维人体姿态模型的二维控制,有效支持动画师的平面化三维人体姿态编辑;3、基于核规约的运动插值动画生成方法可以有效生成平滑的人体动画,基于逆运动学的运动编辑和调整方法能有效提高动画生成的灵活性。附图说明
[0050] 下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0051] 图1为本发明主要流程图
[0052] 图2为本发明中人体关节点定位和骨架结构解析过程。
[0053] 图3为本发明中基于模板形变的人体姿态模型生成过程。
[0054] 图4为本发明骨架空间位置编辑过程。
[0055] 图5为本发明骨架长度编辑和骨架外观轮廓编辑过程。具体实施方式:
[0056] 本发明公开了一种采用手绘的三维动画姿态建模的方案,包括以下步骤:
[0057] 步骤一,人体姿态模型生成:解析输入的人体轮廓草图,采用模板形变方法生成三维人体姿态模型,具体包括以下步骤:
[0058] 步骤(11),草图处理与人体关节点定位:判断草图的有效性;解析人体轮廓草图,初始化初始关节点位置;根据关节点连接关系定位关节点;
[0059] 步骤(12),姿态参数提取:识别人体骨架结构;根据人体骨架模板和人体姿态约束,解析骨架姿态;通过人体轮廓草图解析,获取骨架轮廓特征;
[0060] 步骤(13),基于姿态模板形变的姿态生成:根据草图提取的姿态参数对姿态模板进行调整;根据姿态模板形变生成三维人体姿态模型;
[0061] 步骤二,人体姿态模型编辑:选择视角将三维人体姿态模型组件化投影到二维平面;通过解析输入的姿态交互笔画,获取姿态调整信息,对三维人体姿态模型的骨架姿态、骨架长度和骨架轮廓进行编辑,生成新的三维人体姿态模型;采用人体姿态模型编辑方法,生成多个三维人体姿态模型的关键帧;
[0062] 步骤三,运动生成与编辑:采用基于核规约的运动插值方法生成三维人体动画;调整三维人体动画的中间帧姿态模型,采用运动平滑方法得到新的三维人体动画。
[0063] 更具体地说,本发明提出一种支持动画设计师以草绘方式进行三维人体姿态建模的方案,其实施主要涉及人体姿态模型生成、姿态模型编辑以及运动生成与编辑三大关键技术,处理流程如图1所示。在姿态生成中:首先,采用基于引模型的笔划分割方法对用户输入的草图进行预处理,判断输入草图的有效性;采用最小外接矩形法获取人体初始化关节点位置;利用关节点定位方法定位人体关节点;其次,解析输入的人体轮廓草图,获取人体姿态参数,包括人体的骨架结构、骨架姿态和骨架轮廓特征;最后,生成三维人体姿态模型。在姿态编辑中:首先,将人体姿态模型组件化投影到二维平面;通过二维草绘交互方式修改三维人体骨架空间位置,并对人体骨架长度和骨架外观轮廓进行格化编辑。在运动生成和编辑中:采用基于核规约的运动插值方法,对各关键帧姿态进行插值生成三维人体动画;通过草绘交互调整人体运动的若干关键帧,采用逆运动学方法计算新的关键帧姿态;采用运动平滑方法得到新的人体姿态运动。
[0064] 下面分别介绍各实施例部分的主要流程:
[0065] 1、姿态生成
[0066] 基于用户输入的人体轮廓草图,通过草图预处理、人体关节点定位、人体姿态参数提取、基于姿态模板形变的姿态生成等步骤生成三维人体姿态模型,以支持用户的动画设计。
[0067] 1.1草图处理与关节点定位
[0068] 该步骤的任务是从草图中提取出人体的关节点具体位置,具体实施步骤包括草图有效性判断、关节点初始化、关节点定位。
[0069] 1.1.1人体草图有效性判断
[0070] 本发明采用的草图输入设备为鼠标或手写板,由于用户绘制的草图具有随意性和模糊性特点,因此首先要对草图进行预处理,判断用户输入的人体草图的有效性。
[0071] 本发明中用户输入的人体草图由10个人体草图组件组成,分别为头部、躯干、上肢(大臂和小臂)和下肢(大腿和小腿),每一草图组件由一条连贯笔画表示,如图2a所示。用户提交的草图是一张矢量图S,可表示为笔划序列的集合,即S=(S1,S2...,S10),其中Si为用户绘制的笔画,i=1,2,...,10。每一笔画为连续的采样点序列,表示为Si={pj|pj=(xj,yj),j=1,...,Mi},其中,pj表示笔画中第j个采样点,xj和yj表示第j个采样点的位置,Mi为该笔画总的采样点数。
[0072] 本发明中,人体草图有效性的判断方法为:采用基于引力模型的笔划分割方法,识别用户输入的人体轮廓草图中草图组件个数,如果解析得到10个草图组件(分别代表了人体头部、躯干和四肢),则认为输入的草图是有效的,否则草图输入无效,提示用户重新输入。
[0073] 1.1.2关节点定位
[0074] 关节点定位的主要处理流程是:对于草图组件,首先采用最小外接矩形法获取人体关节点初始位置集合 其中点 和点 表示了草图组件Si对应的两个初始关节点,如图2b所示;其次,根据初始关节点位置,利用人体结构学信息和关节点连接关系对人体各关节点定位,得到人体各关节点位置集合J={Jn|n=1,2,...,14},其中Jn表示了人体第n个关节点的位置,如图2c所示。
[0075] 其中,基于最小外接矩形法获取初始关节点位置的计算方法是:
[0076] 步骤1:对于一个草图组件Si={pj|pj=(xj,yj),j=1,...,Mi},计算该草图组件中各采样点的中心点坐标Oi(xo,yo),计算方法是 其中xj和yj表示组件Si上第j个采样点的位置,Mi为组件Si总的采样点数。
[0077] 步骤2:将草图组件绕中心点Oi(xo,yo)逆时针方向旋转n度,得到新的草图组件,计算新草图组件的外接矩形的面积,记为An;
[0078] 其中,旋转的度数n为π的约数,草图旋转方法为将草图Si中所有采样点绕Oi(xo,yo)旋转;单个采样点旋转表示为旋转函数R(pj,Oi,α),即对草图组件中的一个采样点pj(xj,yj)绕中心点Oi(xo,yo)顺时针旋转α度得到p′j(x′j,y′j),所述p′j(x′j,y′j)计算方法为:
[0079]
[0080] 其中, 为该采样点pj(xj,yj)到中心点Oi(xo,yo)的距离;
[0081] 草图组件的外接矩形面积计算方法为:计算草图组件Si所有采样点的横坐标xj和纵坐标yj的最大值xmax和ymax,最小值xmin和ymin,则草图组件Si的外接矩形面积为A=(xmax-xmin)(ymax-ymin);
[0082] 步骤3:逐次旋转草图组件,直至旋转π度,计算每次旋转后的草图组件的外接矩形的面积,记为Aθ,其中θ为旋转的角度,则得到对应的草图组件的外接矩形面积序列Aθ(An,A2n,...,Aπ)。
[0083] 步骤4:计算Aθ(An,A2n,...,Aπ)中面积的最小值,记为Aω,其中ω为对应取最小面积的旋转角度;
[0084] 步骤5:确定草图组件Si对应的初始关节点 和初始关节点 。根据旋转ω度的草图组件Si,以及草图组件Si采样点的横坐标xj和纵坐标yj的最大值和最小值计算关节点初始位置的方法为:
[0085] 如果|xmax-xmin|<|ymax-ymin|,则初始关节点分别为点((xmax+xmin)/2,ymax)和点((xmax+xmin)/2,ymin)绕中心点顺时针旋转ω度得到的点,即初始关节点 和初始关节点分别为:
[0086]
[0087] 如果|xmax-xmin|>|ymax-ymin|,则初始关节点分别为点((ymax+ymin)/2,xmin),和点((ymax+ymin)/2,xmax)绕中心点顺时针旋转ω度得到的点,即初始关节点 和初始关节点分别为:
[0088]
[0089] 步骤6:对人体每个草图组件重复步骤1~步骤5,得到初始关节点位置集合其中点 和点 表示草图组件Si对应的两个初始关节点。
[0090] 人体关节点定位方法具体包括以下步骤:
[0091] 步骤1:在初始关节点位置集合 中,计算得到纵坐标最小的关节点 ,以及与关节点 相关联的关节点 ;从初始关节点位置集合P中删除关节点
,并在新的关节点位置集合P中计算距离关节点 欧氏距离最近的关节点,将该关节点标记为J1,并从集合P中删除关节点J1;
[0092] 步骤2:在初始关节点位置集合P中计算距离关节点J1欧氏距离最近的两个关节点,分别标记为关节点J3和关节点J4;对与关节点J1相关联的关节点,计算与其欧氏距离最近的两个关节点,分别标记为关节点J5和关节点J6;从初始关节点位置集合P中删除关节点J3、关节点J4、关节点J5和关节点J6;
[0093] 步骤3:对于与关节点J3相关联的关节点Pi,计算与其欧氏距离最近的关节点Pj,将与关节点Pj相关联的关节点标记为J7,同时生成新的关节点生成关节点J8,关节点J8的位置为关节点Pi和关节点Pj的中点;从初始关节点位置集合P中删除关节点Pi、关节点Pj以及关节点J7;
[0094] 步骤4:对于关节点J4、关节点J5和关节点J6采用步骤3的计算方法,分别生成关节点J9、关节点J10、关节点J11、关节点J12、关节点J13以及关节点J14;由此得到人体关节点位置集合J={Jn|n=1,2,...,14}。
[0095] 1.2姿态参数提取
[0096] 从草图提取的人体姿态参数包括:人体的骨架结构特征、骨架姿态特征和骨架轮廓特征。
[0097] 1.2.1骨架结构解析
[0098] 对于识别的人体关节点位置和骨架,根据人体结构学信息,利用的人体各关节点的相对位置关系和连接关系,可识别人体关节点名称和识别骨架结构,具体过程是:
[0099] 步骤1:在已识别的人体关节点位置集合J={Jn|n=1,2,...,14}中,默认位置最上点为颈部(NEK)节点;
[0100] 步骤2:与颈部节点位置最相近的分别为左肩(LSH)节点和右肩(RSH)节点,本发明默认用户绘制的人体为正面,因此设定平距离靠左的为右肩节点,另一个为左肩节点;
[0101] 步骤3:与左肩和右肩相连的节点分别为左肘(LEB)节点和右肘(REB)节点,与左肘节点和右肘节点相连的分别是左手节点(LWR)和右手节点(RWR);
[0102] 步骤4:与颈部节点相连的是根(ROOT)节点;
[0103] 步骤5:与根节点位置最相近的分别为左股(LNP)节点和右股(RNP)节点,同步骤2,设定水平距离靠左的为右股节点,另一个为左股节点;
[0104] 步骤6:与左股和右股节点相连的节点分别为左膝(LKN)节点和右膝(RKN)节点,与左膝节点和右膝节点相连的分别是左脚(LAK)节点和右脚(RAK)节点;
[0105] 步骤7:本发明中,由于在人体胸部和腹部的生成方法不一样,因此设置了人体的腰部节点(WST),其位置为颈部节点和跟节点的中点;
[0106] 步骤8:为了满足人体左右肩相对与颈部的距离对称,以及左右股相对与根节点的位置对称,本发明将颈部节点调整到左右肩节点的中点位置,根节点的调整调整为左右股节点的中点位置;
[0107] 步骤9:将对应的关节点相连即得到了人体的骨架。
[0108] 根据以上步骤:可以实现人体关节点和人体骨架的识别,本发明最终的关节点和骨架结构识别结果如图2d所示。
[0109] 1.2.2骨架姿态解析
[0110] 基于人体模板和当前识别的草图人体骨架,可以识别人体骨架的空间位置信息即人体姿态,其主要思想是:假设草图人体骨架和人体模板骨架具有一致的骨架长度,则根据单段骨骼的两端关节点在正视图下的投影位置确定该骨骼段两端关节点的深度差,并根据人体关节点的自由度限制确定深度关系。在本发明中,人体各关节点的深度关系定义为:人体NEK、WST、ROOT关节点深度为0,LSH和LNP相对于RSH和RNP为正,LEB和REB相对
与LSH和RSH为正,LWR和RWR相对与LEB和REB深度为正,LKN和RKN相对与LNP和RNP
为正,LAK和RAK相对于LKN和RKN为负。因此,人体各关节点的空间位置关系解析方法如下:
[0111] 步骤1:计算草图中人体主干长度,即关节点NEK和ROOT之间的距离,记为LSketch(NEK,ROOT);
[0112] 步骤2:计算人体模型中人体主干长度,记为LModel(NEK,ROOT),并由此计算草图与模型的比例关系χ,
[0113] 步骤3:以根节点ROOT和NEK节点为父节点,根据定义的深度关系,依次求得与其相连的子节点的空间位置,直到求的人体上肢和下肢所有关节点的空间位置。
[0114] 对于关节点P1和P2,已知父节点P1的空间位置P1(x1,y1,z1)和子节点P2的平面位置P2(x2,y2),确定子节点P2空间位置z2的方法为:
[0115] 步骤1:计算关节点P1和P2的深度差:
[0116]
[0117] 其中, 为P1和P2两关节点在人体草图中的距离,LModel(P1,P2)为P1和P2两关节点在人体模型中的距离;
[0118] 步骤2,根据P1和P2的约束关系确定P2的深度值z2。如果P2相对与P1的深度值为正,则z2=z1+Δ(z1,z2);如果P2相对与P1的深度值为负,则z2=z1-Δ(z1,z2)。
[0119] 1.2.3骨架轮廓解析
[0120] 为了将草图人体轮廓特征映射到三维人体姿态模型中,本发明从草图获取骨骼轮廓特征,并将其映射到皮肤模板上,如图3a所示,描述如下:
[0121] 步骤1:对于身体组件Si={pj|pj=(xj,yj),j=1,...,Mi},求该组件对应骨骼Bi的N等分点(本实施例中N取6),记为P1,P2,...,P6;
[0122] 步骤2:在骨骼段Bi的等分点Pj处作垂直于骨骼段Bi的直线Lj,计算直线Lj与组件左右轮廓的交点之间的距离 和
[0123] 步骤3:对骨骼段Bi的每个等分点做步骤2的计算,得到所有的左右轮廓线到骨骼的距离,分别记为 和
[0124] 步骤4:重复步骤1~4,对人体四肢和主干9个组件进行以上轮廓特征提取操作,得到人体外观特征
[0125] 1.3基于姿态模板形变的三维人体姿态模型生成
[0126] 本发明采用了文献1基于模板形变的三维人体姿态模型生成方法,人体姿态模型的生成过程是:从草图提取人体骨架结构特征、骨架姿态特征、骨架轮廓特征,利用定义的人体姿态模板,通过对人体模板的骨架模板和外观轮廓模板的形变,实现三维人体姿态建模,外观轮廓模板形变过程如图3b所示。本发明中,通过骨架结构解析、骨架姿态解析、骨架轮廓特征解析提取姿态建模所需的参数,基于文献1的方法,直接生成三维人体姿态模型。
[0127] 2、姿态编辑
[0128] 关键帧动画是动画设计的基本形式,本发明通过对人体姿态模型进行姿态编辑生成多个关键姿态帧,以满足关键帧动画设计的需要。本发明实现了多视角下的姿态关键帧编辑生成。本发明姿态编辑具体包括:骨架的空间位置编辑、骨架长度编辑和骨架外观轮廓编辑。具体实施描述如下:
[0129] 2.1骨架空间位置编辑
[0130] 人体姿态的编辑实际是对人体关节点和骨架空间位置的调整,本发明首先将人体姿态模型的轮廓投影到二维平面,用户只需在二维平面对人体组件投影进行草绘交互编辑,系统通过解析用户输入的骨架空间位置编辑笔画,实现对三维人体姿态模型的骨架空间位置编辑。本发明基于二维草绘交互编辑三维人体姿态模型骨架空间位置的方法描述如下:
[0131] 步骤1:将人体姿态模型的各身体组件的外轮廓投影到二维平面。具体投影方法为:对人体模型的各个身体组件,计算其网格点坐标在二维平面投影的最外轮廓坐标,并将组件的外轮廓投影点相连得到人体组件的外轮廓,形成人体模型的组件化外轮廓投影。如图4所示,图4a为生成的人体姿态模型,图4b为采用步骤一计算得到的人体姿态模型的投影。
[0132] 步骤2:用户在二维投影平面输入骨架空间位置编辑笔画。用户输入骨架空间位置编辑笔画,如图4c所示的虚线笔画。用户输入的笔画是对关节点位置的调整,从而实现姿态的编辑。在本发明中,用户的交互笔画可以实现下面三种类型的姿态调整:第一,人体小手臂和小腿分别绕肘关节点和膝关节点转动;第二,整个手臂和腿分别绕肩关节点和跨关节点转动;第三,人体上半身绕根节点转动。
[0133] 步骤3:骨架空间位置编辑笔画解析。对用户输入的用于调整骨架空间位置的笔画进行解析。
[0134] 步骤(31):对于用户输入的骨架空间位置编辑笔画,首先计算笔画的起始点Pstart和终止点Pend的位置,并查找距离起始点Pstart距离最近的关节点记为P1。
[0135] 步骤(32):当P1为人体末关节点,即为L/RWR或L/RAK时,符合步骤2中的第一种类型,则只需调整L/RWR或L/RAK的位置;当P1为人体中间关节点,即为L/REB或L/RKN时,符合步骤2中的第二种类型,则需要调整L/REB、L/RWR或L/RKN、L/RAK的位置;当P1为NEK节点时,符合步骤2中的第三种类型,则需要对NEK、WST和所有上身节点进行位置调整。
[0136] 步骤4:新的关节点位置计算。根据交互笔画的解析结果,计算修改后的新的关节点的位置,如图4d所示,为计算得到的新的人体投影。
[0137] 步骤(41):在第一种类型下,只需计算末端关节点P1(x1,y1,z1)的新位置P′1(x′1,y′1,z′1),计算方法如下:设各点坐标分别为P0(x0,y0,z0),P1(x1,y1,z1),Pend(xe,ye,ze),其中P0(x0,y0,z0)为旋转的支点,Pend(xe,ye,ze)为交互笔画的终止点,P1(x1,y1,z1)为与Pend(xe,ye,ze)最近邻的关节点,设Pend和P0的深度值相等,即ze=z0,则P1(x1,y1,z1)调整后的新坐标P′1(x′1,y′1,z′1)为:
[0138] P′1(x′1,y′1,z′1)=(P0P1×(xe-x0)/P0Pe+x0,P0P1×(ye-y0)/P0Pe+y0,z1)[0139] 其中, 表示Pend和P0之间的距离;
[0140] 表示P1和P0之间的距离。
[0141] 步骤(42):在第二、三种类型下要计算中间节点P1(x1,y1,z1)的新位置P′1(x′1,y′1,z′1)和末端节点P2(x2,y2,z2)的新位置P′2(x′2,y′2,z′2),计算方法如下:设各点坐标分别为P0(x0,y0,z0),P1(x1,y1,z1),P2(x2,y2,z2),Pend(x3,y3,z3),其中P0(x0,y0,z0)为旋转的支点,Pend(xe,ye,ze)为交互笔画的终止点,P1(x1,y1,z1)为与Pend(xe,ye,ze)最近邻的关节点,P2(x2,y2,z2)为与P1(x1,y1,z1)相连的末节点,设Pend和P0的深度值相等,即ze=z0,则P1(x1,y1,z1)和P2(x2,y2,z2)调整后的新坐标P′1(x′1,y′1,z′1)和P′2(x′2,y′2,z′2)分别为:
[0142] P′1(x′1,y′1,z′1)=(P0P1×(xe-x0)/P0Pe+x0,P0P1×(ye-y0)/P0Pe+y0,z1)[0143] P′2(x′2,y′2,z′2)=(x0+P0P2×cosδ,y0+P0P2×sinδ,z0)
[0144] 其中δ=(x′1-x0)(x1-x0)+(y′1-y0)(y1-y0)+(z′1-z0)(z1-z0)/(P0P1×P0P′1),δ为P0P1和P0P′1之间的夹角, 表示P1和P0之间的距离;
[0145] 表示P′1和P0之间的距离;
[0146] 表示Pend和P0之间的距离;
[0147] 表示P0和P2之间的距离。
[0148] 步骤5:三维人体姿态模型骨架空间位置调整。由以1~4步骤得到新的人体姿态的每个关节点的坐标,此时再使用本发明三维人体姿态模型生成方法,可以得到新的人体姿态模型,调整结果如图4e所示。
[0149] 本发明支持用户对人体姿态模型进行视角选择,得到不同视角下的人体姿态模型的投影。通过草绘交互,用户可以调整人体以及四肢的姿态得到用户需要的人体姿态关键帧。
[0150] 2.2骨架长度编辑
[0151] 骨架长度编辑能满足风格化关键帧编辑的需要。用户在二维平面输入骨架长度编辑笔画,系统通过解析用户输入的笔画实现对骨架长度的编辑,具体实施如下:
[0152] 步骤1:将人体姿态模型的各身体组件的外轮廓投影到二维平面,如图5a为三维人体姿态模型,图5b为姿态模型的投影结果。
[0153] 步骤2:用户在二维投影平面输入骨架长度编辑笔画。骨架长度编辑笔画绘制方式为:笔画的起点为需要调整的骨骼的一个端点,终点为该关节点所要调整到的新位置,如图5b中虚线所示。
[0154] 步骤3:骨架长度编辑笔画解析。对于用户输入的骨架长度编辑笔画,首先计算笔画的起始点Pstart和终止点Pend的位置,并查找距离起始点Pstart距离最近的关节点记为P1。
[0155] 步骤4:计算新的骨架。骨架长度的调整实际上是骨架端点位置的调整,设P1和Pend的坐标分别为:P1(x1,y1,z1),Pend(xe,ye,ze),与P1相关联的子关节点包括:P1i(x1i,y1i,z1i),i=1,2,...,N,N为与P1相关联的子关节点的个数,则骨架长度调整方法为:将P1的坐标设置为Pend,同时调整与之相关联的关节点的坐标,调整后的投影如图5c所示。调整后的各关节点的坐标变化为:
[0156]
[0157] 步骤5:三维人体姿态模型骨架长度调整。由以上1~4步骤得到新的人体姿态的关节点位置,此时再使用本发明三维人体姿态模型生成方法,可以得到新的人体姿态模型,人体骨架长度编辑结果如图5d所示。
[0158] 2.3骨架外观轮廓编辑
[0159] 骨架外观轮廓编辑能满足风格化关键帧编辑的需要。用户在二维平面输入骨架外观轮廓编辑笔画,系统通过解析用户输入的笔画实现对骨架外观轮廓的编辑,具体实施如下:
[0160] 步骤1:将人体姿态模型的各身体组件的外轮廓和骨架投影到二维平面,如图5d为三维人体姿态模型,图5e为姿态模型的投影结果。
[0161] 步骤2:用户在二维投影平面输入骨架外观轮廓编辑笔画。外观轮廓编辑笔画绘制方式为:笔画的起点靠近待调整的人体组件轮廓,通过拖拽轮廓线调整轮廓,根据终点位置确定轮廓调整方式,如图5e所示中虚线为骨架外观轮廓编辑笔画,图5f为调整后的人体投影。
[0162] 步骤3:笔画解析与外观轮廓调整。
[0163] 步骤(31):对于用户输入的轮廓编辑笔画,首先计算笔画的起始点Pstart和终止点Pend的位置,计算距离起始点Pstart距离最近的轮廓所属的组件Si,该组件为需轮廓调整的组件;
[0164] 步骤(32):计算起始点Pstart和终止点Pend之间的距离LSketch和该组件骨骼长度 的比例 其中,设Pstart和Pend的坐标分别为Pstart(xs,ys)和Pend(xe,ye),则为组件Si对应的骨架的长度,χ为草图模板缩放比,计算
方法见1.2.2部分。
[0165] 步骤(33):判断轮廓修改方式。每个组件有两条轮廓线,当笔画方向指向另一条轮廓线时,表示对该组件收缩轮廓;否则,表示放大该组件轮廓。
[0166] 步骤(34):设置缩放比。当对轮廓收缩时,如果β<0.25时,皮肤模板的收缩比例μ=0.9,如果β≥0.25,μ=0.8;另外,当对轮廓放大时,如果β<0.25,皮肤模板的放大比例μ=1.1,当β≥0.25时,μ=1.2。
[0167] 步骤4:根据皮肤模板的收缩比例调整皮肤模板。人体皮肤模板由皮肤点到骨架的距离构成,通过对皮肤模板乘以缩放系数μ实现皮肤模板调整。
[0168] 步骤5:三维人体姿态模型骨架外观调整。由以上1~4步骤得到新的人体姿态的外观特征,接着使用本发明三维人体姿态模型生成方法,可以得到新的人体姿态模型。人体骨架外观轮廓编辑结果如图5g所示。
[0169] 3、运动生成和编辑
[0170] 对于姿态编辑生成的多关键帧姿态,本发明采用基于核规约的方法插值生成人体姿态动画;对于生成的人体动画,用户可以通过草绘交互方式进行运动的编辑。
[0171] 3.1运动插值生成
[0172] 通过对原人体姿态模型进行姿态编辑可以得到一系列的姿态关键帧,每一帧包含了人体的姿态数据,包括每个关节点的三维位置,骨架长度,每个身体组件的皮肤模板距离,以及对应的帧序列号等。基于关键帧的人体动画生成可描述为:对于长度为T帧的动画序列,给出其中N帧的姿态数据,通过运动插值,求得所有T帧的姿态数据的过程。
[0173] 本发明使用的人体骨架包括15个关节点,动画的每帧可以各关节点的位置数据表示,因此对于包含了T帧的动画序列,人体动画表示为: t=1,2,...,T,其中 表示了第t帧的第i个关节点的位置,t表示了动画帧的
序号,T为总的帧的数目。
[0174] 核规约(Kernel Regression)运动插值方法基本思想是动画每一帧的运动数据都是其他各关键帧的运动数据的加权求和,其权重采用核函数表示为:
[0175]
[0176] 其中KW为核函数的宽度,本实施例中KW=T/32,Xt表示运动数据帧的序号,Xt∈{1,2,...,T};则插值得到的各帧的姿态数据为:
[0177] 其中为上述关键帧的权重, 为第Xi个关键帧的姿态数据,Xi为关键帧的序号,j=1,2,...,
15表示第j个关节点
[0178] 3.2运动编辑
[0179] 交互式运动编辑的过程是:用户选定运动姿态(序列的某一帧)并对人体关键部位(主要是头、手和脚)末端关节进行运动和姿态的直接操纵,进而应用逆运动学方法按用户交互要求进行人体姿态调整,最终采用线性插值方法平滑和更新人体运动数据。具体包括以下步骤:
[0180] 步骤1:对于三维人体动画 t=1,2,...,T,选定ti时刻的帧 作为待调整的关键帧;
[0181] 步骤2:输入姿态调整笔画:将选定的三维人体姿态模型投影到二维平面;输入姿态调整笔画,笔画的起点为需要调整的人体末关节点,笔画的终点为该末关节点的新位置;
[0182] 步骤3:运动编辑笔画解析。首先计算笔画的起始点Pstart和终止点Pend的位置,并查找距离起始点Pstart距离最近的关节点记为P1,将P1的目标位置调整到Pend;
[0183] 步骤4:采用逆运动学方法计算新的三维人体姿态模型;
[0184] 逆运动学计算方法为: 其中表示一个约束条件,这里指第ti帧用户设置的末端关节的目标位置; 表
示在该约束条件下使用逆运动学方法计算人体姿态; 为计算得到的新的人体姿态,
其中 分别表示了新的关节点位置;
[0185] 本发明采用了文献4(Paolo Baerlocher,Ronan Boulic,An inverse kinematics architecture enforcing an arbitrary number of strict priority levels,The Visual Computer:International Journal of Computer Graphics,v.20n.6,pp.402-417,August2004.)提出的多重优先级逆运动学方法。逆运动学姿态计算方法的输入为原始关节点的位置 以及姿态约束 ,输出为新的关节点的位置
[0186]
[0187] 步骤5:计算姿态偏移 ,其表示了每个关节点的位置偏移向量,计算方法如下: 其中
为新的关节点位置, 为原关节点位置;
[0188] 步骤6:在帧t∈(ti-range,ti+range)的范围,插值计算新的姿态,新的姿态计算方法为 其中range为影响区域,本实施例中取range=15;
[0189] 经过以上1~6步骤处理,可以到的新的三维人体动画,实现对人体运动的编辑。
[0190] 本发明提供了一种采用草绘的三维动画姿态建模方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈