CN109712245B - 三维场景中蝴蝶行为的模拟方法及装置 - Google Patents
三维场景中蝴蝶行为的模拟方法及装置 Download PDFInfo
- Publication number
- CN109712245B CN109712245B CN201811383282.2A CN201811383282A CN109712245B CN 109712245 B CN109712245 B CN 109712245B CN 201811383282 A CN201811383282 A CN 201811383282A CN 109712245 B CN109712245 B CN 109712245B
- Authority
- CN
- China
- Prior art keywords
- butterfly
- individual
- node
- nodes
- behavior
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本发明实施例提供一种三维场景中蝴蝶行为的模拟方法及装置,其中方法包括:基于Unity3D平台,在三维场景中创建蝴蝶群体中心节点和环境影响节点,在所述蝴蝶群体中心节点下挂接用于模拟蝴蝶群体行为的第一脚本,在所述环境影响节点下挂接用于模拟蝴蝶个体行为的第二脚本;创建若干个蝴蝶个体节点,将所述若干个蝴蝶个体节点挂接到所述蝴蝶群体中心节点下作为子物体,随机设置各蝴蝶个体节点的初始位置;在每一帧渲染中,根据所述第二脚本更新落入所述环境影响节点的包围盒中的蝴蝶个体节点的个体行为,根据所述第一脚本更新除所述包围盒之外的其他蝴蝶个体节点的群体行为。
Description
技术领域
本发明实施例涉及三维建模技术领域,更具体地,涉及三维场景中蝴蝶行为的模拟方法及装置。
背景技术
蝴蝶是一种深受各国人民喜爱的美丽昆虫,在影视、动画、虚拟展示及互动游戏中蝴蝶也经常作为美丽浪漫的元素或绚丽特效出现,尤其是当大群蝴蝶从虚拟对象或影视主角身边突然出现并环绕飞舞时,更能给人一种神奇美妙的感觉。Unity3D是由UnityTechnologies开发的多平台综合性开发工具,使用Unity3D支持动画编辑系统和粒子系统,可以快速开发出三维动画场景。
当前最为常见的蝴蝶行为计算机模拟方法一般分为两类,第一类方法主要为通过建模软件的路径编辑工具预先设计好蝴蝶个体或群体的动画轨迹,模拟时实际上是对预先设计好的动画进行播放,以达到蝴蝶行为模拟的效果。第二类方法主要是使用随机粒子系统来对蝴蝶群体进行模拟,这种方式的实现方式大多为使用单张蝴蝶图片或一系列蝴蝶精灵动画图片作为单个粒子的显示图像,进而通过粒子发射器对粒子进行发射,通过对粒子发射器相关参数进行设置,最后实现蝴蝶群体的模拟效果。在影视动画和虚拟互动游戏中这两种方法经常交替用于蝴蝶个体及群体的行为模拟。
第一类方法多为美术人员预先设计好的二维或三维动画,通过对蝴蝶飞行轨迹的预先设置实现蝴蝶飞行模拟,这种方式最常应用的环境是少数蝴蝶个体对象的飞行模拟。当需要模拟蝴蝶群体的飞行时,则需要预先反复编辑每一个蝴蝶对象的飞行动画轨迹。并且该方法不具有通用性,每次模拟对象或场景的更换就必须重新设计蝴蝶的飞行轨迹及行为动画,需要耗费美术人员大量的工作时间且极易造成错误的动画设置。
第二类方法使用随机粒子系统进行模拟的方法在适用性上较好,但是由于粒子模拟觉有完全随机的特点,设置完粒子发射器的属性后就无法对个体粒子的属性进行单独的控制和修改,因而其并不能很好的模拟出蝴蝶个体的休憩、觅食、逃逸等行为,而且难以实现三维场景中蝴蝶对象与其他虚拟对象之间的互动行为模拟。
发明内容
本发明实施例提供一种克服上述问题或者至少部分地解决上述问题的三维场景中蝴蝶行为的模拟方法及装置。
第一个方面,本发明实施例提供一种三维场景中蝴蝶行为的模拟方法,包括:
基于Unity3D平台,在三维场景中创建蝴蝶群体中心节点和环境影响节点,在所述蝴蝶群体中心节点下挂接用于模拟蝴蝶群体行为的第一脚本,在所述环境影响节点下挂接用于模拟蝴蝶个体行为的第二脚本;
创建若干个蝴蝶个体节点,将所述若干个蝴蝶个体节点挂接到所述蝴蝶群体中心节点下作为子物体,随机设置各蝴蝶个体节点的初始位置;
在每一帧渲染中,根据所述第二脚本更新落入所述环境影响节点的包围盒中的蝴蝶个体节点的个体行为,根据所述第一脚本更新除所述包围盒之外的其他蝴蝶个体节点的群体行为。
第二个方面,本发明实施例提供一种三维场景中蝴蝶行为的模拟装置,包括:
脚本创建模块,用于基于Unity3D平台,在三维场景中创建蝴蝶群体中心节点和环境影响节点,在所述蝴蝶群体中心节点下挂接用于模拟蝴蝶群体行为的第一脚本,在所述环境影响节点下挂接用于模拟蝴蝶个体行为的第二脚本;
节点创建模块,用于创建若干个蝴蝶个体节点,将所述若干个蝴蝶个体节点挂接到所述蝴蝶群体中心节点下作为子物体,随机设置各蝴蝶个体节点的初始位置;
渲染模块,用于在每一帧渲染中,根据所述第二脚本更新落入所述环境影响节点的包围盒中的蝴蝶个体节点的个体行为,根据所述第一脚本更新除所述包围盒之外的其他蝴蝶个体节点的群体行为。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。
本发明实施例提供的三维场景中蝴蝶行为的模拟方法及装置,基于Unity3D平台创建三维场景中的蝴蝶群体中心节点和环境影响节点,在两种节点上分别挂接模拟蝴蝶群体行为的脚本和模拟个体行为的脚本,在蝴蝶群体中心节点挂接蝴蝶个体节点,这样能方便对整个蝴蝶群体进行(平移、增改删查等)操作,通过设置环境影响节点及其包围盒的大小,利用模拟个体行为的脚本对进入包围盒的蝴蝶个体节点进行个体行为的模拟,利用模拟群体行为的脚本,对未进入包围盒的蝴蝶个体节点进行群体行为的模拟,本发明实施例具有模拟方法简单、计算复杂度低的效果,显示效果逼真,无需美术人员和程序开发人员进行大量重复的设计和编码工作,显著提高相关工作效率。本发明实施例可应用于大部分影视动画场景、VR、AR场景,以及各种需要展示蝴蝶的三维应用场景中。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的三维场景中蝴蝶行为的模拟方法的流程示意图;
图2为本发明另一个实施例的三维场景中蝴蝶行为的模拟方法的流程示意图;
图3为本发明实施例提供的三维场景中蝴蝶行为的模拟装置的结构示意图;
图4为本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了克服现有技术的上述问题,本发明实施例提供了一种三维场景中蝴蝶行为的模拟方法,其发明构思为:基于Unity3D平台创建三维场景中的蝴蝶群体中心节点和环境影响节点,在两种节点上分别挂接模拟蝴蝶群体行为的脚本和模拟个体行为的脚本,在蝴蝶群体中心节点挂接蝴蝶个体节点,这样能方便对整个蝴蝶群体进行(平移、增改删查等)操作,通过设置环境影响节点及其包围盒的大小,利用模拟个体行为的脚本对进入包围盒的蝴蝶个体节点进行个体行为的模拟,利用模拟群体行为的脚本,对未进入包围盒的蝴蝶个体节点进行群体行为的模拟,本发明实施例具有模拟方法简单、计算复杂度低的效果,显示效果逼真,无需美术人员和程序开发人员进行大量重复的设计和编码工作,显著提高相关工作效率。
图1为本发明实施例提供的三维场景中蝴蝶行为的模拟方法的流程示意图,如图所示,包括:
S101、基于Unity3D平台,在三维场景中创建蝴蝶群体中心节点和环境影响节点,在所述蝴蝶群体中心节点下挂接用于模拟蝴蝶群体行为的第一脚本,在所述环境影响节点下挂接用于模拟蝴蝶个体行为的第二脚本。
具体地,本发明实施例基于Unity3D平台在三维场景中创建蝴蝶群体中心节点和环境影响节点,蝴蝶群体中心节点提供了挂接蝴蝶个体节点的基础,蝴蝶群体中心节点用于描述一个蝴蝶群体的中心位置,在挂接蝴蝶个体节点后,只需要移动蝴蝶群体中心节点的坐标,即可实现对中心节点下挂接的所有蝴蝶个体节点按照同一方向进行移动。比如三维场景中有一处花丛,蝴蝶群体中心节点和蝴蝶群体都在花丛处,通过将蝴蝶群体中心节点移动至三维场景中的池塘,即可实现一步将蝴蝶群体移动到池塘的效果。同理,本发明实施例还支持对蝴蝶群体中心节点和蝴蝶个体节点进行删除、复制、修改参数(比如颜色、种类、大小等等)、查找等操作,能够大大降低蝴蝶模拟过程的复杂度。设置环境影响节点时除了位置参数,还需要设计包围盒的大小等参数,包围盒的大小用于展示该环境影响节点的影响范围,当蝴蝶个体节点进入环境影响节点的包围盒时,将触发第二脚本模拟蝴蝶个体的行为。本发明实施例中的蝴蝶群体行为是指蝴蝶群体中各蝴蝶个体的移动速度(包括大小和方向),而蝴蝶个体行为是指蝴蝶个体休憩、躲避及觅食等行为,这些行为可以通过预先对蝴蝶翅膀建模实现。
S102、创建若干个蝴蝶个体节点,将所述若干个蝴蝶个体节点挂接到所述蝴蝶群体中心节点下作为子物体,随机设置各蝴蝶个体节点的初始位置。
具体地,蝴蝶个体节点的创建可以包括蝴蝶的种类、大小、颜色、翅膀挥动次数等等,在创建好蝴蝶个体节点后,由操作者在三维场景中随机设置各蝴蝶个体节点的初始位置。
S103、在每一帧渲染中,根据所述第二脚本更新落入所述环境影响节点的包围盒中的蝴蝶个体节点的个体行为,根据所述第一脚本更新除所述包围盒之外的其他蝴蝶个体节点的群体行为。
在本发明实施例中,通过运行两个脚本实现对蝴蝶群体(不包括处于包围盒中的蝴蝶个体)中各蝴蝶个体的移动速度的模拟以及对包围盒中蝴蝶个体的休憩行为、躲避行为及觅食等行为的模拟。本发明实施例对第一脚本和第二脚本的运行时序不作限定。
在上述实施例的基础上,作为一种可选实施例,根据所述第二脚本更新落入所述环境影响节点的包围盒中的蝴蝶个体节点的个体行为,具体为:
根据蝴蝶个体节点当前行为的持续时间以及预设的蝴蝶个体行为变换频率系数,计算个体行为影响因子。
需要说明的是,本发明实施例的个体行为影响因子用于表征蝴蝶个体受自身因素变换行为的情况,每当蝴蝶个体变换行为时,都会重新记录当前行为的持续时间,蝴蝶个体行为变换频率系数越高,则蝴蝶个体行为变换的越频繁。
根据蝴蝶个体节点当前行为的持续时间以及预设的环境变换频率系数,计算环境影响因子。
需要说明的是,本发明实施例的环境影响因子用于表征蝴蝶个体受环境因素变换行为的情况,环境变换频率与蝴蝶个体行为变换频率系数类似,数值越高,则蝴蝶个体行为变换的越频繁。
对所述个体行为影响因子以及环境影响因子进行组合,根据组合结果更新蝴蝶个体节点的个体行为。
需要说明的是,本发明实施例中对两种影响因子进行组合的方法,可以是将两种影响进行加权求和,通过求和结果更新个体行为,也可以是将两个影响因子的数值分别作为一位数字,将获得的两位数字作为组合结果,例如,一种影响因子是2,一种影响因子为3,通过第一种方法得出的组合结果是5,通过第二种方法得出的组合结果是23,本发明实施例对进行组合的方式不做进一步的限定。应当理解的是,本发明实施例根据组合的方式预先设置了不同的区间,每一个区间对应一种个体行为。例如,对于第一种方法,组合结果是1~3时,个体行为为逃逸,当组合结果为4~6时,个体行为为觅食。区间的范围与组合方式以及计算两种影响因子的函数有关。
在上述各实施例的基础上,作为一种可选实施例,根据蝴蝶个体节点当前行为的持续时间以及预设的蝴蝶个体行为变换频率系数,计算个体行为影响因子,根据蝴蝶个体节点当前行为的持续时间以及预设的环境变换频率系数,计算环境影响因子,具体为:
将蝴蝶个体节点当前行为的持续时间以及预设的蝴蝶个体行为变换频率系数代入第一预设函数,获得蝴蝶个体影响值,根据所述个体行为影响值所在的预设区间,确定所述个体行为影响因子;
将蝴蝶个体节点当前行为的持续时间以及预设的环境变换频率系数代入第二预设函数,获得环境影响值;根据所述环境影响值所在的预设区间,确定所述环境影响因子。
需要说明的是,本发明实施例获得影响因子需要两个步骤,第一步是获得一个数值,第二步是根据数值所处的区间确定影响因子。对于获取数值所需的函数来说,需要选择周期函数。作为一个可选实施例,第一预设函数和第二预设函数分别为正弦函数和余弦函数。在具体根据蝴蝶个体影响值和环境影响值计算个体行为影响因子和环境影响因子时,可以以0作为分割线,即若蝴蝶个体影响值小于等于0时,个体行为影响因子为一个数,若蝴蝶个体影响值大0时,个体行为影响因子为另一个数。
根据所述第一脚本更新除所述包围盒之外的其他蝴蝶个体节点的群体行为,具体为:
将除所述包围盒之外的其他蝴蝶个体节点作为蝴蝶群体,根据蝴蝶群体中心节点的坐标、所述蝴蝶群体中各蝴蝶个体节点的坐标和速度、蝴蝶个体随机变化的运动参数以及预设的蝴蝶群体的聚集因子,更新所述蝴蝶群体中各蝴蝶个体节点的位置。
具体为:
对于蝴蝶群体中的任意一个蝴蝶个体节点,计算根据蝴蝶群体中心节点的坐标与所述蝴蝶个体节点的坐标的差值,作为第一参数;
计算所述蝴蝶群体的平均速度,将所述平均速度与蝴蝶个体节点的速度的差值作为第二参数;
计算蝴蝶个体节点与所述蝴蝶群体中其他蝴蝶个体节点之间的坐标的差值的总和的相反数,作为第三参数;
计算所述第一参数与所述聚集因子的乘积,作为第四参数;
将所述第一参数至第四参数以及所述蝴蝶个体随机变化的运动参数的和作为所述蝴蝶个体节点在下一帧的速度向量;
其中,所述第一参数至第四参数均为vector3类型。四种参数同为vector3类型保证了四种参数可以进行求和计算。
图2为本发明另一个实施例的三维场景中蝴蝶行为的模拟方法的流程示意图,如图2所示,该方法包括:
S201、用Unity3D建模软件对蝴蝶个体进行三维建模,绑定蝴蝶煽动翅膀的骨骼动画并导入Unity3D平台。
S202、在Unity3D平台中创建蝴蝶群体中心节点,在蝴蝶群体中心节点下挂接模拟蝴蝶群体行为的第一脚本。
第一脚本的机理具体为:
每帧更新每一个蝴蝶个体的位置,位置更新方法为,给每一个蝴蝶个体施加一个随机方向的速度向量:
B=C+V+D+L+R
其中,B为蝴蝶个体的速度向量;
C为蝴蝶群体中心节点的坐标与所述蝴蝶个体节点的坐标的差值;V为所述平均速度与蝴蝶个体节点的速度的差值;
D为蝴蝶个体节点与所述蝴蝶群体中其他蝴蝶个体节点之间的坐标的差值的总和的相反数;D表示为:
D=-(O1-Pb)-(O2-Pb)-…-(On-Pb)
其中,O1至On为蝴蝶群体中其他蝴蝶个体在当前帧的位置向量;Pb为当前蝴蝶个体在当前帧的位置向量;
L为第四参数;L=C*S;其中,C为蝴蝶个体与群体中心的距离;S为蝴蝶群体的聚集因子,S的值越大,每一个蝴蝶个体与群体中心的距离就越大。
R为蝴蝶个体随机变化的运动参数,即标准化随机速度向量N与蝴蝶个体随机运动因子F的乘积。N的随机范围为-1至1之间,F为用户预设的值。
B、C、V、D、L、R都为vector3类型。
S203、在Unity3D平台中创建蝴蝶个体节点,该节点上挂接步骤S201中生成的蝴蝶模型。
S204、在Unity3D平台中创建环境影响节点并手动设置该节点的位置,以及节点包围盒的大小,在该节点上挂接模拟蝴蝶个体行为的第二脚本。
第二脚本的机理具体为:
个体行为影响值BIF表示为:
BIF=SIN(TS*FQb)
其中TS为模拟运行时间,初始值为0,TS随运行时间增加而增大,在蝴蝶个体行为状态切换时重置为0;FQb为蝴蝶个体行为变换频率系数,FQb值越大,蝴蝶个体行为变换越频繁;BIF的取值范围为(-1,1)。个体行为影响因子为0(BIF≤0时)或1(BIF>0时)。
环境影响值EIF表示为:
EIF=COS(TS*FQe)
其中TS为模拟运行时间,初始值为0,TS随运行时间增加而增大,在蝴蝶个体行为状态切换时重置为0;FQe为环境变换频率系数,FQe值越大,蝴蝶个体行为变换越频繁;BIF的取值范围为(-1,1)。环境影响因子为0(EIF≤0时)或1(EIF>0时)。
对所述个体行为影响因子以及环境影响因子进行组合,根据组合结果更新蝴蝶个体节点的个体行为。
个体行为状态判断函数F(TS)定义为:在模拟运行时间TS时,对所述个体行为影响因子以及环境影响因子进行二进制组合运算。第二脚本的触发执行条件为:蝴蝶个体节点位于环境影响节点的包围盒中。F(TS)运算结果为二进制数,取值如下:
本发明实施例提供了4种行为状态的接口,可根据实际环境需要绑定不同的个体行为模拟动画及算法,如休憩、躲避、觅食等个体行为的模拟。
S205、运行脚本,在每一个帧渲染中实时运算每一个蝴蝶个体的行为状态,实现蝴蝶群体和蝴蝶个体的行为模拟。
图3为本发明实施例提供的三维场景中蝴蝶行为的模拟装置的结构示意图,如图3所示,该模拟装置包括:脚本创建模块301和节点创建模块302和渲染模块303,其中:
脚本创建模块301用于基于Unity3D平台,在三维场景中创建蝴蝶群体中心节点和环境影响节点,在所述蝴蝶群体中心节点下挂接用于模拟蝴蝶群体行为的第一脚本,在所述环境影响节点下挂接用于模拟蝴蝶个体行为的第二脚本。
具体地,脚本创建模块基于Unity3D平台在三维场景中创建蝴蝶群体中心节点和环境影响节点,蝴蝶群体中心节点提供了挂接蝴蝶个体节点的基础,蝴蝶群体中心节点用于描述一个蝴蝶群体的中心位置,在挂接蝴蝶个体节点后,只需要移动蝴蝶群体中心节点的坐标,即可实现对中心节点下挂接的所有蝴蝶个体节点按照同一方向进行移动。比如三维场景中有一处花丛,蝴蝶群体中心节点和蝴蝶群体都在花丛处,通过将蝴蝶群体中心节点移动至三维场景中的池塘,即可实现一步将蝴蝶群体移动到池塘的效果。同理,本发明实施例还支持对蝴蝶群体中心节点和蝴蝶个体节点进行删除、复制、修改参数(比如颜色、种类、大小等等)、查找等操作,能够大大降低蝴蝶模拟过程的复杂度。设置环境影响节点时除了位置参数,还需要设计包围盒的大小等参数,包围盒的大小用于展示该环境影响节点的影响范围,当蝴蝶个体节点进入环境影响节点的包围盒时,将触发第二脚本模拟蝴蝶个体的行为。本发明实施例中的蝴蝶群体行为是指蝴蝶群体中各蝴蝶个体的移动速度(包括大小和方向),而蝴蝶个体行为是指蝴蝶个体休憩、躲避及觅食等行为,这些行为可以通过预先对蝴蝶翅膀建模实现。
节点创建模块302,用于创建若干个蝴蝶个体节点,将所述若干个蝴蝶个体节点挂接到所述蝴蝶群体中心节点下作为子物体,随机设置各蝴蝶个体节点的初始位置。
具体地,节点创建模块302对蝴蝶个体节点的创建可以包括蝴蝶的种类、大小、颜色、翅膀挥动次数等等,在创建好蝴蝶个体节点后,由操作者在三维场景中随机设置各蝴蝶个体节点的初始位置。
渲染模块303,用于在每一帧渲染中,根据所述第二脚本更新落入所述环境影响节点的包围盒中的蝴蝶个体节点的个体行为,根据所述第一脚本更新除所述包围盒之外的其他蝴蝶个体节点的群体行为。
在本发明实施例中,通过运行两个脚本实现对蝴蝶群体(不包括处于包围盒中的蝴蝶个体)中各蝴蝶个体的移动速度的模拟以及对包围盒中蝴蝶个体的休憩行为、躲避行为及觅食等行为的模拟。本发明实施例对第一脚本和第二脚本的运行时序不作限定。
本发明实施例提供的三维场景中蝴蝶行为的模拟装置,具体执行上述各三维场景中蝴蝶行为的模拟方法实施例流程,具体请详见上述各三维场景中蝴蝶行为的模拟方法实施例的内容,在此不再赘述。本发明实施例提供的模拟装置具有模拟方法简单、计算复杂度低的效果,显示效果逼真,无需美术人员和程序开发人员进行大量重复的设计和编码工作,显著提高相关工作效率。
图4为本发明实施例提供的电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储在存储器430上并可在处理器410上运行的计算机程序,以执行上述各实施例提供的三维场景中蝴蝶行为的模拟方法,例如包括:基于Unity3D平台,在三维场景中创建蝴蝶群体中心节点和环境影响节点,在所述蝴蝶群体中心节点下挂接用于模拟蝴蝶群体行为的第一脚本,在所述环境影响节点下挂接用于模拟蝴蝶个体行为的第二脚本;创建若干个蝴蝶个体节点,将所述若干个蝴蝶个体节点挂接到所述蝴蝶群体中心节点下作为子物体,随机设置各蝴蝶个体节点的初始位置;在每一帧渲染中,根据所述第二脚本更新落入所述环境影响节点的包围盒中的蝴蝶个体节点的个体行为,根据所述第一脚本更新除所述包围盒之外的其他蝴蝶个体节点的群体行为。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的模拟方法,例如包括:基于Unity3D平台,在三维场景中创建蝴蝶群体中心节点和环境影响节点,在所述蝴蝶群体中心节点下挂接用于模拟蝴蝶群体行为的第一脚本,在所述环境影响节点下挂接用于模拟蝴蝶个体行为的第二脚本;创建若干个蝴蝶个体节点,将所述若干个蝴蝶个体节点挂接到所述蝴蝶群体中心节点下作为子物体,随机设置各蝴蝶个体节点的初始位置;在每一帧渲染中,根据所述第二脚本更新落入所述环境影响节点的包围盒中的蝴蝶个体节点的个体行为,根据所述第一脚本更新除所述包围盒之外的其他蝴蝶个体节点的群体行为。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种三维场景中蝴蝶行为的模拟方法,其特征在于,包括:
基于Unity3D平台,在三维场景中创建蝴蝶群体中心节点和环境影响节点,在所述蝴蝶群体中心节点下挂接用于模拟蝴蝶群体行为的第一脚本,在所述环境影响节点下挂接用于模拟蝴蝶个体行为的第二脚本;
创建若干个蝴蝶个体节点,将所述若干个蝴蝶个体节点挂接到所述蝴蝶群体中心节点下作为子物体,随机设置各蝴蝶个体节点的初始位置;
在每一帧渲染中,根据所述第二脚本更新落入所述环境影响节点的包围盒中的蝴蝶个体节点的个体行为,根据所述第一脚本更新除所述包围盒之外的其他蝴蝶个体节点的群体行为。
2.根据权利要求1所述的模拟方法,其特征在于,所述根据所述第二脚本更新落入所述环境影响节点的包围盒中的蝴蝶个体节点的个体行为,具体为:
根据蝴蝶个体节点当前行为的持续时间以及预设的蝴蝶个体行为变换频率系数,计算个体行为影响因子;
根据蝴蝶个体节点当前行为的持续时间以及预设的环境变换频率系数,计算环境影响因子;
对所述个体行为影响因子以及环境影响因子进行组合,根据组合结果更新蝴蝶个体节点的个体行为。
3.根据权利要求2所述的模拟方法,其特征在于,所述根据蝴蝶个体节点当前行为的持续时间以及预设的蝴蝶个体行为变换频率系数,计算个体行为影响因子,根据蝴蝶个体节点当前行为的持续时间以及预设的环境变换频率系数,计算环境影响因子,具体为:
将蝴蝶个体节点当前行为的持续时间以及预设的蝴蝶个体行为变换频率系数代入第一预设函数,获得蝴蝶个体影响值;
根据所述个体行为影响值所在的预设区间,确定所述个体行为影响因子;
将蝴蝶个体节点当前行为的持续时间以及预设的环境变换频率系数代入第二预设函数,获得环境影响值;
根据所述环境影响值所在的预设区间,确定所述环境影响因子。
4.根据权利要求1所述的模拟方法,其特征在于,所述根据所述第一脚本更新除所述包围盒之外的其他蝴蝶个体节点的群体行为,具体为:
将除所述包围盒之外的其他蝴蝶个体节点作为蝴蝶群体,根据蝴蝶群体中心节点的坐标、所述蝴蝶群体中各蝴蝶个体节点的坐标和速度、蝴蝶个体随机变化的运动参数以及预设的蝴蝶群体的聚集因子,更新所述蝴蝶群体中各蝴蝶个体节点的位置。
5.根据权利要求4所述的模拟方法,其特征在于,所述根据蝴蝶群体中心节点的坐标、所述蝴蝶群体中各蝴蝶个体节点的坐标和速度、蝴蝶个体随机变化的运动参数以及预设的蝴蝶群体的聚集因子,更新所述蝴蝶群体中各蝴蝶个体节点的位置,具体为:
对于蝴蝶群体中的任意一个蝴蝶个体节点,计算根据蝴蝶群体中心节点的坐标与所述蝴蝶个体节点的坐标的差值,作为第一参数;
计算所述蝴蝶群体的平均速度,将所述平均速度与蝴蝶个体节点的速度的差值作为第二参数;
计算蝴蝶个体节点与所述蝴蝶群体中其他蝴蝶个体节点之间的坐标的差值的总和的相反数,作为第三参数;
计算所述第一参数与所述聚集因子的乘积,作为第四参数;
将所述第一参数至第四参数以及所述蝴蝶个体随机变化的运动参数的和作为所述蝴蝶个体节点在下一帧的速度向量;
其中,所述第一参数至第四参数均为vector3类型。
6.一种三维场景中蝴蝶行为的模拟装置,其特征在于,包括:
脚本创建模块,用于基于Unity3D平台,在三维场景中创建蝴蝶群体中心节点和环境影响节点,在所述蝴蝶群体中心节点下挂接用于模拟蝴蝶群体行为的第一脚本,在所述环境影响节点下挂接用于模拟蝴蝶个体行为的第二脚本;
节点创建模块,用于创建若干个蝴蝶个体节点,将所述若干个蝴蝶个体节点挂接到所述蝴蝶群体中心节点下作为子物体,随机设置各蝴蝶个体节点的初始位置;
渲染模块,用于在每一帧渲染中,根据所述第二脚本更新落入所述环境影响节点的包围盒中的蝴蝶个体节点的个体行为,根据所述第一脚本更新除所述包围盒之外的其他蝴蝶个体节点的群体行为。
7.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至5中任意一项所述的模拟方法。
8.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至5中任意一项所述的模拟方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811383282.2A CN109712245B (zh) | 2018-11-20 | 2018-11-20 | 三维场景中蝴蝶行为的模拟方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811383282.2A CN109712245B (zh) | 2018-11-20 | 2018-11-20 | 三维场景中蝴蝶行为的模拟方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109712245A CN109712245A (zh) | 2019-05-03 |
CN109712245B true CN109712245B (zh) | 2022-10-04 |
Family
ID=66254969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811383282.2A Active CN109712245B (zh) | 2018-11-20 | 2018-11-20 | 三维场景中蝴蝶行为的模拟方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109712245B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117119127B (zh) * | 2023-10-24 | 2024-01-26 | 北京世冠金洋科技发展有限公司 | 一种集群控制系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2889778A1 (en) * | 2014-04-28 | 2015-10-28 | Modest Tree Media Inc. | Virtual interactive learning environment |
CN105528082A (zh) * | 2016-01-08 | 2016-04-27 | 北京暴风魔镜科技有限公司 | 三维空间及手势识别追踪交互方法、装置和系统 |
CN108090939A (zh) * | 2017-11-23 | 2018-05-29 | 北京中科创视文化传播有限公司 | 基于集群协同算法与gpu优化渲染的海底生物集群模拟方法 |
-
2018
- 2018-11-20 CN CN201811383282.2A patent/CN109712245B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2889778A1 (en) * | 2014-04-28 | 2015-10-28 | Modest Tree Media Inc. | Virtual interactive learning environment |
CN105528082A (zh) * | 2016-01-08 | 2016-04-27 | 北京暴风魔镜科技有限公司 | 三维空间及手势识别追踪交互方法、装置和系统 |
CN108090939A (zh) * | 2017-11-23 | 2018-05-29 | 北京中科创视文化传播有限公司 | 基于集群协同算法与gpu优化渲染的海底生物集群模拟方法 |
Non-Patent Citations (2)
Title |
---|
基于复合虚拟力场的大规模人群行为模拟;岳峰等;《系统仿真学报》;20090105(第01期);全文 * |
计算机群体动画中的真实感行为综述;饶云波等;《计算机应用》;20100301(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109712245A (zh) | 2019-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10078325B2 (en) | Systems and methods for designing programmable parts for models and optimizing 3D printing | |
CN108335345B (zh) | 面部动画模型的控制方法及装置、计算设备 | |
US9508179B2 (en) | Flexible 3-D character rigging development architecture | |
US20170118145A1 (en) | Method of using emoji to control and enrich 3d chat environments | |
Iizuka et al. | An interactive design system for pop-up cards with a physical simulation | |
US9508178B2 (en) | Flexible 3-D character rigging blocks with interface obligations | |
CN108837510B (zh) | 信息的展示方法和装置、存储介质、电子装置 | |
Lee | Learning unreal engine game development | |
CN111773688B (zh) | 柔性对象的渲染方法和装置、存储介质、电子装置 | |
CN114297746A (zh) | 建筑信息模型的渲染方法、装置、电子设备和存储介质 | |
CN109712245B (zh) | 三维场景中蝴蝶行为的模拟方法及装置 | |
Ho et al. | A finite state machine based on topology coordinates for wrestling games | |
Schroeder | AndEngine for Android game development cookbook | |
US20160171738A1 (en) | Heirarchy-based character rigging | |
Ch’ng et al. | Shift-life interactive art: Mixed-reality artificial ecosystem simulation | |
US20160171740A1 (en) | Real-time method for collaborative animation | |
CN115564642B (zh) | 图像变换方法、装置、电子设备、存储介质及程序产品 | |
KR101267570B1 (ko) | 2d 텍스쳐 기반의 유도장을 이용한 가상캐릭터 조정행동 표시방법 및 장치, 이를 사용한 가상 생태공원 가시화 시스템 | |
Anagnostopoulos et al. | An industrial simulator utilizing a gaming platform | |
CN117409127B (zh) | 基于人工智能的实时水墨流体渲染方法和装置 | |
Abdillah et al. | Optimization of virtual reality-based flood simulation by manipulating particle system | |
Wang et al. | Application of “Game Engine+ Visual Programming” Mode in Cluster Animation Creation | |
KR101267571B1 (ko) | 자연 식물의 애니메이션 표시방법 | |
Mendelowitz | The Emergence Engine: A behavior based agent development environment for artists | |
Duan et al. | Animal group behavioral model with evasion mechanism |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |