Octane灯光排除的快捷方法升级(脚本V2.1)
在上一个版本的基础上做了功能强化。支持对多个灯光同时排除物体的功能,以及取消删除后重置回原灯光参数并清理标签。
【适用版本】
C4d R20以上,OCtane4.0 以上
【设计思路】
1.本身采用Python语言结合C4D提供的API,利用现有的灯光GUI模块联动OCtane的各项参数。
2.OCtane的标签有通道设置,可以设定接收灯光通道。整个功能都是建立在这个基础上。
3.通过将物体拖入灯光工程选项卡下的列表框内,遍历物体并赋予OC标签,设定灯光通道,那么如何判断该设置哪个通道呢?
上一章都说过了。详见https://www.zcool.com.cn/article/ZMTQwOTc1Mg==.html
红色灯泡就是设置了【排除模式】,绿色灯泡就是设置了【包括模式】
代码如下:
4.重点来了,本次增加完善了灯光对物体的照射功能选择。可以通过小图标控制灯光的漫反射,折射,投影和透明发光四个开关。
上图所示,关闭了物体对灯光的折射和透明发光的功能。
【需要提醒的是】
在包括状态下,红色图标代表的是不被包括。
在排除状态下,红色图标代表的是不被排除。
5.在取消设置上,如何操作呢?也比较简单,
就是把对象列表的对象都delete掉,然后执行一下脚本。
就可以清空所有脚本设置的标签和参数。
如何实现这个功能?
首先想到的是通过列表获取对象的OC标签并删除,
但是经过测试,列表中的对象哈希值和场景中的对象哈希值是不相等的。
对计算机来说,两个对象虽然都叫同一个名字但是实际上是不同的物体。
我才用了在生成OC标签的时候,预设了一个用户数据。
这个用户数据通过random.randint(0,10000)随机产生。
这个随机产生的数值同时赋予给了本次的排除对象和灯光。
然后通过遍历场景内的对象,如果有这个数值标记,就删除标签并重置相应的参数。
6.本次增加了可同时多个灯光排除一个物体的功能。对之前的主函数套上了for循环。
以上就是本次升级的功能,之后不再做更新升级。
==============================================================
【使用方法】
1.在选中一个或多个灯光的状态下,打开灯光的【工程】工程选项卡。
2.将要排除的一个或多个物体,并设置【包括】/【排除】模式。
3.设置要排除物体的反射、折射、投影、透明发光四个参数。
4.点击脚本执行即可。
5.如果要取消功能,选中刚才的一个或多个灯光,将【工程】选项卡内的物体对象全部清除。执行脚本即可。
【建议】
同一次设置的灯光如果要取消设置,建议一起设置并取消,否则容易出现清理失败的情况。
===============================================================
【安装方法】
详见https://www.zcool.com.cn/article/ZMTQwOTc1Mg==.html
===============================================================














































































