sábado, 24 de enero de 2015

Arma3: Cómo añadir insignias a las unidades.

- Introducción

En Arma 3 es posible añadir insignias a los modelos de unidades. Esta técnica funciona con todos los modelos que trae el juego, y la mayoría de addons.

El juego tiene algunas insignias predefinidas, pero es muy sencillo definir una propia y añadirla a una misión. El resultado final (con una imagen de prueba), es este:




- Creando la imagen.

Puedes partir de cualquier imagen .png o .jpg Es aconsejable que mida 128x128 pixels, y puede contener transparencias.

Ahora vamos a usar la herramienta "texture viewer". Abre "Arma 3 Tools", y en el menú que aparece selecciona "Texview". Carga tu imagen .png y conviértela en un fichero con extensión .paa usando la opción "guardar como".

Debes copiar el archivo .paa en la carpeta de tu misión, junto a los ficheros description.ext y mission.sqm

- Definiendo una insignia.

En el fichero description.ext añade el siguiente texto:

class CfgUnitInsignia
{
    class 12bdi
    {
        displayName = "12 Brigada de Infanteria";
        author = "12bdi";
        texture = "12bdi.paa";  // Pon aqui el nombre del fichero .paa
        textureVehicle = "";
    };
};


En el ejemplo de arriba "12bdi" es el nombre que recibirá la insignia más adelante. Puede cambiarse poniendo "class otraSquad" (por ejemplo) en lugar de "class 12bdi".

- Definiendo múltiples insignias

Puedes definir múltiples insignias dentro de una misma misión. Por ejemplo, una para el sanitario, otra para los pilotos, otra para la infantería...

Debes definir una clase diferente para cada fichero .paa

class CfgUnitInsignia
{
   class 12bdiAlfa
   {
      displayName = "12 Brigada de Infanteria Alfa";
      author = "12bdi";
      texture = "12bdiAlfa.paa";
      textureVehicle = "";
   };
   class 12bdiBeta
   {
      displayName = "12 Brigada de Infanteria Beta";
      author = "12bdi";
      texture = "12bdiBeta.paa";
      textureVehicle = "";
   };

};
- Asociando la insignia a la unidad

Si la misión es para un solo jugador, añade este código en la inicialización a la unidad:

[this,"12bdi"] call BIS_fnc_setUnitInsignia;


Como puedes ver, el nombre de la insignia es el que le asignamos en el fichero description.ext. Podríamos cambiarlo por 12bdiAlfa o 12bdiBeta para visualizar las insignias asociadas a esos nombres.

Si la misión es para multijugador, el código a añadir es el siguiente:

[[this, "12bdi"], "BIS_fnc_setUnitInsignia", nil, true, true] call BIS_fnc_MP;