How to use CityEngine VR experience in Unreal Engine?

CityEngine y Unreal: Tu Guía Definitiva de VR

03/12/2025

Valoración: 4.62 (8629 votos)

La combinación de ArcGIS CityEngine y Unreal Engine ha abierto un universo de posibilidades para arquitectos, urbanistas y desarrolladores de videojuegos. Mientras que CityEngine permite la creación procedural de entornos urbanos masivos y detallados en tiempo récord, Unreal Engine ofrece una plataforma de renderizado en tiempo real de altísima fidelidad. Este artículo es tu guía completa para fusionar estos dos mundos, centrándonos en dos flujos de trabajo cruciales: la creación de experiencias inmersivas de Realidad Virtual (VR) y la mejora del realismo visual mediante el reemplazo inteligente de assets. Acompáñanos en este recorrido técnico y descubre cómo transformar tus modelos de ciudades en mundos virtuales interactivos y espectaculares.

How to use CityEngine VR experience in Unreal Engine?
To use the CityEngine VR Experience the following software / hardware is required: The main Level of this template project in Unreal Engine consists of an office room with a round table at the center. The table is the main interaction point within the VR experience and arbitrary city models from CityEngine can be placed on top of it.
Índice de Contenido

Parte 1: Creando una Experiencia VR con CityEngine en Unreal Engine

La plantilla de proyecto "CityEngine VR Experience" para Unreal Engine es una solución integral diseñada para explorar escenarios de planificación urbana y arquitectura en un entorno de realidad virtual. Consiste en una oficina virtual con una mesa de planificación central donde tus modelos de CityEngine cobran vida. Soporta múltiples usuarios simultáneamente, permitiendo la colaboración, exploración y discusión de proyectos de forma inmersiva.

Requisitos Previos

Antes de sumergirnos en el proceso, asegúrate de tener el siguiente software y hardware. Este tutorial se basa en CityEngine 2021.1 y Unreal Engine 4.27, pero los conceptos son aplicables a versiones más recientes.

  • ArcGIS CityEngine (versión 2021.1 o superior).
  • Unreal Engine (versión 4.27 o superior).
  • La plantilla de proyecto "CityEngine VR Experience", disponible gratuitamente en el Marketplace de Unreal.
  • Un visor de Realidad Virtual compatible con SteamVR (ej. HTC Vive, Oculus Rift S, Oculus Quest 2 con Link, HP Reverb).
  • Visual Studio con las herramientas de desarrollo de C++ para Unreal Engine.

Nota: Puedes realizar toda la configuración inicial sin un visor de RV, pero será indispensable para probar y ajustar la experiencia final.

Paso 1: Exportar tu Ciudad desde CityEngine

El primer paso es preparar y exportar tu modelo desde CityEngine utilizando el exportador específico para Unreal Engine (Datasmith).

  1. Selecciona los modelos que deseas exportar en tu escena de CityEngine.
  2. Ve a File > Export Models... y selecciona "Unreal Engine".
  3. En el diálogo de exportación, configura las siguientes opciones clave:
    • Mesh Merging: Establécelo en Globally. Esto combina las mallas en un solo actor, optimizando el rendimiento.
    • Instancing: Déjalo en Disabled para este flujo de trabajo inicial de VR.
    • Global Offset: Haz clic en el botón Center para centrar el modelo en el origen. Esto es crucial para evitar problemas de precisión de punto flotante en Unreal. Si planeas exportar escenarios más tarde, anota las coordenadas de este offset para usarlas de nuevo.
    • Selecciona las capas de terreno que desees exportar como paisajes en Unreal.
  4. Haz clic en "Finish" para generar el archivo .udatasmith.

Paso 2: Importar y Configurar en Unreal Engine

Ahora, nos movemos a Unreal Engine para dar vida a nuestro modelo.

  1. Crea un nuevo proyecto en Unreal Engine utilizando la plantilla "CityEngine VR Experience".
  2. Una vez que el proyecto se abra (la primera vez puede tardar en compilar todos los shaders), importa tu archivo .udatasmith usando el importador de Datasmith.
  3. En el diálogo de opciones de importación de Datasmith, puedes dejar los valores por defecto.
  4. Tras la importación, es normal que tu ciudad parezca demasiado grande para la sala de oficina virtual. No te preocupes, el escalado y la colocación sobre la mesa se gestionan automáticamente cuando ejecutas la simulación.
  5. ¡Todo está listo! Puedes iniciar la experiencia usando el botón "VR Preview" en el menú "Play" del editor. Si no tienes un visor conectado, puedes usar "Simulate" para navegar con el teclado (W, A, S, D) y el ratón.

Paso 3: Añadiendo Escenarios y Puntos de Interés

Una de las grandes ventajas de esta plantilla es su capacidad para manejar múltiples escenarios de diseño, como diferentes propuestas de desarrollo o fases de construcción.

Importando Escenarios

Para simplificar la exportación de múltiples escenarios desde CityEngine, se recomienda usar un script de Python proporcionado. Este script exporta cada escenario como un archivo Datasmith separado, manteniendo el mismo offset global para una alineación perfecta.

How do I add a CityEngine replacement plugin for Unreal Engine?
Or alternatively for advanced use-cases we can add the CityEngine Replacement Plugin for Unreal to an existing project by copying it to the Plugins folder of the project (see also Plugins in Unreal Engine). The replacement workflow is controlled by Unreal Data Assets. Our template project provides two special types of Data Assets.

En Unreal Engine, en lugar de una importación estándar, utiliza la herramienta "Scenario Import" que se encuentra en el "CityEngine Toolbox". Esta herramienta te permitirá seleccionar los archivos Datasmith de tus escenarios, y los importará y configurará automáticamente en el "World Outliner" como actores BP_UrbanEvent (Plan) y BP_BranchActor (Escenario).

Añadiendo Puntos de Teletransporte

Para guiar a los usuarios a puntos de interés específicos dentro del modelo, puedes añadir objetivos de teletransporte.

  1. En el "Content Browser", busca el Blueprint llamado BP_TeleportationTarget.
  2. Arrastra este Blueprint a la ubicación deseada dentro de tu modelo en la escena.
  3. La rotación del actor del Blueprint determinará la orientación del usuario después de teletransportarse.
  4. Para organizar los puntos de teletransporte, puedes anidarlos bajo un Plan (BP_UrbanEvent) o un Escenario específico (BP_Branch) en el "World Outliner". De esta forma, solo serán visibles cuando ese plan o escenario esté activo.

Navegación e Interacción en la Experiencia VR

La interacción dentro de la experiencia es intuitiva y se basa en los controladores de VR.

  • Botón de Disparo (Trigger): Es el botón principal. Se usa para teletransportarse apuntando al suelo, para interactuar con elementos de la interfaz de usuario, y para manipular el modelo sobre la mesa.
  • Botón de Menú: Abre un menú que permite cambiar entre planes y escenarios, ajustar la hora del día (y con ello la iluminación), y rotar la mesa.
  • Trackpad/Joystick: Deslizar hacia los lados permite cambiar rápidamente entre los escenarios del plan activo.
  • Locomoción: El movimiento principal es por teletransporte. Apunta con el controlador, y si el haz es verde, presiona el gatillo para moverte.
  • Manipulación del Modelo:
    • Panorámica y Zoom: Acerca el controlador al modelo hasta que aparezca un icono. Mantén presionado el gatillo y mueve el controlador horizontalmente para desplazar el modelo y verticalmente para hacer zoom.
    • Rotación y Ajuste de la Mesa: Agarra el anillo azul en el borde de la mesa con el gatillo. Muévelo lateralmente para rotar el modelo, hacia arriba o abajo para cambiar la altura de la mesa, y hacia adentro o afuera para cambiar su tamaño.

Parte 2: Mejorando el Realismo con Reemplazo de Assets

Si bien la experiencia VR es funcional con los modelos directos de CityEngine, podemos llevar el realismo visual a un nivel completamente nuevo reemplazando los assets procedurales (como árboles, vehículos o mobiliario urbano) y materiales por versiones de alta calidad disponibles en Unreal Engine, como las de Quixel Megascans o Twinmotion.

Flujo de Trabajo de Reemplazo

Este proceso se basa en un plugin y una plantilla de proyecto que automatizan el reemplazo de mallas y materiales basándose en reglas que defines en "Data Assets" de Unreal.

Paso 1: Exportación Optimizada desde CityEngine

Para un flujo de trabajo de reemplazo eficiente, la configuración de exportación de Datasmith debe ser ligeramente diferente.

How to use CityEngine VR experience in Unreal Engine?
  • Mesh Merging: Para escenas pequeñas, usa Per Initial Shape. Esto mantiene cada edificio o elemento como un actor separado en Unreal, facilitando su manipulación. Para escenas muy grandes, Globally sigue siendo una buena opción para el rendimiento.
  • Instancing: Si tienes muchos elementos repetidos (ej. árboles, farolas), es muy importante establecer esta opción en Use Instanced Static Mesh Actors. Esto crea instancias jerárquicas en Unreal, lo que mejora drásticamente el rendimiento tanto en el editor como en tiempo de ejecución.
  • Consejo Pro: En tu código CGA de CityEngine, usa la propiedad material.name para asignar nombres descriptivos a tus materiales (ej. set(material.name, "LadrilloRojoEdificio")). Podrás usar estos nombres para definir las reglas de reemplazo en Unreal.

Paso 2: Definiendo las Reglas de Reemplazo en Unreal

Dentro de tu proyecto de Unreal (usando la plantilla de reemplazo o con el plugin añadido), el proceso se controla mediante "Data Assets".

  1. Crea un nuevo Data Asset: Haz clic derecho en el "Content Browser" -> Miscellaneous > Data Asset.
  2. Elige el tipo: MeshReplacement para reemplazar mallas estáticas o MaterialReplacement para materiales.
  3. Abre el Data Asset y comienza a añadir entradas. Para cada entrada, defines un criterio de búsqueda (ej. el nombre de la malla o material que viene de CityEngine) y el nuevo asset de Unreal que lo reemplazará.
  4. Puedes definir múltiples reemplazos para una misma búsqueda con diferentes proporciones, permitiendo variedad automática (ej. reemplazar un árbol genérico de CityEngine por 3 tipos de árboles de alta calidad de Quixel, cada uno con una probabilidad diferente).

Paso 3: Ejecutando los Reemplazos

Hay dos métodos principales para aplicar estas reglas a tu escena importada.

Método 1: Flujo de Trabajo con Visual Dataprep

Dataprep es una herramienta de Unreal que permite crear "recetas" de acciones que se aplican automáticamente durante la importación. Es ideal para flujos de trabajo automatizados donde siempre realizas las mismas operaciones.

Método 2: Flujo de Trabajo Post-Importación en el Nivel

Este método es más flexible y recomendado para escenas grandes con muchas instancias. Primero, importas tu escena Datasmith de forma normal. Luego, haces clic derecho sobre el DatasmithSceneActor en el "World Outliner" y seleccionas "Execute Replacements" desde el menú contextual de CityEngine. Se abrirá un diálogo donde puedes especificar qué Data Assets de reemplazo quieres aplicar.

Tabla Comparativa de Métodos de Reemplazo

CaracterísticaVisual DataprepImportación Directa en Nivel
Ideal para...Flujos de trabajo automatizados y repetibles.Proyectos iterativos, escenas grandes y con muchas instancias.
Manejo de InstanciasTiene problemas para previsualizar correctamente las instancias jerárquicas.Maneja correctamente las instancias jerárquicas (HISM), crucial para el rendimiento.
FlexibilidadMenos flexible. La "receta" es fija.Muy flexible. Permite aplicar, deshacer y re-aplicar reemplazos fácilmente.
Curva de AprendizajeModerada, requiere entender el sistema de nodos de Dataprep.Baja, es un proceso más directo e intuitivo.

Preguntas Frecuentes (FAQ)

¿Necesito un visor de RV para seguir este tutorial?
No para la configuración inicial. Puedes importar los modelos, configurar los reemplazos y preparar la escena sin un visor. Sin embargo, para probar la experiencia VR, ajustar la escala y la interacción, un visor es indispensable.
¿Qué es Datasmith y por qué es tan importante?
Datasmith es un conjunto de herramientas y plugins de Unreal Engine diseñado para importar escenas completas desde software de diseño y CAD, como CityEngine. No solo trae la geometría, sino también materiales, luces y jerarquías, haciendo que el proceso de transferencia entre aplicaciones sea mucho más fluido y fiel al original.
¿Puedo usar mis propios modelos 3D para el reemplazo?
¡Absolutamente! El sistema de reemplazo por Data Assets es agnóstico. Puedes apuntar a cualquier Static Mesh o Material que exista en tu proyecto de Unreal, ya sea de Quixel, del Marketplace, o modelos que tú mismo hayas creado.
¿El flujo de trabajo de reemplazo de assets sirve solo para VR?
No, en absoluto. El reemplazo de assets es una técnica para mejorar la calidad visual de cualquier proyecto en Unreal Engine, ya sea para una experiencia de VR, un renderizado arquitectónico, una cinemática o un videojuego tradicional.

Conclusión

La integración entre CityEngine y Unreal Engine es una de las más potentes en la industria de la visualización 3D. Siguiendo los pasos de esta guía, no solo podrás crear experiencias de realidad virtual colaborativas para analizar tus diseños urbanos, sino que también podrás elevar la calidad visual de tus proyectos a un nivel fotorrealista mediante el reemplazo inteligente de assets. La combinación de la eficiencia procedural de CityEngine con la potencia de renderizado en tiempo real de Unreal te proporciona las herramientas para construir no solo ciudades, sino mundos inmersivos y convincentes.

Si quieres conocer otros artículos parecidos a CityEngine y Unreal: Tu Guía Definitiva de VR puedes visitar la categoría Juegos.

Subir