XSIforum.com
Foros 3D => Autodesk Softimage => Rigging y Scripting => Mensaje iniciado por: Mak_01 en 03 Mayo 2007, 20:42:31
-
Hola!. me pregunto si alguien me podría explicar a mi y a los que no tenemos ni pajolera idea de como usar las expresiones condicionales. Se que mi pregunta es muy inconcreta, por eso me vale cualquier respuesta.
Si hay algun buen samaritano sería de agradecer. Un saludo.
-
Por lo que entiendo nunca has programado en ningún lenguaje. ^-^
Esto funciona igual que en programación. Se usa para que por ejemplo cuando algún parametro toma un determinado valor la condición se cumple y entonces ejecuta algún tipo de acción. O0
No se si te has quedado igual. ;D
-
entiendo mas o menos como va. Con que me expliques la sintansis en un ejemplo sencillisimo yo creo que lo pillare. Gracias por contestar. Igual la pregunta es un poco dificil de contestar sin tener ni idea.
-
hola, por lo que he leido hasta ahora esta basado en VB aunque tambien lei que en c, te voy a explicar como van en vb
if valor (obligatorio)
else if valor alternativo (no obligatorio y puedes poner los que quieras)
else (accion
end if
claro, solo si se basa en VB
sino hay una cosa rn rl mrnu de ayuda llamada SDK guides, donde viene todo explicado, o eso creo, sino es vb dime que lenguaje, seguro que el visual studio lo tiene y te puedo sacar algo del msdn
-
Bueno un ejemplo.
Creas una esfera y la animas en la vista Front desplazándola en el eje x de izquierda a derecha 100 frames.Despues abres el Expresion editor y arriba en target parameter escribes sphere.kine.local.scly
Y abajo la expresión condicional
cond( Fc > 50 , sphere.kine.local.scly - 0.5 , sphere.kine.local.scly == 1 )
Se puede perfeccionar el resultado pero ya se ve.
Cuando el frame actual sea mayor de 50 aumentaremos la escala en Y 0,5.
Espero que ayude. O0
-
me da que no vamos a estar hablando de lo mismo XD
-
Creo que hablamos de expresiones, no de programacion pura y dura.
-
A ver si esto lo hace mas facil de entender:
cond( <pregunta>, <accion_respuestaPositiva>, <accion_respuestaNegativa> )
Donde <pregunta> es una expresion que puede ser verdadera (TRUE) o falsa (FALSE). Si es TRUE, ocurre la <accion_respuestaPositiva> y en caso contrario, <accion_respuestaNegativa>.
O sea, con el ejemplo de antes:
cond( Fc > 50 , sphere.kine.local.scly - 0.5 , sphere.kine.local.scly == 1 )
Fc (numero de frame actual) es mayor de (>) 50??
Si? Pues reducir 0.5 del escalado local en Y del objeto "sphere".
No? Dejar escalado local de "sphere" en 1 (o sea, neutral).
-
Vale, muchas gracias. Con estas respuestas supongo que no tendre problema. Ya os ire contando si tengo alguna duda.
-
Bueno pues muy bien explicado alanf, el caso es poner un poquito cada uno.
-
Bueno ahora la cuestion es: la respuesta a la condicion puede ser un scrip. Para empezar yo no se si se pude animar un scrip pero supongo que si. Que este activo a que no por ejemplo.
Sería algo asi como hacer que un scrip tuviera un boton animable y ese boton sea la respuesta a la expreion condicional. Se que es rizar el rizo pero bueno.
-
Bueno ahora la cuestion es: la respuesta a la condicion puede ser un scrip. Para empezar yo no se si se pude animar un scrip pero supongo que si.
Casi.... no puedes animar el contenido (o sea, el codigo en si) de una expresion, pero si puedes meter condicionales dentro de condicionales dentro de condicionales.. etc etc.. XD
Que este activo a que no por ejemplo.
Sería algo asi como hacer que un scrip tuviera un boton animable y ese boton sea la respuesta a la expresion condicional.
Pues te acabas de responder tu mismo! XDD
Te creas un "custom parameter set" y haces un "new custom parameter" dentro de el. En vez de dejarlo en el type que viene por defecto, eliges "Boolean". (Esto significa que dicho valor puede ser si o no / positivo o negativo / verdadero o falso / 1 o 0.)
Luego, es cuestion de referenciarlo en una expresion condicional... Tal como hicimos en ejemplo anterior con sphere.kine.local.scly... (local kinematics - scale Y) puedes referenciar a un custom parameter set... <objeto>.<nombre_de_customparameterset>.<nombre_de_parameter> y la <pregunta> seria si es 1 (activo/TRUE), o tambien puedes preguntar si esta en 0, da igual. Uno de los dos.
En mi rig del coche, por ejemplo, tengo toneladas de niveles de condicionales. XD