UE5于今年4月正式发布,各种samples和showers已经分发。
其中,矩阵觉醒:虚幻引擎 5 体验(俗称Matrix demo)城市景观数据
我们研究了如何从工作流程方面创建城市景观。
不知道City样本有没有更新,但我在UE5.0.0发布后立即调查了数据。
概述
也可以在官方网站上找到有关 City 样本的文档。
最终的城市景观形状是用 Houdini 制作的。在 UE5 中,Actor 和蓝图由 RuleProcessor 基于 Houdini 创建的 PBC(点云信息)生成。
所以如果你想改变城市的形状,你必须在Houdini中调整它并通过PBC重新生成它。
此外,City 示例中使用的 Houdini 项目位于 City 示例文件夹中Shi ty s mp _ houji nifie s. p总结在
关于使用,
所以,祖师整理了一个推特帖子,请参考。
CitySample_HoudiniFiles.zip包含SmallCity Houdini工程(*.hip),对应UnrealEngine端的/Game/Map/Small_City_LVL的内容,所以如果你边对比边查资料比较容易理解。
关于规则处理器
RuleProcessor 是 City 示例中使用的插件。
它不是引擎插件,但它似乎是比较通用的,所以我认为你可以将它合并到你的项目中并使用它。
我希望它将来会成为一个引擎插件。
RuleProcessor 的工作原理
如上图所示,Actor和Blueprints是根据基于PBC信息的RuleSet的描述放置在关卡中的。这就是主要功能。
RuleSet 和 PBC 被视为一个称为 Mapping 的单元,此 Mapping 与生成的 Actors 和 Blueprints 相关联。
所以对于每个映射
- Actor 生成(包括再生)
- 删除生成的演员等。
- 获取生成的Actor列表等。
这样的事情是可能的。你在这个规则集上犯了一个错误!即使变成这样,也可以通过仅删除当时生成的 Actor 来重新开始。您不需要查找和删除每个生成的 Actor 或依赖 UNDO。
此外,在 City 示例中,几乎所有元素都是使用此 RuleProcessor 创建的。
如果您删除所有使用 RuleProcessor 创建的 Actor 作为试用,显示的网格将是帝国大厦、国会大厦等。英雄大厦它只会被称为一个独特的建筑。
其他剩余的 Actor 与光照相关,例如 DirectionalLight、SkyLight 和 PostprocessVolume。它只是人群控制模块和WorldPartition等对整个世界进行操作的控制模块。
关于规则集
RuleSet 资产的工作原理
我将参考 Small_City_FULL_buildings_Roof_Geo 进行解释。
在 RuleProcessor 中,此 RuleSet 和目标 PBC 被指定为一对并执行。
在 RuleSet 内,首先根据 Metadata 的内容过滤目标点数据。
首先元数据:选择屋顶(红框) 以包含 SM_arbitrary_roof_ 的 unreal_instance 名称为条件。
在此之下,您可以分支到匹配过滤器和不匹配以通过分支到匹配或不匹配过滤条件的项目来继续处理。
下一个元数据:建筑(绿框),条件是元数据对应的点数据的类型是否等于建筑:选择屋顶。
接着,MultiActor:建筑没有 Col现在,就是根据 Metadata 对应的点数据生成 Actor 的过程:构建。
名称模式 (黄框),您可以指定要生成的Actor的名称,也可以通过更改Templates中的项目来更改碰撞设置、更改LOD设置、调整Visible标志。
是否分离 RuleSet
总之,应该适当划分。我是这么认为的,其实City示例RuleSet的配置也是这样。
以 Small_City_FULL_buildings 为参考,第一个条件与 Small_City_FULL_buildings_Roof_Geo 完全相同。但是下面的处理是用Unmatched写的,unreal_instance是SM_arbitrary_roof_不包含我正在处理点数据。
Small_City_FULL_buildings_Roof_Geo 和 Small_City_FULL_buildings 可以通过描述 MatchesFilter 和 Unmatched 中的每个内容组合成一个 RuleSet。
那么为什么将它们分成两个 RuleSet 呢?
这是因为 RuleProcessor 的 Mapping 生成的 Actors 是托管的。
通过划分规则集并将它们视为来自同一 PBC 的不同映射,可以在重新生成或删除它们时分别处理它们。
在这个例子中,建筑物的外墙和天花板是分开的,因此需要分别检查/纠正它们。我想这就是它的意思。
我们在胡迪尼做什么
RuleProcessor 的工作原理如 中所述,几乎所有元素都基于 Houdini 的 PBC 输出。
至于我们在胡迪尼做什么,前几天就做了
很详细。
在胡迪尼内部,
- 布局
- 道路设置
- 高速公路设置
- 生成包裹
- 生成人行道
- 生成交通信息
- 也用于人群控制
- 生成建筑
- 道路和人行道以外的表面填充物
- 路上的装饰品
- 电线杆、红绿灯、行道树等
- 贴花
- 人行横道、车道、道路泥土等。
- 音频
- 环境声源的放置
我们制作了构成城市的几乎所有元素。
在臀部(Houdini 项目文件)处理器1的节点为主要加工厂,整体如上图所示。似乎处理是按照给定的数字顺序进行的,并且以黑线分隔的单位存在依赖性。
将这里生成的结果输出到PBC(浅灰色部分),在UnrealEngine的RuleProcessor中使用。
我们用虚幻引擎做什么
RuleProcessor 生成 Actor 和蓝图
Houdini 生成的 PBC 包含有关放置哪些资产的信息。
在此基础上,根据 RuleProcessor 的规则,生成并放置预先用 LevelInstanceActor 和包含 InstancedStaticMeshComponent 的 Actor 创建的 BP。
了解更多信息关于规则集由于它被触及,请参阅该项目。
创建一个 LevelInstanceActor
从 UE5 开始,已经准备好一个名为 LevelInstanceActor 的系统,用于使用 kit bash 创建资产。
有关功能的详细信息,
请参阅上面的文档。
通过使用此功能,您可以组合 StaticMesh 资源来创建最佳 Actor。
在 City 示例中,通过组合多个 StaticMeshes 创建一个 Prop,如上所示。
每个 StaticMesh 都会自动存储为一个 InstancedStaticMesh,因此可以高效地绘制。
也可以从此资产中导出 FBX 并在 Houdini 中使用该 FBX。
总体印象
与虚幻引擎无关!
根据我使用 HoudiniEngine 的经验,我使用 HoudiniAssetActor 在编辑器端生成资产并在编辑器上自定义结果。我认为这是一个工作流程
然而,在 UnrealEngine 中,它只是根据在 Houdni 中创建的信息进行排列。这样数据肯定会更加健壮,无论出于何种原因重新生成数据,您都不会丢失任何工作。
看TechTalk等各种视频,有使用HoudiniAssetActor的场景,所以我们将HoudiniAssetActor作为单元测试,检查功能,集成到输出PBC的臀部。这可能是流量。
到目前为止,政策是“在编辑器中构建世界”,但未来可能是“在 Houdini 中构建世界”。
制定程序规则是关键!
如果你采用这种工作流程,你可能需要很多可以处理 Houdini 的人,因为几乎所有东西都是用 Houdini 制作的。然而,寻找能够制定程序规则的人可能更为紧迫。
从 TechTalk 视频中可以看到,需要对街景的元素进行拆解/重构,用什么规则可以重现想要的街景。一个会思考的人是必不可少的。
它需要专业知识,因此对于没有专业知识的工程师来说,似乎很难扔掉所有东西。
但是,如果有程序规则,Houdini 上的实现可以留给工程师,这样看来,确保人力资源的难度会有所降低。
一旦你做到了,迭代和创建变体就很容易了
概述正如您在 中介绍的推文中看到的那样,一旦该系统到位,您就可以根据需要创建任意数量的具有不同布局的城镇。
另外,我认为创建不同风格的城镇景观相对容易。 (更换零部件)
因此,对于需要一个接一个地创建内容的运营标题来说,这似乎是一个有吸引力的选择。但是,创建机制的成本很高,因此似乎关键是要克服它。
不用担心看不到的部分!
这张图片是从建筑物的内部拍摄的,朝着相邻建筑物的方向看。这样
- 即使与相邻建筑物没有间隙,也会创建出口
- 建筑物插图
在那种状态下,他们似乎不在乎看不见的部分。
不可见部分也有顶点信息,但如果用Nanite处理的话,只进行一般可见部分的顶点处理,所以不会施加不必要的处理负荷。
下一个问题是磁盘/内存容量,但在 City 示例中,资产由部件管理和重用。所以容量似乎也不是问题。
后记
就像我之前放在一起的AnimToTexture插件一样,City示例中包含的插件似乎有多种用途。会使用 C++ 的人可能会觉得基于此进行自定义很有趣。
此外,与音频相关的 WorldAudioDataSystem 和 Soundscape 插件也是相当有趣的设计。并且会有所帮助。如果我有时间,我也想把它放在一起。
City 示例已在 Matrix 演示中使用,看起来很棒,但有许多有趣的工作流支持它,所以如果您有兴趣,请看一下。
参考资料
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308622569.html