群体动画运动控制系统及方法

文档序号:6425804阅读:233来源:国知局
专利名称:群体动画运动控制系统及方法
技术领域
本发明涉及一种群体动画运动控制系统及方法,属于自主智能体动画技术领域。
背景技术
群体动画的运动控制方法主要为强调群体性和可控性的自上而下方法和强调个体自主性的自下而上方法两种。自上而下的方法先由动画师确定群体的行为,并由群体行为决定个体的行为。而自下而上的方法中,个体自主地确定运动行为,所有个体的自主运动决定群体性。目前,群体动画运动控制中可控性的研究往往忽略了自主性要求,难以达到真实的运动模拟效果,对实时交互控制的研究也较少;而对自主性为主的运动控制研究,又缺乏动画师的交互控制,动画师仅能控制群体运动的目标,很难预知群体的运动趋势。

发明内容
为了解决上述问题,本发明提出了一种群体动画运动控制系统及方法,将自主性与可控性的两种群体动画的运动控制方法相结合,在没有动画师干预的情况下,群体可以根据路径规划的结果自主地运动,而当动画师需要对运动进行干预时,则可以实时地改变群体的运动路径和个体运动方向,不用暂停动画就可实现运动控制中的交互操作。本发明为解决其技术问题采用如下技术方案
一种群体动画运动控制系统,包括场景划分模块、路径规划模块、群体控制模块、个体控制模块、碰撞处理模块、数学运算模块、系统模块和渲染模块,其中,场景划分模块、路径规划模块和群体控制模块顺序连接、碰撞处理模块的输入端、个体控制模块的输入端分别与群体控制模块的输出端连接,碰撞处理模块的输出端、个体控制模块的输出端分别与系统模块的输入端相连接,系统模块和渲染模块顺序连接,数学运算模块分别与群体控制模块和个体控制模块连接。所述的群体动画运动控制系统的控制方法,包括群体运动控制阶段和个体运动控制阶段,并且这两个控制阶段分别进行,
其中,所述群体运动控制阶段包括以下步骤
1)场景输入步骤,将三维场景利用平行投影投影到二维运动平面上,并进行二值化,障碍物为黑色,通行部分为白色,并存在图像文件中;
2)场景处理步骤,包括分割步骤、节点存储步骤和邻域查找步骤;
3)路径规划步骤,确定起始点和目标点,用人工智能中的搜索算法搜索群体的运动路径,完成路径规划;
4)运动曲线生成步骤,用分段三次Bezier曲线连接搜索到的路径节点,进行平滑处
理;
5)运动曲线编辑步骤,动画师根据需求编辑生成的运动曲线; 其中,所述个体运动控制阶段包括以下步骤
1)运动分量计算步骤,根据群体的运动路径,确定中心控制点,计算个体运动的引导分量和范围保持分量;
42)运动分量加权叠加步骤,动画师确定引导分量和范围保持分量的权值,并将两分量加权后进行叠加;
3)个体间碰撞检测步骤,采用弓丨力和斥力法实现个体间的碰撞检测;对于每个个体,碰撞处理模块先确定其在引力和斥力的有效范围内的其他个体,计算该个体与其他个体间的距离,并根据该距离计算各自所受的引力或者斥力所产生的速度分量,过于靠近则产生斥力生成相互远离的运动分量,以避免碰撞,反之则产生引力生成相互靠近的运动分量;
4)个体与障碍物碰撞检测步骤,根据上述运动分量计算步骤、运动分量加权叠加步骤和个体间碰撞检测步骤生成的个体速度,碰撞处理模块计算下一帧中每个个体的位置并判断是否与障碍物发生碰撞,若判断某个个体即将发生碰撞,则对该个体执行紧急避障过程;
5)实时控制步骤,动画师确定交互控制的权值,系统模块判断并接受动画师通过键盘输入的控制指令,生成方向分量,进行加权操作后与个体运动控制模块所生成引导分量进行叠加,生成新的引导分量以改变个体的运动。所述群体运动控制阶段步骤2)场景处理步骤中,
所述的分割步骤,对场景进行四叉树分割,得到场景节点并利用Morton码对场景节点进行编码,从左上开始直到左下按顺时针的方向分别标记位置码,同时将叶节点标示为可通行或障碍物;
所述的节点存储步骤,用Vector容器存储分割步骤中所得到的所有叶节点,包括叶节点的位置编码、所表示的场景区域以及是否通行的信息;
所述的邻域查找步骤,对存储的每个可通行的节点,利用编码转换的方法查找其在场景中东南西北方向上的邻域节点,并存在Vector容器中对应的节点的位置。所述的个体运动控制阶段的步骤2)中,引导分量和范围保持分量的权值取值范围分别为
以及
,并且两者的和必须满足小于等于1。所述的个体运动控制阶段的步骤3)或者步骤4)中的个体采用圆柱体包围盒。所述的个体运动控制阶段的步骤4)中的障碍物采用长方体包围盒。所述的个体运动控制阶段的步骤3)中所述引力和斥力的有效范围为1. ,引力和斥力所生成的速度分量方向均为两个个体的中心连线方向。所述的个体运动控制阶段中,在执行步骤5)实时控制步骤的同时也需执行步骤 3)个体间碰撞检测步骤和步骤4)个体与障碍物碰撞检测步骤,若检测到动画师的交互控制会导致碰撞,则检测出会发生碰撞的个体不响应该控制指令,即对该个体不执行引导分量和控制分量的叠加操作。本发明的有益效果如下
本发明将群体的运动控制和个体的运动控制分开进行,使得动画师在制作过程中可以对群体的运动趋势有整体的把握,同时也提高了个体的各个运动分量的计算效率,提高了运动控制的效率。在个体运动控制方面,各个运动分量的计算只需经过简单的线性计算就可完成,在每帧动画中都可以动态生成,动画师可以在运动模拟的过程输入相应的方向矢量就可以很容易地改变群体的运动路径和每个个体的速度方向。每个个体的运动分量都可以自主生成,既实现了群体的自主性运动又提出了一种实时交互控制的方案,既体现了群体动画运动控制的自主性,又体现了可控性。


图1群体动画控制运动控制系统的模块连接图。
具体实施例方式
下面结合附图对本发明创造做进一步详细说明。如图1为群体动画控制运动控制系统的模块连接图。该系统包括场景划分模块、 路径规划模块、群体控制模块、个体控制模块、碰撞处理模块、数学运算模块、系统模块和渲染模块,其中,场景划分模块、路径规划模块和群体控制模块顺序连接、碰撞处理模块的输入端、个体控制模块的输入端分别与群体控制模块的输出端连接,碰撞处理模块的输出端、 个体控制模块的输出端分别与系统模块的输入端相连接,系统模块和渲染模块顺序连接, 数学运算模块分别与群体控制模块和个体控制模块连接。所述的群体动画运动控制系统的控制方法,包括群体运动控制阶段和个体运动控制阶段,并且这两个控制阶段分别进行,
其中,所述群体运动控制阶段包括以下步骤
1)场景输入步骤,将三维场景利用平行投影投影到二维运动平面上,并进行二值化,障碍物为黑色,通行部分为白色,并存在图像文件中;
2)场景处理步骤,包括分割步骤、节点存储步骤和邻域查找步骤;
3)路径规划步骤,确定起始点和目标点,用人工智能中的搜索算法搜索群体的运动路径,完成路径规划;
4)运动曲线生成步骤,用分段三次Bezier曲线连接搜索到的路径节点,进行平滑处
理;
5)运动曲线编辑步骤,动画师根据需求编辑生成的运动曲线; 其中,所述个体运动控制阶段包括以下步骤
1)运动分量计算步骤,根据群体的运动路径,确定中心控制点,计算个体运动的引导分量和范围保持分量;
2)运动分量加权叠加步骤,动画师确定引导分量和范围保持分量的权值,并将两分量加权后进行叠加;
3)个体间碰撞检测步骤,采用弓丨力和斥力法实现个体间的碰撞检测;对于每个个体,碰撞处理模块先确定其在引力和斥力的有效范围内的其他个体,计算该个体与其他个体间的距离,并根据该距离计算各自所受的引力或者斥力所产生的速度分量,过于靠近则产生斥力生成相互远离的运动分量,以避免碰撞,反之则产生引力生成相互靠近的运动分量;
4)个体与障碍物碰撞检测步骤,根据上述运动分量计算步骤、运动分量加权叠加步骤和个体间碰撞检测步骤生成的个体速度,碰撞处理模块计算下一帧中每个个体的位置并判断是否与障碍物发生碰撞,若判断某个个体即将发生碰撞,则对该个体执行紧急避障过程;
5)实时控制步骤,动画师确定交互控制的权值,系统模块判断并接受动画师通过键盘输入的控制指令,生成方向分量,进行加权操作后与个体运动控制模块所生成引导分量进行叠加,生成新的引导分量以改变个体的运动。所述群体运动控制阶段步骤2)场景处理步骤中, 所述的分割步骤,对场景进行四叉树分割,得到场景节点并利用Morton码对场景节点进行编码,从左上开始直到左下按顺时针的方向分别标记位置码,同时将叶节点标示为可通行或障碍物;
所述的节点存储步骤,用Vector容器存储分割步骤中所得到的所有叶节点,包括叶节点的位置编码、所表示的场景区域以及是否通行的信息;
所述的邻域查找步骤,对存储的每个可通行的节点,利用编码转换的方法查找其在场景中东南西北方向上的邻域节点,并存在Vector容器中对应的节点的位置。所述的个体运动控制阶段的步骤2)中,引导分量和范围保持分量的权值取值范围分别为
以及
,并且两者的和必须满足小于等于1。所述的个体运动控制阶段的步骤3)或者步骤4)中的个体采用圆柱体包围盒。所述的个体运动控制阶段的步骤4)中的障碍物采用长方体包围盒。所述的个体运动控制阶段的步骤3)中所述引力和斥力的有效范围为1. ,引力和斥力所生成的速度分量方向均为两个个体的中心连线方向。所述的群体运动控制阶段的步骤2)场景处理步骤中,节点存储步骤将每个叶节点的相关信息存储到所述的场景分割模块中所述的Vector容器中,所述相关信息包括节点在Vector容器中的位置号、节点的位置编码、所包含区域的左上角点坐标和右下角点坐标、所在的层、节点是障碍物节点还是可通行节点、可通行节点在东南西北方向上的邻域节
点ο所述的群体运动控制阶段的步骤2)场景处理步骤中,分割步骤中从左上开始直到左下按顺时针的方向分别标记位置码,分别为1,2,3,4。所述的群体运动控制阶段2)场景处理步骤中,,邻域查找步骤所述的邻域指某个可通行节点在东南西北四个方向上的可通行邻域节点,对每个可通行节点,利用编码转换规则先求出其在各个方向上的相同大小的邻域节点的编码,之后在所述的Vector容器中查找,若有则记录其在Vector容器的位置号,否则在Vector容器中查找是否存在其子节点或父节点,若查找到则记录所述Vector容器的位置号,没有则说明在该方向上邻域不存在。所述的群体运动控制阶段2)场景处理步骤中,,邻域查找步骤中的编码转换规则为,求东邻域或西邻域,编码值1和2互相转换,编码值3和4相互转换;求南邻域或北邻域,编码值2和3互相转换。求出其在各个方向上的相同大小的邻域节点的编码,具体步骤为
求东邻域,若编码值末位为1或4,则对该位进行相应的编码转换,求解结束,若编码值末位为2或3,则对该位进行相应的编码转换,去掉末位后再进行判断求解;
求南邻域,若编码值末位为1或2,则对该位进行相应的编码转换,求解结束,若编码值末位为3或4,则对该位进行相应的编码转换,去掉末位后再进行判断求解;
求西邻域,若编码值末位为2或3,则对该位进行相应的编码转换,求解结束,若编码值末位为1或4,则对该位进行相应的编码转换,去掉末位后再进行判断求解;
求北邻域,若编码值末位为3或4,则对该位进行相应的编码转换,求解结束,若编码值末位为1或2,则对该位进行相应的编码转换,去掉末位后再进行判断求解。所述的群体运动控制阶段的步骤3)的路径规划步骤,采用A*算法完成全局路径规划,A*算法的启发式函数用当前点和目标点的欧几里得距离表示,搜索到的路径节点用
7链表存储在所述的群体控制模块中。所述的个体运动控制阶段的步骤1)运动分量计算步骤中,将路径规划模块所生成的群体运动曲线作为输入存储到所述的个体运动控制模块中。个体运动控制模块根据该运动曲线以及群体所处位置的中心,在曲线上设定中心控制点,取曲线在该点处的切向方向为引导分量的方向,大小则由动画师事先输入,生成引导分量。个体运动控制模块计算每个个体离中心控制点的距离,根据该距离计算每个个体范围保持分量的大小。所述的个体运动控制阶段的步骤1)运动分量计算步骤中,确定中心控制点,其确定规则为选取运动曲线起始点为第一个中心控制点,其后每个中心控制点都与前一个中心控制点在曲线上相隔ν匪的长度,其中,所述指群体最大的运动速率,由动画师指定。所述的个体运动控制阶段的步骤4)个体与障碍物碰撞检测步骤中,紧急避障方法的实现方法以个体当前位置/V邻域节点的中心点巧,A和当前邻域的角点A为控制顶点,生成一条Bezier曲线的局部路径。当某个体沿该曲线路径运动时,需预检测该个体下一位置与其它个体是否发生碰撞,如果检测出有碰撞发生,则将该个体的速度设为0。当个体沿该曲线路径运动到A时,再以引导分量和范围保持分量对个体进行运动控制。所述的个体运动控制阶段中,在执行实时控制步骤的同时也需执行个体间碰撞检测步骤和个体与障碍物碰撞检测步骤,若检测到动画师的交互控制会导致碰撞,则检测出会发生碰撞的个体不响应该控制指令,即对该个体不执行引导分量和控制分量的叠加操作。本发明将群体的运动控制和个体的运动控制分开进行,可以使动画师在群体运动控制阶段对群体的运动情况有整体地把握,同时也利于实现群体运动的自主性,对个体运动采用动态生成运动分量并叠加的方法进行控制,既实现了个体运动的自主性,又可以使动画师进行实时的交互控制。
权利要求
1.一种群体动画运动控制系统,其特征在于包括场景划分模块、路径规划模块、群体控制模块、个体控制模块、碰撞处理模块、数学运算模块、系统模块和渲染模块,其中,场景划分模块、路径规划模块和群体控制模块顺序连接、碰撞处理模块的输入端、个体控制模块的输入端分别与群体控制模块的输出端连接,碰撞处理模块的输出端、个体控制模块的输出端分别与系统模块的输入端相连接,系统模块和渲染模块顺序连接,数学运算模块分别与群体控制模块和个体控制模块连接。
2.一种基于权利要求1所述的群体动画运动控制系统的控制方法,其特征在于包括群体运动控制阶段和个体运动控制阶段,并且这两个控制阶段分别进行,其中,所述群体运动控制阶段包括以下步骤1)场景输入步骤,将三维场景利用平行投影投影到二维运动平面上,并进行二值化,障碍物为黑色,通行部分为白色,并存在图像文件中;2)场景处理步骤,包括分割步骤、节点存储步骤和邻域查找步骤;3)路径规划步骤,确定起始点和目标点,用人工智能中的搜索算法搜索群体的运动路径,完成路径规划;4)运动曲线生成步骤,用分段三次Bezier曲线连接搜索到的路径节点,进行平滑处理;5)运动曲线编辑步骤,动画师根据需求编辑生成的运动曲线;其中,所述个体运动控制阶段包括以下步骤1)运动分量计算步骤,根据群体的运动路径,确定中心控制点,计算个体运动的引导分量和范围保持分量;2)运动分量加权叠加步骤,动画师确定引导分量和范围保持分量的权值,并将两分量加权后进行叠加;3)个体间碰撞检测步骤,采用引力和斥力法实现个体间的碰撞检测;对于每个个体,碰撞处理模块先确定其在引力和斥力的有效范围内的其他个体,计算该个体与其他个体间的距离,并根据该距离计算各自所受的引力或者斥力所产生的速度分量,过于靠近则产生斥力生成相互远离的运动分量,以避免碰撞,反之则产生引力生成相互靠近的运动分量;4)个体与障碍物碰撞检测步骤,根据上述运动分量计算步骤、运动分量加权叠加步骤和个体间碰撞检测步骤生成的个体速度,碰撞处理模块计算下一帧中每个个体的位置并判断是否与障碍物发生碰撞,若判断某个个体即将发生碰撞,则对该个体执行紧急避障过程;5)实时控制步骤,动画师确定交互控制的权值,系统模块判断并接受动画师通过键盘输入的控制指令,生成方向分量,进行加权操作后与个体运动控制模块所生成引导分量进行叠加,生成新的引导分量以改变个体的运动。
3.根据权利要求2所述的一种群体动画运动控制系统的控制方法,其特征在于所述群体运动控制阶段步骤2)场景处理步骤中,所述的分割步骤,对场景进行四叉树分割,得到场景节点并利用Morton码对场景节点进行编码,从左上开始直到左下按顺时针的方向分别标记位置码,同时将叶节点标示为可通行或障碍物;所述的节点存储步骤,用Vector容器存储分割步骤中所得到的所有叶节点,包括叶节点的位置编码、所表示的场景区域以及是否通行的信息;所述的邻域查找步骤,对存储的每个可通行的节点,利用编码转换的方法查找其在场景中东南西北方向上的邻域节点,并存在Vector容器中对应的节点的位置。
4.根据权利要求2所述的群体动画运动控制系统的控制方法,其特征在于所述的个体运动控制阶段的步骤2)中,引导分量和范围保持分量的权值取值范围分别为W,l]以及
,并且两者的和必须满足小于等于1。
5.根据权利要求2所述的群体动画运动控制系统的控制方法,其特征在于所述的个体运动控制阶段的步骤3)或者步骤4)中的个体采用圆柱体包围盒。
6.根据权利要求2所述的群体动画运动控制系统的控制方法,其特征在于所述的个体运动控制阶段的步骤4)中的障碍物采用长方体包围盒。
7.根据权利要求2所述的群体动画运动控制系统的控制方法,其特征在于所述的个体运动控制阶段的步骤3)中所述引力和斥力的有效范围为1. ,引力和斥力所生成的速度分量方向均为两个个体的中心连线方向。
8.根据权利要求2所述的群体动画运动控制系统的控制方法,其特征在于所述的个体运动控制阶段中,在执行步骤5)实时控制步骤的同时也需执行步骤3)个体间碰撞检测步骤和步骤4)个体与障碍物碰撞检测步骤,若检测到动画师的交互控制会导致碰撞,则检测出会发生碰撞的个体不响应该控制指令,即对该个体不执行引导分量和控制分量的叠加操作。
全文摘要
一种群体动画运动控制系统及方法,属于自主智能体动画技术领域。群体动画运动控制系统包括场景划分模块、路径规划模块、群体控制模块、个体控制模块、碰撞处理模块、数学运算模块、系统模块和渲染模块。采用该控制方法,将群体运动控制阶段和个体运动控制阶段分别进行,使得动画师在制作过程中可以对群体的运动趋势有整体的把握,同时也提高了个体的各个运动分量的计算效率,提高了运动控制的效率,实现了实时交互控制的功能。
文档编号G06T13/00GK102208111SQ20111015274
公开日2011年10月5日 申请日期2011年6月9日 优先权日2011年6月9日
发明者刘惠义, 姚巍, 沈赟芳 申请人:河海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1