![]() |
Tutorial Construcción Cabinas MSTS |
Implementando animaciones avanzadas
Las animaciones complejas vienen a ser lo mismo, pero cada una de las posiciones de un mando precisa un frame. Para ilustrar el proceso, he escogido como ejemplo el mando de tracción/freno (mando combinado) de la cabina de la serie 1000 del Metro de Barcelona:
1. En la imagen final de la cabina, acopladas ahora las capas, seleccionamos el sector que precisará el mando al aparecer. Hemos de tener en cuenta el espacio que ocupará la pieza móvil, en éste caso es una palanca que se mueve de adelante atrás y viceversa:

Seleccionamos el sector que ocupará el mando (en todas sus posiciones) en funcionamiento. Una vez en la cabina, todo éste espacio será una zona activa que servirá para seleccionarlo y actuar sobre él con el mouse. Hay que asegurarse de no seleccionar el área demasiado justa, si es muy grande luego lo podremos arreglar, pero si nos hemos pasado habrá que empezar de nuevo.
2. Recortamos la imagen (Imagen>Recortar) y la guardamos aparte con otro nombre, en formato *.psd para poder usar después capas en la imagen. Abrimos la fotografía escogida para extraer de élla la palanca:

La imagen recortada, guardada ya con otro nombre, lista para recibir las capas con la palanca
Fotografía de la cabina en que aparece el mando (detalle). Aunque no está hecha desde el mismo punto de vista, podemos distorsionar la perspectiva para que encaje bien
3. Seleccionamos, con la herramienta Lazo Poligonal, el contorno de la palanca. Cuando esté seleccionada, cambiamos a la herramienta Mover y arrastramos la selección directamente sobre nuestro archivo que contiene el fondo del mando:

La palanca ya seleccionada, lista para arrastrarse y dejarse caer sobre el archivo que contiene el fondo

Imagen durante el proceso de arrastre y creación de la primera capa con la palanca
4. Ahora deberemos adecuar la capa de la pantalla para que aparezca en su sitio y con su tamaño correcto. Como vemos en la imagen, la capa que hemos arrastrado al fondo del mando es enorme, Así que usaremos las herramientas de transformación, empezando por la de cambio de escala:

La capa que contiene la palanca es demasiado grande, lo primero que tenemos que hacer es ajustar su tamaño

Para cambiar la escala proporcionalmente, sin deformar la capa, hemos de mantener pulsado Shift mientras movemos las guías en uno de los vértices, o usar las entradas numéricas en porcentajes de la barra superior
5. Cuando estemos satisfechos con el tamaño, sin pulsar Enter, es decir sin validar, cambiamos a la herramienta Edición>Transformar>Rotar y, colocando el ratón en una esquina de la selección, la rotaremos para que la palanca quede derecha. Luego cambiamos a Edición>Transformar>Distorsionar para modificar la perspectiva y que se ajuste al punto de vista correcto:

Rotando la imagen de la palanca conseguiremos ponerla en su posición correcta

Finalmente, con la herramienta Distorsionar modificamos el punto de vista (Nota: para dominar éste proceso, se requiere bastante práctica). Al acabar pulsaremos Enter para validar los cambios
6. Ahora tenemos una capa con la palanca en su sitio. Podemos duplicarla y desplazarla a lo largo de su recorrido, y cada una de las palancas puede ser un algo diferente de la anterior, ya que el tamaño y la perspectiva cambia según su posición (lógicamente, cuando la palanca esté atrás se verá un poco más grande que cuando esté al fondo). Cuando estén todas las palancas puestas podremos crear la textura final:

A base de copiar la capa, desplazar las copias y distorsionarlas progresivamente, tenemos una imagen con todas las posiciones de la palanca, como muestra la lista de capas de Photoshop. Sólo tenemos que mostrar una palanca, acoplar la imagen y trasladarla con la herramienta Mover a un nuevo archivo gráfico. Cuando hayamos colocado todos los frames, tendremos casi listo el archivo de la textura final (que por supuesto, hay que convertir a *.ace, y además suele necesitar su correspondiente canal alpha de transparencias)
El funcionamiento de éste control se basará en los mandos combinados de MSTS, por una parte es necesario implementar éste sistema en el *.eng de la locomotora, por el otro en el propio archivo *.cvf, y es necesario contar con una textura especial basada en frames dispuestos secuencialmente en la hoja de textura del dispositivo (archivo *.ace):

El archivo mainlever.ace, perteneciente a la cabina del Odakyu Series 7000 LSE y en el que se basa el funcionamiento de nuestro mando. Como vemos, hay 12 frames, uno para cada posición del mando

Nuestra textura, (realizada gracias al archivo de capas de Photoshop) del mando, aunque es de otro tamaño, también contiene 12 frames, y curiosamente también hay el mismo número de filas y columnas
Ajustes del archivo *.cvf para los mandos combinados
Lo más sencillo es copiar las líneas que hacen referencia al mando combinado en el archivo de la cabina original (directorio Trainset/Series7000/Cabview). A continuación las líneas que tenemos que copiar y pegar en nuestro archivo. Para que funcione, habrá que cambiar el nombre del archivo *.ace (si lo hemos llamado de manera distinta) y proceder a testear la cabina, corrigiendo la posición hasta que el mando esté perfectamente colocado:
| CombinedControl ( | Tipo de control | ||||||||
| Type ( CP_HANDLE COMBINED_CONTROL ) | control combinado manual | ||||||||
| Position ( 373 327 127 137 ) | posición absoluta/tamaño de la ventana visible de la textura | ||||||||
| Graphic ( MainLever.ace ) | ruta y nombre del archivo *.ace | ||||||||
| Style ( NONE ) | estilo | ||||||||
| MouseControl ( 1 ) | indica que es controlado por el mouse | ||||||||
| NumFrames ( 12 4 3 ) | número de frames y su distribución horizontal/vertical en la textura | ||||||||
| NumPositions ( 7 0 1 2 3 4 5 11 ) | posiciones del mando
| NumValues ( 7 0 0.1 0.2 0.3 0.4 0.52 0.88 ) | valores de cada posición | Orientation ( 1 ) | orientación | DirIncrease ( 1 ) | sentido de funcionamiento | ) | paréntesis de cierre | |
Ajustes del archivo *.eng para los mandos combinados
Ya estamos muy cerca de implementar los mandos combinados. Para éso, podemos proceder igualmente, copiando las líneas que hacen referencia al funcionamiento del mando en el archivo *.eng original (directorio Trainset/Series7000/). Seguidamente las líneas que es imprescindible copiar y/o ajustar en nuestro archivo *.eng de la locomotora:
| BrakeEquipmentType( "EP_brake" ) | Tipo de equipo de frenado |
| BrakeSystemType( "EP" ) | Tipo de sistema de frenado |
| EngineControllers ( | Indica que son datos de control del motor |
| Throttle ( 0 1 0.25 0 | mando de gases |
| NumNotches ( 5 | numero de nodos |
| Notch ( 0 0 Dummy ) | ajustes nodo |
| Notch ( 0.25 0 Dummy ) | ajustes nodo |
| Notch ( 0.50 0 Dummy ) | ajustes nodo |
| Notch ( 0.75 0 Dummy ) | ajustes nodo |
| Notch ( 1.00 0 Dummy ) | ajustes nodo |
| ) | |
| ) | |
| Brake_Train ( 0 1 0.1 0.7 | freno del tren |
| NumNotches ( 3 | número de nodos |
| Notch( 0 0 TrainBrakesControllerReleaseStart ) | ajustes nodo |
| Notch( 0.2 1 TrainBrakesControllerEPApplyStart ) | ajustes nodo |
| Notch( 0.8 0 TrainBrakesControllerEmergencyStart ) | ajustes nodo |
| ) | |
| ) | |
| DirControl ( -1 0 1 1 ) | Dirección/sentido del control |
| Combined_Control( 0 1 0.4 0.82 throttle train ) | Ajuste de los mandos combinados |
| EmergencyStopResetToggle( 0 1 0 ) | ajuste del freno de emergencia (reset sí/no) |
| EmergencyStopToggle( 0 1 0 ) | ajuste del freno de emergencia (freno sí/no) |
Con éstos ajustes el mando ya funcionará y se trata a partir de ahí de ir ajustando los valores para que se adecúe a cada caso concreto. Después de unas cuantas pruebas se ha conseguido implementar el mando combinado, y es cuestíón de repetir los procedimientos explicados (sin perder la paciencia) hasta lograr construir la cabina completa.

Copyright © Antonio Asensio Yzquierdo 2005-2020. Derechos reservados.