本发明涉及虚拟现实技术领域,具体涉及一种三维模型和场景数据自动导入UE4(Unreal Engine4)的方法。
背景技术:
目前制作VR(虚拟现实)场景,通常有三种方式(1、使用UnrealEngine4游戏引擎;2、使用Unity3D游戏引擎;3、使用自身研发的引擎),而Unreal Engine4是目前全球公认最优秀的引擎之一,能够高质量地实现实时交互,其画面效果能够达到接近逼真效果图90%以上。
现有方案是全手动操作,将在三维软件中制作好的场景/模型导出,然后手动导入Unreal Engine4。如图1所示,具体流程为:
1、在三维软件中对每个模型展好UV,设置好UV通道;
2、由于转换过程中Unreal Engine4不能还原原有三维软件中的中心点坐标,所以要在三维软件里面需要手动把每个物体放置世界中心原点(0,0,0)坐标;
3、如果需要每个物体轴心点居中的话,每个模型需要从三维软件中单独导出FBX文件,然后再单独导入到Unreal Engine4,如100个模型需要导出100次,然后再导入100次;
4、手动设置每个物体的碰撞属性;
5、手动逐个设置世界环境参数;
6、手动添加反射球;
7、手动添加灯光体积;
8、手动添加后期体积;
该现有方案的主要缺陷在于:
1、从三维软件导出模型和UE4重复导入模型制作周期长、成本高;
2、导入的FBX模型在Unreal Engine4坐标不能与三维软件坐标、方向、缩放比例准确匹配;
3、手动逐个设置世界环境参数效率低;
4、手动重复添加反射球效率低;
5、手动重复添加灯光体积效率低;
6、手动重复添加后期体积效率低。
技术实现要素:
本发明的目的在于提供一种三维模型和场景数据自动导入UE4的方法,以大幅提高制作VR内容的效率,缩短制作周期,直接降低成本,减少在三维软件里处理物体坐标的重复操作,实现在三维软件一键批量自动化处理,快速把模型、坐标、方向、大小信息准确导入UnrealEngine4中。
为实现上述目的,本发明方法包括如下步骤:
在三维软件中,将三维模型、场景数据生成可输出的三维模型数据文件和三维数据信息文件;
启动Unreal Engine4引擎;
在Unreal Engine4中,读取三维模型数据文件和三维数据信息文件,还原每一个模型的中心点坐标、方向和缩放比例。
所述在三维软件中,将三维模型、场景数据生成可输出的三维模型数据文件和三维数据信息文件,包括以下步骤:
清理三维软件场景中的冗余数据;
根据场景、模型数据生成FBX格式的三维模型数据文件和XML格式的三维数据信息文件。
所述清理三维软件场景中的冗余数据,包括:
解锁解冻所有模型;
清理垃圾数据;
配置UV和UV通道;
检索是否有丢失的贴图灯光信息;
分离所有多维子的材质球;
合并相关材质的模型。
所述垃圾数据包括:二维线条、粒子、空物体、除TargetSpot/TargetDirect/Omni/FreeSpot/FreeDirect/Skylight/Vraylight/VrayIES/VraySun/Vray Ambient Ligh外的所有灯光、除Freecamera外的所有摄像机、mr灯光影响、引用文件、无效线条。
所述根据场景、模型数据生成FBX格式的三维模型数据文件和XML格式的三维数据信息文件,包括以下步骤:
根据三维软件的初始位置设定角色初始位置;
根据三维软件的物体坐标,在Unreal Engine4中还原物体坐标位置;
根据模型的大小体积,在Unreal Engine4给物体增加碰撞;
根据三维软件的摄像机坐标,在Unreal Engine4中相对应的坐标添加摄像机;
根据制作生产提供的方案,在Unreal Engine4中给场景配置最优的世界环境参数;
根据制作生产提供的方案,在Unreal Engine4增加灯光体积和环境球。
所述三维数据信息文件包含三维软件场景中模型ID、名字、中心点坐标、方向和缩放比例。
还包括:根据三维模型数据文件和三维数据信息文件内描述的模型体积,在Unreal Engine4中给模型增加碰撞,具体包括:
读取三维模型数据文件,并导入到Unreal Engine4项目中;
读取导入的三维模型数据文件和三维数据信息文件中记录的模型在三维空间中的坐标信息,对应地放置到关卡视图中;
放置时计算模型的长宽高信息,并通过计算得出最长边的值,与预设的临界值进行比较,筛选出符合添加碰撞的模型,通过UnrealEngine4引擎提供的内置接口,把模型的碰撞属性设置成带碰撞,并保存模型资源。
本发明具有如下优点:
1.大幅提高了制作VR内容的效率,缩短制作周期,直接降低成本,减少在三维软件里处理物体坐标的重复操作,实现在三维软件一键批量自动化处理,能够快速把模型、坐标、方向、大小信息准确导入Unreal Engine4中;
2.省去三维软件导出模型和Unreal Engine4导入模型的重复操作;
3.三维软件导出的模型坐标数据在Unreal Engine4中能准确无误对应匹配;
4.无需把每个物体手动设置碰撞体,自动添加设置碰撞;
5.自动设置世界环境参数。
附图说明
图1为现有方法的流程图;
图2为本发明方法的流程图。
具体实施方式
以下实施例用于说明本发明,但不用来限制本发明的范围。
实现批量转换,首要条件是数据能够在三维软件生成和UnrealEngine4中读取,然后由于Unreal Engine4不能还原物体原有中心点坐标,所以就需要一个中间的数据文件作为传递,通过在三维软件中的插件,快速批量自动处理成可输出的FBX文件和三维数据信息文件,三维数据信息文件包含三维软件场景中模型ID、名字、坐标、方向和缩放比例,以代码形式输出到xml文件作为中间桥梁,再自动打开UnrealEngine4把约定的模型和xml数据读取,完成场景和模型的数据自动化在Unreal Engine4生成。
实施例1
如图2所示,本发明的一个实施例包括以下步骤:
在三维软件中,将三维模型和场景数据生成可输出的三维模型数据文件和三维数据信息文件;
启动Unreal Engine4引擎;
在Unreal Engine4中,读取三维模型数据文件和三维数据信息文件,还原每一个模型的中心点坐标、方向和缩放比例。
其中,场景是由多个模型构成的。
实施例2
在实施例1的基础上,在本发明的另一个实施例中,所述在三维软件中,将三维模型和场景数据生成可输出的三维模型数据文件和三维数据信息文件,包括以下步骤:
清理三维软件场景中的冗余数据;
根据场景、模型数据生成FBX格式的三维模型数据文件和XML格式的三维数据信息文件。
其中,FBX格式的三维模型数据文件和XML格式的三维数据信息文件是两个文件。FBX是Autodesk公司出品的一款用于跨平台的免费三维创作与交换格式的软件,通过FBX用户能访问大多数三维供应商的三维文件。FBX格式支持所有主要的三维数据元素。这些三维数据元素,比如说模型里面的顶点坐标、面ID等。而三维数据信息文件就是XML格式文件,用于记录整个模型和材质、贴图的关系等。
实施例3
在实施例2的基础上,所述清理三维软件场景中的冗余数据,包括:
解锁解冻所有模型;
清理垃圾数据;
配置UV和UV通道;
检索是否有丢失的贴图灯光信息;
分离所有多维子的材质球;
合并相关材质的模型。
所述垃圾数据包括:二维线条、粒子、空物体、除TargetSpot/TargetDirect/Omni/FreeSpot/FreeDirect/Skylight/Vraylight/VrayIES/VraySun/Vray Ambient Ligh外的所有灯光、除Freecamera外的所有摄像机、mr灯光影响、引用文件、无效线条。
实施例4
在实施例2的基础上,所述根据场景和模型数据生成FBX格式的三维模型数据文件和XML格式的三维数据信息文件,包括以下步骤:
根据三维软件的初始位置设定角色初始位置;
根据三维软件的物体坐标,在Unreal Engine4中还原物体坐标位置;
根据模型的大小体积,在Unreal Engine4给物体增加碰撞;
根据三维软件的摄像机坐标,在Unreal Engine4中相对应的坐标添加摄像机;
根据制作生产提供的方案,在Unreal Engine4中给场景配置最优的世界环境参数;
根据制作生产提供的方案,在Unreal Engine4增加灯光体积和环境球。
其中,世界环境参数是一组浮点型及选项型数据,此数据为由本领域技术人员通过解读官方案例以及大量测试得出的经验值,可根据项目需要设置高低两种不同参数值,Unreal Engine4世界设置界面中提供了相应的设置位置,每项值的变化会影响最终呈现的效果和构建光照的时间。
实施例5
在实施例1的基础上,在本发明的又一个实施例中,还包括:根据三维模型数据文件和三维数据信息文件内描述的模型体积,在UnrealEngine4中给模型增加碰撞,具体包括:
根据三维模型数据文件和三维数据信息文件内描述的模型体积,在Unreal Engine4中给模型增加碰撞,具体包括:
读取三维模型数据文件,并导入到Unreal Engine4项目中;
读取导入的三维模型数据文件和三维数据信息文件中记录的模型在三维空间中的坐标信息,对应地放置到关卡视图中;
放置时计算模型的长宽高信息,并通过计算得出最长边的值,与预设的临界值进行比较,筛选出符合添加碰撞的模型,通过UnrealEngine4引擎提供的内置接口,把模型的碰撞属性设置成带碰撞,并保存模型资源。
实施例6
在上述各个实施例中,所述三维数据信息文件包含三维软件场景中模型ID、名字、中心点坐标、方向和缩放比例。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。