On 14/03/2017 at 13:16, xxxxxxxx wrote:
Yannick thank you so much for explaining in such depth.
I had not noticed there was a different control mode available! Now everything works perfectly.
Here is my refined code for offsetting a cloner array:
import c4d
from c4d.modules import mograph as mo
def main() :
md = mo.GeGetMoData(op) #get cloner data from user data link field
if md==None: return
frame = doc.GetTime().GetFrame(doc.GetFps())
offset = op[c4d.ID_USERDATA,3]
moArray = md.GetArray(c4d.MODATA_MATRIX) #get array of clones
newArray = shiftArray(op[c4d.ID_USERDATA,3], moArray)
md.SetArray(c4d.MODATA_MATRIX, newArray, True)
return True
def shiftArray(offset, array) :
offset = offset % len(array)
return array[offset:] + array[:offset]