Notas de la versión de Lumberyard: Beta 1.24 (mayo de 2020) - Notas de la versión de Lumberyard

Notas de la versión de Lumberyard: Beta 1.24 (mayo de 2020)

La primavera ha llegado y es hora de un nuevo lanzamiento de la beta de Amazon Lumberyard Nos complace anunciar la versión 1.24, que contiene muchas mejoras del motor y las herramientas de Lumberyard, sobre todo en lo que concierne a la calidad de vida con Script Canvas, el editor y la administración y agrupación de activos. También hemos corregido más de 100 errores importantes además de trabajar para mejorar la estabilidad de nuestras herramientas y conseguir que desarrolle juegos sin problemas.

Ah y hemos agregado soporte para Visual Studio 2019. ¡Sí!

A medida que continuamos mejorando Lumberyard, queremos agradecer a todos los integrantes de nuestra comunidad, cuyas sugerencias nos ayudan a mejorar el producto en cada versión. Desde el lanzamiento inicial, hemos revisado más del 70 % de la base de código original y estamos trabajando como locos para hacer de Lumberyard el mejor motor de videojuegos. Siga enviando sus comentarios a nuestros foros y a lumberyard-feedback@amazon.com. Para conocer las últimas actualizaciones de Lumberyard, síganos en Twitter, Facebook y nuestro blog.

¿Desea obtener la v1.24 de Amazon Lumberyard o le interesa echarle un vistazo? Descárguela aquí.

¿Es la primera vez que utiliza Lumberyard? ¡Vea Aprender Lumberyard en 20 minutos!

¿Ya es usuario? Comparta sus comentarios en los foros de Amazon Lumberyard.

Aspectos destacados

Aquí tenemos una muestra de las nuevas características y mejoras que se incluyen en Lumberyard Beta 1.24.

Contribuciones de la Comunidad

Conforme aumentemos nuestro apoyo a la comunidad, vamos a utilizar este espacio para destacar a algunos de nuestros principales colaboradores de la comunidad.

En esta versión, nos gustaría dirigirle a una magnifica gema nueva de Lumberyard, C++ Hot Reload, creada por Álvaro Martin (Promt en los foros de Lumberyard Game Tech), que le permite realizar cambios en el código de juego y variables y ver rápidamente los efectos sin tener que volver a compilar. ¡Esto mejora considerablemente los tiempos de iteración! Algunas de las características de C++ Hot Reload Gem incluyen:

  • Calcula los dependientes y dependencias de los archivos

  • Detecta los cambios al guardar un archivo

  • Genera un mapeo de sus variables para transferir a la nueva versión

  • Envuelve los archivos modificados en una micro DLL

  • Crea un nuevo puntero a su clase (componente)

  • Devuelve y restaura ese puntero por cada instancia que tenga en el juego

  • Recarga y restaura punteros solo para los componentes modificados

Obtenga la gema C++ Hot Reload clonando https://github.com/CppHotReload/Lumberyard, copiando la carpeta \CppHotReload debajo de la carpeta \dev\Gems en la raíz de instalación de Lumberyard y habilitándola a través del Configurador de proyectos.

También queremos agradecer a los siguientes colaboradores de nuestra base de código de GitHub:

  • El usuario de GitHub ximura, que contribuyó con lo siguiente:

    • Compatibilidad con Ctrl+V (Pegar) en XConsole.

    • Se ha corregido un problema que provocaba que Metastream utilizara una caché obsoleta después de reiniciar.

  • El usuario de GitHub SSPKrolik, que contribuyó con lo siguiente:

    • Se ha corregido un problema por el que no se podían seleccionar calcomanías haciendo clic directamente en el icono del ayudante.

    • Se ha corregido un problema que provocaba que el comando de la consola r_stats 6 no mostrara el número correcto de llamadas de sombreado.

    • Se ha corregido un problema en el Editor de partículas por el que los cambios en el selector de color no cambiaban el color.

    • Se ha corregido un problema en el que la herramienta de diseño creaba triángulos con normales volteadas al utilizar la herramienta de relleno de espacio.

  • El usuario tkgdhughes de GitHub, que contribuyó con lo siguiente:

    • Se han corregido varias advertencias y errores relacionados con el análisis estático.

    • Se ha corregido el impulso incorrecto aplicado a la entidad viva al colisionar con un objeto situado bajo los pies.

    • Se ha agregado soporte de reflexión de API a UiTextComponent::GetTextSize para el acceso en Script Canvas.

    • Se ha agregado un parámetro para cargar opcionalmente un lienzo si no se ha encontrado.

    • Se ha agregado capacidad para reproducir secuencias parciales de la interfaz de usuario.

    • Se ha agregado funcionalidad de cortar, copiar y pegar.

    • Se ha habilitado el uso del cursor de LyShine en XConsole.

  • El usuario de GitHub rustamserg, que contribuyó con lo siguiente:

    • Se han corregido varios problemas relacionados con el uso de variables no inicializadas encontradas por el generador de perfiles Valgrind.

    • Se han corregido posibles advertencias de autodependencia y no utilizadas de argumentos en WAF.

    • Se han corregido varios problemas relacionados con los desajustes de bloqueo/desbloqueo de CRenderMesh, la consola remota se deshabilitaba en compilaciones de rendimiento, errores de red y compilación.

    • Se ha corregido un problema que provocaba que se creara una carpeta qtlibs vacía aunque Qt no estuviera disponible.

    • Se han corregido los mensajes de CryAssert que no se registraban correctamente como advertencias para la configuración del servidor dedicado Linux.

¡Excelente trabajo y agradecemos sinceramente las contribuciones! Sus esfuerzos están haciendo que Lumberyard sea aún mejor. Todavía tenemos otras solicitudes de extracción que hemos aceptado para integrarlas por completo, así que si ha contribuido recientemente, vea este espacio.

Script Canvas

En primer lugar: ¡mejoras en la calidad de vida de Script Canvas! Seguimos invirtiendo mucho en hacer de Script Canvas una gran experiencia para los desarrolladores de juegos y, esta vez, hemos agregado mejoras al trabajo con variables de nodo y expresiones matemáticas, entre otras cosas. ¡Compruébelo!

  • Referencias de variables de nodo

    Ahora, cualquier pin de datos se puede convertir en una referencia de variable arrastrando una variable desde el Administrador de variables directamente al pin.

    Una referencia de entrada realiza lo mismo que un nodo de variable Get y recupera el valor de la variable en el momento de la ejecución del nodo.

    Una referencia de salida realiza lo mismo que un nodo de variable Set y asigna la salida de esa ranura a la variable especificada en el momento de la ejecución del nodo.

    Para obtener más opciones y detalles, consulte Agregar referencias de variables en nodos de Script Canvas. ¡Convierta sus nodos de variables existentes en referencias de variables y simplifique el gráfico hoy mismo!

  • Evento de cambio de valor de variable

    Un nodo de Bus de notificación de variable se puede agregar al gráfico con el fin de recibir una señal cada vez que se cambie el valor de una variable especificada.

  • Nodo Expresión matemática

    El nuevo nodo Expresión matemática le permite escribir una expresión matemática sencilla y evaluarla. Esto elimina la necesidad de encadenar un montón de nodos de operadores matemáticos para formar una ecuación completa. Antes, tenía que crear un nodo para cada operación en una expresión, y tenía el siguiente aspecto:

    Ahora, cuando se utiliza el nodo Expresión matemática el trabajo se simplifica notablemente. Compruébelo:

    Nota: el nodo Expresión matemática permite utilizar variables en el nodo de entrada mediante llaves: {}, similar al nodo Imprimir mejorado. Hablando del nodo Imprimir

  • Mejoras en el nodo Imprimir y Crear cadena

    Los nodos Imprimir y Crear cadena ahora le permiten editar una cadena, agregar nuevas variables y modificar la entrada al nodo.

    Tenga en cuenta que el orden de los pines ahora se correlaciona con el orden en que aparecen en la cadena, en lugar del orden en el que se agregaron. Muy agradable.

  • Expansión de entradas de cadena

    Las entradas de cadena en un nodo ahora se estiran y crecen hasta el tamaño de sus entradas. Mientras interactúa con la cadena, el nodo crecerá y desplazará a otros nodos fuera si está habilitado el desplazamiento. Consulte Permitir el desplazamiento de nodos en las Preferencias globales de Script Canvas.

  • Ocultar ranuras no utilizadas en un nodo

    Ahora puede hacer que los nodos sean más compactos ocultando las ranuras no utilizadas. Haga clic con el botón derecho en el nodo y seleccione Ocultar ranuras no utilizadas.

  • Actualización automática de nodos del receptor de eventos

    Hay nuevas opciones para configurar el pin de entrada de Origen en los nodos del receptor de eventos de EBus. Además de seleccionar una entidad estática, ahora puede especificar el destino utilizando una referencia de variable. Siempre que cambie el valor de la variable a la que se hace referencia, el controlador de EBus actualizará su ID de origen para que coincida.

    Esto también ocurre con los datos que se pasan al nodo a través de un pin de datos.

    Tenga en cuenta que esto solo funciona mientras la opción de nodo para Mostrar controles de conexión está desactivada. Una vez activada esa opción, todo el control de cuándo se conecta el bus se controla mediante los pines lógicos Conectar y Desconectar.

  • Nodo de sincronización de latido

    El nuevo nodo Latido envía un impulso a intervalos especificados cuando está activo. Utilice esto para coordinar eventos en sus scripts en torno a temporizadores y relojes independientes.

Pero solo estamos empezando con todas las mejoras importantes. ¡Siga leyendo!

Soporte de Visual Studio

¡Ya está aquí la compatibilidad de Visual Studio 2019 con Lumberyard! Todas las ediciones de Visual Studio 2019 son compatibles, además de Visual Studio 2017, por supuesto. La versión mínima requerida para el desarrollo es la 16.2.4.

Aquí hay algunos detalles:

  • Se han agregado nuevos comandos para compilar proyectos vs2019 desde lmbr_waf (específicamente, lmbr_waf build_win_x64_vs2019_profile).

  • Las versiones de Visual Studio 2015 a 2019 ahora comparten el mismo instalador redistribuible en tiempo de ejecución. Para mayor comodidad, hemos incluido esto en \dev\Tools\Redistributables\Visual Studio 2015-2019.

  • Puede utilizar el Asistente de configuración de Lumberyard para configurar la compatibilidad con Visual Studio 2019, Visual Studio 2017 o ambas versiones.

  • Se ha agregado flexibilidad adicional para crear configuraciones de plataforma y nombres de archivo (.sln) de la solución de Visual Studio.

  • En el Asistente de configuración, las casillas de verificación de cada versión de Visual Studio modifican nuevos marcadores que permiten la compatibilidad con la compilación utilizando una versión de Visual Studio (por ejemplo enable_win_x64_vs2017). Estos marcadores se encuentran en el archivo de configuración del usuario (dev\_WAF_\user_settings.options). Cuando se ha habilitado una versión de Visual Studio, se generará un archivo de solución (.sln) para él de forma predeterminada en la carpeta Soluciones cada vez que se ejecute lmbr_waf configure. Puede anular esta configuración y más en la línea de comandos. También puede generar los archivos de solución manualmente ejecutando el comando lmbr_waf msvs o utilizando los nuevos comandos específicos de la versión lmbr_waf msvs_2017 y lmbr_waf msvs_2019.

  • El control de la generación de versiones específicas de la solución de Visual Studio ahora se trata con configuraciones específicas de la versión, incluyendo generate_vs2017_projects_automatically y generate_vs2019_projects_automatically. Esto reemplaza la configuración generate_vs_projects_automatically.

  • La configuración visual_studio_solution_name se ha sustituido por la configuración específica de la versión, incluyendo vs2017_solution_name y vs2019_solution_name.

  • El nombre de archivo predeterminado de la solución de Lumberyard Visual Studio 2017 ha cambiado a LumberyardSDK_vs2017.sln en lugar de LumberyardSDK_vs15.sln. La solución predeterminada para Visual Studio 2019 con Lumberyard es LumberyardSDK_vs2019.sln.

  • El nombre del archivo Cry Shader Compiler Server se ha cambiado de CrySCompileServer_vc141x64.exe a CrySCompileServer.exe.

  • La documentación de Lumberyard se ha actualizado para incluir Visual Studio 2019 en cualquier guía relevante.

Para obtener una lista completa de opciones, consulte las opciones y configuraciones de usuario de Waf actualizadas. Para obtener más información acerca de la compatibilidad con Visual Studio, incluidos los requisitos específicos de carga de trabajo, consulte Requisitos del sistema y Ejecución del asistente de configuración de Lumberyard en la Guía del usuario de Amazon Lumberyard.

Gema GameLift

Hemos agregado soporte para el sistema de emparejamiento Flex Match de GameLift en la gema GameLift. El sistema de colas de Flex Match proporciona una solución de emparejamiento altamente escalable para juegos AAA y admite opciones de relleno automáticas o personalizadas.

Para obtener más detalles, lea la documentación actualizada de la gema GameLift.

Gema de multijugador

En coordinación con la actualización de la gema GameLift, también hemos agregado compatibilidad con el emparejamiento Flex Match a la gema de multijugador, específicamente para admitir los lobbies multijugador en el juego. Como parte de esta actualización, hemos agregado un nuevo campo para el nombre de la cola y nuevas cvariables necesarias para la configuración de Flex Match.

Puede utilizar este lobby autónomo desde el sistema de entidades de componentes de Lumberyard. Para empezar, basta con activar la gema de multijugador y agregar MultiPlayerLobbyComponent a una entidad componente de una escena.

El MultiPlayerLobbyComponent proporciona un lobby básico que puede realizar las siguientes tareas:

  • Buscar una sesión de juego activa.

  • Crear una lista visual de sesiones de juego.

  • Unirse a una sesión de juego en particular.

  • Crear una sesión de juego.

  • Asignar un nombre a una sesión del juego.

  • Determinar donde se va a cargar el mapa.

  • Informar de errores.

MultiplayerLobbyComponent admite todos los servicios de sesión de Lumberyard, incluidos LANSessionService y GameLiftSessionService.

Para más detalles, lea los documentos actualizados:

Las instrucciones para configurar la muestra multijugador para GameLift también se han actualizado con nueva información sobre el uso del sistema de emparejamiento Flex Match.

Editor

El Editor también recibe atención en esta versión, incluida la estabilización de los ID de entidades y el soporte de enlaces de Python.

  • Esta versión incluye una solicitud de cliente principal para estabilizar los ID de entidad durante las operaciones de sector en el Editor. Antes de la versión 1.24, al guardar o modificar sectores se regeneraban los ID de entidad, lo que causaba la pérdida de referencias a entidades de secuencias de comandos o componentes. Las operaciones de sector ya no generan nuevos ID de entidad.

  • Compatibilidad con enlaces de Python: hemos agregado dos nuevas gemas, EditorPythonBindings y QtForPython (PySide2), que permitirán a los equipos de características y juegos automatizar el Editor usando Python. Puede habilitarlas a través del Configurador de proyectos.

    Para obtener más información, lea Automatización del Lumberyard Editor con la gema de vínculos de editor de Python.

  • Visualización de ID de entidad: con nuestro trabajo en esta versión para estabilizar los ID de entidad durante las operaciones de sector, hemos traído de vuelta la visualización de los ID de entidad en el Inspector de entidades. Además, ahora puede buscar por ID de entidad en el Esquema de entidades. Con estas dos mejoras, puede rastrear fácilmente mensajes de consola, errores y aserciones que llaman a una entidad específica.

    Cambios en el Inspector de entidades:

    … y los cambios en Esquema de entidades:

    Para obtener más información, consulte el tema actualizado sobre Buscar y filtrar entidades en la Guía del usuario de Lumberyard.

Asset Bundler

¡El agrupador de activos de Lumberyard ha recibido mucha atención en la versión 1.24! Ahora, administrar y empaquetar grandes cantidades de archivos de activos es aún más sencillo.

  • Hemos agregado soporte para un archivo de dependencias del proyecto predeterminado, ${ProjectName}_Dependencies.xml a la plantilla del proyecto, que incluye control de audio y activos relacionados con partículas.

    • Este archivo se crea y admite de forma predeterminada en cualquier proyecto nuevo. Los activos a los que se hace referencia en este archivo se agregarán como semillas automáticamente cuando los usuarios creen listas de activos utilizando AssetBundlerBatch.exe y especifiquen el argumento addDefaultSeedListFiles.

    • También puede copiar este archivo de la plantilla de proyecto a cualquier proyecto existente, si realiza la migración desde un proyecto existente. Los activos a los que se hace referencia en este archivo se agregarán como semillas automáticamente cuando los usuarios creen listas de activos utilizando AssetBundlerBatch.exe y especifiquen el argumento addDefaultSeedListFiles.

  • Durante el proceso de agrupación de activos, si intenta agregar un archivo de sector como semilla, ahora recibirá un mensaje de advertencia; y si hay disponible un sector dinámico para ese sector, se agrega el sector dinámico en su lugar. Esto se debe a que los sectores no dinámicos son un activo de solo edición y no tienen un comportamiento en tiempo de ejecución y el uso de uno como semilla no da los resultados esperados al agrupar los activos de un juego.

  • Los niveles ya no emiten dependencias de productos en el control global de audio. Los proyectos se han ajustado para incluir el control de audio global en el archivo dependencies.xml del proyecto. Si su proyecto aún no tiene un archivo ${ProjectName}_Dependencies.xml, se generará uno cuando utilice el agrupador de activos.

    • Si ha creado un archivo de dependencias del proyecto que coincida con el patrón de nomenclatura ${ProjectName}_Dependencies.xml, deberá agregarle las siguientes líneas:

      <Dependency path="libs/particles/preloadlibs.txt" optional="true" />

      <Dependency path="libs/gameaudio/wwise/*.xml" optional="false" />

  • Las nubes, habilitadas a través de la gema Nubes en Gems\Clouds en la raíz del motor, ahora emiten dependencias de productos.

  • Las texturas de nieve, habilitadas a través de la gema de Nieve en Gems\Snow en la raíz del motor, ahora emiten dependencias de productos.

  • Se ha mejorado el rendimiento de la agrupación de múltiples listas de activos en casi tres veces a través del soporte para subprocesos múltiples.

  • Actualización de API: la implementación de PerforceComponent::GetBulkFileInfo ahora coincide con la funcionalidad GetFileInfo.

  • Actualización de API: hemos agregado una nueva API a la clase AssetSystemRequestBus: GetUnresolvedProductReferences. Si va a crear un nuevo tipo de activo y su activo tiene dependencias de productos que no son dependencias de origen, utilice esta API en cualquier compilación conectada al procesador de activos para realizar un seguimiento de cuándo las dependencias de productos estén disponibles. En este caso: las compilaciones conectadas con el procesador de activos pueden estar disponibles y cargarse antes de que se hayan cargado las dependencias del producto, por lo que cualquier código que interactúe con estos activos debe escribirse para tratar esto llamando a GetUnresolvedProductReferences y cambiando todos los comportamientos necesarios si las dependencias de productos aún no están listas.

  • Los scripts de implementación deStarter Game se han actualizado para utilizar el nuevo sistema de agrupación de activos. La documentación de la Explicación de agrupación de activos sencillo se ha actualizado para que coincida con esto.

  • AssetBundlerBatch.exe informa de un error si falta el argumento platform al utilizar los comandos addPlatformToSeeds o removePlatformFromSeeds.

  • El sistema de dependencias del motor ahora admite la ruta de exclusión para excluir subcarpetas capturadas por entradas comodín definidas en los archivos de dependencias.

    • Anteponiendo el carácter ':' a una fila en este archivo lo marcará como línea de exclusión. Si un activo coincide con una de las líneas de no exclusión del archivo de dependencias, no se incluirá si también coincide con una línea de exclusión.

    • Si su proyecto ya tiene un ${ProjectName}_Dependencies.xml file, debe agregar una exclusión para este archivo en carpetas de nivel para datos de audio Wwise. Consulte los cambios en dev/ProjectTemplates/DefaultTemplates/${ProjectName}/${ProjectName}_Dependencies.xml para ver ejemplos.

  • Mejoras en el sistema de niveles de modo que los niveles dentro de los archivos .pak ahora se pueden cargar directamente. La carga de niveles también funciona con paquetes creados por el nuevo sistema de agrupación de activos.

    • Hay un problema conocido asociado con esto. Consulte la sección Problemas conocidos para obtener más información.

  • Se han agregado nuevas plataformas auxiliares ALL y ALL_CLIENT, como nuevos valores para el marcador --platform en AssetBundlerBatch.exe. Estos marcadores permiten el soporte para todas las plataformas, incluidas las que se puedan agregar en el futuro.

  • Se ha agregado un nuevo tipo de comparación del agrupador de activos, IntersectionCount. Dada una lista de AssetFileInfoLists y un recuento N, se creará un nuevo AssetFileInfoList que solo contenga activos que estén presentes al menos N veces en la lista de entrada.

  • Sistema mejorado de etiquetado de archivos para gestionar mejor las plataformas, los comodines y los activos de productos de origen. Todos los patrones de ruta de archivo sin alias se considerarán relativos a la carpeta raíz de activos de forma predeterminada, ahora. Los usuarios pueden especificar una raíz diferente agregando un alias explícito al patrón.

  • Los comandos lmbr_waf ya no distinguen entre mayúsculas y minúsculas.

¡Vaya! Pero aún no hemos terminado.

Gestión y procesamiento de activos

También hemos realizado una serie de mejoras en el procesamiento de activos, incluido el soporte para operaciones de movimiento y eliminación de línea de comandos con AssetProcessorBatch.exe.

  • Asset Processor Batch (AssetProcessorBatch.exe) ahora admite la reubicación de activos con las nuevas instrucciones --move y --delete.

    • Sintaxis para operaciones de movimiento: --move=<RutaOrigen>,<RutaDestino>

    • Sintaxis para operaciones de eliminación: --delete=<Ruta>

    • Ejemplo: AssetProcessorBatch.exe --move {Path}/image.png,{Path}/image.png

      Las instrucciones --move y --delete admiten los siguientes modificadores:

      • confirmar

        • Realiza un movimiento o eliminación real, modificando archivos en el disco. Sin este modificador, mover y eliminar solo proporcionará una vista previa de los resultados de la instrucción.

      • leaveEmptyFolders

        • Las carpetas vacías se eliminan de forma predeterminada. Agregar esto mantendrá las carpetas vacías después de un movimiento/eliminación.

      • allowBrokenDependencies

        • Una instrucción para mover o eliminar devolverá un error, de forma predeterminada, si da lugar a dependencias rotas. Este modificador obliga a la acción a continuar a pesar de las dependencias rotas.

      • updateReferences

        • Solo para la instrucción --move: intenta actualizar los archivos que hacen referencia a los archivos seleccionados. Esta es una búsqueda y reemplazo sencillos de la ruta absoluta y UUID/AssetId y no funcionará para activos binarios como FBX.

      • enablescm

        • La administración de control de origen está deshabilitada de forma predeterminada en el lote de procesador de activos. Al establecer este modificador, habilita el complemento de control de código fuente y hace que los comandos de movimiento/eliminación comprueben los archivos para editar/mover/eliminar según corresponda.

    • Los comodines (*) se admiten para las coincidencias de nombres de archivo, pero no para las coincidencias de directorio.

  • Cambios en el procesador de activos:

    • La antigua pestaña Activos de la interfaz de usuario del Procesador de activos se ha cambiado el nombre a Trabajo y las demás pestañas del Procesador de activos se han reorganizado en función del uso.

    • Se ha agregado una nueva pestaña Activos con una interfaz de usuario que muestra detalles sobre los activos de origen y producto para el juego. Solo muestra los activos que se han procesado y se actualizará automáticamente a medida que se procese cada activo.

    • Detalles de activos de origen: al seleccionar un activo de origen en la pestaña Activos de origen se mostrará la carpeta digitalizada en la que se encontró el activo, el GUID del activo, los productos, las dependencias de origen salientes y las dependencias de origen entrantes.

    • Detalles del activo del producto: cuando selecciona un activo del producto en la pestaña Activos del producto se mostrará el ID del activo, la última vez que se procesó el activo, la clave del trabajo, la plataforma, el activo de origen, las dependencias del producto saliente, las dependencias de producto de ruta saliente no superadas y las dependencias de productos entrantes.

    • Puede navegar rápidamente entre los activos utilizando los botones situados junto a los activos relacionados. Por ejemplo, los activos de producto tienen un botón para saltar al activo de origen. También hay una barra de búsqueda que se aplica tanto a la pestaña de activos de origen como a la pestaña de activos de producto. Busca por nombre de archivo y ruta, y admite UUID.

    • Si utiliza el botón Ir a para saltar a un activo, el activo de destino se incluirá como anulación de los resultados de búsqueda. Esto se ha hecho de forma intencionada para evitar borrar la búsqueda o que un salto de activos genere un error porque el activo no coincida con los resultados de la búsqueda.

    • Haga clic con el botón derecho en un trabajo completado (otros tipos de trabajo no funcionan) para saltar a ese activo en la pestaña Activos.

  • Agregamos un mensaje de registro cuando el estado de la interfaz de usuario del Procesador de activos cambia a inactivo.

    Nota: si está trabajando en la automatización que utiliza el Procesador de activos, le recomendamos que utilice AssetProcessorBatch.exe si es posible. Si debe automatizar alrededor de la interfaz de usuario, le recomendamos que compruebe la falta de actualizaciones en el Catálogo de activos como una forma de detectar que el Procesador de activos está inactivo. Este registro está destinado únicamente a fines informativos y no para la comprobación de estado.

  • Canalización de activos: hemos agregado la nueva JobDependencyType, OrderOnce, a la canalización de activos. Es similar a la dependencia de trabajo Order, excepto que el trabajo solo se procesa si todos los trabajos dependientes se han procesado al menos una vez.

IU (LyShine)

  • Agregamos una nueva propiedad Trigger Mode a UiTooltipDisplayComponent, que permite a un desarrollador de interfaz de usuario seleccionar cómo debe activarse la información sobre herramientas. Las tres opciones son: Al pasar el ratón, Al pulsar y Al hacer clic.

    Para obtener más información sobre estas opciones, consulte la página de componentes de información sobre herramientas actualizada.

  • Agregamos nuevas propiedades de atenuación automática a UiScrollBarComponent que permite que la barra de desplazamiento se atenúe por completo hasta ser transparente cuando no se activa durante un cierto período de tiempo. También puede controlar el retardo y la velocidad de atenuación. ¡Reclame su propiedad visual!

Sistemas de Lumberyard

Hemos creado algunas API nuevas para admitir variables de consola (cvars) y funtores (cfuncs), junto con dos nuevos modelos de mensajería. Estas nuevas API coexisten actualmente con los cvars CryConsole y EBus existentes, ¡así que pruébelos en su código!

Física

Seguimos para pasar el sistema de físicas heredado de Lumberyard a otro completamente basado en PhysX. También hemos dedicado algún tiempo a abordar una serie de solicitudes de clientes referentes a consultas de escena.

Consultas de escena:

  • Hemos habilitado las consultas de escena para que funcionen en un entorno de subprocesos múltiples habilitando el subproceso múltiple para la gema PhysX de Lumberyard. Este subproceso múltiple sigue las prácticas recomendadas que se documentan en el sitio NVIDIA PhysX.

  • Hemos agregado el evento OnWorldCreated cuando se inicializa una escena PhysX. Esto permite a los usuarios de Lumberyard ejecutar lógica de juego personalizada cuando se crea el mundo de simulación física. Para usarlo, conéctese al EBus de notificación OnWorldCreated en la API SystemNotificationBus de física.

  • Hemos agregado nuevos nodos de Script Canvas para consultas de escena, como proyecciones de rayo, proyecciones de formas y superposiciones, con entrada adicional de Grupo de colisiones. Esto permite el filtrado de objetos devueltos por las consultas de escena, que es una característica necesaria en algunas situaciones de juego.

    Nota: cada nodo Script Canvas de consulta de escena PhysX ahora tiene un duplicado con la cadena 'With Group' anexada al nombre (ver imagen a continuación). Debe reemplazar los nodos existentes por los que llevan detrás 'With Group' para usar el filtrado de grupos de colisión. Los nodos de consulta de escena sin 'With Group' quedarán obsoletos en una próxima versión.

Colisionadores de forma:

  • Hemos agregado el nuevo componente del colisionador de formas PhysX. El componente del colisionador de formas PhysX proporciona una función similar al componente del colisionador de PhysX, pero crea la geometría de simulación basada en la definición de forma proporcionada por un Componente de forma, en lugar de definir la forma en sí.

    Hemos creado este nuevo componente de colisionador sin una definición de forma intrínseca para admitir las siguientes situaciones:

    • Algunas formas del juego no son compatibles con el componente de colisionador PhysX, como la forma de prisma poligonal.

    • Si la información de forma definida por un componente de forma se usa en otro lugar del código de juego, por ejemplo, para definir un volumen de audio, un volumen de niebla o cualquier otra definición asociada al juego que dependa del servicio de forma y es deseable mantener la geometría de físicas sincronizada con el volumen de juego.

    • Si los componentes de forma ya existen en el juego y no hay planes para migrarlos para utilizar componentes de colisionador de PhysX.

  • A petición de los clientes de Lumberyard, hemos movido RigidStatic de BaseCollider a su propio componente de física estática. Con este cambio, los sólidos rígidos estáticos se mueven a su propio componente: StaticRigidBodyComponent. Este componente lo genera EditorColliderComponent o EditorShapeColliderComponent si la entidad Editor no tiene EditorRigidBodyComponent.

    Esto facilita el trabajo de los programadores de física de juegos de Lumberyard mediante:

    • Comprobación de si una instancia de BaseColliderComponent tiene un cuerpo rígido estático acoplado a ella.

    • Facilitando la depuración cuando tiene múltiples instancias MeshColliderComponent o PrimitiveColliderComponent en una sola entidad, ya que solo un BaseColliderComponent puede tener un cuerpo rígido estático acoplado.

Otras mejoras:

  • Tela NVIDIA ahora es compatible con Mac, iOS y Android (así como Windows).

    ¡Eche un vistazo a este vídeo que muestra nuestros comportamientos físicos de Tela NVIDIA!

  • ¡Los objetos CryDesigner ahora funcionan con PhysX!

  • Integramos la biblioteca V-HACD en la canalización de activos de física. Esta biblioteca permite a los usuarios descomponer mallas en partes relativamente complejas y el colisionador compuesto resultante debe ser una representación bastante fiel de la malla original, mientras que la puede seguir utilizando un cuerpo rígido (ya que no contiene mallas triangulares). Las piezas resultantes de la descomposición de la malla se procesan por separado a través de la canalización de activos, en lugar de como un todo). Es probable que cada pieza se aproxime mejor mediante una forma convexa o una primitiva que la malla original, porque cada pieza es casi convexa.

    Hay algunos problemas conocidos con esto:

    • La descomposición de malla solo está disponible si el Tipo de exportación está seleccionado como Convexo o Primitiva.

    • Los resultados reales obtenidos por la descomposición dependen principalmente de la biblioteca V-HACD y están fuera de nuestro control.

  • Se ha agregado la optimización de activos de físicas en el momento de carga. En este caso, Lumberyard ahora ajusta automáticamente los colisionadores de primitivas a los activos FBX en nombre del usuario. Esto puede ahorrar un tiempo valioso, dado que ya no es necesario ajustar manualmente un colisionador de primitivas a un activo FBX utilizado como malla de renderizado en el juego. Al igual que los colisionadores de malla convexa y triangular, los colisionadores de primitivas se configuran a través de la canalización de activos de PhysX y se exportan como activos *.pxmesh. Lumberyard admitirá inicialmente primitivas de esfera, cápsula y cubo. La característica se ha diseñado teniendo en cuenta la extensibilidad futura y se pueden agregar fácilmente nuevas formas de primitivas.

Documentación

¡Hemos agregado la primera iteración de la nueva Guía de bienvenida a Lumberyard a la documentación pública! Esta es una guía ligera diseñada para ayudar a los nuevos usuarios a entender la plataforma de Lumberyard y a obtener una nueva configuración de instalación y configurar rápidamente con poca fricción. Si es un usuario nuevo, nos encantaría conocer sus comentarios al respecto, así que haga clic en ese recuadro de comentarios en la parte inferior derecha de cualquier página y háganos saber cómo debemos seguir mejorándolo y desarrollándolo.

Habrá más cambios en la estructura de la documentación de Lumberyard y en el contenido en futuras versiones, a medida que adaptamos la nueva documentación de características a los comentarios de los clientes y la cobertura de lagunas de contenido.

Cambios bruscos

Con Lumberyard 1.24, hemos introducido los siguientes cambios de última hora:

Script Canvas y EMFX:

  • Nodo Quaternion - Crear desde ángulos

    Anteriormente, las etiquetas de los datos de este nodo se presentaban como Guiñada, Inclinación, y Giro, pero esto no reflejaba cómo se conectaban los valores. Se ha corregido la lógica subyacente y se ha cambiado el orden de los campos para que coincida con los otros nodos de cuaternión: Inclinación, Giro y Guiñada.

    Si ve un comportamiento inesperado en las animaciones en 1.24, compruebe las definiciones de los nodos y asegúrese de que está utilizando el orden actualizado de los valores de datos de rotación.

Terreno:

  • Hemos agregado una nueva gema denominada Gema de terreno heredado. Los nuevos proyectos tendrán habilitada la Gema de terreno heredado de forma predeterminada. Si utiliza terreno de Lumberyard en el proyecto actual, deberá habilitar la gema de terreno heredado en el Configurador de proyectos.

    Una vez hecho esto, agregará automáticamente un Componente de terreno heredado al Inspector de niveles para los niveles existentes y puede agregarlo usted mismo para que los nuevos niveles creen el terreno. Si no desea o usa el terreno, puede dejar esta gema desactivada.

    Lea la documentación de la gema terreno heredado.

Física:

  • El método Simulation::Update() en la API de física se ha dividido en dos métodos: StartSimulation y FinishSimulation. Hemos realizado este cambio ya que una sola llamada a Actualización detiene otra lógica (por ejemplo, renderizado) hasta que la simulación se completa y se obtienen los resultados, perdiendo tiempo de fotograma. Ahora, al dividir la llamada a Update en dos métodos, otras operaciones tienen una ventana para ejecutar entre StartSimulation y FinishSimulation.

Soporte de Python:

  • Debido al final de la vida útil de Python 2.x en 2020, Lumberyard ha cambiado completamente a Python 3.7.5. Los scripts de compilación WAF se han actualizado para que solo se ejecuten en Python 3.x. Las versiones anteriores de Python se han eliminado de la instalación de Lumberyard. Si tiene scripts de Python 2.x, debe convertirlos a 3.7.5 o una versión superior para usarlos con Lumberyard 1.24.

Reproducción de vídeo:

  • La gema VideoPlayback se refactorizó para utilizar un nuevo marco para todas las gemas de vídeo encontradas en la nueva gema VideoPlaybackFramework. Los usuarios existentes de la gema VideoPlayback tendrán que agregar una dependencia a la nueva gema VideoPlaybackFramework.

Obsolescencias

En la versión 1.24, hemos dado de baja las siguientes características y contenido:

Documentación:

  • Hemos retirado la Guía de introducción debido a los malos comentarios de los clientes y la hemos reemplazado por la nueva Guía de bienvenida de Lumberyard. El contenido de la Guía de introducción se volverá a escribir para las versiones actuales de Lumberyard y se volverá a agregar a la documentación en una próxima versión. Puede encontrar un enlace a la última versión de la misma en la página Archivo de documentación de Lumberyard.

    Hemos archivado la Guía heredada de Lumberyard y la hemos retirado de la documentación en línea de Amazon Lumberyard. Si la está buscando, está disponible como PDF descargable.

Proyectos externos

  • Los Proyectos externos se han dado de baja en Lumberyard en v1.24. Como solución alternativa, cree un enlace simbólico o conecte su proyecto al árbol de origen si desea tenerlo almacenado en otro lugar.

Flow Graph

  • El gráfico de flujo se ha eliminado por completo en la versión 1.24 de Lumberyard. Esta característica heredada se deshabilitó para nuevos proyectos de forma predeterminada en la versión 1.12 y se ha hecho redundante con Script Canvas en la versión 1.11.

Gemas

  • Las siguientes gemas se han dado de baja en Lumberyard v1.24:

    • NativeUIGem

    • UserLoginDefaultGem

    • AWSGem (utilizada anteriormente para gráfico de flujo)

Setup Assistant

  • Las siguientes características del Asistente de configuración han quedado obsoletas en Lumberyard 1.24:

    • El SDK de Adobe Photoshop se ha eliminado de la lista de SDK opcionales disponibles durante la instalación de Lumberyard.

    • El complemento CryTiff de Adobe Photoshop se ha eliminado de la instalación de Lumberyard. Utilice el Editor de configuración de texturas para habilitar la compatibilidad completa con el formato de textura CryTiff.

Resource Compiler

  • La herramienta de Imagen del compilador de recursos ha quedado obsoleta y se ha reemplazado con un código auxiliar.

Física

  • Anuncio: la Física heredada se ha dado de baja en la versión 1.24 y se eliminará en una versión futura a favor del soporte completo de PhysX. Si tiene dependencias en Física heredada, actualice sus entidades para usar PhysX y su código para usar las API AzFramework Physics::*.

Anuncios de soporte

Los siguientes cambios están previstos en una próxima versión de Lumberyard:

Starter Game

  • El Proyecto StarterGamerecibirá una actualización de contenido en una versión futura para demostrar las prácticas recomendables con Lumberyard como tener todos los activos del entorno en formato FBX en lugar del formato CGF, usar PhysX como sistema de físicas y demostrar la lógica del juego mediante scripts de Script Canvas.

Lumberyard UI 2.0

  • El Editor de Lumberyard experimentará algunos cambios importantes en su interfaz de usuario en una próxima versión. Cuando lo publiquemos, podrás cambiar entre la antigua interfaz de usuario y la nueva durante un tiempo.

    ¡Eche un vistazo a un adelanto con este GIF animado!