Edición de máscaras de sprites: como personalizarlas en Game Maker Studio
Hemos visto cómo se importa un sprite para poder usarlo en nuestro juego. También hemos hablado de la importancia de las máscaras para tratar los eventos de colisión, y si debemos de elegir con colisión precisa o no para el rendimiento de nuestro proyecto.
Ahora veremos como personalizar una máscara de un sprite en Game Maker Studio.
Para ello, le damos al botón Modify Mask y aparece una ventana de Propiedades de la máscara:

Editor de máscaras de Game Maker studio
La ventana está dividida en varias secciones con diferentes propiedades, y a la derecha podemos ver una previsualización del sprite con su máscara, de un color gris oscuro. Así podremos ver todos los cambios que le iremos aplicando a la máscara, siendo más fácil ver cómo afecta la máscara mientras se juega.
Sección Imagen de la máscara
En esta sección veremos información básica del sprite, la misma que tenemos en la ventana de propiedades del sprite, como puede ser el alto y ancho del sprite, el número de imágenes que contiene y la subimagen actual. Si nuestro sprite contiene varias subimágenes, nos aparecerán unos botones para movernos entre ellas y previsualizar la que nos pueda interesar.Tenemos también un check en la parte inferior para ver/esconder la máscara, y unos botones de zoom para ampliar o reducir la vista previa. Así podremos ajustar con más detalle el tamaño de la máscara.
Sección General de la máscara
Aquí veremos dos opciones que podemos cambiar, la primera opción es el check Separate collision masks, la misma opción que en las propiedades del editor. Así desde aquí también elegiremos si queremos una máscara diferente por cada subimagen del sprite. Recordemos que si lo combinamos con la opción de colisión precisa podemos personalizar al detalle la máscara. Otra opción que vemos es la tolerancia con respecto a la transparencia de los sprites. Con valores altos, si tenemos píxeles parcialmente transparentes se dejan fuera de la máscara, mientras que si bajamos de valor tendrá en cuenta estos píxeles. Estos valores dependerán mucho de la imagen del sprite y si tenemos estos píxeles que comentamos.
Cuadro delimitador de la máscara
El cuadro delimitador es como llamamos a la zona rectangular que una máscara de sprites tiene. Sólo los píxeles dentro de este cuadro son los que calcula automáticamente para la máscara y están involucrados en el evento de colisión.
Si hemos elegido Precise collision masks veremos que este cuadro será diferente en cada subimagen. Vemos que tenemos tres opciones: automático, que lo calcula como hemos comentado, imagen entera, que cogerá la altura y anchura real de la imagen independientemente de si tiene zonas transparentes o no, o manual, que elegimos con los valores que hay más abajo dónde situamos ese cuadro. Tenemos valores de posición, con Left y Top, y valores de tamaño con Right y Bottom. También podemos dibujar el cuadro en la previsualización de la máscara, simplemente haciendo click con el ratón, sin soltar, y arrastrando hasta elegir el tamaño deseado. Al dibujar, vemos que cambian los valores numéricos de posición de la máscara que hemos comentado antes.
Sección Forma de la máscara
Es posible que no nos interese una máscara cuadrada en nuestro sprite, sino que queremos usar una forma diferente. En esta sección podemos elegir algunas formas básicas. La primera opción es para indicar que queremos colisión precisa, igual que en las propiedades del sprite. La segunda opción es para elegir una forma rectangular, la tercera para una forma elíptica y la cuarta para una en forma de diamante. Recordemos que podemos variar el tamaño de cada forma en la sección que hemos comentado antes.
Distintas formas de máscara para un mismo sprite
Conclusión final: como elegimos una máscara de colisión
Para finalizar, y a modo de resumen, vemos que es muy importante elegir como queremos que se la máscara de colisión para utilizar en nuestros sprites. Podemos pensar que la opción más lógica sería elegir una colisión precisa, pero elegir una máscara cuadrada o rectangular, un poco más pequeña que el sprite real, notamos que mejora rápidamente el rendimiento de nuestro juego. Podemos decir que en muy pocas ocasiones deberíamos de elegir máscaras de colisión precisas, además de que se usen en el menor número de instancias posibles.
Además, con una máscara cuadrada podemos controlar cuando queremos que se produzca el evento de colisión. Otro tema a tener en cuenta es que podemos elegir un sprite para usarlo como máscara en un objeto, independientemente de su sprite o de los sprites que cambiemos en mitad del juego.
En Game maker studio 2 donde puedo encontrar la opción de Precise collision masks ya que la necesito para poder colocar mi sprite correctamente y con precisión en el room ya que solo viene la opción de la forma de mascara y aunque me delimita correctamente todos los frames a la hora de colocar el sprite precisamente donde quiero no me lo permite debido al cuadro delimitador de la mascara, ayuda por favor,
En el editor de sprites, dónde pone Collision Mask, es el combo Type. Si quieres saber más:
Máscara en sprites en Game Maker Studio 2