Salut tonib,
Tu peux faire ça avec un Tag Python sur ta formule.
Exemple pour passer de 0.5 à 0 entre la frame 10 et 50 :
Code PHP:
import c4d
frame_start = 10 # Frame de début
frame_end = 50 # Frame de fin
x_from = 0.5 # Valeur à la frame de début
x_to = 0 # Valeur à la frame de fin
def range_convert(old_value, old_min, old_max, new_min, new_max):
# On change de range
new_value = (((old_value - old_min) * (new_max - new_min)) / (old_max - old_min)) + new_min
# On clamp entre le min et le max (sachant que le min peut être plus grand que le max)
max_f, min_f = (max, min) if new_min < new_max else (min, max)
return max_f(min_f(new_value, new_max), new_min)
def main():
# On récupère la frame courante
current_frame = doc.GetTime().GetFrame(doc.GetFps())
# On converti la valeur de la frame courante qui est entre [frame_start, frame_end]
# en une valeur comprise entre [x_from, x_to]
current_x = range_convert(current_frame, frame_start, frame_end, x_from, x_to)
op.GetObject()[c4d.FORMULAOBJECT_DLT] = "Sin((u+t)*2.0*PI)*" + str(current_x)
Je pense que tu peux faire la même chose avec Xpresso et une cartographie d'intervalle.