• Fonte Mourisca

    Esta fuente se haya ubicada en la ciudad de Sintra en Portugal, de forma arabizante con revestimientos de azulejos neomudejar y estucos pintados pertenece al periodo romantico- revivalista. Ver mas...

  • Istanbul Sokak

    Escena inspirada en una supuesta calle de Estambul donde podemos ver como se acerca un tranvia tipico de la localidad. Ver mas...

  • La Playa

    Work in progress...adaptandome al programa Autodesk Mudbox. Ver mas...

El tren andando

El video del tren andando al completo con todo el rig ya ajustado.


El video de las ruedas funcionando

Aqui os dejo un video de las ruedas de la locomotora ya funcionando correctamente.

Video Ruedas

Poly Attach Multiple

Este es un sencillo script muy útil que tengo añadido a mi barra de tareas, con el puedes asociar un grupo de objetos seleccionados con un solo click.

undo on
(
selectionArray = selection as array;
for obj in selectionArray do
(
convertTo obj PolyMeshObject
)
try
(
for i = 1 to (selectionArray.count - 1) do
polyOp.attach selectionArray[selectionArray.count] selectionArray[i];
)
catch(print "estas intentando unir objetos incompatibles")
)

Bucyrus Erie 50-B


Grua de los años 20, diseñada para incorporar a escena, la realice a principios de 2006.

Vagonetas


Rescatando imagenes he encontrado estas vagonetas que hice hace un tiempo para una escena que al final no las añadí.

Automatizando la Loco II

Bueno, despues de probar mil cosas y obviando el sistema que cree antes para la locomotora sacamos como conclusión y gracias a la ayuda de Nessito e Ikerclon que esta es la solución más viable para que la locomotora no se desmonte al moverse por el recorrido.

Borramos todos los controles anteriores, wires y demas y lo replanteamos así:

(Comentarios de Nessito)
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 (está claro cual a cual).

Al asignar el constraint, lo normal es que se descabalen por el tema de los ejes. Soluciones hay dos:

-Poner en el constraint los ejes como dios manda o...
-...Dar al checkbox "Keep Initial Offset"

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 posicion en x es la posicion en x del point01 respecto de point03"

El point03 tiene un path constraint a la forma del recorrido (forma para usar como path para hacer un loft para las vias).

Las dos ruedas son hijas del point03 ademas del resto de la locomotora con un controlador script (instanciado) en el eje Y (dependerá del eje sobre el que deban girar), que dice:

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) = numero de vueltas que las ruedas deben hacer para completar el recorrido
- (pathpoint/100.0) = posicion 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 iban al reves de lo que deberian (depende de la orientacion de los ejes de las ruedas y del sentido del path)
- Multiplicando estas dos expresiones se obtiene la rotacion que deberian tener las ruedas en un punto cualquiera del path en "numero fraccional de vueltas", por eso...
- ...Multiplicamos este valor por 360.0, para obtener el valor en grados
- Y todo esto se lo pasamos a la funcion degtorad que nos lo convierte en radianes (que es como lo necesita el controlador eulerXYZ para que funcione bien)

Con todo esto todavia tengo un par de fallos en la orientación de los lookat contraints que espero tener corregidos en breve y os podre mostrar el primer video de la locomotora rodando.

Ahora se porque me meti a modelar y texturar y no a animar.

La locomotora con el nuevo shader

Automatizando la Loco


Una vez superada parte de la resaca de anoche y en un punto de alto de relajación me he puesto a elaborar un mini tuto de como he hecho la automatización de los ejes de la locomotora.

Primeramente he hecho las respectivas asociaciones con cada una de las piezas:

- 2 ruedas delanteras y su eje
- 2 ruedas traseras y su eje
- 2 barras de viela A (derecha e izquierda)
- 2 barras de viela B (derecha e izquierda)

Una vez ya tienes las piezas asociadas lo propio es renombrarlas:

- LOCO_Ruedas_Delanteras
- LOCO_Ruedas_Traseras
- LOCO_Viela_A
- LOCO_Viela_B

Centramos los respectivos ejes de coordenadas, Pestaña Hierarchy>Affect Pivot Only>Center to Object en ruedas delanteras y ruedas traseras.

Para las vielas colocamos los ejes de coordenadas como en la imagen y creamos 2 dummys centrados como en la imagen.

Ahora vamos a empezar a automatizar esto, hacemos la siguiente vinculación, seleccionado por ejemplo las ruedas traseras, boton derecho Wire Parameters>Transform>Rotation> Y Rotation y con el enlace marcamos las ruedas delanteras. (eje Y porque es el eje de rotación de mi maquina).

Y nos saldra una ventana como esta:

Aqui solo tenemos que activar la vinculación, hacemos click en la flecha central que nos indica que vamos a vincular el movimiento de la rueda trasera con la rueda delantera y click en Conectar (esta donde ahora mismo pone Update). Y yasta, las ruedas traseras giraran al mismo tiempo de las delanteras, haz la prueba.

Ahora vamos a vincular los ejes de la siguiente forma:

Vamos a el icono de linkear objetos y marcamos.

- Dummy 1 con Ruedas Traseras
- Dummy 1 con Dummy 2

Ahora los configuramos, en la persiana Hierarchy en Link Info nos vamos al desplegable Inherit y desmarcamos para el Dummy 1 las 3 casillas de Rotate XYZ. Para el Dummy 2 desmarcamos las casillas YZ.

Ahora los ejes, vinculamos la viela B con el Dummy 1, ahora al girar las ruedas se mantendra centrado respecto a ellas.

Y finalmente le toca a la viela A un poco mas compleja. Como vereis he centrado su pivote en la cabeza a la altura del Dummy 2, linkeamos:

- Viela A con Dummy 2

Ahora para que el otro lado pivote con el eje de la rueda trasera aplicamos un LookAt, con la viela A seleccionada nos vamos al menu Animación>Constraints>LookAt Constraint y vinculamos con el Dummy 1.

En la pestaña Motion tendremos el desplegable de LootAt Constraint donde marcaremos la combinación XYZ para que la pieza se mantenga en la direccion correcta.

Os dejo aqui el archivo Max para que podais ver el funcionamiento. Archivo descarga

Saludos a todos y Feliz Año Nuevo
 
José Ramón Ruiz © 2010 | Designed by Trucks, in collaboration with MW3, Broadway Tickets, and Distubed Tour