C4D插件
作用分类: |
运动图形 » 效果器 |
插件分类: |
脚本预设 |
使用教程: |
无教程 |
支持(高版本请自测): |
R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 S22 R23 R24 R25 R26 |
支持语言: |
英文 |
支持系统: |
PC MAC |
出现位置: |
其他 |
检索码: |
- |
# by taorong 2014/12/21
# GhostWalker Effector/凌波微步效果器
# Walker移动时,克隆内的物体自动移动到脚下,附加变色效果
import c4d
from c4d.modules import mograph as mo
from c4d import utils
#Welcome to the world of Python
def main():
md = mo.GeGetMoData(op)
if md==None: return False
cnt = md.GetCount()
marr = md.GetArray(c4d.MODATA_MATRIX)
carr = md.GetArray(c4d.MODATA_COLOR)
warr = md.GetArray(c4d.MODATA_WEIGHT)
distanceMatrix = md.GetArray(c4d.MODATA_WEIGHT)
fall = md.GetFalloffs()
refobj = op[c4d.ID_USERDATA,1]
boundary = op[c4d.ID_USERDATA,6]
refobjposition = refobj.GetAbsPos()
userpos = boundary.GetAbsPos()
for j in reversed(xrange(0, cnt)):#estimate distance from object to cloner
differencevector = userpos - marr[j].off
distanceMatrix[j] = differencevector.GetLength()
threshold = min(distanceMatrix)
for i in reversed(xrange(0, cnt)):
differencevector = refobjposition - marr.off
distance = differencevector.GetLength()
if distance<=threshold:
boxsteppedcolor = 1
carr = c4d.Vector(boxsteppedcolor)
boxsteppedweight = 1
warr = boxsteppedweight
# print distance
else:
boxsteppedcolor = 0
carr = c4d.Vector(boxsteppedcolor)
boxsteppedweight = 0
warr = boxsteppedweight
# print distance
md.SetArray(c4d.MODATA_COLOR, carr, True)
md.SetArray(c4d.MODATA_WEIGHT, warr, True)
return True
|
|