Gracias Gracias:  0
Página 2 de 3 PrimerPrimer 123 ÚltimoÚltimo
Resultados 16 al 30 de 32

Tema: automatizando una locomotora

  1. #16
    reconvertido Avatar de ikerCLoN
    Fecha de ingreso
    Apr 2002
    Ubicación
    Los Angeles, USA
    Mensajes
    14,911

    Re: Automatizando una locomotora

    Freevision, le hemos echado un vistazo al archivo aquí en el curro, mi compañero Kai y yo, y algo hemos sacado en claro. Como no puedo mandarte el archivo, intento reproducir lo mismo en casa, y te lo mando con sus consiguientes explicaciones. De momento, lo que deberías hacer es librarte de 'wirear'. Si tú 'wireas' dos propiedades de dos objetos (por ejemplo, posición), y luego vinculas uno de ellos a otro, y mueves este último, la propiedad que quieres dirigir no funciona. Es lo que te ocurre al mover el ayudante General.

    Basicamente, habría que hacer dos cosas:

    - "Limpiar" el archivo, desechando los 'wire' y las transformaciónes heredadas "a medias" (por ejemplo, el hecho que el dummy que controla la viela A sólo herede un eje de posición del dummy que esta vinculado a la rueda).

    - Crear una expresión que permita que las ruedas giren automáticamente según lo que avance la máquina en cuestión.

    Lo segundo... es trigonometría, que como ando bastante pez, lo repaso, lo entiendo y esta noche intento comentartelo por aquí

  2. #17
    Miembro Avatar de freevision
    Fecha de ingreso
    Jul 2003
    Ubicación
    Fuengirola -Malaga
    Mensajes
    79

    Re: Automatizando una locomotora

    Lo del wire me lo he imaginado e incluso pensado que haciendo un script seria todo mucho más fácil. Gracias por mirarlo Iker, estaré pendiente de tu envío.

  3. #18
    Senior Member
    Fecha de ingreso
    Apr 2005
    Mensajes
    1,637

    Re: Automatizando una locomotora

    Ya lo tengo. Creo que es esto lo que quieres. Echale un vistazo y si te vale y no lo entiendes trato de explicartelo despacio, que ahora estoy cansao.
    Archivos adjuntados Archivos adjuntados
    Aquel que pregunta, es tonto un rato. Aquel que no pregunta, es tonto toda la vida.

  4. #19
    Miembro Avatar de freevision
    Fecha de ingreso
    Jul 2003
    Ubicación
    Fuengirola -Malaga
    Mensajes
    79

    Re: Automatizando una locomotora

    pues si, además estuve hace un rato mirando un tutorial de las expresiones, es lo mismo que has hecho lo que pasa es que no he sabido sacarlo.

    A ver si me lo puedes explicar, lo de añadir los float scripts para las expresiones lo tengo más o menos claro pero como enganchas el dummy?

  5. #20
    reconvertido Avatar de ikerCLoN
    Fecha de ingreso
    Apr 2002
    Ubicación
    Los Angeles, USA
    Mensajes
    14,911

    Re: Automatizando una locomotora

    Hey, Nessito, has puesto la misma expresión que usamos en el curro. Hasta casi coincidimos en el nombre de las variables

    Sobre el dummy, creo que puedo echar una mano, aunque nosotros variamos el método, pero creo que en esencia es lo mismo. A ver si me sale... cof cof... h, usaré la nomenclatura de tu archivo para no liarnos.

    Basicamente, necesitamos saber la variación de distancia que hay entre Dummy01 y el eje de las ruedas delanteras. Más concretamente, necesitas la variación de distancia en el eje X, que es el eje en el que se moverá Dummy02. Para averiguarlo, hay varias maneras:

    - Una de ellas es usando ExposeTm, que encontraras en el apartado 'Helpers'. Dummy01 tiene que ser el "Expose Node". Creamos un punto en el centro del eje de las ruedas (Point01), y le ponemos, por ejemplo, un Position Connstraint a éstas (hay soluciones más elegantes, pero ésta funciona). POint01 será el "Local Reference Node".

    En el apartado "Expose Values", busca "Local Position", y observa el valor X. Ése es el valor que te interesa. Wirea la posición X a ese valor del nodo ExposeTm, y listo... uhm... espera... joder, ahora no me sale Supongo que será el hecho de que antes hemos desmontado tu escena, y hemos vuelto a armarla de nuevo, y ahora parto de la escena tal cual tú la das...

  6. #21
    reconvertido Avatar de ikerCLoN
    Fecha de ingreso
    Apr 2002
    Ubicación
    Los Angeles, USA
    Mensajes
    14,911

    Re: Automatizando una locomotora

    Ains, que he posteado sin querer...

    - La segunda manera implica usar las matrices de transformación de Dummy01 y Point01 (el producto de una por el inverso de la otra), y un controlador de expresión. Pero como esto me queda grande, y sólo recuerdo vagamente las explicaciones de mi compañero, mejor me callo...

    En resumen, lo que hemos intentado hacer (mi compañero Kai lo ha conseguido, yo no soy capaz de reproducirlo aquí en mi casa) es "blindar" el tren, de manera que seas capaz de movrlo y rotarlo en cualquier coordenada espacial, cosa que ahora no puedes hacer. Del mismo modo, te interesa hacer que todas las relaciones sean lo más independientes posible. Es decir, usar en menor medida los "inherit" a mitad marcar (hereda todas las transformaciónes, o ningúna) y 'wirear' lo justo.

    Espero que hayas sacado algo en claro de esto. La solución que te da Nessito creo que te satisfara ¡Este Nessito es un monstruo!

    Venga, tío, ¡un abrazo, y ánimo con ese trenecillo!

  7. #22
    Miembro Avatar de freevision
    Fecha de ingreso
    Jul 2003
    Ubicación
    Fuengirola -Malaga
    Mensajes
    79

    Re: Automatizando una locomotora

    ni puta idea macho xD, no me enterao de na jaja, a ver si consigo descifrar el de nessito

  8. #23
    Senior Member
    Fecha de ingreso
    Apr 2005
    Mensajes
    1,637

    Re: Automatizando una locomotora

    Cita Iniciado por ikerCLoN Ver mensaje
    ¡Este Nessito es un monstruo!
    Ojala todos pensasen igual (vuelvo a estar sin curro)
    Bueno freevision, a ver si te lo cuento, pero es bastante simple.

    Consideraciones previas:
    - Todo lo que te ha comentado ikerCloN
    - Los inherits son un poco un arma de doble filo, son una manera rápida y fácil de restringir movimientos, rotaciones y tal, pero no discriminan. En el caso del piston/viela/cigueñal, es fácil no heredar la rotación y solo un eje de movimiento del piston con respecto al cigueñal y todo rula. Hasta que quieres mover y, sobre todo, rotar todo el conjunto, ya sea linkandolo a otro objeto, ya sea a pelo. Si seteas el piston para que solo herede un eje, no lo hace respecto de su ancestro directo, si no de toda la jerarquia que tenga por encima. Resultado: cagada! Conclusion: los inherits solo para cosas, digamos, globales.
    Para que hablemos de lo mismo:

    Jerarquia


    El tema


    Ningun objeto tiene desactivados inherits de ninguna clase.

    Las dos vielas tienen el pivote en el mismo sitio (la X marca el lugar) y son hijas de la rueda trasera. Las dos tienen un lookAt constraint, una al Point01 y otra al Point02 (esta claro cual a cual). Al asignar el constraint, lo normal es que se descabalen por el tema de los ejes. Soluciones hay dos:
    -O te pones en el constraint los ejes como dios manda (lo que hice yo), o...
    -...Le das al checkbox "Keep Initial Offset" (más simple y rápido pienso yo)

    El point01 es hijo de la rueda delantera y el point02 es hijo del point03 (que es el que controla el movimiento de toda la locomotora).
    El point02 tiene un script controller en el eje x para que siga el movimiento en ese eje del point01 tomando como referencia el point03. Basicamente dice:
    "La posición en x es la posición en x del point01 respecto de point03"
    Esto es lo mismo que te comentaba iker de hacer con un helper exposeTM.
    Al exposeTM le das como nodo el point01 y como nodo de referencia el point03, y en local position el valor x muestra exactamente lo mismo que el resultado de mi controlador script.

    El point03 tiene un path constraint a la forma del recorrido (forma que deberías usar como path para hacerte un loft para las vias).

    Las dos ruedas son hijas del point03 (como debería serlo el resto de tu locomotora) y tienen un controlador script (instanciado) en el eje Y (dependera del eje sobre el que deban girar), que dice (copio/pego):
    Código:
    degtorad(((pathlength/ruedalength)*-(pathpoint/100.0))*360.0)
    Relacion de variables:
    - pathlength = longitud del path (sacado de poner en el listener "curvelength $" con el path seleccionado)
    - ruedalength = longitud de la circunferencia de la rueda (2*pi*R)
    - pathpoint = el punto del recorrido en el que se encuentra el point03 (esto es, una variable asignada al controlador percent del path constraint del point03)
    Por tanto:
    - (pathlength/ruedalength) = número de vueltas que las ruedas deben hacer para completar el recorrido
    - (pathpoint/100.0) = posición del point03 sobre el recorrido en el rango 0-1. El menos que tiene delante es para invertir el sentido de giro, porque en mi caso las ruedas ivan al reves de lo que deberían (depende de la orientacion de los ejes de las ruedas y del sentido del path)
    - Multiplicando estas dos expresiones se obtiene la rotación que deberían tener las ruedas en un punto cualquiera del path en "número fraccional de vueltas", por eso...
    - ...Multiplicamos este valor por 360.0, para obtener el valor en grados
    - Y todo este chorizo se lo pasamos a la función degtorad que nos lo convierte en radianes (que es como lo necesita el controlador eulerXYZ para que rule bien)

    Consideraciones y mejoras:
    - En vez de multiplicar el nº de vueltas por 360 y pasarlo a radianes con la función degtorad, se podría multiplicar por (2*pi) y listo (recordemos: 360º son 2 pi radianes). Pero lo he dejado así en favor de la claridad (no sé tú pero a mi me cuesta pensar directamente en radianes).
    - Si quieres que la cosa sea un poco más flexible, se puede sustituir la variable "pathlength" por simplemente "path" y asignarla al nodo del path.
    Quedando la formula de esta guisa:
    Código:
    (((curvelength path)/ruedalength)*-(pathpoint/100.0))*2*pi
    De ese modo si quieres cambiar el recorrido que sigue la locomotora, cambias el shape del path constraint y y apuntas la variable al nuevo path y listo, sin tocar el script para nada. La desventaja es que para cada fotograma se tiene que calcular la longitud del path, pero es una función bastante rápida, así que no creo que ralentice mucho el tema.

    Bueno, espero que esté todo clarito.
    Miniaturas adjuntadas Miniaturas adjuntadas automatizando una locomotora-setup-textos.jpg   automatizando una locomotora-jerarquia.jpg  
    Aquel que pregunta, es tonto un rato. Aquel que no pregunta, es tonto toda la vida.

  9. #24
    Miembro Avatar de freevision
    Fecha de ingreso
    Jul 2003
    Ubicación
    Fuengirola -Malaga
    Mensajes
    79

    Re: Automatizando una locomotora

    quiero que le eches un vistazo tu e ikerclon al archivo que adjunto, es otra forma de hacerlo más fácil, supuestamente. Voy a leer lo tuyo y a ponerlo en practica.
    Archivos adjuntados Archivos adjuntados

  10. #25
    Senior Member
    Fecha de ingreso
    Apr 2005
    Mensajes
    1,637

    Re: Automatizando una locomotora

    Vale, en realidad es lo mismo, solo que has sustituido el controlador script por un wire.
    Tambien vale, pero por qué multiplicas por 1000? por qué no por 234.715?
    La cuestión es la relación entre la longitud de la rueda y la longitud del path.
    Si substituyes en tu wire lo que tienes por esto otro:
    Percent *((1702.9/225.252)*2*pi)
    La rueda esa te ira exactamente a la velocidad que debe.

    Pero repito, es exactamente lo mismo, solo has cambiado el script por un wire.
    Aquel que pregunta, es tonto un rato. Aquel que no pregunta, es tonto toda la vida.

  11. #26
    Miembro Avatar de freevision
    Fecha de ingreso
    Jul 2003
    Ubicación
    Fuengirola -Malaga
    Mensajes
    79

    Re: Automatizando una locomotora

    comprendo, entonces es más sencillo así que con el script no?, ya no lo digo solo por mi sino por todo el que intente hacerlo y comprenderlo.

  12. #27
    Senior Member
    Fecha de ingreso
    Apr 2005
    Mensajes
    1,637

    Re: Automatizando una locomotora

    A mi juicio es como la cancion. Maneeeras deee vivir!
    Pero un script es mucho más flexible que un wire. En tu solucion, si cambias el path, tienes que cambiar el wire, en mi solución no.
    Además, tu tienes 2 ruedas que deben girar a la par. Con el wire tienes que trabajar el doble. Con el script, simplemente copias el controlador como instancia y listo.
    Última edición por Nessito; 05-01-2007 a las 15:34
    Aquel que pregunta, es tonto un rato. Aquel que no pregunta, es tonto toda la vida.

  13. #28
    reconvertido Avatar de ikerCLoN
    Fecha de ingreso
    Apr 2002
    Ubicación
    Los Angeles, USA
    Mensajes
    14,911

    Re: Automatizando una locomotora

    Con el script, simplemente copias el controlador como instancia y listo.
    Cosa que también se puede hacer desde el Track View: selecciona la propiedad, botón derecho, copias, te vas a la propiedad del otro objeto (en este caso, la otra rueda), botón derecho, pegas como instancia... ¡y a volar!

  14. #29
    Miembro Avatar de freevision
    Fecha de ingreso
    Jul 2003
    Ubicación
    Fuengirola -Malaga
    Mensajes
    79

    Re: Automatizando una locomotora

    este fin de semana lo pruebo, os debo una vuelta en mi tren, a ver si termino un par de casitas que estoy haciendo para pagarme el don simon y me pongo.

  15. #30
    Miembro Avatar de freevision
    Fecha de ingreso
    Jul 2003
    Ubicación
    Fuengirola -Malaga
    Mensajes
    79

    Re: Automatizando una locomotora

    Bueno después de un tiempecillo de paron, he retomado la escena y la maqueta de tren, aquí os dejo un test de video del tren andando espero que os guste a pesar de la pobreza de calidad que ofrece los videos youtube, al menos se ve que anda.

    http://www.youtube.com/watch?v=CZI_anc-rMs

    Saludos

Página 2 de 3 PrimerPrimer 123 ÚltimoÚltimo

Temas similares

  1. locomotora 3d
    Por panchocarlos en el foro Trabajos Finalizados
    Respuestas: 2
    Último mensaje: 28-04-2011, 00:29
  2. Blueprint Locomotora antigua
    Por 3dpoder en el foro Blueprints Ferrocarril
    Respuestas: 0
    Último mensaje: 02-02-2010, 11:52
  3. automatizando el calculo de animacion en Vray
    Por RonDamon en el foro Noticias
    Respuestas: 0
    Último mensaje: 19-10-2009, 12:07
  4. Locomotora
    Por er_primi en el foro Trabajos en Proceso
    Respuestas: 5
    Último mensaje: 23-09-2007, 19:59
  5. Locomotora COOKE 2-6-0
    Por arodriguezf en el foro Trabajos en Proceso
    Respuestas: 21
    Último mensaje: 01-06-2006, 03:16

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •