[分享] Blender:Geometry Node程序化建筑

楼主: simon93304 (看你透透)   2021-12-25 01:21:17
大家好 最近偶然接触到程序化的作业流程后也自己摸索了一些东西
想跟大家分享一下制作思路
本来是想直接用Houdini干出来个类似湖边小屋的建筑,只是无奈功力还太浅……
(湖边小屋在BiliBili上有大神重制版)
本次参考教学:https://youtu.be/9RGEhDPRqgM
但因为版本不同的关系,所以只参考了思路部分
附上Blender制作档案,欢迎各路大神批评指教
https://reurl.cc/pxqLRx
文章也建议搭配档案的Node Tree服用,不然应该会看不懂
————————废话结束—————————
思路:
1 .先决定最后的建筑需要哪些参数可以暴露(expose)出来调整
A. 长宽高
B. 四面墙和屋顶随机分布(randomseed)
C. 全局随机分布
D. 建筑各部分替换元素
2. 拆分建筑物
https://i.imgur.com/DCanROj.jpg
https://i.imgur.com/IJs1sFf.jpg
https://i.imgur.com/8CGgv6q.jpg
https://i.imgur.com/ht8aF9q.jpg
先分为顶层(红色)、底层(蓝色)、中间层(绿色)
再拆分角落区与非角落区
若不考虑模型重叠问题也可以不拆分角落区
但我自己在做的时候发现重叠很容易导致莫名其妙的缺东缺西
所以最好还是拆开
3. 选层拆分
https://i.imgur.com/zBi6SMD.jpg
https://i.imgur.com/zyh5IL8.jpg
分别用不同的条件配合长宽高的参数去做compare float
会接在Separate Geometry的selection上
四面墙可以套用同样的条件(毕竟四面墙的顶层和底层一样)
选掉两层后剩下的就是中间层了
选角落也是一样的逻辑
不过是要配合的参数变成Width和Depth并接在instance on points的Selection上
4. 各区域的元素
我先简单在各区域都用两种简单的模型做区分
之后可以随需要添加窗户、栏杆、植栽等等细节
放进个别的Collection中就会自动随机分布
https://i.imgur.com/a6woFNy.jpg
https://i.imgur.com/OdPLvEe.jpg
5. 随机分布
https://i.imgur.com/TFCJQSX.jpg
这里的重点是红色的线
简单来说instance on point节点上的instance index被用来控制随机分布
如果不要All seed这个变量的话
也可以直接把random value的Seed直接expose出去就好
6.建筑元素
https://i.imgur.com/TPiG7ns.jpg
没什么特别的,就是把Collection info一样暴露到Group input
方便以后有新增其他替换素材包时直接选择该Collection即可
不用再进到节点海里面找Collection info….
完成的节点海...
https://i.imgur.com/iIJlA1V.jpg
图应该蛮糊的 建议直接开档案看
最后要把建筑导出成fbx的话还要在最后加上一个Realize instance 节点
然后在Modifier Properties上按下Apply才能导出到Unreal 或是到Houdini做破碎之类的
未来如果有时间的话会想办法把制作过程也分享出来
也欢迎大神看一下我的档案
目前觉得节点还是有点复杂但也不知道能如何简化
————————打完收工—————————
补充:
我自己用AlterMesh把Geometry Node导入UE4时会掉材质
目前我还没找到解决方法 还请大神救援
欢迎转载并注明出处
希望有更多人一起研究程序化的工作流程
作者: Aerci (ac)   2020-02-01 00:58:00
没人XD 帮推
作者: IDislong2die (ID长到死)   2020-02-04 21:17:00
蛮酷的~!!
作者: kyushu (苏打绿吓倒我了)   2020-02-07 13:18:00
geometey nodes 正夯,怎没人推?

Links booklink

Contact Us: admin [ a t ] ucptt.com