在C4D中用python实现一个根据索引来控制克隆的简易效果器

hanxia 2020-06-27

之前某个项目里遇到了这样一个问题:随机克隆了一堆东西打好摄像机后总是有几个克隆对象位置不太好,调随机值不太管用。而且摄像机还是个360°的摄像机,克隆的物体是一个圆环,运动选集还不好找。
总之这么一个小问题在各种原因下变得特别蛋疼,就把C4D自带的python效果器改了改,让它可以根据对象索引来控制克隆,基本上可以视为一个根据对象索引来控制物体的简易效果器,算是对简易效果器的一个补充。

  • 首先新建一个python效果器,添加用户数据
    在C4D中用python实现一个根据索引来控制克隆的简易效果器
  • 复制代码到python编辑器
import c4d
from c4d.modules import mograph as mo
#Welcome to the world of Python

def main():
    md = mo.GeGetMoData(op)
    if md is None: return 1.0

    index = md.GetCurrentIndex()
    if index == op[c4d.ID_USERDATA,1]:
        mode = md.GetBlendID()
        if mode==c4d.ID_MG_BASEEFFECTOR_POSITION:
            return c4d.Vector(1.0)
        else: return 1.0
    else:
        return 0

此时自定义的用户数据便是你要控制对象的索引,在某些情况下调整它比拿着运动选集工具在视图中一阵划拉要舒服多了。