公开/公告号CN101739711A
专利类型发明专利
公开/公告日2010-06-16
原文格式PDF
申请/专利权人 上海视金石动画有限公司;
申请/专利号CN201010022870.0
发明设计人 徐克;
申请日2010-01-15
分类号G06T15/70(20060101);
代理机构上海硕力知识产权代理事务所;
代理人王建国
地址 201203 上海市浦东新区祖冲之路887弄88号101室
入库时间 2023-12-18 00:27:04
法律状态公告日
法律状态信息
法律状态
2019-12-20
专利权人的姓名或者名称、地址的变更 IPC(主分类):G06T13/20 变更前: 变更后: 申请日:20100115
专利权人的姓名或者名称、地址的变更
2014-10-01
专利权的转移 IPC(主分类):G06T13/20 变更前: 变更后: 登记生效日:20140904 申请日:20100115
专利申请权、专利权的转移
2012-02-15
授权
授权
2010-09-01
实质审查的生效 IPC(主分类):G06T15/70 申请日:20100115
实质审查的生效
2010-06-16
公开
公开
技术领域
本发明属于三维动画设计技术领域,涉及一种三维动画生产方法,尤其涉及一种三维动画制作中大规模群体的产生方法;此外,本发明还涉及一种三维动画制作中大规模群体的产生系统。
背景技术
在三维电影制作过程中,大规模路人群体动画的解决方案一直是复杂和高端的,例如指环王三部曲中的幽灵大军,他们的行为是通过massive软件模拟实现的。而在普通的maya平台上,仅仅有一个基于粒子表达式的crowdmaker插件对这方面作了些简单的探索。
对于大部分制作团队来讲,massive过于高端复杂并且很少有机会接触到。而在maya平台上,crowdMaker又过于简单,对于群体目标以及障碍回避的能力又不足以应付复杂的场景。
发明内容
本发明所要解决的技术问题是:提供一种三维动画制作中大规模群体的产生方法,可调节出拟真度高、足以应付复杂的场景的大规模群体。
此外,本发明还提供一种三维动画制作中大规模群体的产生系统,可调节出拟真度高、足以应付复杂的场景的大规模群体。
为解决上述技术问题,本发明采用如下技术方案:
一种三维动画制作中大规模群体的产生方法,其特征在于,所述方法包括如下步骤:
A、创建一平面;
B、在平面上创建粒子发射器,用以产生若干粒子,每个粒子代表群体中的一个个体;
C、绘制粒子的产生区域,粒子按照设定的参数出现在该区域中;
D、绘制粒子的路径,粒子将按照设置的绘制路径运动;
E、重复步骤B至步骤D,在步骤A创建的平面上创建多组群体;当出现两组以上群体碰头时,选中两组粒子,连接其交互信息,以告知这两组粒子在运动解算过程中,除了自身粒子的闪避解算外,相互之间同样解算闪避,以实现两组人群相互躲闪的行为模拟;如果不需要相互闪避解算,则可以打断所连接的交互信息,恢复独立自身的解算;
F、将所述粒子替代成群体运动的循环动画,并根据需要调整参数。
作为本发明的一种优选方案,步骤D中,以nurbs平面上的直角坐标u,v方向为基准,首先取到笔刷的方向信息,然后将两个坐标轴方向三角函数值(区间-1,1),归一化到(0,1)的坐标空间,然后映射到图像的RGB通道中的R、G通道;
蓝通道首先添满数值1,在笔刷划过的区域,则填入数值0,以供查询是否有方向信息;
在笔刷划过平面的时候,方向信息被转换成色彩信息以呈现在平面上,值在红绿两个通道的(0,1)区间中;蓝通道被填入0,表示此处有方向信息;
若笔刷没有任何方向信息,即原地停止的情况下,红绿两个值将落在(0.5,0.5)上,再加上未使用的数值为1的蓝通道,笔刷未画过的地方的值为R=0.5,G=0.5,B=1,即画路径时用于擦除路径的颜色。
作为本发明的一种优选方案,步骤E中,在每一组粒子创建的时候,赋予自定义属性,在计算的时候用于模拟群体之间,个体与个体的相互闪避,彼此交错的行为。
其中,自定义属性包括如下属性中的一个或多个:
粒子之间的排斥范围Separation Radius:有最大和最小值,每次解算将随机一个在最大最小值之间的值当作范围,当两个粒子靠近到小于这个范围的时候,粒子之间将产生一个反向排斥力,使之相互分离,粒子之间越近,排斥力越大;
粒子的运动速度Particle Speed:有最大和最小值,每次解算,将随机一个在最大最小值之间的值当作速度,粒子将以这个速度运动;方向权重A=Seek*(Min/Max):每个粒子将读取路径贴图的信息,转换成运动方向向量;而运动方向权重值将会乘在运动方向上,缩放运动方向大小,参与到最终计算中;排斥权重B=Separation*(Min/Max):针对排斥力;最终运动速度和方向公式:f=[unit(A+B)]*speedValue;
一组发射器的粒子总数Total(npc):发射器将在粒子数量到达这个值得时候停止发射粒子;
发射速率Rate(NPCs/Sec):每秒发射的数量,注意,这个数值是整个平面的发射速率,因此在画完发射区域的时候,要根据实际发射相应的调整这个值;
发射起始帧Start(Frame):由第几帧开始发射器发射粒子;
随机种子Seed:关联于粒子的属性,控制随机形式;
瞬间停止Freeze:该值为1的时候,粒子将完全静止,但对于关联粒子作用仍旧存在;
粒子替代数量Instance Num:粒子将使用替代列表中几个物体进行替代,一般和替代列表里的物体数量一致;
粒子随机算法切换Random Algorithm:提供了3种随机算法以用来粒子替代,0、1、2分别表示3种算法;
按钮Get particle parameter:连接并刷新粒子属性到设置窗口,需要先选中粒子。
作为本发明的一种优选方案,步骤F中,将所述粒子随机替代成群体运动的循环动画,并根据需要调整参数。
作为本发明的一种优选方案,步骤F中,在每一次时间向前行进一跳时,当检测到第一个粒子时,对当前的位置,速度,相互距离信息刷新;然后对于每一个粒子读取计算方向、离散、速度、闪避以及最终速度。
一种三维动画制作中大规模群体的产生方法,所述方法包括如下步骤:
A、创建一平面;
B、在平面上创建粒子发射器,用以产生若干粒子,每个粒子代表群体中的一个个体;
C、绘制粒子的产生区域,粒子按照设定的参数出现在该区域中;
D、绘制粒子的路径,粒子将按照设置的绘制路径运动;
E、重复步骤B至步骤D,在步骤A创建的平面上创建多组群体;
F、将这些粒子随机替代成群体运动的循环动画,并根据需要调整参数。
作为本发明的一种优选方案,步骤D中,当出现两组以上群体碰头的时候,设定两组群体之间的闪避交互,选中两组粒子,使用link按钮建立交互,break打断;
其中,以nurbs平面上的直角坐标u,v方向为基准,首先取到笔刷的方向信息,然后将两个坐标轴方向三角函数值(区间-1,1),归一化到(0,1)的坐标空间,然后映射到图像的RGB通道中的R、G通道;
蓝通道首先添满数值1,在笔刷划过的区域,则填入数值0,以供查询是否有方向信息;
在笔刷划过平面的时候,方向信息被转换成色彩信息以呈现在平面上,值在红绿两个通道的(0,1)区间中;蓝通道被填入0,表示此处有方向信息;
若笔刷没有任何方向信息,即原地停止的情况下,红绿两个值将落在(0.5,0.5)上,再加上未使用的数值为1的蓝通道,笔刷未画过的地方的值为R=0.5,G=0.5,B=1,即画路径时用于擦除路径的颜色。
作为本发明的一种优选方案,步骤E中,在每一组粒子创建的时候,赋予自定义属性,在计算的时候用于模拟群体之间,个体与个体的相互闪避,彼此交错的行为。
其中,自定义属性包括如下属性中的一个或多个:
粒子之间的排斥范围Separation Radius:有最大和最小值,每次解算将随机一个在最大最小值之间的值当作范围,当两个粒子靠近到小于这个范围的时候,粒子之间将产生一个反向排斥力,使之相互分离,粒子之间越近,排斥力越大;
粒子的运动速度Particle Speed:有最大和最小值,每次解算,将随机一个在最大最小值之间的值当作速度,粒子将以这个速度运动;方向权重A=Seek*(Min/Max):每个粒子将读取路径贴图的信息,转换成运动方向向量;而运动方向权重值将会乘在运动方向上,缩放运动方向大小,参与到最终计算中;排斥权重B=Separation*(Min/Max):针对排斥力;最终运动速度和方向公式:f=[unit(A+B)]*speedValue;
一组发射器的粒子总数Total(npc):发射器将在粒子数量到达这个值得时候停止发射粒子;
发射速率Rate(NPCs/Sec):每秒发射的数量,注意,这个数值是整个平面的发射速率,因此在画完发射区域的时候,要根据实际发射相应的调整这个值;
发射起始帧Start(Frame):由第几帧开始发射器发射粒子;
随机种子Seed:关联于粒子的属性,控制随机形式;
瞬间停止Freeze:该值为1的时候,粒子将完全静止,但对于关联粒子作用仍旧存在;
粒子替代数量Instance Num:粒子将使用替代列表中几个物体进行替代,一般和替代列表里的物体数量一致;
粒子随机算法切换Random Algorithm:提供了3种随机算法以用来粒子替代,0、1、2分别表示3种算法;
按钮Get particle parameter:连接并刷新粒子属性到设置窗口,需要先选中粒子。
一种三维动画制作中大规模群体的产生系统,所述系统包括:
平面创建单元,用以创建一平面;
粒子发射器创建单元,用以在平面上创建粒子发射器,用以产生若干粒子,每个粒子代表群体中的一个个体;
产生区域绘制单元,用以绘制粒子的产生区域,粒子按照设定的参数出现在该区域中;
粒子路径绘制单元,用以绘制粒子的路径,粒子将按照设置的绘制路径运动;
粒子替代单元,用以将所述粒子随机替代成群体运动的循环动画,并根据需要调整参数。
本发明的有益效果在于:本发明提出的三维动画制作中大规模群体的产生方法,该方法可基于最普通的MAYA平台,不需要任何额外软件,能非常直接的加入到大部分基于MAYA的动画生产流程;完全没有兼容性和数据过渡问题。
算法比较简单并且快速,在MAYA中能以不错的速度轻松模拟百十来人的群体行走动画。
智能化以及可调节的行为参数,带来比较真实的模拟效果,能方便的调节出拟真度媲美类似于massive专业软件的模拟效果。
相对于massive这种昂贵的专业软件对于类似情况解决方案,此方案相对来说廉价许多,并且非常容易上手。
本发明为开源设计,在本发明的基础上非常容易进行2次开发,以实现更加特别的模拟效果。
附图说明
图1为本发明三维动画制作中大规模群体的产生方法的流程图。
具体实施方式
下面结合附图详细说明本发明的优选实施例。
实施例一
本发明揭示一种略微复杂一点的群体模拟方案,吸收部分massive的特点,以crowdMaker的粒子模拟方案为基础,改进产生一种廉价,易于控制,能满足略微复杂要求的群体模拟方法和插件。
本实施例以产生大规模的人群为例介绍本发明的方法,本发明当然可以用于产生动物群、水流、车流等等。
请参阅图1,本发明三维动画制作中大规模群体的产生方法,所述方法包括如下步骤:
【步骤A】首先创建一个自带平整uv的Nurbs平面,手动也可以,利用插件也可以。
【步骤B】在平面上创建粒子发射器,绘制产生区域,此时如果点击播放按键,将看见粒子会在白色部分产生出来
【步骤C】绘制路径:并激活表达式;绘制路径的时候采用插件提供的笔刷,擦除的时候用颜色R0.5,G0.5,B1来涂抹就可以。绘制完成后,点击Active激活表达式,这个时候再点播放,粒子会按照所设置的路径运动。这时候的粒子,已经会沿着绘制的路径,相互之间自觉保持一定距离,并避开蓝色区域运动了。
在maya的crowdMaker插件中,对于粒子的目标仅仅使用了一个定位器作为所有粒子的目标,在动画桢数每向前走一帧的时候,将其与每一个粒子的相对方向作为粒子运动朝向,再和周围粒子的排斥,障碍物,对面粒子的相互排斥这些参数做插值,所得结果即为实际运动方向。因此,要是在整个动画过程中,想让一群人在中途转个向,或者走个s型,则只能对定位器进行动画,重新解算,这样所带来的粒子方向的不确定性以及定位器动画带来的变化,使得粒子的实际方向控制会变得相当的不确定性。
因此,本发明方法的方向控制方式选择上就以简单化,直观化,图形化为目标。参考指环王2中的洪水制作方法,以及渲染中使用的法线贴图原理,选用特殊笔刷作为这个方案的方向控制。
以nurbs平面上的直角坐标u,v方向为基准,首先取到笔刷的方向信息,然后将两个坐标轴方向三角函数值(区间-1,1),归一化到(0,1)的坐标空间,然后映射到图像的RGB通道中的R,G通道。另外,兰通道首先添满数值1,在笔刷划过的区域,则填入数值0,以供查询是否有方向信息。
因此,在笔刷划过平面的时候,方向信息被转换成色彩信息以呈现在平面上,值在红绿两个通道的(0,1)区间中。兰通道被填入0,表示此处有方向信息。
要是笔刷没有任何方向信息,也就是原地停止的情况下,红绿两个值将落在(0.5,0.5)上,再加上未使用的数值为1的蓝通道,笔刷未画过的地方的值为(R=0.5,G=0.5,B=1),这也是画路径的时候用于擦除路径的颜色。
在每一组粒子创建的时候,赋予以下自定义属性,在计算的时候用于模拟人群之间,人与人的相互闪避,彼此交错的行为。自定义属性可包括:
Separation Radius:粒子之间的排斥范围,有最大和最小值,每次解算将随机一个在最大最小值之间的值当作范围,当两个粒子靠近到小于这个范围的时候,粒子之间将产生一个反向排斥力,使之相互分离,粒子之间越近,排斥力越大。
Particle Speed:粒子的运动速度,有最大和最小值,每次解算,将随机一个在最大最小值之间的值当作速度,粒子将以这个速度运动,A=Seek*(Min/Max):方向权重,每个粒子将读取路径贴图的信息,转换成运动方向向量。而运动方向权重值将会乘在运动方向上,缩放运动方向大小,参与到最终计算中。
B=Separation*(Min/Max):排斥权重,同上,针对排斥力.
(Note:最终运动速度和方向公式:f=[unit(A+B)]*speedValue)
Total(npc):一组发射器的粒子总数,发射器将在粒子数量到达这个值得时候停止发射粒子。同step2
Rate(NPCs/Sec):发射速率,每秒发射的数量,注意,这个数值是整个平面的发射速率,因此在画完发射区域的时候,要根据实际发射相应的调整这个值。同step2
Start(Frame):发射起始帧,由第几帧开始发射器发射粒子。同step2
Seed:随机种子,关联于粒子的.seed属性,控制随机形式。同step2
Freeze:瞬间停止,这个值为1的时候,粒子将完全静止,但对于关联粒子作用仍旧存在。
Instance Num:粒子替代数量,粒子将使用替代列表中几个物体进行替代,一般和替代列表里的物体数量一致。
Random Algorithm:粒子随机算法切换,Nassive 2.0提供了3种随机算法以用来粒子替代,0,1,2分别表示3种算法。
Get particle parameter:按钮:连接并刷新粒子属性到设置窗口,需要先选中粒子
【步骤D】重复步骤B至步骤C,在步骤A创建的平面上创建多组群体;当出现两组以上群体碰头时,选中两组粒子,连接其交互信息,以告知这两组粒子在运动解算过程中,除了自身粒子的闪避解算外,相互之间同样解算闪避,以实现两组人群相互躲闪的行为模拟;如果不需要相互闪避解算,则可以打断所连接的交互信息,恢复独立自身的解算。
【步骤E】将这些粒子随机替代成人走路的循环动画,并进一步调整参数
在每一次时间向前行进一跳的时候(1tick),当检测到第一个粒子时,对当前的位置,速度,相互距离信息刷新;然后对于每一个粒子,读取计算方向、离散、速度、闪避以及最终速度。
以上介绍了本发明的三维动画制作中大规模群体的产生方法,本发明在揭示上述三维动画制作中大规模群体的产生方法的同时,还揭示一种三维动画制作中大规模群体的产生系统,所述系统包括平面创建单元、粒子发射器创建单元、产生区域绘制单元、粒子路径绘制单元、粒子替代单元。
平面创建单元用以创建一平面;粒子发射器创建单元用以在平面上创建粒子发射器,用以产生若干粒子,每个粒子代表群体中的一个个体;产生区域绘制单元用以绘制粒子的产生区域,粒子按照设定的参数出现在该区域中;粒子路径绘制单元用以绘制粒子的路径,粒子将按照设置的绘制路径运动;粒子替代单元用以将所述粒子随机替代成群体运动的循环动画,并根据需要调整参数。
各单元的具体实现过程可参见以上对本发明三维动画制作中大规模群体的产生方法的描述,这里不做赘述。
综上所述,本发明提出的三维动画制作中大规模群体的产生方法,该方法可基于最普通的MAYA平台,不需要任何额外软件,能非常直接的加入到大部分基于MAYA的动画生产流程;完全没有兼容性和数据过渡问题。本发明的方法比较简单并且快速,在MAYA中能以不错的速度轻松模拟百十来人的群体行走动画。智能化以及可调节的行为参数,带来比较真实的模拟效果,能方便的调节出拟真度媲美类似于massive专业软件的模拟效果。相对于massive这种昂贵的专业软件对于类似情况解决方案,此方案相对来说廉价许多,并且非常容易上手。本发明为开源设计,在本发明的基础上非常容易进行2次开发,以实现更加特别的模拟效果。
这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。
机译: 永生化细胞群体,细胞群体,寡克隆或单克隆细胞群体的方法,细胞培养物,细胞培养上清液,DNA文库,细胞群体的用途,细胞培养物,DNA上清液或文库,用于鉴定和生产单克隆抗体的试剂盒,方法产生细胞培养物和产生单克隆抗体的方法
机译: 永生化细胞群体,细胞群体,寡克隆或单克隆细胞群体的方法,细胞培养物,细胞培养上清液,DNA文库,细胞群体的用途,细胞培养物,DNA上清液或文库,用于鉴定和生产单克隆抗体的试剂盒,方法产生细胞培养物和产生单克隆抗体的方法
机译: 永生化细胞群体,细胞群体,寡克隆或单克隆细胞群体的方法,细胞培养物,细胞培养上清液,DNA文库,细胞群体的用途,细胞培养物,DNA上清液或文库,用于鉴定和生产单克隆抗体的试剂盒,方法产生细胞培养物和产生单克隆抗体的方法