我写了一个C4D自动搭建室内场景脚本

用户头像
北京/设计爱好者/3年前/1400浏览
我写了一个C4D自动搭建室内场景脚本

写它的背景是有很多个办公场所不定期的需要出效果图,由于标准是统一的可以套用一个脚本来实现重复性的工作。

这个脚本可以实现的效果:

(BGM是自己编曲,属于标准的套路行进,呵呵)

所以我想通过一个方法来实现:导入CAD户型图,然后使用脚本自动搭建墙体、门窗、家具、灯光和摄像机并添加批量渲染清单,点击渲染即可。

它的逻辑是可以通用到很多方面,比如楼盘,室内场景,电商场景,游戏地编等等。

当然,目前它还是一个“个人使用”的脚本,还有一些交互设计上不那么完备的功能。

但是我在这个项目中有一些可以拿出来分享的思考过程总结。涉及到四个类的实现,打算分几期来分享。

所面对的核心问题是:

CAD的信息读取和使用。做了几次测试,CAD中的图层和图块机制可以被C4D读取到,以此作为后续操作的基础。

我通过四个类来解决四个功能:

(1)获得导入的CAD信息并能够可视化的debug,InfoMage类;

(2)根据得到的数据生成墙体框架和灵活多变模型的,buildings类;

(3)为场景添加环境光、摄像机和室内照明的,Lights类;

(4)能够自动根据数据布置家具和操作数据的,autoplanned类;

主体的实现逻辑,可以看下主函数:

#主程序
def main():
#选择dwg对象,执行初始化运行
if doc.SearchObject('infomage') is None and 'dwg' in op[c4d.ID_BASELIST_NAME]:
#实例autoplan和infoMage
a=autoplan(doc,op)        
a.cleanTag()
b=InfoMage('infomage',doc)
data=b.createMeshData()
infomage=b.insertInfoMage()
linklst=b.CreateGUI(a.getlayers(),infomage,mode=None)
c4d.EventAdd()
#根据meshdata匹配家具摆放
meshdata=doc.SearchObject('meshData')
a.setAllConfig(meshdata)
#实例化buildings,构建墙体
bu=buildings(doc,a.getlayers())
harddata=bu.createHardData()
#生成门洞和窗洞
subtract_all=bu.subtractAll()

floors=bu.createBoard(mode='floor')
ceilings=bu.createBoard(mode='ceiling')
harddata=doc.SearchObject('hardData')
bu.setDoors(harddata)
bu.setOtherWalls(harddata)
bu.setWindows(harddata)
bu.setDeformFurn(harddata)
#构建环境和太阳光,相机
lights=Lights(doc,a.getlayers())
lights.setEnv()
lights.setSun()
cams=lights.setMulCam()
lights.setLights()

c4d.CallCommand(202539)#增量保存文件
setRander(doc,cams)#设置批量渲染

当然,脚本并不是凭空产生家具模型,也不是所有的CAD图纸都能够被正确的地识别。

这需要做一些准备工作。将需要使用的模型导入或者创建好后赋予材质备用。

另外,CAD文件内需要准备好相应的家具图块用于读取位置和旋转信息。

场景中也会有一些无特定尺寸的模型,比如门、窗的尺寸,可能宽度和高度都有所不同,且同一个场景中出现多个不同尺寸的情况。

在下一篇中将会做详细地介绍这部分内容。

更多内容请关注下方的公众号,获得更多冷门信息和个人开发的脚本工具。

9
举报
|
5
分享
相关推荐
评论
用户头像
评论你的想法~
表情
喜欢TA的作品吗?喜欢就快来夸夸TA吧!
推荐素材
3D三维玻璃蓝紫色螺旋弯曲图像背景
灰色三角四面体、点线链接构成三维空间科技矢量背景
三维渲染红色礼盒
红色三维概念礼盒背景
三维渲染人造空间未来科技展厅
设计感流动线条背景,三维渲染
三维渲染城市背景
矢量抽象三维几何图形创意海报
扁平化抽象几何三维模型创意时尚海报
三维假期旅行主题
三维地形图,等高线。抽象的点线科技背景,类似云端数据连接、区块链、神经网络的概念。
点线连接的科技矢量背景,三维抽象矢量星球,寓意全球化、国际化,球形世界地图
深蓝色三维科技地球,全球化、国际化、科学技术概念抽象图形
三维界面科学技术,科幻场景矢量背景图。
三维渲染极简北欧风现代家居装饰场景
三维情侣出游矢量插画
红色喜庆风格的三维产品展台
三维渲染炫彩背景
三维曲线空间背景
黑白数字线条与深色背景,三维渲染
3D三维玻璃蓝色螺旋弯曲图像背景
三维抽象矢量星球,寓意全球化、国际化,球形世界地图,点和线连接的矢量背景
三维金融创意股票基金金融模型
发光线条与方块,科技感背景,三维渲染
三维渲染抽象波浪流金风格背景
你可能喜欢
相关收藏夹
学习
学习
学习
学习
大家都在看
登录注册