2023-9-14-ue官方hillside世博园1967建筑项目分析

此建筑群为Moshe Safdie为1967年加拿大世博会设计,并有局部落地,下图为当今的实拍照片。Epic Game团队联合建筑设计团队通过建模对此项目做复原。

这个项目的重点放在了动画镜头、灯光布景上面。动画这块我暂时不管。布景方面,在matrix项目中只涵盖一些道具模型,比如路障、垃圾、路灯、垃圾桶、座椅、广告牌,但是缺少绿化景观设计,我不知道这是不是和性能有关系?在matrix中建筑群以一个个街区规则排布,基本上是建筑整个环绕人行道内侧围成一圈,建筑的放置是用houdini程序化生成的,所有的建筑都包含几何细节以及高清贴图,程序化的实例化差异。而在hillside,细节是由手工完成的独立建筑体现的,周围的背景建筑都没有细节,通过穿插绿化、水体来掩饰(下图2远方看上去有些建筑都是白模,但绿化、树木是instance static mesh component所以看上去很逼真)。matrix中的建筑基本都是盒子房,而hillside做了一个一眼望去无法拆解的金字塔形建筑,显然它在几何上还是有规律的可以模块化,问题是做好模型以后如何让ue识别各个模块?团队开发了一个mesh to hism的组件似乎可以将选中的物体转化为实例,还能随机增加大小、旋转,这就很有意思了,我想看看能否利用这个组件。(所有的物体似乎都没有设置collision所以添加third person后直接掉下去了。)

经测试选中一组static mesh,对他们进行旋转、缩放随机,旋转缩放必须是在static mesh模式下(会沿着各自的pivot旋转缩放),instance模式pivot会不正常。在调节好缩放、旋转后点selected mesh to instances会转换成实例组件,这里需要进一步理解HISM和ISM的区别。有了这个组件只要注意名命范式,即可将3dsmax、blender中做好的模型导入过来一键实例化各个部件!对不规则形状建筑部件的UE实例化问题做出了根本上的解决!

hillside项目对于小区、公园的小路设计实现是个很好的参考,可以看到主体部分的路面由一个level instance实现,整个hardscape由285个ISM组成。

可以看到小路都使用了beige色水泥地材质实例。从这些mesh来看和淘宝买的sketchup、3dsmax小区、景观的设计很像,都是大的不规则块面,不考虑程序化生成、拼接。第一阶段我先利用这些现成的做小区、景观,之后要设法达到用ai生成设计图,再快速建模实现这些设计。

草地用的面片加材质,用整个块面做的路肩缺少细节、变化,也不符合真实世界。小路的材质一眼可以看到tiling的重复。

面片的好处在于这种高低起伏再blender、max里面搞很方便,而spline mesh碰到起伏事情就变得很复杂了。暂时不清楚它这个curb是怎样实现的。

比对一下带灯光的实景和hardscape单独显示。

甚至还有穿模。

绿化带的面片,似乎没有高度凹凸,配合花草的foliage营造变化,此地图没有开world partition,但是距离拉远了花草会自动消失,不知道是什么技术。r.OptimizedWPO 默认为1会关闭植物受到风吹的摇摆效果,把r.OptimizedWPO设为0会打开效果。树根这里是个专门的mesh(下图3)。

沿岸风光带,这里出现了穿模。按照side spline mesh system的思路可以搞这个观光道路,但是到交叉口就犯难了,所以仅仅road system要不可见,用面片搞,而护栏玻璃啥的用side spline mesh ?

不同材质道路的交叉。

坡道阶梯式绿化的布置。包围小块草地类似curb的叫做TierGarden,

车道的护栏有transform\rotation的随机波动,图2展示道路交界处的处理。

连接外岛的桥,主路也是一个面片。这个路后段就做的很敷衍了。不过桥似乎确实更适合用面片做主路,不然各种各样的分叉要做对接太难了。

半坡式绿化其实就是一个mesh上分段,提取面片,然后给绿化材质。我测试了下在半坡上绘制foliage绿化,其朝向是面片的法线方向,一方面说明不用landscape,在物体上也可以绘制foliage,不过foliage模式切换回selection模式卡的有点吓人,好像经历了10秒。

编辑花草的level instancing若进入foliage mode会自动退出来,只有双击进入level才能进foliage mode,但这样就没有周边物体作为参考,根本没法进行绘制工作,我推测原先在制作时花草level instancing是有配套的hardscape,在制作完成后删除了。

实际上是隐藏了并没有删除,果然是有hardscape surface的,设置里一个是在编辑模式中不可见还有一个是游戏模式中不显示。

花坛以及道路拓宽的方式。

花坛阶梯、半坡。

滨河阶梯。

斜坡花坛。

堤坝上的石头是怎么弄得呢,这些东西显示是foliage

可以看出来上面明显的颜色分界线和石头自身的材质设置有关系,应该是世界坐标的遮罩混合了一层苔藓。

在blender中可以通过摄像机设置对室内场景获取hdri,相关教程关键字是“blender panoramic camera”。通过hdri即可生成cubemap。看了下hillside的室内fake interior有点太复杂了,我想直接材质实例随机分配cubemap能随机产生fake interior就好了,再参考下matrix的做法。

关于ISM和HISM,区别在于后者支持LOD.PBG生成的建筑部件皆为ISM组件。hillside中foliage笔刷绘制的为foliage ISM,树木确是HISM。可以推测这些树是一个个手动放置到位或者用spline mesh做的,然后转化为HISM,毕竟不像花草扎堆,树一个坑一颗没法用foliage模式绘制。

2023.9.15早上研究了下interior mapping,matrix中的这套系统需要back、front depth map,暂时不清楚这种深度图所需要的要求。要使用它的这套系统还得在这个custom data里面配置一个数据,这个数据暂时不清楚含义是什么,似乎是houdini中生成的,PBG使用matrix的mesh在bake mesh后会随机分配一个数字给这个custom data貌似?

在hillside项目的文档中提到有一个BP_InteriorRoom的工具可以生成cubemap、家具的depth map和color map,但我在项目中没有找到这个工具。

BP_InteriorRoom的演示

综上现在暂时没有办法做自定义的fake interior。

添加体积云,调节体积云材质即可影响天空。

天气系统只要在level里置入weathercontrol的那个blueprint,到detail面板可以控制树叶颜色、潮湿、日照、风吹树叶效果。不过不知道什么原因,当进入game mode时这个面板会跳出来,且重置我的设置,即使设置了actor hidden in game也没有用。

rain文件夹下的BP_Weather也没搞出名堂来,还有那个体积云的storm没有弄出闪电的雨天。

2023-9-4-citypark景观道路树木花草资产的布置分析 2023-9-10-datalayer和worldpartition总结

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×