一种基于Unity3D引擎的头发模拟制作方法及系统与流程

文档序号:16516032发布日期:2019-01-05 09:38阅读:562来源:国知局
一种基于Unity3D引擎的头发模拟制作方法及系统与流程

本发明涉及计算机图形学领域,尤其涉及一种基于unity3d引擎的头发模拟制作方法及系统。



背景技术:

unity3d引擎提供了一种蒙皮网格渲染器来渲染骨骼动画,引擎对动画的支持基础是通过支持使用骨骼对网格的操作来实现。目前unity3d自带的工具只能实现类似衣服,骨骼关节等类似效果,尚未实现其他部位的制作。

现有的发型处理方法,包括道具对头发进行的颜色、长度、卷曲等的操作,在模拟头发的运动轨迹上,主要是预先将设定好的常见的几组动作写入系统中,在触发时候直接调用,一般包括8组,从八个方向进行吹头发,但这种方式实现的道具效果过于僵硬,无法实现对头发运动的灵活控制,美术提供的头发不能做到实时自定义的控制,且更改维护起来比较复杂,增加了开发和维护成本。



技术实现要素:

本发明要解决的技术问题之一,在于提供一种基于unity3d引擎的头发模拟制作方法,实现对人体头发的自定义创建与修改,灵活且可移植性高。

本发明要解决的技术问题之一,是这样实现的:一种基于unity3d引擎的头发模拟制作方法,包括:

步骤1、创建发型,包括:

创建网格,通过头发的顶点设置摆放头发发根的位置,并作为网格顶点,根据网格顶点的数目构建三角形,通过构建的三角形组合成面片;

创建骨骼,通过设置头发中的骨骼控制节点自定义骨骼控制位置,确定骨骼控制节点个数以及各个控制节点旋转的权重,采用拉格朗日差值计算头发运动的差值;

初始化网格顶点、纹理坐标贴图、颜色、骨骼以及由网格顶点组合构建的三角形信息,通过构建的三角形组合成面片,在所述面片上赋以纹理坐标贴图信息,创建网格渲染;

步骤2、处理发型,通过控制配置参数实现对发型的处理,所述配置参数包括头发的颜色、长度、宽度、卷曲度和旋转角度,其中,头发的颜色和卷曲度通过控制纹理坐标贴图实现,头发的长度和宽度通过控制网格实现,头发的旋转角度通过控制骨骼实现;

步骤3、通过蒙皮网格渲染器,把单簇的头发合并成一个完整的头发,并根据配置参数的刷新更新发型;

步骤4、存储发型的配置参数信息实现对发型的保存。

进一步的,在步骤1之前还包括:判断是否加载预先存储的发型,若是,则加载存储的发型的配置参数,否则,进入步骤1。

进一步的,所述纹理坐标贴图包含一簇头发从发根到发梢的纹理信息。

进一步的,所述步骤2进一步包括:通过发型道具进行发型的处理操作:

生发剂和剪刀道具通过控制长短参数的变化实现头发的变长或变短操作;

染发和烘干器道具通过控制颜色参数的变化实现头发的颜色变化操作;

卷发器和拉直器道具通过控制卷曲参数的变化实现头发的卷曲或拉直操作;

吹发器和洗发器道具通过控制旋转参数的变化实现头发的运动操作。

进一步的,所述吹发器的操作过程包括:

通过获取吹发器与头发的骨骼控制节点的距离以及方向得到一向量值,并结合吹发器使用时间和骨骼控制节点的权重计算头发每一骨骼控制节点在该方向上的旋转角度,从而模拟头发运动轨迹。

本发明要解决的技术问题之二,在于提供一种基于unity3d引擎的头发模拟制作系统,实现对人体头发的自定义创建与修改,灵活且可移植性高。

本发明要解决的技术问题之二,是这样实现的:一种基于unity3d引擎的头发模拟制作系统,包括发型创建模块、发型处理模块、发型生成模块和发型存储模块:

所述发型创建模块,用于创建发型,包括:

创建网格,通过头发的顶点设置摆放头发发根的位置,并作为网格顶点,根据网格顶点的数目构建三角形,通过构建的三角形组合成面片;

创建骨骼,通过设置头发中的骨骼控制节点自定义骨骼控制位置,确定骨骼控制节点个数以及各个控制节点旋转的权重,采用拉格朗日差值计算头发运动的差值;

初始化网格顶点、纹理坐标贴图、颜色、骨骼以及由网格顶点组合构建的三角形信息,通过构建的三角形组合成面片,在所述面片上赋以纹理坐标贴图信息,创建网格渲染;

所述发型处理模块,用于处理发型,通过控制配置参数实现对发型的处理,所述配置参数包括头发的颜色、长度、宽度、卷曲度和旋转角度,其中,头发的颜色和卷曲度通过控制纹理坐标贴图实现,头发的长度和宽度通过控制网格实现,头发的旋转角度通过控制骨骼实现;

所述发型生成模块,用于通过蒙皮网格渲染器,把单簇的头发合并成一个完整的头发,并根据配置参数的刷新更新发型;

所述发型存储模块,用于存储发型的配置参数信息实现对发型的保存

进一步的,在发型创建模块之前还包括:判断是否加载预先存储的发型,若是,则加载存储的发型的配置参数,否则,执行发型创建模块。

进一步的,所述纹理坐标贴图包含一簇头发从发根到发梢的纹理信息。

进一步的,所述发型处理模块进一步包括:用于通过发型道具进行发型的处理操作:

生发剂和剪刀道具通过控制长短参数的变化实现头发的变长或变短操作;

染发和烘干器道具通过控制颜色参数的变化实现头发的颜色变化操作;

卷发器和拉直器道具通过控制卷曲参数的变化实现头发的卷曲或拉直操作;

吹发器和洗发器道具通过控制旋转参数的变化实现头发的运动操作。

进一步的,所述吹发器的操作过程包括:

通过获取吹发器与头发的骨骼控制节点的距离以及方向得到一向量值,并结合吹发器使用时间和骨骼控制节点的权重计算头发每一骨骼控制节点在该方向上的旋转角度,从而模拟头发运动轨迹。

本发明具有如下优点:开发者只需美术提供发型的纹理坐标贴图,即可完整实现对整个头发的制作;灵活,可移植性高,发型道具可以根据业务特点定制;发型配置信息模块化,方便策划,以及便于美术对头发的调整,调整保存后可以直接加载处理,缩短开发流程。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1为本发明基于unity3d引擎的头发模拟制作方法执行流程图。

图2为本发明基于unity3d引擎的头发模拟制作系统框图。

具体实施方式

请参考图1,本发明一种基于unity3d引擎的头发模拟制作方法,包括:

步骤1、创建发型,包括:

创建网格,通过头发的顶点设置摆放头发发根的位置,并作为网格顶点,根据网格顶点的数目构建三角形,通过构建的三角形组合成面片;

创建骨骼,通过设置头发中的骨骼控制节点自定义骨骼控制位置,确定骨骼控制节点个数以及各个控制节点旋转的权重,采用拉格朗日差值计算头发运动的差值;此处通过模拟骨骼的方式,使得创建的头发网格可以有比较自然的运动,拉格朗日差值算法有助于做平滑过渡计算,将其运用到头发运动的差值运算,提高了数据的准确性,并使得头发在运动过程中的效果更加平滑,且可以实现任意方向的旋转;

初始化网格顶点、纹理坐标贴图、颜色、骨骼以及由网格顶点组合构建的三角形信息,通过构建的三角形组合成面片,在所述面片上赋以纹理坐标贴图信息,创建网格渲染;

步骤2、处理发型,通过控制配置参数实现对发型的处理,所述配置参数包括头发的颜色、长度、宽度、卷曲度和旋转角度,其中,头发的颜色和卷曲度通过控制纹理坐标贴图实现,头发的长度和宽度通过控制网格实现,头发的旋转角度通过控制骨骼实现;

步骤3、通过蒙皮网格渲染器,把单簇的头发合并成一个完整的头发,并根据配置参数的刷新更新发型;

步骤4、存储发型的配置参数信息实现对发型的保存。

较佳的,在步骤1之前还包括:判断是否加载预先存储的发型,若是,则加载存储的发型的配置参数,否则,进入步骤1。

较佳的,所述纹理坐标贴图包含一簇头发从发根到发梢的纹理信息。

较佳的,所述步骤2进一步包括:通过发型道具进行发型的处理操作:

生发剂和剪刀道具通过控制长短参数的变化实现头发的变长或变短操作;

染发和烘干器道具通过控制颜色参数的变化实现头发的颜色变化操作;

卷发器和拉直器道具通过控制卷曲参数的变化实现头发的卷曲或拉直操作;

吹发器和洗发器道具通过控制旋转参数的变化实现头发的运动操作。

较佳的,所述吹发器的操作过程包括:

通过获取吹发器与头发的骨骼控制节点的距离以及方向得到一向量值,并结合吹发器使用时间和骨骼控制节点的权重计算头发每一骨骼控制节点在该方向上的旋转角度,从而模拟头发运动轨迹,通过骨骼实现的旋转,可以实现任意方向上的旋转,更为灵活逼真;

例如,根据头发运动的规律,将发根旋转的权重设置成小于发稍旋转的权重,头发旋转角度和方向根据道具使用的时间长短以及吹头发的方向决定,比如道具使用两秒比使用一秒时头发旋转的角度大;

洗头器作用是将头发向下垂直理顺,因此,其与道具使用方向无关,只需关注使用时长即可;

上述道具使用均通过获取配置参数实时更新。

请参考图2,本发明的一种基于unity3d引擎的头发模拟制作系统,包括发型创建模块、发型处理模块、发型生成模块和发型存储模块:

所述发型创建模块,用于创建发型,包括:

创建网格,通过头发的顶点设置摆放头发发根的位置,并作为网格顶点,根据网格顶点的数目构建三角形,通过构建的三角形组合成面片;

创建骨骼,通过设置头发中的骨骼控制节点自定义骨骼控制位置,确定骨骼控制节点个数以及各个控制节点旋转的权重,采用拉格朗日差值计算头发运动的差值;此处通过模拟骨骼的方式,使得创建的头发网格可以有比较自然的运动,拉格朗日差值算法有助于做平滑过渡计算,将其运用到头发运动的差值运算,提高了数据的准确性,并使得头发在运动过程中的效果更加平滑,且可以实现任意方向的旋转;

初始化网格顶点、纹理坐标贴图、颜色、骨骼以及由网格顶点组合构建的三角形信息,通过构建的三角形组合成面片,在所述面片上赋以纹理坐标贴图信息,创建网格渲染;

所述发型处理模块,用于处理发型,通过控制配置参数实现对发型的处理,所述配置参数包括头发的颜色、长度、宽度、卷曲度和旋转角度,其中,头发的颜色和卷曲度通过控制纹理坐标贴图实现,头发的长度和宽度通过控制网格实现,头发的旋转角度通过控制骨骼实现;

所述发型生成模块,用于通过蒙皮网格渲染器,把单簇的头发合并成一个完整的头发,并根据配置参数的刷新更新发型;

所述发型存储模块,用于存储发型的配置参数信息实现对发型的保存

较佳的,在发型创建模块之前还包括:判断是否加载预先存储的发型,若是,则加载存储的发型的配置参数,否则,执行发型创建模块。

较佳的,所述纹理坐标贴图包含一簇头发从发根到发梢的纹理信息。

较佳的,所述发型处理模块进一步包括:用于通过发型道具进行发型的处理操作:

生发剂和剪刀道具通过控制长短参数的变化实现头发的变长或变短操作;

染发和烘干器道具通过控制颜色参数的变化实现头发的颜色变化操作;

卷发器和拉直器道具通过控制卷曲参数的变化实现头发的卷曲或拉直操作;

吹发器和洗发器道具通过控制旋转参数的变化实现头发的运动操作。

较佳的,所述吹发器的操作过程包括:

通过获取吹发器与头发的骨骼控制节点的距离以及方向得到一向量值,并结合吹发器使用时间和骨骼控制节点的权重计算头发每一骨骼控制节点在该方向上的旋转角度,从而模拟头发运动轨迹,通过骨骼实现的旋转,可以实现任意方向上的旋转,更为灵活逼真;

例如,根据头发运动的规律,将发根旋转的权重设置成小于发稍旋转的权重,头发旋转角度和方向根据道具使用的时间长短以及吹头发的方向决定,比如道具使用两秒比使用一秒时头发旋转的角度大;

洗头器作用是将头发向下垂直理顺,因此,其与道具使用方向无关,只需关注使用时长即可;

上述道具使用均通过获取配置参数实时更新。

本发明的发型道具是通过发型配置参数控制的,其中长度值用于实现剪刀道具或生发剂道具的功能,颜色值用于实现洗发染发道具或烘干器道具的功能,坐标纹理贴图信息用于实现卷发器道具的功能,控制发型变化是通过蒙皮网格渲染器和发型创建模块接口,把多个单簇的头发合并成一个完整的头发,并根据发型道具对配置参数的处理,刷新更新发型的实时变化,通过判断触碰的位置,为配置参数的修改提供依据。

采用上述方法制作头发,开发者只需美术提供发型的纹理坐标贴图,即可完整实现对整个头发的制作;可实现头发制作的灵活性,可移植性高,发型道具亦可以根据业务特点定制,便于增删该不同道具的功能;发型配置信息模块化,方便策划,以及便于美术对头发的调整,调整保存后可以直接加载处理,缩短开发流程。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1