2024-3-28-SendToUE中凯城市之光

这是第一个仅通过参考图片来制作模块化建筑的项目,比起现成的项目有3d模型作为参考,在尺寸上完全不需要多考虑,部件切分方面由于不是正视图因此观察较为困难容易混淆。

确定要做5栋样式的楼房

第一栋主体部分其实就3个房型其中两个做两次镜像拓展。

背面如右边两个图,左边应该是第二栋的背面

第二栋主体也是3个房型

第三栋,暂时没找到正面的参考图

第四栋,侧面不是弧形过渡的。

第五栋,阶梯式上行的。

2024-3-29更新:

缺乏背面照片参考让我反复折腾背面的设计,目前我还没能力通过几组正面照片就推断背面。可能是实战太少,看得少没感觉,也可能是凭空设计确实很难。ai人工智能同样是只能给一个面的参考,现在看来只有积累大量的项目参考才能让制作时没有设计上的障碍。

尺寸方面我是自己估计的,由于开始就确立对称目标,因此这次做的很顺利。建模方面的返工出在了block、brick第二套uv展开,开窗部分的缺口布线乱了没有方方正正导致uv扭曲,若需要block、brick UV系统则得布线是垂直、水平的。

测试了批量烘焙29个简易部件,5分钟内解决了。

对于非1楼起的部件,以层为单位向上叠加则这些部件先把cursor置于这一层的底部,然后将所有部件的pivot置于cursor,注意这得除开对称目标,因此对称目标不能是instance,安全起见这个对称目标应该独立于项目非建筑部件仅仅是一个对齐锚点。要叠加多少层将cursor移到所需高度-1层,比如每层3米,需要6层,则cursor向上15米,linear array 6层即可。加20楼层蛮快的,但convert to mirror搞了好久应该超过20分钟了,我估计应该先convert to mirror然后再用duplicate master加盖楼层。

我发现duplicate master加盖楼层很慢,且cursor批量变换对instance有大小旋转穿插的情况会出问题。选取整层alt d添加instance楼层 z位移叠加很快,再用shift r可以重复上述操作快速叠加楼层。

4600多个部件导出到ue需要1小时左右,需要测试下将rail、bar合并减少物体后导出速度是不是能快很多。

1楼大堂暂时没有内景,全黑看起来诡异还是得找些凑合的内景应付,现在链家都有360室内看房,我想要自己拍摄大堂的内景图应该不是很难?内景方面只要保证uv在第一单元格铺开居中基本撑满即可,所有不同规格的窗拉伸变形不影响内景显示。

2024-4-1更新:

我试了下用手机P360 、360 photo sphere camera可以获取质量还可以的全景照片用于HDRI to Cubemap转化室内伪装所用的贴图,也就是说我实地去商场、医院、学校、杂货店、小区大堂就可以解决内景问题。

这次所有部件都带了对应的bevel,墙体材质方面有4个遮罩。

对于一个模块墙体叠加楼层使用matrix block brick系统可以自动解决砖块同质化问题,水渍的分布是连续的。

一下午给32个材质添加对应的遮罩贴图,目前是ctrl d一个个复制,然后一个个手动修改名称对应遮罩名称,暂时想不到有什么好办法.看看One Click Asset Manager/Apply Material By Rules/multi tool是不是可以解决,理想状况是一键生成选中的static mesh创建material instance并且是根据static mesh继承命名。

SendToUE的mesh命名是根据object data properties(绿色倒三角)中的命名,在场景中每个actor的命名则是来自object property(橙色方块)。

2024-3-31更新:

在project setting中勾选develope mode并添加additional path,这个path下存放python文件。

Automatic material creation in Unreal Engine with Python 这篇文章的代码可以对多选的物体批量生成material instance并配置对应的texture贴图。做法是设定Textures、Materials、Meshes文件夹,多选要创建材质的mesh,在窗口菜单栏Tools中选recent python scripts执行程序,python程序中通过这条代码set_mi_texture(mi_asset, “PackedA Tex”, tex_folder + “T_” + asset_name + “_PackedATex”)实现了对PackedA Tex(四个遮罩打包的贴图)自动匹配填充。

这也就是说大量的智能遮罩贴图填充以及material instance生成与命名还有给static mesh添加对应material instance可以一键到位!

需要注意的是一个物体有多个material slot,添加材质通过这段代码 sm_asset.set_material(0, mi_asset) 实现,其中第一个参数就是material slot的索引,0是第一个材质,1是第二个依次而下。因此所有部件材质的索引必须保持一致,假设出现1号部件包含a、b、c、d、e材质,2号部件包含a、c、e材质,3号部件包含b、c、d材质那无论如何排序都无法保持材质索引一致,不过我暂时想不到这种极端情况。

这里同时还提醒了我一个问题,即SendToUE工作流的文件夹架构我还没确定。在PBG的流程中按照层分为一个个文件夹然后下属Material 、Mesh、Texture。对于SendToUE没有层的概念了,其余我想正好也可以这样分,这样也不用再测试验证python小程序对于文件夹结构变化会不会出问题了。建筑部件导入ue后组装的packed level actor会产生一个blueprint和一个map它们放在文件夹顶端即可。

bar、rail金属加不加智能遮罩,短的rail效果区别挺明显的。

测试了把rail、bar合并,从4600多个部件化为1700多个,导出到ue耗时12分钟。之前4600个是1小时多,看来导出速度和部件数量有关与instance关联无关。

2024-4-2-BluePrint探索自研DecoPerSocket 2024-3-27-一些建筑相关的ai模型

评论

Your browser is out-of-date!

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

×