CN115770394B - 基于hapi实现的蓝图化插件应用方法 - Google Patents
基于hapi实现的蓝图化插件应用方法 Download PDFInfo
- Publication number
- CN115770394B CN115770394B CN202310091853.XA CN202310091853A CN115770394B CN 115770394 B CN115770394 B CN 115770394B CN 202310091853 A CN202310091853 A CN 202310091853A CN 115770394 B CN115770394 B CN 115770394B
- Authority
- CN
- China
- Prior art keywords
- blueprint
- houdini
- hapi
- plug
- module
- 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
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提出了基于hapi实现的蓝图化插件应用方法,所述方法包括如下步骤:S1:打开Houdini软件,并安装对应版本的HoudiniEngine插件;S2:对HoudiniEngine插件进行拆分,拆分为客户端模块和执行端模块;S3:通过hapi在客户端模块和执行端模块之间进行数据通信传输;S4:通过hapi相关函数封装成蓝图函数库的函数,在蓝图层面使用蓝图函数库中的函数数据去搭建houdini流程框架;S5:在搭建的houdini流程框架中新增插件模块,通过拓展资产类型和按钮功能,对属性面板进行定制化;S6:通过houdini流程框架,进行客户端模块和执行端模块的数据传输,实现将HDA类型的文件支持拖入UE Content目录成为uasset资产。Houdini这款三维动画软件在制作大型游戏场景时,使用比较多,范围也比较广。
Description
技术领域
本发明属于游戏软件领域,特别涉及基于hapi实现的蓝图化插件应用方法。
背景技术
近年游戏制作场景越来越大,对质量和精度要求也越来越高,因此极大的带动力程序化生成的需求。Houdini是一款的三维动画软件,这是一款三维计算机图形软件,Houdini是目前行业主流的三维特效制作软件之一,其基于节点的程序化制作流程及强大的特效制作模块使得houdini不仅适用于影视特效制作,同时也非常适合游戏相关流程的制作。它具备了三维软件中有的大部分功能,而相对于C4D的层级结构和标签对对象进行操作,在Houdini中的操作是通过不同节点的连接去实现各种命令。同时,Houdini也是一个程序式软件,它有自己的VEX脚本语言,用来处理各种参数和数据,甚至用来创建自定义的节点,很多软件我们需要去安装插件去高效率地实现一些效果,这是因为软件本身其实并没给予我们非常大的操作空间,而Houdini把所有的想象力都交给了软件的使用者,所以,Houdini是一个上限相当高的一个软件。
原生的官方HoudiniEngine的功能已难以满足流程的需要,各大游戏项目对HoudiniEngine的定制化需求也不断增加。UnrealEngine作为目前最受欢迎的游戏引擎之一,对程序化模型生成额依赖性越来越强。Houdini与Unreal Engine结合,将能极大的提高工作效率与质量。
HoudiniEngine是一个houdini的无头版本,实际上houdiniengine可以拆分成两个模块:一个是根据应用场景不同而变化的类似于客户端,另一个模块则是在本地或者服务端实际执行HDA节点功能的无头版Houdini。而负责这两个模块之间通信的便是hapi。
因此,现在亟需基于hapi实现的蓝图化插件应用方法。
发明内容
本发明提出基于hapi实现的蓝图化插件应用方法,解决了现有技术中使用hounidi软件插件时,制作人无法快速定制制作流程,在进行游戏大型场景开发时,使用代码过多,多次进行调用不同代码不方便的问题。
本发明的技术方案是这样实现的:基于hapi实现的蓝图化插件应用方法,所述方法包括如下步骤:S1:打开Houdini软件,并安装对应版本的Houdini Engine插件;S2:对HoudiniEngine插件进行拆分,拆分为客户端模块和执行端模块;S3:通过hapi在客户端模块和执行端模块之间进行数据通信传输;S4:通过hapi相关函数封装成蓝图函数库的函数,在蓝图层面使用蓝图函数库中的函数数据去搭建houdini流程框架;S5:在搭建的houdini流程框架中新增插件模块,通过拓展资产类型和按钮功能,对属性面板进行定制化;S6:通过houdini流程框架,进行客户端模块和执行端模块的数据传输,实现将HDA类型的文件支持拖入UEContent目录成为uasset资产。
Houdini是一款三维动画软件,这种三维动画软件在制作大型游戏场景时,使用比较多,范围也比较广,它具备了三维软件中有的大部分功能,而相对于C4D的层级结构和标签对对象进行操作,在Houdini中的操作是通过不同节点的连接去实现各种命令。
而houdini软件的优点有,在Houdini中,整个操作的流程都会进行存储备份。然后将这些流程匹配到适用到运用中,这些运用的使用定义了“配方”,可以对其进行调整以完善结果,然后重复以创建相似但独特的结果。能够保存节点并以属性形式向下传递信息的能力使Houdini拥有了程序上的本质。
但是在houdiniengine中,若使用houdiniengine,则是不同于houdini的另一种流程其整个过程为,在houdini中制作HDA,HDA是用HDL原始内核换了个界面而生成的,两者是能够进行相互替换的,随后将HDA导入游戏引擎,在游戏引擎中用HDA搭建场景,并通过houdiniengine调用houdini进行cook。这样的好处是场景搭建过程直接在游戏引擎中进行,提高迭代效率。
上述过程的整个缺点就是,目前的功能不完善,功能不完善,可用的代码资料较少,并且在使用复杂的cook时,其速度太慢,影响整个制作的时间和加大制作人员的工作量。
进一步地,所述步骤S1中的HoudiniEngine插件为在houdini软件中使用几何计算功能插件。通过在houdini中使用HoudiniEngine插件,为用户提供一种能够快速进行HDA建立的插件,也方便用户快速的进行提取。
进一步地,所述步骤S2中的客户端模块为HoudiniEngine中进行计算后在hounidi中进行效果显示的面板,所述执行端模块为在本地或者服务端实际执行HDA节点功能插件。其中的客户端可以根据不同的场景进行变化,比如要进行湖泊场景的建立,可以调用适合湖泊场景的备份出来,方便用户直接进行选取后调用。
进一步地,所述步骤S3中的进行数据通信传输的hapi通过调用hapi文档中的完整代码样例进行数据通信传输的属性配置。在客户端和执行端中进行数据通信传输,要求较高,一是要避免冗余数据的产生,导致调取数据时,速度缓慢,二是要保证代码的完整性,避免在调取时出错,所以本申请文件中调用的hapi文档内的完整代码进行数据通信传输。
进一步地,通过调用hapi文档中的完整代码采用C++进行编写,通过输入编程语言进行载入HDA,随后读取编程程序语言。采用C++语言进行编写是因为其在C语言中其能够完全兼容,并且其多态性的特性和数据封装和数据隐藏的特点很符合要求,故采用C++进行编写。
进一步地,所述步骤S4中的蓝图函数库为一个静态函数的合集,将静态函数合集内的函数配置不进行对应绑定,在蓝图中对函数进行调用。蓝图函数库是一个静态函数的合集,提供不与特定游戏性对象绑定的效用功能。可以非常方便的将代码中的函数暴露给所有蓝图使用,同时也提供了很好的代码复用性。
进一步地,所述蓝图函数库为UObject非直接派生,在调用StartSession类函数时,需将该函数进行反射。此为现有技术红蓝图函数库的常用操作,是比较现有且经过多次复用的可靠性高的方案。
进一步地,所述步骤S5中的资产类型为对象物附带的前缀信息,在进行新增插件模块拓展时,新增拓展物通过前缀信息对其属性进行展示,在蓝图中对函数进行调用。
采用了上述技术方案后,本发明的有益效果是:Houdini几乎涵盖了3D制作的所有领域:可以通过新增插件模块,拓展ue4的资产类型和按钮功能,定制化属性面板,采用本申请文件的应用方法可以让制作人快速定制流程,以适应当前的游戏开发流程,譬如开放游戏大场景的制作等。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例:
如图1所示,基于hapi实现的蓝图化插件应用方法,所述方法包括如下步骤:
S1:打开Houdini软件,并安装对应版本的HoudiniEngine插件;所述步骤S1中的HoudiniEngine插件为在houdini软件中使用几何计算功能插件;
S2:对HoudiniEngine插件进行拆分,拆分为客户端模块和执行端模块;所述步骤S2中的客户端为HoudiniEngine中进行计算后在hounidi中进行效果显示的面板,所述执行端为在本地或者服务端实际执行HDA节点功能插件;
S3:通过hapi在客户端模块和执行端模块之间进行数据通信传输;所述步骤S3中的进行数据通信传输的hapi通过调用hapi文档中的完整代码样例进行数据通信传输的属性配置。通过调用hapi文档中的完整代码采用C++进行编写,通过输入编程语言进行载入HDA,随后读取编程程序语言;
S4:通过hapi相关函数封装成蓝图函数库的函数,在蓝图层面使用蓝图函数库中的函数数据去搭建houdini流程框架;所述步骤S4中的蓝图函数库为一个静态函数的合集,将静态函数合集内的函数配置不进行对应绑定,在蓝图中对函数进行调用。所述蓝图函数库为UObject非直接派生,在调用StartSession类函数时,需将该函数进行反射;
S5:在搭建的houdini流程框架中新增插件模块,通过拓展资产类型和按钮功能,对属性面板进行定制化;所述步骤S5中的资产类型为对象物附带的前缀信息,在进行新增插件模块拓展时,新增拓展物通过前缀信息对其属性进行展示,通过按钮对洗澡能对象物进行调取;
S6:通过houdini流程框架,进行客户端模块和执行端模块的数据传输,实现将HDA类型的文件支持拖入UEContent目录成为uasset资产。
本申请文件整个工作流程如上述步骤描述,具体在进行实际操作时,还需要对以下措施进行注意,在hounidiEngine插件中,使用cook和自己手写编辑器相比,甚至会更慢,原因在于houdini设计着重通用性,导致部分不规范的代码在写入编辑器时很容易做到的优化,在houdini里做不到,比如说在弧面进行修饰,让湖面中的水纹进行位置调节,由于湖面通常只覆盖制作区域的一部分地形,很多制作者常规操作,会选择将编辑湖面进行封装,形成一个单独的包围盒,然后只对包围盒内的地形区域做处理;而在hounidi中的操作就不能这样封装后使用包围盒进行操作,因为hounidi中湖面可能由若干个节点组成,不能随意进行封装拆分,这回导致数据量冗余,在后续调取中,降低效率。
其次,游戏引擎和houdini之间通过houdiniengine交换数据的过程也比较耗时,所以本申请文件中,通过建立一个蓝图函数库,在进行交换数据时,可以优先选用对应游戏引擎内已经建立的函数,在hounidiengine里进行使用,如果没有在选用其他的,这样在双方均有的对应函数的情况下,数据交换的时间会降低,有利于提高效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.基于hapi实现的蓝图化插件应用方法,其特征在于,所述方法包括如下步骤:
S1:打开Houdini软件,并安装对应版本的HoudiniEngine插件;
S2:对HoudiniEngine插件进行拆分,拆分为客户端模块和执行端模块;
S3:通过hapi在客户端模块和执行端模块之间进行数据通信传输;
S4:通过hapi相关函数封装成蓝图函数库的函数,在蓝图层面使用蓝图函数库中的函数数据去搭建houdini流程框架;
S5:在搭建的houdini流程框架中新增插件模块,通过拓展资产类型和按钮功能,对属性面板进行定制化;
S6:通过houdini流程框架,进行客户端模块和执行端模块的数据传输,实现将HDA类型的文件支持拖入UEContent目录成为uasset资产;
其中,所述步骤S2中的客户端模块为HoudiniEngine中进行计算后在hounidi中进行效果显示的面板,所述执行端模块为在本地或者服务端实际执行HDA节点功能插件;
所述步骤S3中的进行数据通信传输的hapi通过调用hapi文档中的完整代码样例进行数据通信传输的属性配置;
所述步骤S5中的资产类型为对象物附带的前缀信息,在进行新增插件模块拓展时,新增拓展物通过前缀信息对其属性进行展示,通过按钮调取对象物。
2.如权利要求1所述的基于hapi实现的蓝图化插件应用方法,其特征在于:所述步骤S1中的HoudiniEngine插件为在houdini软件中使用几何计算功能插件。
3.如权利要求1所述的基于hapi实现的蓝图化插件应用方法,其特征在于:通过调用hapi文档中的完整代码采用C++进行编写,通过输入编程语言进行载入HDA,随后读取编程程序语言。
4.如权利要求1所述的基于hapi实现的蓝图化插件应用方法,其特征在于:所述步骤S4中的蓝图函数库为一个静态函数的合集,将静态函数合集内的函数配置不进行对应绑定,在蓝图中对函数进行调用。
5.如权利要求4所述的基于hapi实现的蓝图化插件应用方法,其特征在于:所述蓝图函数库为UObject非直接派生,在调用StartSession类函数时,需将该函数进行反射。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310091853.XA CN115770394B (zh) | 2023-02-10 | 2023-02-10 | 基于hapi实现的蓝图化插件应用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310091853.XA CN115770394B (zh) | 2023-02-10 | 2023-02-10 | 基于hapi实现的蓝图化插件应用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115770394A CN115770394A (zh) | 2023-03-10 |
CN115770394B true CN115770394B (zh) | 2023-05-23 |
Family
ID=85393392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310091853.XA Active CN115770394B (zh) | 2023-02-10 | 2023-02-10 | 基于hapi实现的蓝图化插件应用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115770394B (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11257268B2 (en) * | 2018-05-01 | 2022-02-22 | Magic Leap, Inc. | Avatar animation using Markov decision process policies |
CN112717414B (zh) * | 2021-01-25 | 2022-11-08 | 腾讯科技(深圳)有限公司 | 游戏场景编辑方法、装置、电子设备以及存储介质 |
CN112784002B (zh) * | 2021-02-07 | 2023-09-26 | 腾讯科技(深圳)有限公司 | 一种虚拟场景生成方法、装置、设备和存储介质 |
CN115222904A (zh) * | 2022-06-27 | 2022-10-21 | 网易(杭州)网络有限公司 | 地形处理方法、装置、电子设备和可读存储介质 |
CN115518374A (zh) * | 2022-08-24 | 2022-12-27 | 网易(杭州)网络有限公司 | 虚拟场景中的植被生成方法、装置和电子设备 |
CN115624747A (zh) * | 2022-09-09 | 2023-01-20 | 网易(杭州)网络有限公司 | 地形数据的处理方法、装置、设备及存储介质 |
CN115564903B (zh) * | 2022-12-05 | 2023-05-09 | 阿里巴巴(中国)有限公司 | 三维场景资产数据处理方法、装置、电子设备及存储介质 |
-
2023
- 2023-02-10 CN CN202310091853.XA patent/CN115770394B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115770394A (zh) | 2023-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8473524B2 (en) | Method and system for updating object data with respect to object specifications in a product life cycle management system | |
US8026910B2 (en) | Offline optimization pipeline for 3D content in embedded devices | |
CN105630459A (zh) | 一种将ppt转换为html页面的方法 | |
JP2015518589A (ja) | ウェブページの動的変換システム、方法及びコンピュータ読み取り可能な記録媒体 | |
CN107273543B (zh) | 一种dgn数据格式的转换方法 | |
CN107393013A (zh) | 虚拟漫游文件生成、显示方法、装置、介质、设备和系统 | |
US8522201B2 (en) | Methods and apparatus for sub-asset modification | |
CN106990960A (zh) | 代码部署方法及装置 | |
CN115421786A (zh) | 一种设计组件迁移方法及相关设备 | |
CN113656875A (zh) | 一种bim模型轻量化实现方法 | |
CN106210724A (zh) | 图片解码方法及装置 | |
Dave et al. | A survey on Artificial Intelligence based techniques to convert User Interface design mock-ups to code | |
CN115770394B (zh) | 基于hapi实现的蓝图化插件应用方法 | |
CN114491964A (zh) | 一种可进行协同工作的数字孪生建模系统 | |
CN111737785B (zh) | 一种Revit和AutoCAD的数据交互方法、装置及系统 | |
CN117369860A (zh) | 一种基于云原生脚本文件的自动发布方法及系统 | |
CN112527172A (zh) | 界面显示方法及装置、计算机可读存储介质、电子设备 | |
CN107193913A (zh) | 动画素材的搜索方法及系统 | |
CN112685494A (zh) | 一种数据可视化方法、装置、设备及介质 | |
CN105183491A (zh) | 跨平台的桌面gis系统及其启动方法 | |
CN111443913A (zh) | 交互动画配置方法及装置、存储介质及电子设备 | |
Tang | Application of engine technology and in 3D animation production | |
Wu et al. | Research on the new way of digital protection and inheritance of the Dai paper-cut | |
CN116595284B (zh) | 网页系统运行方法、装置、设备、存储介质和程序 | |
Benatallah et al. | Hiword: A petri net-based hierarchical workflow designer |
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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Ye Ziqi Inventor after: Sheng Haorong Inventor before: Ye Ziqi Inventor before: Xi Haorong |
|
CB03 | Change of inventor or designer information |