Lumberyard
Guía del usuario (Version 1.20)

Tutorial de Script Canvas: creación de una entidad controlable

Esta característica está en versión preliminar y está sujeta a cambios.

En este tutorial se muestran los pasos para crear una esfera sencilla que puede controlar a través del teclado.

ejemplo


                Esfera controlable de ejemplo en Script Canvas.

Además de los aspectos básicos de los nodos, la entrada, el movimiento y el inicio de sesión, aprenderá los siguientes conceptos clave:

  • Adición de nodos

  • Creación de conexiones de datos y ejecución

  • Adición de nodos de evento

  • Adición de nodos de acción

Requisitos previos

Paso 1: Crear un nivel

Antes de crear una esfera que pueda controlar con entradas de teclado, tendrá que crear un nivel.

Para crear un nivel

  1. En Lumberyard Editor, elija File (Archivo) y New (Nuevo).

  2. En el cuadro de diálogo New Level (Nuevo nivel), escriba firstscriptcanvas y después haga clic en OK (Aceptar).

  3. En el cuadro de diálogo Generate Terrain Texture (Generar textura de terreno), elija 512x512 y después haga clic en OK (Aceptar).

Paso 2: Crear una entidad y agregar componentes para crear una entidad controlable

Para crear una esfera que pueda controlar con entradas de teclado, debe crear una entidad y añadir los componentes Mesh, Rigid Body, Mesh Collider e Input. También puede crear una asignación de entradas que convierta las entradas del teclado en movimientos WASD en las direcciones X e Y.

Para crear una entidad controlable

  1. En Lumberyard Editor, haga clic con el botón derecho en la ventanilla Perspective (Perspectiva) y elija Create entity (Crear entidad).

  2. En el Entity Inspector, haga lo siguiente:

    1. En Name (Nombre), escriba Player.

      
                                Cree una entidad para la esfera en Script Canvas.
    2. Haga clic en Add Component (Añadir componente) y después haga clic en el componente Mesh.

    3. En el componente Mesh, para Mesh asset (Recurso de malla), haga clic en el botón de exploración (...), seleccione el archivo \SamplesProject\Objects\default\primitive_sphere.cgf y luego haga clic en el botón OK (Aceptar).

      
                                Seleccione el recurso de esfera para el componente Mesh.
  3. En la ventanilla, utilice la herramienta Move (Mover) para seleccionar el eje Z y mover la entidad del suelo.

  4. En el Entity Inspector, haga clic en Add Component (Añadir componente) y luego añada los componentes siguientes:

    • Rigid Body Physics

    • Mesh Collider.

    • Input

  5. En el componente Input, haga clic en el icono Input Bindings Editor (Editor de enlaces de entrada) . Esto abre el Asset Editor (Editor de recursos).

  6. En Asset Editor, elija File (Archivo), New (Nuevo), Input Bindings (Enlaces de entrada) y para File name (Nombre de archivo), escriba player y, a continuación, haga clic en Save (Guardar).

  7. En la ventana Edit Asset (Editar recurso), haga lo siguiente:

    1. En Input Event Groups (Grupos de eventos de entrada), haga clic en + para agregar un nuevo grupo de eventos de entrada.

    2. Expanda el grupo de eventos de entrada. Para Event name (Nombre de evento), escriba move_x.

    3. En Event Generators (Generadores de eventos), haga clic en + para agregar un generador de eventos.

    4. En el cuadro de diálogo Class to create (Clase que debe crearse), haga clic en OK (Aceptar) para agregar una clase de entrada.

    5. Expanda move_x, Event Generators (Generadores de eventos) y gamepad_button_a. En Input Device Type (Tipo de dispositivo de entrada), seleccione keyboard (teclado).

    6. En Input Name (Nombre de entrada), seleccione keyboard_key_alphanumeric_A (tecla_alfanumérica_teclado_A).

    7. En Event value multiplier (Multiplicador de valor de eventos), escriba -1.

    8. Repita los pasos del C al E. Para Input Name (Nombre de entrada), seleccione keyboard_key_alphanumeric_D (tecla_alfanumérica_teclado_D). En Event value multiplier (Multiplicador de valor de eventos), use el valor predeterminado de 1.

    9. Expanda el generador de eventos keyboard_key_alphanumeric_A (tecla_alfanumérica_teclado_A) y compruebe que la configuración aparece como en la imagen siguiente:

      
                                Creación de los enlaces de entrada para el componente Input.
  8. En la ventana Edit Asset (Editar recurso), haga lo siguiente:

    1. En Input Event Groups (Grupos de eventos de entrada), haga clic en + para agregar un nuevo grupo de eventos de entrada.

    2. Expanda el grupo de eventos de entrada. Para Event name (Nombre de evento), escriba move_y.

    3. En Event Generators (Generadores de eventos), haga clic en + para agregar un generador de eventos.

    4. En el cuadro de diálogo Class to create (Clase que debe crearse), haga clic en OK (Aceptar) para agregar una clase de entrada.

    5. Expanda move_y, Event Generators (Generadores de eventos), gamepad_button_a (botón_gamepad_a). En Input Device Type (Tipo de dispositivo de entrada), seleccione keyboard (teclado).

    6. En Input Name (Nombre de entrada), seleccione keyboard_key_alphanumeric_W (tecla_alfanumérica_teclado_W). En Event value multiplier (Multiplicador de valor de eventos), use el valor predeterminado de 1.

    7. Repita los pasos del C al E. Para Input Name (Nombre de entrada), seleccione keyboard_key_alphanumeric_S (tecla_alfanumérica_teclado_S). En Event value multiplier (Multiplicador de valor de eventos), escriba -1.

    8. Expanda keyboard_key_alphanumeric_W (tecla_alfanumérica_teclado_W) y compruebe que la configuración aparece como en la imagen siguiente.

      
                                Archivo player.inputbindings de ejemplo.
    9. Elija File (Archivo), Save (Guardar).

  9. En el componente Input, haga clic en el botón de navegador (...), seleccione el archivo player.inputbindings y haga clic en OK (Aceptar).

Paso 3: crear un script de entrada con Script Canvas

Ahora que ha creado una esfera con física y mapeo de entrada, puede crear el primer script con el editor Script Canvas.

Para crear un script de entrada

  1. En Lumberyard Editor, seleccione Tools (Herramientas), Script Canvas.

  2. En el editor de Script Canvas, elija File (Archivo) y New Script (Nuevo script).

  3. Una vez que se cargue el gráfico, elija File (Archivo) y Save As (Guardar como).

  4. En el cuadro de diálogo Save As (Guardar como), en File name (Nombre de archivo), escriba player y después haga clic en Save (Guardar).

  5. En Node Palette (Paleta de nodos), escriba input en el cuadro de búsqueda.

    nota

    También puede obtener acceso a la lista de nodos haciendo clic con el botón derecho en un área vacía del gráfico.

  6. En Gameplay (Juego), Input (entrada), arrastre Input Handler (Controlador de entrada) desde Node Palette (Paleta de nodos) hasta el gráfico. Input Handler (Controlador de entrada) es un nodo de eventos. Cuando se produce un evento, el nodo de evento envía un mensaje al gráfico.

  7. Para Event name (Nombre de evento), escriba move_y. Esto indica al nodo que escuche el evento de entrada.

    
                        Nodo Input Handler (Controlador de entrada) de ejemplo en Script Canvas.
  8. En Node Palette (Paleta de nodos), escriba Print en el cuadro de búsqueda.

  9. En Utilities (Utilidades), Debug (Depurar), arrastre Print (Imprimir) desde Node Palette (Paleta de nodos) hasta el gráfico. Print (Imprimir) es un nodo de acción. Al ejecutar un nodo de acción, complete acciones como, por ejemplo, solicitar, establecer, manipular datos y las funciones de activación. Los nodos de acción también imprimen datos en la consola de editor, lo que permite comprobar valores a medida que se ejecuta el script.

  10. En Input Handler (Controlador de entrada), arrastre el pin Held (Mantenido) para conectarlo con el pin In (Dentro) del nodo Print (Imprimir). Esta conexión indica al nodo Print (Imprimir) que se ejecute una vez que el controlador de entrada recibe un evento held.

  11. En Input Handler (Controlador de entrada), arrastre el pin Value (Valor) para conectarlo con el pin Value (Valor) del nodo Print (Imprimir). Esta conexión indica al nodo Input Handler (Controlador de entrada) que pase el valor del evento de entrada del controlador de entrada al primer argumento en el nodo de Print (Imprimir).

    nota

    • La ejecución de nodos siempre va de izquierda a derecha de un nodo.

    • Los datos entran siempre por el lado izquierdo de un nodo y salen por la parte derecha del nodo.

      Para obtener más información, consulte Entradas, salidas y tipos de conexión.

  12. Compruebe que el archivo player.scriptcanvas es similar al siguiente.

    
                        Nodos Input Handler (Controlador de entrada) y Print (Imprimir) de ejemplo en Script Canvas.
  13. En el editor de Script Canvas, elija File (Archivo), Save (Guardar) o pulse Ctrl+S.

Paso 4: Asignar el script a la entidad y probar el script

El script que ha hecho ofrece el resultado del valor del evento de entrada. Ahora puede asignar el script a la entidad y probar el script

nota

La entrada de teclado del tutorial no funciona en una sesión de escritorio remoto.

Para asignar y probar el script

  1. En Lumberyard Editor, seleccione la entidad Player (Jugador) que ha creado.

  2. En el Entity Inspector, haga clic en Add Component (Añadir componente) y después haga clic en el componente de Script Canvas.

  3. En Script Canvas, haga clic en el botón de exploración (...), seleccione el archivo player.scriptcanvas y luego haga clic en el botón OK (Aceptar).

  4. Pulse ` para abrir la ventana de consola o elija Tools (Herramientas), Console (Consola).

  5. Presione Ctrl+G para entrar en el modo de juego.

  6. Para desencadenar el evento de entrada, presione W y, a continuación, S. El panel Console (Consola) de Lumberyard Editor muestra el valor del evento de entrada cuando el evento move_y se activa. En este caso, el panel de Console (Consola) muestra 1 cuando pulsa W y muestra -1 cuando pulsa S.

    
                        El panel Console (Consola) emite 1 cuando se pulsa W.
  7. Cuando haya terminado de probar el script, presione Esc.

Paso 5: Crear un script para mover la esfera

Ahora que ha creado correctamente un script, puede añadir nodos para mover la esfera. También puede modificar el valor de eventos de entrada para controlar el movimiento.

Para mover la esfera

  1. En el editor de Script Canvas, en Node Palette (Paleta de nodos), escriba multiply en el cuadro de búsqueda.

  2. En Math (Matemáticas), arrastre Multiply (Multiplicar) desde la Node Palette (Paleta de nodos) al gráfico.

    
                        Nodo Multiply (Multiplicar) de ejemplo de Script Canvas.
  3. Desde Input Handler (Controlador de entrada), arrastre el pin Held (Retenido) para conectarlo con el pin In (Entrada) del nodo Multiply (Multiplicar). Esta conexión ejecuta el nodo Multiply (Multiplicar) después de que el controlador de entrada reciba un evento held.

  4. En Input Handler (Controlador de entrada), arrastre el pin Value (Valor) para conectarlo con el pin Value A (Valor A) del nodo Multiply (Multiplicar).

  5. En el nodo Multiply (Multiplicar), en Value B (Valor B), escriba 0.1. Este valor inferior para el evento de entrada limita la velocidad de movimiento.

  6. En Node Palette (Paleta de nodos), escriba move en el cuadro de búsqueda.

  7. En Entity (Entidad), Transform (Transformar), arrastre Move Entity (Mover entidad) desde Node Palette (Paleta de nodos) hasta el gráfico.

  8. En Node Palette (Paleta de nodos), escriba create from values en el cuadro de búsqueda.

  9. En Math (Matemáticas), Vector3, arrastre Construct from Values (Constructo de valores) de Node Palette (Paleta de nodos) al gráfico. Puede utilizar este nodo para crear un vector 3 a partir de un número.

  10. En Multiply (Multiplicar), arrastre el pin Out (Salida) para conectarlo con el pin In (Entrada) del nodo Create from Values (Crear desde valores).

  11. En Multiply (Multiplicar), arrastre el pin Result (Resultado) para conectarlo con el pin Number: Y (Número: Y) del nodo Construct from Values (Constructo de valores). Solo necesita una dirección y, por lo que utilice el valor predeterminado (0) para X y Z.

  12. En Create From Values (Crear a partir de valores), arrastre el pin Out (Salida) para conectarlo con el pin In (Entrada) del nodo Move Entity (Mover entidad).

  13. En Create From Values (Crear desde valores), arrastre el pin Vector 3 para conectarlo con el pin In (Entrada) del nodo Move Entity (Mover entidad).

  14. Compruebe que el gráfico player.scriptcanvas es similar al siguiente.

    
                        Gráfico de Script Canvas de ejemplo para mover una esfera a lo largo del eje Y.
  15. Guarde el gráfico.

  16. En Lumberyard Editor, presione Ctrl+G para entrar en el modo de juego y probar el script.

  17. Para mover la esfera hacia delante, presione W. Para mover la esfera hacia atrás, presione S.

  18. Cuando haya terminado de probar el script, presione Esc.

Paso 6: Añadir movimiento al eje X para la esfera

Ahora que ha convertido el valor del evento de entrada en una dirección que mueve la entidad en el eje Y, puede agregar movimiento al eje X.

Para agregar movimiento al eje X

  1. En el editor de Script Canvas, arrastre el gráfico para seleccionar los nodos Input Handler (Controlador de entrada), Multiply (Multiplicar), Create From Values (Crear a partir de valores) y Move Entity (Mover entidad). Aparece un perímetro naranja rodeando los nodos seleccionados.

    
                        Gráfico de Script Canvas de ejemplo para añadir movimiento en el eje X para la esfera.
  2. Pulse Ctrl+C para copiar los nodos seleccionados.

  3. Presione Ctrl+V para pegar los nodos copiados y sus conexiones. Esto le permite clonar el script existente y modificar la versión clonada con la configuración adecuada para el movimiento en el eje X.

  4. Mientras está seleccionado, mueva los nodos de tal modo que no se solapen los nodos copiados.

  5. En el nodo Input Handler (Controlador de entrada) duplicado, en Event Name (Nombre de evento), escriba move_x.

    ejemplo

    Su gráfico player.scriptcanvas debería tener el siguiente aspecto.

    
                             Copie los nodos del gráfico de Script Canvas para mover la esfera hacia arriba y hacia abajo y de lado a lado.
  6. Para el nodo Multiply (Multiplicar) duplicado, mueva la conexión desde el pin Y al pin X en el nodo Create From Values (Crear a partir de valores) duplicado.

    nota

    Para desconectar una conexión, arrástrela a una parte vacía del lienzo. Para eliminar una conexión, presione Alt y haga clic en ella.

    
                        Ejemplo de nodos Multiply (Multiplicar) y Create From Values (Crear a partir de valores) en Script Canvas.
  7. Compruebe que el gráfico del archivo player.scriptcanvas es similar al siguiente.

    ejemplo

    
                            Gráfico de Script Canvas de ejemplo para controlar el movimiento de la esfera.
  8. Guarde el gráfico.

  9. En Lumberyard Editor, presione Ctrl+G para entrar en el modo de juego y probar el script.

  10. Haga lo siguiente:

    1. Para mover la esfera hacia delante, presione W.

    2. Para mover la esfera hacia atrás, presione S.

    3. Para mover la esfera de lado a lado, presione A y D.

  11. Cuando haya terminado de probar el script, presione Esc.