XSIforum.com

Foros 3D => Autodesk Softimage => Animación => Mensaje iniciado por: siru en 06 Agosto 2009, 10:29:16

Título: poner keys en frames enteros al escalar una animacion
Publicado por: siru en 06 Agosto 2009, 10:29:16
Hola, sabeis si hay alguna preferencia oa algo para poner los keys siempre en frames enteros no con decimales?
Me explico: a veces al escalar un animacion, los keys intermedios quedan en frames con decimales y me resulta muy incomodo a la hora de editarlos despues.
Título: Re: poner keys en frames enteros al escalar una animacion
Publicado por: Cesar Saez en 06 Agosto 2009, 12:50:28
Con scripting es relativamente fácil de hacer, selecciona los objetos con las curvas "no normalizadas" y ejecuta esto:

Código: (python) [Seleccionar]
import math

def NormalizeCurve(FCurves):
for eachFCurve in FCurves:
for eachKey in eachFCurve.Keys:
if (eachKey.Time - int(eachKey.Time)) < 0.5:
eachKey.Time = math.floor(eachKey.Time)
else:
eachKey.Time = math.ceil(eachKey.Time)

def GetFCurves(obj):
holder = [i for i in obj.Properties if ClassName(i)=="CustomProperty"]
holder.append(obj)
return [o.Source for i in holder for o in i.Parameters if ClassName(o.Source)=="FCurve"]

for each in Application.Selection:
NormalizeCurve(GetFCurves(each))

Python rulez  8)
Título: Re: poner keys en frames enteros al escalar una animacion
Publicado por: Sumatra en 06 Agosto 2009, 13:19:04
Perdón por mi ignorancia, pero no es lo mismo que el Animation Editor > Edit > AutoSnap to Keys (Discrete Time)?
Título: Re: poner keys en frames enteros al escalar una animacion
Publicado por: siru en 06 Agosto 2009, 15:22:24
gracias a los 2, aunque las 2 opciones pueden valer me quedo con la de Sumatra ya que todo lo que sea scripting prefiero evitarlo, sobre todo si ya hay una opcion dentro del programa.
Título: Re: poner keys en frames enteros al escalar una animacion
Publicado por: Cesar Saez en 10 Agosto 2009, 10:43:23
Perdón por mi ignorancia, pero no es lo mismo que el Animation Editor > Edit > AutoSnap to Keys (Discrete Time)?
Lo mio "repara" curvas que ya vienen dañadas, si lo quieres "prevenir" en lugar de "curar" es mejor usar la opción de XSI :)