La programación visual es un modelo novedoso de programación que va haciéndose presente cada vez más plataformas y herramientas de desarrollo.
Algunos ejemplos de lenguajes y herramientas que hacen uso de la programación visual en diferentes ámbitos son los siguientes:
- Aprendizaje temprano de fundamentos de programación: Scratch
- Programación visual asociada a microcontroladores (Arduino/BBC Micro): Scratch, MakeCode, ArduinoBlocks, LabView
- Herramientas de diseño 3D: Beetle Blocks
Si estás interesado en ampliar tus conocimientos en Unity 3D, en nuestros Cursos de Videojuegos en Barcelona y Bilbao encontrarás todas las herramientas necesarias para desarrollar tus proyectos.
Como puede verse, tanto la programación visual como la edición de flujos de trabajo mediante sistemas de bloques o módulos y líneas de flujo, se aplica cada vez con más frecuencia en diferentes ámbitos. Sin embargo, ¿Cómo se aplica todo esto en el ámbito de la programación con Unity? La respuesta es Bolt.
Programación visual en Unity 3D con Bolt
Unity requiere crear pequeños programas para determinar el comportamiento de los elementos que conforman los proyectos tales como el movimiento de cámaras, personajes, enemigos. Estos reciben el nombre de scripts y se codifican empleando el lenguaje de programación C#.
La siguiente el código predeterminado de un script de Unity en C# mostrando los métodos Start() y Update() que se ejecutan al iniciarse el proyecto e iterativamente con cada imagen respectivamente:
No obstante, ahora es posible desarrollar estos scripts de manera visual empleando diferentes complementos para Unity disponibles en el Assets Store de Unity. Algunos de ellos son:
- PlayMaker
- uNode
- FlowReactor
Inicialmente Bolt era un complemento de pago, pero a partir de la versión 2020 de Unity, éste fue adquirido e integrado como parte de Unity.
Diagramas de flujos en Unity 3D
Bolt es un complemento integrado en Unity que permite el desarrollo de diagramas de flujo y macros reutilizables en Unity empleando programación visual basada bloques y enlaces. Estos realizan el mismo trabajo que los scripts tradicionales implementados en C# creando diagramas de flujo que determinan la secuencia de operaciones a realizar partiendo de los eventos:
La siguiente imagen muestra un diagrama de flujo predeterminado en Bolt mostrando los bloques eventos Start y Update equivalentes a los métodos Start() y Update() de los scripts:
Los diferentes bloques que podemos emplear pueden diferenciarse en las siguientes categorías:
- Control: Permite redirigir el flujo de ejecución en diferentes direcciones en función de una condición o valor:
Ejemplo: Diagrama de flujo que muestra un bloque repetitivo ForLoop que genera una secuencia de ejecuciones, y un bloque condicional Branch que bifurca la ejecución en función de una condición.
- Valores: Representan valores de entrada para los diagramas de flujo semejantes a los parámetros empleados para configurar los scripts convencionales. Estos pueden representar valores de diferentes tipos tales como números, textos, posiciones, orientaciones, colores…, etc.
- Acción: Representa acciones tales como orientar o mover un elemento, hasta otras más concretas como aplicar una fuerza, o modificar un material:
Ejemplo: El siguiente diagrama muestra la rotación de un elemento en los ejes X, Y e Z 30 grados por segundo empleando el bloque Rotate:
- Operaciones: Representan operaciones aritméticas y condicionales tales como sumas, restas, comparaciones…, etc.
Ejemplo: El siguiente diagrama muestra la definición de una suma entre dos valores de entrada de tipo decimal empleando el bloque Add.
- Eventos: Son bloques que inician la ejecución cuando se producen ciertos sucesos como el inicio del juego, el refresco de pantalla, o eventos más puntuales como colisiones o solapamiento entre elementos dentro de la escena.
Ejemplo: Diagrama de flujo que muestra la aplicación de una fuerza sobre un elemento al pulsarse la barra espaciadora o hacer clic con el botón izquierdo del ratón mediante los bloques de eventos OnKeyboardInput y OnMouseDown.
Si estás interesado en ampliar tus conocimientos en Programación visual con Unity 3D, en nuestros Cursos de Videojuegos en Barcelona y Bilbao encontrarás todas las herramientas necesarias para desarrollar tus proyectos.
Diagramas de estados en Unity 3D
Bolt permite crear diagramas de estados en los que diferentes módulos creados a partir de diagramas de flujos que implementan una determinada tarea se interconectan mediante transiciones para dar lugar a comportamientos más complejos.
Las transiciones se activan al producirse ciertas circunstancias permitiendo que un elemento se comporte de diferentes modos según ciertas condiciones. Por ejemplo, podemos hacer que un elemento desempeñe un comportamiento de vigilancia y cambie a un comportamiento ofensivo al detectarse la presencia de otros elementos hostiles.
Conclusión
El empleo de Bolt para crear diagramas de flujo para tareas simples y su posterior reutilización permitiendo desarrollar diagramas de estados más complejos permite crear con Unity cualquier tipo de comportamientos sin necesidad de escribir ni una línea de código:
Si estás interesado en ampliar tus conocimientos en Programación visual con Unity 3D, en nuestros Cursos de Videojuegos en Barcelona y Bilbao encontrarás todas las herramientas necesarias para desarrollar tus proyectos.