CG技术

制作SendToUE程序化建筑:

1.设置batch export和SendToUE的参数,batch export勾选select obejct,SendToUE勾选build nanite 修改文件夹路径为建筑类别/建筑项目名/Meshes,勾选place in level、use mesh instances.在ue中创建这个文件夹,与Meshes平行的一级添加Textures和Materials文件夹,这便是SendToUE工作流的文件夹结构。若有su参考模型需要使用,先做清理工作,包含clean parent,clean object data关联关系,apply rotation scale,flip normal。

2.创建好几个不同大小的bevel collection,比如外部的窗户、一些装饰已有bevel归为一个无需bevel的collection;墙体、cornice用默认的1cm bevel;金属栏杆是0.3cm左右的bevel。这个步骤可能一上来无法完全确认做完一层归类一次collection?

3.建模开始前切分楼层注意始终保持一层为完整的地面到天花板,比如有些情况中,地面位于cornice的中段,则应该切分cornice而不是切分实际逻辑上的楼层而保持cornice的完整性,这样会使墙体、装饰部件、门窗框跟着一起切分从而使整个工作变得非常复杂。切分需要用ps或者微信截图切实画出来,以免后面思维混淆,尽管SendToUE工作流无需考虑房型之间的拼接,高度可以不用统一,但考虑到部件模块化复用,每一层通过duplicate master的array instance去向上叠加,因此还是需要有模块化的思维,尽量将各个部件模块化合并同类项。

阅读更多

在解决了建筑地平、道路投射地形吸附后,我不禁思考——这就完了?面对一个区块还是觉得畏手畏脚,无从下手。建筑方面可以对一个区块内归纳分类几种,摆放上参考百度地图的建筑布局。然而景观方面我感觉制作的流程不对,或者说目前从没有看到一个基于blender的景观范例、教学,目前我这个思路做下去真的对吗,我一直很纠结地形高差问题,希望能在一个区块中表现形形色色的高差,然而画好所有的“局部功能”(如停车位、绿地、treebase、坡道、阶梯等)是将这些线框投射到区块terrain上?然后绿地可以通过起泡泡做些高差,坡道阶梯拉伸出来。另外这似乎是个高度耦合的问题,不像建筑按照房型可以“通用”修改,比如下图中这个坡道一改坡度,势必两边的草地也要跟着动。

阅读更多

地形:

在blender中用osm获得一个地形mesh,通过ue5.2插件mesh convert terrain在ue中创建landscape,转换world partition版本导出到5.3版本。地形方面的一致性通过选中landscape proxy在ue中导出fbx,再到blender中导入,其相对位置是一样的,然后找3个点放置模型观察两个软件中模型所处地形的相对位置,来确认贴图位置使blender和ue的地形位置一致。

道路建设:

frg对着贴图铺好车用道路后,convert mesh再用shrinkwrap的project模式,开启positive和negative,将车道吸附到地形上。

阅读更多

由于Num Custom Data Floats 5.3版本开始才有相关的set函数,没有这个暂时解决不了packed level actor室内伪装重复,因此昨天陆续开始移植之前的项目到5.3版本。Mesh convert Terrain这个插件5.3版本好像不能用,测试了下在5.2版本生成好之后再导入5.3,这里我添加了来自CityPark的地形材质并做了些修改,引入了长沙卫星图作为垫图,不过这里要更改旋转、uvtile和uv偏移,使用地形是为了利用world partition特性,让巨大场景在动态运行时只加载一定范围的物体,另一方面是我希望借助landscape的paint解决自然环境的一些材质,比如土壤青草什么的,ue的water插件水景也需要landscape。为了让blender导入ue的道路、建筑在blender和ue的位置相同,需要找一些基准定下来,地形大致到位用湘江和橘子洲作为参照,然后将整体到路mesh导入调整landscape材质的偏移使其能和道路对上。

阅读更多

在立面部件水平垂直的情况下,即使不用第二套uv直接用matrix paint附带一个有切分的texture就能得到图2、图3这样的效果,大体上可以混混,但是当大面积平铺会发现略明显的重复痕迹,另外水渍不会在grout上显现。

阅读更多

在完成模型制作后,对部件选中批量命名,然后data name from object使网格体名称能够规范化。在SendToUE的工作流中,网格体的名称是static mesh名称,物体名称是场景中的actor名称。对于同一网格体的部件会有多个instance对象,理想中的状况是选中其中一个instance对象烘焙而不需要所有的instance都拿去烘焙,我搜了很久并没有找到对若干包含多组instance的物体选中其中单个instance的办法。后来我想了个思路,既然有插件可以对instance操控必然是可以获取instance的,那么按照网格体分类获取其data name然后移动到各自的collection里面,再从collection着手选取其中一个对象,那么就能实现我的想法了。然而我对python几乎没什么印象了,更别说还要去啃blender python的api文档。抱着死马当活马医的态度,我试了下用kimi人工智能和chatgpt,居然在一番循序渐进的诱导下成功做出了这两段代码。

阅读更多

Your browser is out-of-date!

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

×