XGRIDSDocumentación
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • PortalCam

    • Descripción del producto
    • Operaciones básicas
    • Uso de la LCC Scan App
    • Mantenimiento y cuidado
    • FAQ
  • Serie Lixel K

    • Lixel K1

      • Descripción del producto
      • Operaciones básicas
      • Activación y conexión del dispositivo
      • Flujo de escaneo
      • Obtener nube de puntos con coordenadas absolutas
      • Fusión de mapas
      • Recomendaciones de planificación de rutas para escenas típicas
      • Precauciones
      • FAQ
    • Lixel K2

      • Descripción del producto
      • Operaciones básicas
      • Activación y conexión
      • Flujo de escaneo
      • Obtener nube de puntos con coordenadas absolutas
      • Fusión de mapas
      • Recomendaciones de planificación de rutas para escenas típicas
      • Precauciones
      • FAQ
  • Serie Lixel L

    • Lixel L2 Pro

      • Descripción del producto
      • Operaciones básicas
      • Activación y conexión del dispositivo
      • Flujo de escaneo
      • Obtener nube de puntos con coordenadas absolutas
      • Punto de medición
      • Apéndice
      • FAQ
  • Lixel Studio

    • Versión y derechos de autor
    • Instalación y activación
    • Interfaz del software
    • Operaciones de archivo
    • Procesamiento de proyectos
    • Herramientas
    • Dibujo 2D
    • Aplicaciones
    • Ajustes
    • Conexión de dispositivo
  • Lixel CyberColor

    • LCC Studio

      • Primeros pasos
      • Versión y actualizaciones
      • Descarga e instalación
      • Descripción general de la interfaz y navegación
      • Antes de la reconstrucción
      • Reconstrucción de modelos
      • Reconstrucción de modelo único
      • Fusión de mapas
      • Fusión aire-tierra
      • Reconstrucción aérea
      • Mis modelos
      • Otras funciones
      • Ajustes y cuenta
      • Converter
      • Reconstrucción por vídeo
      • Preguntas frecuentes
    • LCC Scene Editor

      • Versión y actualizaciones
      • Cuenta e inicio de sesión
      • Descripción general del producto y página de inicio
      • Interfaz del editor
      • Modos de navegación
      • Archivo
      • Configuración
      • Editar
      • Ventana
      • Barra de herramientas global
      • Activos y propiedades
      • Barra de herramientas izquierda
      • Puntos de vista
      • Portal
      • Skybox
      • Anotaciones
      • Medición
      • Flythrough
      • Informe de escena
      • 3D Layout
      • Minimapa
      • Modo Vista previa (Viewer)
      • Ayuda
      • Preguntas frecuentes (FAQ)
      • Punto de inicio
    • LCC Model Editor

      • Versión y actualizaciones
      • Guía del usuario
      • Visión general e interfaz
      • Operaciones de archivo
      • Selectores
      • Edición de modelos
      • Medición
      • Corrección de color
      • Gestión de activos
      • Configuración y ayuda
      • Preguntas frecuentes
    • Capture Guide

      • Descripción general
      • Descripción general de los dispositivos de captura
      • Principios generales de captura
      • Captura de escenas interiores
      • Captura de escenas exteriores
      • Captura a gran escala (Map Fusion)
      • Captura con aerial-ground map fusion
      • Captura de objetos
      • Captura de personas
      • Captura para reconstrucción a partir de vídeo
      • HD Enhancement
      • Puntos de control (Lixel P1)
      • Preguntas frecuentes y resolución de problemas
    • Historial de versiones
  • Plugins y SDK

    • Unreal

      • Introducción
      • Inicio rápido - Windows
      • Inicio rápido - Linux
      • Inicio rápido - Quest3
      • Ediciones y licencias
      • Renderizado
      • Ajustes visuales
      • Normales e iluminación
      • Edición de escenas
      • Parámetros de rendimiento
      • Guía de rendimiento
      • Integración con plugins de terceros y del motor
      • Proxy Mesh
      • Animación de carga
      • Colisión
      • Compatibilidad con Navigation System
      • Compatibilidad con Single Layer Water
      • Localización
      • Preguntas frecuentes
      • Resolución de problemas
      • Logs y diagnóstico
      • Contacto
      • Referencia de API

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • Actors SOG / SPZ / PLY
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ULCCUtilLibrary
        • Enumeraciones
        • Structs
      • Registro de cambios

        • v3.3.1
        • v3.0.0
        • v2.2.1
        • v1.0.0
        • v0.9.0
        • v0.8.0
        • v0.7.1
        • v0.6.1
        • v0.5.2
        • v0.4.1
        • v0.4.0
        • v0.3.0
        • v0.0.5
        • v0.0.4
        • v0.0.3
        • v0.0.2
        • v0.0.1

Caminar por una escena 3DGS: compatibilidad con colisión

LCC4Unreal admite la carga dinámica de datos de colisión, de modo que los personajes pueden moverse e interactuar libremente en el mundo 3DGS.

Requisitos previos

La colisión depende del archivo de colisión incluido con los datos, y los requisitos difieren según el formato:

FormatoDatos de colisiónCompatibilidad
.lcccollision.lci en el directorio de datos, collision.bin en versiones anterioresCompatible
.lcc2Archivos .ply en data/mesh/ dentro del directorio de datosCompatible
.sog / .spz / .plyNingunoNo compatible

El plugin comprueba en el orden collision.lci → collision.bin → data/mesh/*.ply, y muestra una advertencia y desactiva la colisión cuando no existe ninguno de ellos. Tras cargar los datos, usar HaveValidCollisionData() para confirmar si los datos actuales contienen datos de colisión utilizables.

Nota: collision.lci requiere exportarse desde LCC Studio v1.6.1 o superior; los datos exportados por versiones anteriores usan collision.bin.

Alternativas para los formatos de archivo único

.sog, .spz y .ply son formatos de archivo único que no incluyen datos de colisión, por lo que el plugin no puede generar colisión para ellos. Construirla en la escena cuando se necesite colisión:

  • Blocking Volume: usar los volúmenes de bloqueo del motor para construir el suelo, las paredes y otras zonas que deban bloquear. Adecuado para formas regulares y es la opción más económica
  • Malla aproximada: colocar una malla que se ajuste a la forma del 3DGS y activar su colisión. Adecuado para escenas de formas complejas. Esta malla puede reutilizar la malla proxy cambiando su preset de colisión a bloqueo

Ninguno de los dos enfoques utiliza el mecanismo de carga de colisión de LCC, por lo que no les afecta CollisionLoadMaxDistance ni se intercambian a medida que la cámara se mueve.

Mecanismo de carga

Los datos de colisión se almacenan en bloques espaciales igual que los datos de renderizado. El plugin no carga toda la colisión de una vez: carga solo los bloques situados dentro de un cierto radio alrededor de la cámara y los intercambia dinámicamente a medida que la cámara se mueve.

Cambia la posición de la cámara
      │
      ▼
Calcular el conjunto de bloques de colisión que deben cargarse en el radio
      │
      ▼
Comparar con el conjunto anterior ── igual ──▶ omitir, no hacer nada
      │ distinto
      ▼
Cargar los bloques nuevos → entregarlos al sistema de física para su horneado → generar los cuerpos de colisión

Algunos puntos de la implementación:

  • El radio de carga se controla con Max Load Collision Distance(m), y las zonas más allá de esa distancia no tienen colisión
  • La primera carga es síncrona, lo que evita que el personaje atraviese el suelo antes de que la colisión esté lista; todas las actualizaciones posteriores son asíncronas y no bloquean el hilo principal
  • Las actualizaciones están limitadas por frecuencia, de modo que la colisión no se reconstruye en cada fotograma mientras la cámara se mueve de forma continua
  • Las actualizaciones se omiten cuando el conjunto de bloques visibles no cambia, por lo que los movimientos pequeños en el sitio no provocan una reconstrucción
  • Solo se usa la cámara principal para el cálculo, y SceneCapture no participa en la carga de colisión

Ventajas

  • El uso de memoria depende únicamente del radio de carga, no del tamaño total de los datos, por lo que la colisión funciona incluso en escenas grandes
  • El número de cuerpos de colisión que debe procesar el sistema de física se mantiene bajo control y no ralentiza la física a medida que crece la escena

Costes y mitigaciones

ProblemaCausaMitigación
El personaje atraviesa el suelo en el instante en que empieza el juegoLa colisión aún no está construidaElevar un poco el PlayerStart, o activar el movimiento del personaje solo cuando la colisión esté lista
Tirón al entrar en el rango de la escena 3DGS desde lejosEl punto de aparición está fuera del rango de carga de colisión; la primera carga sincrónica se activa al entrarColocar el punto de aparición dentro del rango de carga de colisión o cargar toda la colisión de una vez
No hay colisión a lo lejos, por lo que los line traces no impactanLas zonas más allá del radio de carga no tienen cuerpos de colisiónAumentar Max Load Collision Distance(m), o cambiar a una comprobación que no dependa de la colisión
No hay colisión durante un breve periodo tras teletransportarse o moverse rápidoLos bloques de colisión de la zona nueva todavía se están cargandoCargar toda la colisión de una vez
Tirones al moverse, con un coste alto de Update CollisionLos bloques de colisión se intercambian y se vuelven a hornear con frecuenciaReducir el radio de carga, o confirmar si la colisión es realmente necesaria
La malla de navegación se reconstruye continuamente al usarla con navegaciónLos cambios de colisión provocan actualizaciones del NavMeshAumentar el radio de carga para que la zona de destino se cargue en una sola pasada, y usar horneado Static; consultar Compatibilidad con Navigation System

Cargar toda la colisión de una vez

La mayoría de los costes anteriores provienen del intercambio de bloques en tiempo de ejecución. Cuando el tamaño de la escena es limitado y la memoria lo permite, aumentar Max Load Collision Distance(m) lo suficiente para cubrir la escena completa, de modo que toda la colisión se construya en una sola pasada mientras se cargan los datos.

El intercambio de bloques de colisión en tiempo de ejecución desaparece entonces, y no se produce ninguno de los problemas anteriores: atravesar el suelo, falta de colisión tras teletransportarse, tirones al moverse y reconstrucciones repetidas de la navegación. Esto es especialmente recomendable al usar el sistema de navegación.

El coste es un tiempo de carga más largo al inicio y un uso de memoria fijo equivalente a la colisión de la escena completa. Para valorar si es viable, consultar Collision Data Usage en stat xgrids y confirmar que el uso de memoria después de una carga completa es aceptable.

Activación

LCCComponent->SetLCCCollisionEnable(true);

O marcar bEnableCollision en el panel Details.

Activar la colisión LCC en el panel Details

Activar la colisión LCC en el panel Details

Demostración de la colisión dinámica de LCC

Colisión dinámica de un personaje en una escena LCC

Verificación

Usar los ajustes del modo de visualización y seleccionar player collision o visibility collision para observar si la colisión está activada.

Mostrar los cuerpos de colisión en el modo de visualización

Verificar los cuerpos de colisión con el modo player collision o visibility collision

Propiedades relacionadas

PropiedadDescripción
bEnableCollisionActiva la colisión
CollisionLoadMaxDistanceDistancia máxima de carga de los datos de colisión (300 metros por defecto)
Propiedades de activación de la colisión y de distancia máxima de carga

Configurar el estado de activación de la colisión y la distancia máxima de carga

Notas

  • Una vez activada la colisión, se puede usar el LineTrace propio de Unreal Engine para realizar pruebas de rayos contra los cuerpos de colisión, y el alcance de la prueba también está limitado por el radio de carga
  • La memoria utilizada por los datos de colisión se puede consultar en Collision Data Usage de stat xgrids, el coste de actualización en Update Collision, y el significado de los elementos en Parámetros de rendimiento
Anterior
Animación de carga
Siguiente
Compatibilidad con Navigation System