¿Qué es Datasmith Runtime?
Datasmith Runtime es un conjunto de funciones de Datasmith que están disponibles en tiempo de ejecución (a diferencia de un proceso de trabajo en el editor) en una aplicación basada en Unreal Engine. Puedes usar estas funciones para crear aplicaciones que puedan importar archivos .udatasmith y manipularlos mediante blueprints.
Se puede acceder a Datasmith DirectLink en una aplicación cooked basada en Unreal Engine usando Datasmith Runtime y blueprints.
Con Datasmith Runtime, puedes crear aplicaciones personalizadas que aprovechen Datasmith DirectLink o visualizar datos de Datasmith a la carta como parte de un proceso de trabajo iterativo en 3D.
Habilita los siguientes complementos en tu proyecto para que funcionen con Datasmith Runtime:
- Datasmith Content
- Datasmith Importer
- Datasmith Runtime
Datasmith Runtime es oficialmente compatible con Unreal Engine 4 y Unreal Engine 5 en Windows y MacOS. Aunque Datasmith Runtime funcionará con Linux, esto es experimental y es posible que experimentes inestabilidad y problemas de rendimiento.
Uso de Datasmith Runtime con blueprints
Datasmith Runtime expone diversas funciones y opciones de importación de Datasmith mediante varios nodos de Blueprint. A continuación se enumeran los más comunes:
Los nodos de Blueprint de Datasmith Runtime más comunes.
Make Datasmith Runtime Import Options
Expone varios parámetros de importación y los convierte en una estructura de datos:
| Entradas | Descripción |
|---|---|
| Crear jerarquía | Determina si se construye la jerarquía de actores. Elegir una jerarquía más detallada aumenta el tiempo de carga y renderizado.
|
| Crear colisión | Determina el tipo de colisión utilizado para los componentes.
|
| Tipo de colisión | Determina el tipo de colisión que se usa en las mallas estáticas.
|
| Importar metadatos | Lee e importa los metadatos de los actores. Aumenta el tiempo de carga. |
La entrada Opciones de teselado no se utiliza actualmente.
Set Import Options
Establece el valor de las opciones de importación seleccionadas para el contenido de Datasmith mediante un actor de Datasmith Runtime. Utiliza un actor de Datasmith Runtime como Target y Datasmith Runtime Import Options como valor.
Load File
Carga el archivo .udatasmith, ubicado en la ruta de archivo especificada. Requiere una ruta de archivo y un actor de Datasmith Runtime como entradas.
Load File from Explorer
Abre una ventana del explorador de archivos para que puedas buscar una ubicación y seleccionar un archivo .udatasmith. Requiere un actor de Datasmith Runtime como entrada. La ruta predeterminada del archivo es opcional.
Aunque funciona con los sistemas operativos Windows y Mac en Reproducir en el editor (PIE), el nodo Load File from Explorer solo funciona con Windows en tiempo de ejecución.
Get Direct Link Proxy
Devuelve una interfaz a una conexión de Direct Link denominada Direct Link Proxy. Este es el primer paso para crear una conexión de Datasmith DirectLink.
Get List of Sources
Obtiene una lista de las fuentes de Datasmith DirectLink. Requiere un Direct Link Proxy como entrada.
Open Connection with Index
Abre una conexión de Direct Link con la fuente ubicada en el valor de índice indicado. Requiere un actor de Datasmith Runtime y un índice de fuentes como entrada.
Close Connection
Cierra una conexión abierta de Direct Link asociada a un actor de Datasmith Runtime determinado.
Cómo cargar contenido de Datasmith en tiempo de ejecución
Con Datasmith Runtime, puedes cargar el contenido de Datasmith dentro de una aplicación cooked y tener acceso a la jerarquía y a las propiedades del actor.
Haz clic en la imagen para verla a tamaño completo.
Para cargar contenido de Datasmith con blueprints:
-
Crea un nuevo blueprint de actor que contenga el punto de anclaje del contenido de Datasmith. Para ello, haz clic con el botón derecho en el explorador de contenido y selecciona Clase de Blueprint en el menú contextual. En la ventana Elegir clase padre, selecciona Actor y nombra a la nueva clase de Blueprint DatasmithActor. Haz doble clic en el nuevo blueprint para abrir el editor.
Este anclaje servirá como punto de origen para el contenido importado de Datasmith. Si tu contenido presenta un desfase con respecto al origen en tu aplicación de origen, Unreal Engine mantendrá ese desfase con respecto al anclaje cuando se importe el contenido.
-
Selecciona la pestaña Grafo de eventos y elimina todos los eventos excepto Event BeginPlay. Arrastra una conexión desde Event BeginPlay y añade el nodo Spawn Actor From Class. Abre el menú desplegable Clasey selecciona DatasmithRuntimeActor. Asciende el valor de retorno a variable y denomínalo Anchor.
-
Spawn Actor requiere una transformación para generar el anclaje. Haz clic con el botón derecho a la izquierda de Spawn Actor y añade un nodo Make Transform. Conecta la salida de Make Transform al pin Spawn Transform de Spawn Actor.
-
Para terminar el blueprint, haz clic y arrastra desde el pin de ejecución del nodo Set y añade un nodo Load File from Explorer. Conecta una referencia a la variable Anclaje a la entrada Actor de Datasmith Runtime.
-
Guarda y compila el blueprint. Añade una copia de tu blueprint de anclaje al nivel y pulsa Reproducir para probarlo.
Unreal Engine abrirá una ventana del explorador de archivos y te pedirá que selecciones un archivo.
Cómo crear un Datasmith DirectLink con blueprints
También puedes abrir un Datasmith DirectLink entre una o más aplicaciones de origen y tu proyecto de Unreal Engine en tiempo de ejecución con Datasmith Runtime.
- Empieza creando un nuevo blueprint de actor que contenga el punto de anclaje de tu contenido de Datasmith. Haz doble clic en el nuevo blueprint para abrir el editor.
- Al igual que en el ejemplo anterior, selecciona la pestaña Grafo de eventos y elimina todos los eventos excepto Event BeginPlay. Arrastra una conexión desde Event BeginPlay y añade el nodo Spawn Actor From Class. Abre el menú desplegable Clasey selecciona DatasmithRuntimeActor.
-
Se necesita una transformación para generar el anclaje. Haz clic con el botón derecho a la izquierda de Spawn Actor y añade un nodo Make Transform. Conecta la salida de Make Transform al pin Spawn Transform de Spawn Actor.
-
A continuación, necesitas un Direct Link Proxy que actúe como punto de conexión entre tu aplicación y la aplicación de origen. Arrastra una conexión desde el nodo Set y crea un Get Direct Link Proxy. Asciende la salida a variable, dale el nombre Direct Link Sources Proxy y establécela como pública.
-
Haz clic en el botón del más (+) de la sección Funciones del panel Mis blueprints para crear una nueva función. Nómbralo DirectLinkUpdate. Usarás esta nueva función para activar la conexión de Direct Link durante el tiempo de ejecución.
-
Empieza obteniendo una copia de tu variable Direct Link Proxy. Arrastra una línea desde la variable y crea un nodo Get List of Sources. Asciende la salida a variable para que contenga la lista de fuentes de Direct Link y convierte esta variable en pública.
-
Arrastra la variable Anchor que creaste anteriormente desde la pestaña Mi blueprint a la función Direct Link Update. Arrastra una línea desde la salida y escribe Set Import Options para seleccionar e insertar ese nodo.
-
Haz clic con el botón derecho, crea un nodo Make Datasmith Runtime Import Options y arrastra una conexión desde la salida a la entrada Import Options.
-
Termina la función arrastrando una línea desde Set Import Options y creando un nodo Open Connection with Index. Toma como entrada un anclaje y un Source Index como entrada. Conecta la referencia al anclaje a la entrada Target.
-
Haz clic en el botón del más (+) junto a Variables para crear una nueva variable. Dale el nombre SourceIndex y haz que sea de tipo entero.
-
Conecta la nueva variable a la entrada Índice de fuentes del nodo Open Connection with Index. Si el valor de índice es 0, se conectará a la primera fuente de la lista.
-
Por último, haz clic en la función DirectLinkUpdate de Mis blueprints y activa Llamada al editor en el panel Detalles. Esta opción hace que la función esté disponible en tiempo de ejecución en los detalles del objeto de anclaje.
Haz clic en la imagen para verla a tamaño completo.
- Guarda y compila. El blueprint terminado debe parecerse al ejemplo siguiente:
Haz clic en la imagen para verla a tamaño completo.
Inicia tu aplicación de origen y ejecuta el proyecto haciendo clic en el botón Reproducir. Selecciona tu anclaje en el esquematizador del mundo y haz clic en el botón Direct Link Update del panel Detalles. A continuación, haz clic en el botón Sincronizar con Direct Link de tu aplicación de origen. Verás que tu contenido de Datasmith aparece en el nivel con las opciones de importación especificadas en el blueprint.
Al desactivar la opción Usar menos CPU en segundo plano, el motor actualizará el visor 3D cuando la ventana de Unreal Engine no esté enfocada y cuando un peón del nivel no esté poseído. Esta opción se encuentra en Preferencias del editor, en General > Rendimiento.