Tutorial de Script Canvas Crear una entidad controlable - Guía del usuario de Lumberyard

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Tutorial de Script Canvas Crear una entidad controlable

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

ejemplo


                Ejemplo de esfera controlable 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

Prerequisites

  • Establezca Proyecto de ejemplos como su proyecto predeterminado. Para obtener más información, consulte Elección de un proyecto de juego para abrir.

  • Si a Node Palette (Paleta de nodos) le faltan nodos, puede actualizar las preferencias para mostrar los nodos ocultos. Para obtener más información, consulte Referencia del nodo Script Canvas.

  • Para obtener acceso a los nodos de diagnóstico, incluido el nodo Print (Imprimir), debe habilitar la gema Script Canvas Diagnostic Library y luego volver a compilar el proyecto del juego. Para obtener más información, consulte Habilitación de gemas.

Paso 1: Creación de 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, elijaArchivo,New.

  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: Cree una entidad y agregue 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. Haga Lumberyard botón derecho en el editor dePerspectivaElija y seleccioneCrear entidad.

  2. En el navegadorEntity Inspector, realice una de las siguientes opciones:

    1. En 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 elMesh (Malla)componente.
  3. En la ventanilla, utilice la herramienta Move (Mover) para seleccionar el eje Z y mover la entidad del suelo.

  4. En el navegadorEntity Inspector, haga clic enAdd Componenty luego añada los siguientes componentes:

    • 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 C — E. paraNombre de entrada, seleccioneKeyboard_key_alphanumeric_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 elInputcomponente.
  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 C — E. paraNombre de entrada, seleccioneKeyboard_key_alphanuméric_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.

      
                                Ejemploplayer.inputbindingsfile.
    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 el lienzo de script

Ahora que ha creado una esfera con física y asignación de entrada, puede crear el primer script con el comandoScript CanvasEditor de .

Para crear un script de entrada

  1. En Lumberyard Editor, elijaHerramientas de,Script Canvas.

  2. En el navegadorScript Canvaseditor, elijaArchivo,Nueva secuencia de comandos.

  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.

    
                        EjemploControlador de entradanodo 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.

    
                        EjemploControlador de entradayPrint (Imprimir)En Script Canvas.
  13. En el navegadorScript Canvaseditor, elijaArchivo,Save (Guardar)o pulseCtrl+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 casillaJugadorLa entidad que ha creado.

  2. En el navegadorEntity InspectorEn elAdd ComponentElija y luego seleccione la opciónScript Canvascomponente.

  3. UNDERScript CanvasHaga clic en el botón (...), seleccione el botónplayer.scriptcanvasy, a continuación, haga clic enACEPTAR.

  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, presioneWA continuación, pulseS. LaConsola deEl panel del Editor de Lumberyard muestra el valor del evento de entrada cuando lamove_yse desencadena. En este caso, el panel de Console (Consola) muestra 1 cuando pulsa W y muestra -1 cuando pulsa S.

    
                        Consola deSalidas del panel1Cuando pulseW.
  7. Cuando haya terminado de probar el script, presione Esc.

Paso 5: Creación de 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 navegadorScript CanvasEn el editor deNode PaletteEn, introduzcamultiplyEn el cuadro de búsqueda.

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

    
                        Ejemplo de Script CanvasMultiply (Multiplicación)Nodo.
  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 lienzo de script de ejemplo para mover una esfera a lo largo del eje Y.
  15. Guarde el gráfico.

  16. En Lumberyard Editor, pulseCtrl+GPara entrar en el modo de juego y probar el script.

  17. Para mover la esfera hacia delante, presione la teclaW. Para mover la esfera hacia atrás, presioneS.

  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 navegadorScript Canvas, arrastre el gráfico para seleccionar la opciónControlador de entrada,Multiply (Multiplicación),Crear a partir de valores, yMover entidadNodo. Aparece un perímetro naranja rodeando los nodos seleccionados.

    
                        Gráfico de script de ejemplo Gráfico de lienzo 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 del lienzo de script 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.

    
                        EjemploMultiply (Multiplicación)yCrear a partir de valoresEn Script Canvas.
  7. Compruebe que el gráfico del archivo player.scriptcanvas es similar al siguiente.

    ejemplo

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

  9. En Lumberyard Editor, pulseCtrl+GPara 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.