A medida que aumentan el tamaño y la complejidad de las producciones en 3D en tiempo real, así como el número de herramientas que componen una canalización de producción moderna, resulta cada vez más importante añadir automatización inteligente para aumentar la eficiencia de los artistas. Esta automatización inteligente suele depender en gran medida de los metadatos: propiedades personalizadas sobre los recursos que les otorgan significado dentro del proyecto.
Un artista o creador añade propiedades de metadatos en una aplicación, normalmente la primera vez que se crea el recurso. Así, los metadatos permanecen asociados a ese recurso, y las aplicaciones que se encuentren más adelante en el canalización pueden leer esos metadatos y usarlos para tomar decisiones sobre cómo procesar o gestionar ese recurso.
En Unreal Editor, puedes establecer y recuperar claves y valores de metadatos para tus recursos usando blueprints o secuencias de comandos de Python, tal y como se explica en la página Metadatos de recursos. Esto puede ayudarte con cualquier operación de gestión de recursos que lleves a cabo únicamente en el contexto de tu proyecto de UE.
Sin embargo, el valor real de tener metadatos en los recursos suele residir en la interoperabilidad con aplicaciones externas y en la capacidad de crear procesos de gestión de recursos más grandes que abarquen múltiples aplicaciones. Con este fin, el importador de FBX de Unreal Engine trae ciertos tipos de metadatos de recursos de los archivos FBX y los hace disponibles dentro de Unreal Editor.
Dado que estos metadatos se asignan a los recursos de tu proyecto, no puedes acceder a ellos directamente desde el código del jugabilidad en tiempo de ejecución. Está pensado principalmente para usarse en Unreal Editor para programar operaciones de gestión de recursos.
Orígenes de metadatos
Cuando importas un archivo FBX a Unreal Engine, el importador lee los valores FbxProperty asociados a los objetos en ese archivo y los vincula a los recursos de Unreal Engine que crea como un diccionario o mapa de pares etiqueta-valor.
Las siguientes aplicaciones son conocidas por permitir la exportación de metadatos personalizados definidos por el usuario a archivos FBX a través de este sistema FbxProperty.
Autodesk Maya
Para crear metadatos para un recurso en Maya, añade atributos personalizados extra al objeto. Para obtener más información al respecto, consulta la Ayuda de Maya.
Tus atributos personalizados deberían aparecer en el editor de atributos de Maya, en la lista de atributos adicionales del objeto. Por ejemplo, este objeto tiene dos atributos personalizados creados para él: una propiedad de cadena y una propiedad numérica.
Autodesk 3ds Max
Para crear metadatos para un recurso en 3ds Max, añádelo a la pestaña Definidos por el usuario del cuadro de diálogo Propiedades del objeto:
Actualmente, los metadatos de 3ds Max se importan como una sola cadena con el contenido completo del cuadro de texto Definidos por el usuario, al que se puede acceder desde la etiqueta de metadatos FBX.UDP3DSMAX. Es probable que tengas que dividir este valor de cadena cuando lo leas en la secuencia de comandos de Python o de Blueprint de Unreal Editor.
Metadatos tras la importación
Debes saber un par de cosas sobre cómo aparecen los metadatos de tus recursos en UE.
Todas las claves y los valores de metadatos se almacenan como cadenas en Unreal Engine, independientemente de su tipo original cuando se definió en una aplicación externa. Por ejemplo, si estableces un valor de metadatos en Maya como un número (por ejemplo, "22"), será una cadena que contenga el valor "22" cuando la leas en una secuencia de comandos en UE. Si necesitas que los valores sean números, usa un nodo de conversión de blueprint como Utilities > String > String to Int o String to Float, o una función de análisis de cadena integrado de Python como int() o Float().
Si creas nombres de etiquetas con espacios en tu aplicación de origen, FBX eliminará los espacios.
Normalmente, los nombres de las etiquetas tienen un prefijo que indica el origen del valor. En el caso de los recursos importados a través de FBX, el prefijo es FBX.. Otras aplicaciones o complementos pueden usar prefijos diferentes. Por ejemplo, la integración de escopetas en UE usa el prefijo SG..
Cuando trabajes con mallas esqueléticas, podrás asignar distintos valores de metadatos a cada hueso del esqueleto. En este caso, el proceso de importación FBX sigue asignando todos los valores de metadatos al recurso de malla esquelética, pero incluye los nombres de los hueso en los prefijos de los nombres de las etiquetas de metadatos para que puedas distinguir los valores que se aplican a cada hueso individual. Por ejemplo, en una malla esquelética es posible que veas etiquetas como FBX.Right_Arm.tag_name y FBX.Right_Hand.tag_name.
Así, por ejemplo, una etiqueta que crees en Maya con el nombre Creado por estará disponible en UE como FBX.CreadoPor.
Para obtener más información sobre cómo usar estos metadatos importados en Unreal Editor, consulta la sección Metadatos de recursos.