​程序生成建筑细节介绍(ue4&houdini)

全文3200字,版本V1,写于2019-05-10夜,可直接从正文开始看,欢迎转载(修改请不要删除前言)

前言:

注:文章为第一版,记为V1,以后会慢慢修改,更新记为V2,V3等.以后文章也会按照这一格式


文章包含词汇:  

        HDA 格式(全称 houdini digital asset ,是ue4,unity,maya等软件所能识别的houdini文件格式) 

        VEX(houdini的内置编程语言,类似于c/c++,houdini也支持python,但效率不如vex)

        PDG(全称: Procedural Dependency Graph .houdini17.5新出的功能,可以高效,快速的生成不同类型的资产,官方连接:https://www.sidefx.com/products/pdg/)

        游戏资产(个人从某处学到的词,是模型,uv,纹理,lod,碰撞等游戏资源的统称,拿来使用,请诸位理解)

正文

常见观点一:用的少,应用范围狭小,投入成本高

 Procedural的应用确实取决于项目需求,例如蜘蛛侠中的曼哈顿场景便是houdini,便极大的提高了制作效率,有些人认为只有大场景才能用的上houdini,这是高估了Procedural的威力,Procedural流程并不是一个程序解决游戏开发中的所有问题.Procedural的重点在于设置一些小插件,优化工作流程,细节设计上采用procedural流程上更能发挥出houdini的优势,例如,要给山体设置阶梯,传统方法是手动摆放,若遇到山体修改,则需要手动修正阶梯角度,且很难避免因为模型角度变化而导致的前后连接问题.而houdini可以实时调节模型与山体的关系(如下图).毕竟修改返工是设计师的痛苦根源,而houdini在一定程度能帮助大家减少修改的次数,降低痛苦.熟悉houdini者设置此类HDA不会超过20分钟,投入的时间成本很低.

 常见观点二:procedural生成是一次性的,定制化的东西,每次还要专门diy一个程序

答:蜘蛛侠的曼哈顿场景就是houdini生成的,确实是一次性的,定制化的,别人游戏开发商用不到,或者自己不再做以曼哈顿为背景的游戏也用不到.

但实际整个hda(ue4,unity,maya等软件所能识别的houdini文件格式)工程是由控制街道,楼梯,店铺,贴画,垃圾桶摆放的小型hda拼装而成,这些hda是高度模块化,技术点都是通用的.且小型hda内部 并非全是代码,内部结构如下图所示(头号玩家-叠楼区https://www.bilibili.com/video/av52010921),其内部的核心是由一些普通的节点以及包含vex代码的pointwrangle构成(vex是houdini的内置语言),而这5个pointwrangle中vex只是同一段代码的不同变体,只是对输入的点进行处理,高度模块化,这5个pointwrangle中的代码可应用于任何高层住宅或者商业大楼,而重庆-洪崖洞中的横向排布hda,可用于任何的街道类项目.技术通用,需要修改的只是输入模型.(重庆-洪崖洞(https://www.bilibili.com/video/av52010921,约54秒))

                                                   头号玩家-叠楼区主体建筑的内部结构

 常见观点三:只有不需要设计的次要场景才会用程序化生成

有人认为设计就应该人手工做出来的,程序生成的没有灵魂,缺少匠人精神,这是一种狭隘的看法,优秀的设计也是将现有元素按照美学规则进行拼贴与重构,而规则是可以提炼的,,可以用houdini定义设计规则,曝露出足够的参数,保证设计的可修改性.最大限度的在时间与效果谋取平衡,Houdini是一个工具,procedural生成是一种方法,为的是提高工作效率,

常见观点四:往往只有低质量开发的游戏才会用到程序生成

1,质量取决于游戏资产模组的制作水准,houdini不是游戏资产的生成者,只是游戏资产的搬运工,将完整的模组放在合适的位置上.

2,此言论属于偏见,恰恰是低质量开发的游戏才不会用程序生成,procedural生成是成本与效果平衡的产物.而低质量开发的游戏只有妥协,没有平衡.

个人观点:

一 何时采用procedural生成,用程序修改实际到处是需要具体问题具体分析的情况

资产类型:

             1,游戏主角不需要,但1000个配角需要

             2,一栋建筑不需要,但制作城市需要

游戏类型:

        若是开发现代写实场景,或者科幻类,赛破朋克类的游戏内容,可以采用procedural流程提高迭代效率,丰富游戏内容

        若是手游,棋牌,抽卡或者室内演出型游戏则不需要.

二 houdini在游戏领域的两种使用形式

  一 资产的生成者,类似于maya,既可建模,uv,亦可动画,破碎.此类方法是将houdini作为资产生成的软件,作用等同于maya,c4d,blender等软件建模后导入游戏引擎

      houdini可以在内部生成资产,不依赖第三方DCC软件(如模型:maya,3dmax,c4d,blender,modo.纹理:sp,sd),所有的建模,uv,烘焙,纹理,lod,动画等都在houdini完成,(效率较低,不推荐)

如下图所示,便是houdini内部建模,不依赖外部资产导入(教程连接:https://www.youtube.com/watch?v=fAmjnJAuvp0)

此种方法是改变模型的拓扑结构,较为适合影视流程,或游戏领域中的模块化生成(模块化:若游戏中需要10km的高速公路,只需制作一小段路面,然后不断复制即可)

优点:达到对模型结构,uv的完全控制,实时调整,完全程序生成.

缺点:若是在较大规模的游戏场景中采用此种方法,在游戏引擎中无法高效控制drawcall的数量.且修改效率过低.

综合优缺点:一些需求种类很多的单体物体可以采用此类方法,配合houdini17.5的pdg流程可以快速生成同一类型的资产变体,然后导出模型到游戏引擎.例如书本,罐子,箱子,武器,饰品等小型物体(pdg相关连接:https://www.youtube.com/watch?v=lL_jUZtaF1k).

注意事项:

      1 若想在游戏引擎中实时修改:请导出hda格式,uv,烘焙需要在houdini内部完成,碰撞给予模型一个字符串属性即可(如下图中的命名约定表).纹理可直接调用引擎中的已有纹理.(游戏引擎想要识别hda格式,需安装houdini engine插件,ue4/unity文档链接:https://www.sidefx.com/docs/hengine/,ue4,unity的细节有些许不同,请细细查阅)

      2 若不想在引擎中实时修改:请导出fbx,obj格式,剩下与常规流程相同,即uv,烘培可在第三方软件中完成(个人建议:uv,lod可在houdini内直接完成,速度贼快,用过都说好)

                                                                改变拓扑结构

  碰撞的命名约定

                                                mesh与碰撞体(上图共有11种类型,任君选择)

二  规则的定义者

只是把houdini当作一个资产的搬运工,不破坏拓扑结构.此种方法的口号是: houdini 从不生产水,只是大自然的搬运工,

头号玩家-叠楼区模组

 重庆_洪崖洞的所有模组


优点 : 高效控制drawcall的数量与大小,高度模块化,在输入----处理----输出的数据处理中,只定义处理的方式,不同的输入,都会得到一个明确且可重复,可动态调整的输出.

此类方法有两个不同的实现方式

1, packed实例,将输入的模型打包成一个实例,游戏引擎可以自动识别(注:unity很早就有了动态实例,ue4在4.22才有)

2,点云实例,将houdini定义的规则封装在一个个的点中,游戏引擎可以直接读取.如下图(若图不动,请移步https://www.bilibili.com/video/av52010921,约在54-59秒)

三 两种方式经验总结:

1.packed实例通过hda导出后ue4,unity,maya,3dmax,c4d软件都可识别,点云实例不可通用,因为点云实例中要包含的实例属性的名字不一样,要导出为不同的版本(注:不同版本的修改,只需一秒钟,把ue4版本中实例属性的名字替换为unity即可完成unity版本的制作.

2.packed实例可在houdini中显示模型,易于观察,点云实例只有一个个点,只能引擎中看到效果,个人建议先用packe方式制作,最后转为点云实例.

3,点云实例的优点在于可以更有效的删除模型重叠部分,例如重庆-洪崖洞项目中相邻建筑之间紧密相连,便可以剔除掉重叠的模型.(如下图)

三 程序化与手动摆放的平衡

场景关卡生成大致可分为3个方式

        1,完全程序化生成 ,不做修改 如 Roguelike类游戏,全自动一键生成,依靠某一全局参数控制场景的整体变化,

         2 完全手动摆放与修正,传统制作方法

         3 采用houdini的规则定义方式,进行procedural生成,暴露内部参数,若是不加修改便是第一种完全程序化生成 ,也可以单独设每一个参数,例如位置,角度,缩放等,达到传统方法中的完全手动的效果.在完全程序化与完全手动中各取优点.直接bake成actor再修改的区别在于bake之后就变为普通actor 无法自动适应定义的规则.如下图所示若在ue4烘焙成actor,再进行调整的话,建筑之间的电线便不会自动跟随物体变化(如无法查看动图,请移步视频链接https://www.bilibili.com/video/av52010921,约在4-9秒)

单体建筑修改调整直接修改hda

建筑场景修改需指定具体的hda

动图操作具体分解:

         1,先打开建筑标号显示,设置为1.

         2,设置你要调整几个建筑的细节,例如我准备调节2号建筑这一个建筑的旋转角度,在prop_num中输入1.(代表修改总数为1).

         3.将要修改的建筑的标号输入point_id,如要修改2号建筑,即在point_id输入2,即可对2号建筑的旋转,位置等所有属性进行修改

总结: 一 procedural流程不是一劳永逸,目的加快迭代速度,减少人力成本

         二 houdini不是游戏资产的生成者,只是游戏资产的搬运工,

         三 procedural生成是成本与效果平衡的产物,采用与否请具体问题具体分析

        四 houdini是一个工具,procedural生成是一种方法,为的是提高工作效率

注:个人才疏学浅,若有错讹,请诸位斧正, 一定积极改正

最后打个广告,本人qq:925071038,邮箱925071038@qq.com,如需合作请联系我,生活不易,请各位见谅

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容