XSIforum.com

Foros 3D => Autodesk Softimage => Rigging y Scripting => Mensaje iniciado por: Quel en 26 Septiembre 2011, 09:39:36

Título: l_fcv( ctr_dist( <elem1> , <elem2> ) ) = ERROR
Publicado por: Quel en 26 Septiembre 2011, 09:39:36
Seguro que mas de uno se ha encontrado a veces con el deseo/necesidad de hacer un enlazar el valor de una variable, con una curva comandada por la distancia entre otros 2 objetos. La expresión que pondríamos como ... l_fcv( ctr_dist( <elem1> , <elem2> ) ).
No parece una expresión tan complicada. Pero el XSI nunca me la acepta.

Sin embargo, si uso una variable de intermediario, después no me da ningún problema.
Por poner un ejemplo. Creo un Null y le pongo que en el Null.kine.local.posx = ctr_dist( <elem1> , <elem2> ). Después, en el objeto que inicialmente queria modificar, le enchufo un l_fcv( Null.kine.local.posx ). Y ahora si funciona.

Mi pregunta es ... :
¿ Existe alguna forma de lograr que eso funcione sin ese Null ejerciendo de mediador entre el l_fcv y el ctr_dist ?

No es que sea un problema existencial que no me permite seguir trabajando, pero pregunto por curiosidad. Porque si tienes que hacer esta chapuzada 100 veces en un rig, al final acabas con un ejército de nulls a un costado que resultan molestos y quedan "feos". Como poco profesionales.

Gracias.
Título: Re:l_fcv( ctr_dist( <elem1> , <elem2> ) ) = ERROR
Publicado por: Cesar Saez en 26 Septiembre 2011, 12:30:07
En la documentación está bastante claro, los linked parameters son una pseudo expresión que sirve para relacionar parámetros mediante una fcurve, un ctrl_dist() y/o cualquier expresión matemática no es un parámetro y lógicamente fallará.

Citar
Linked parameters provide you with a quick and easy way to create relationships between parameters without having to work out the mathematical expressions involved. They are especially useful with custom parameters, such as when you create a custom control panel with sliders to control a rig (see Custom and Proxy Parameters [Customization]).

Linked parameters are similar to expressions (in fact they create a special type of expression: l_fcv), but the value of driving parameter controls the linked parameter as dictated by a function curve rather than by a mathematical formula (see Editing Linked Parameter Fcurves).

While you usually only link one parameter to one driving parameter, you can link several parameters to the same driving parameter. You can also create multiple sets of “one-to-one” links at the same time. No matter how you create the links, an l_fcv expression is created for each linked parameter. As well, when a parameter is linked, its animation icon displays an “L” to indicate this state  .
Título: Re:l_fcv( ctr_dist( <elem1> , <elem2> ) ) = ERROR
Publicado por: eduardito en 26 Septiembre 2011, 18:04:15
En la documentación está bastante claro, los linked parameters son una pseudo expresión que sirve para relacionar parámetros mediante una fcurve, un ctrl_dist() y/o cualquier expresión matemática no es un parámetro y lógicamente fallará.


pues no estoy deacuerdo, un parametro es cualquier cosa desde una variable a una expresion matematica o lo que sea.
lo que pasa es que a lo mejor el sdk no permite eso.
Título: Re:l_fcv( ctr_dist( <elem1> , <elem2> ) ) = ERROR
Publicado por: Cesar Saez en 26 Septiembre 2011, 18:52:18
Pues no estoy de acuerdo...
Filosóficamente podría ser lo que quieras, pero en el contexto de Softimage hay que regirse a lo que él entiende por parámetro (que por supuesto viene perfectamente explicado en la documentación).

Me parece que no es algo discutible...

Citar
What is a Parameter?

Parameters (sometimes called properties) are the “atomic” elements of a property set whose values determine the behavior of something. For example, the posx parameter in Cone.kine.local.posx represents the local position in X of the cone object, whereas the viewvis parameter in Camera_Root.visibility.viewvis determines whether or not the camera root is hidden in the UI.

You can view and set parameter values through property editors in the UI. You can also get and set parameters through scripted or compiled code.

If you want to add your own parameters to an object you can use a CustomProperty object. For more information, see Custom Properties.
Título: Re:l_fcv( ctr_dist( <elem1> , <elem2> ) ) = ERROR
Publicado por: xuanprada en 26 Septiembre 2011, 20:12:38
Yo en lo de "atomic" ya me he perdido.
Título: Re:l_fcv( ctr_dist( <elem1> , <elem2> ) ) = ERROR
Publicado por: alanf en 30 Septiembre 2011, 04:28:20
Lo de "atomic" solo significa que no existen elementos mas basicos de una propiedad que sus parametros, tal como pone en Ingles ahi.