![]() |
|
Bienvenido a Foros 3DPoder.. Usted esta viendo este foro como invitado, no esta registrado todavía, lo que limita su visión del foro. Si quiere unirse gratis a la mayor comunidad del diseño gráfico de habla hispana, tener acceso a publicar y responder mensajes, tener mensajes privados con otros miembros(PM), responder encuestas, publicar sus imágenes para que las vea el resto del mundo, tener acceso a los video_tutoriales, y muchas cosas más, no lo dude. Registrarse es rápido, simple y gratuito, agregate hoy a la mayor comunidad 3D de habla hispana! ! Si usted tiene algún problema con su registro, por favor , díganoslo aquí.
|
![]() |
|
|||||||
|
|
#1 | |
|
just another monkey
|
Hola, estoy tratando de conectar mediante reactor controller una serie de morph a sus controladores, llevo una tarde peleandome con la documentación pero no hay forma de que el index de cada estado coincida con el orden de creación (tal como menciona la documentación) y por ende se me hace muy difícil/imposible setear los valores, alguien me podría dar una mano? pego un ejemplo muy simple para ejemplificar la clase de problemas con los que me encuentro.
Cita:
Alguien sabe que estoy haciendo mal? hay alguna forma de saber el índice del último estado creado? Gracias
__________________
Blog::Website ____________________ "Debes practicar hasta que lo dificil resulte fácil, luego practica hasta que lo fácil resulte hermoso" Stephen Covey
Última edición por Cesar Saez fecha: 04 jun 2008 a las 09:14. |
|
|
|
|
| Enlaces patrocinados |
|
|
#2 |
|
8======D
Fecha de Ingreso: abril-2002
Ubicación: Granada
Mensajes: 13,373
|
Yo te recomendaría que pasaras de los 'reactor controllers' y directamente usaras expresiones para 'atar' todos los 'morphs' a sus controles.
Luego en casa, de todos modos, le echo un vistazo más en profundidad
__________________
-=: mi blog de desarrollo :=----- last update 10/07/08 |
|
|
|
|
|
#3 |
|
just another monkey
|
Gracias Iker, tenía ganas de hacerlo con reaction controllers ya que me parece que son bastante más rápidos de evaluar pero pareciera que no soy el único que tiene esta clase de problemas
CGTalk - Scripted reactions Woe's Es una lástima que no funcionen tan bien a la hora de scriptarlos, por ahora tendré que dejar standby el script y terminar de hacer las cosas a mano... no puede ser que maxscript tenga tantos agujeros... |
|
|
|
|
|
#4 |
|
Senior Member
|
Hola Cesar,
El problema recide en que el indice de los estados no esta en el mismo orden en que fueron creados como dice en la documentación. El orden de los indices de los estados depende del valor del master en cada estado, algo que obviamente parece ser un error de programacion por parte de los desarrolladores de max. Afortunadamente hay una solución y es tener eso en cuenta a la hora de asignar los estados. En tu script parecia que asignara los valores aleatoriamente, ya que inicialmente el valor del master en la creación de una reacción adquiere un valor por default (que es igual al valor del controlador master en el momento de su asignacion en el reactor controller), al tener varios el mismo valor inicialmente, tendrian el mismo indice, y max asignaria los parametros aleatoriamente. Yo lo que haria es crear los estados según un orden definido por el valor del master en los estados, pero antes de asignar este master al controlador de reacción cambiar su valor al mayor valor que pueda tener en los estados. De esta forma si se hace por este orden, el estado que se vaya asignando siempre va a tener un valor menor al siguiente, mayor al anterior y por lo tanto un orden equivalente a su creación. Que rollo mas feo, pero ni modos, muchas veces hay que conformarse con cogerle la mañita a este max. aqui hago la modificación: Código:
myMesh = $sphere --objeto con el morpher myMorpher = myMesh.Modifiers[1] --modificador morpher myController = $Circle01 --controlador que manejará los morph myController.pos.controller.X_Position=5 --maximo valor para el master myReactor1 = myMorpher[1].controller = float_reactor () --asigno controlador reaction al primer morph reactTo myReactor1 myController.pos.controller.X_Position.controller --setteo que reaccione al movimiento en X de mi controlador setReactionName myReactor1 1 "Primer estado" --renombro el primer estado setReactionValue myReactor1 1 (-5) --defino un valor para el master setReactionState myReactor1 1 (0) --defino un valor para el esclavo en este estado createReaction myReactor1 --creo un segundo estado setReactionName myReactor1 2 "Segundo estado" setReactionValue myReactor1 2 (0) setReactionState myReactor1 2 (0) createReaction myReactor1 --creo un tercer estado setReactionName myReactor1 3 "Tercer estado" setReactionValue myReactor1 3 (5) setReactionState myReactor1 3 (100)
__________________
www.immersionsoftware.com Última edición por phoelix fecha: 04 jun 2008 a las 20:41. |
|
|
|
|
|
#5 |
|
just another monkey
|
Muchísimas gracias phoelix, vaya poder de deducción!!! con tu modificación/lógica funciona perfecto
![]() Como sufro con maxscript... |
|
|
|
|
|
#6 |
|
Senior Member
|
Vale Cesar, aqui estamos para servir
![]()
__________________
www.immersionsoftware.com |
|
|
|
![]() |
| Etiquetas Identificativas |
| 3dsmax, reactor manager, scripting |
| Usuarios activos actualmente viendo este tema: 1 (0 miembros y 1 visitantes) | |
| Herramientas | |
|
|
|
|