Saltar al contenido principal

Componentes

Las escenas de Polygon Engine se construyen a partir de GameObjects. Cada GameObject tiene un Transform, y los componentes opcionales agregan renderización, jugabilidad, colisión, audio, cámara, iluminación, animación y comportamiento de scripting.

El modelo de componentes es intencionalmente pequeño. Cada componente debe serializarse correctamente en el JSON de la escena, validar en el editor y organizar de manera predecible en el tiempo de ejecución de PS1.

Familias de componentes​

FamiliaComponentes
NúcleoTransform, Mesh Renderer, Camera, Lua Behaviour
Colisión y movimientoCollider, Character Controller
Pila de jugadores nativosPlayer Input, Player Motor, First Person Controller, Third Person Controller, Camera Rig
InteracciónInteraction Ray, Interactable, Spawn Point
PresentaciónLight, Transform Animator, Animator, Animator de jugador, Audio Source, Particle System
MundoRoom, Portal, superficie NavMesh, Navigation Modifier, agente NavMesh
UIAutor UI Canvases, Texto, Botón, Imagen, Panel, ProgressBar, fuentes de mapa de bits

Los elementos de la interfaz de usuario se almacenan en los lienzos de la interfaz de usuario de la escena, no como componentes GameObject. Véase UI Canvas.

Transform​

Presente en cada GameObject.

PropiedadDescripción
PositionPosición local relativa al padre
RotationRotación local de Euler en grados
ScaleEscala local
ParentOpcional padre GameObject

Las transformaciones de niño se resuelven en transformaciones de mundo antes de las consultas de renderizado, colisión, cámara y script.

Mesh Renderer​

Dibuja un primitivo incorporado o un recurso de malla importado.

PropiedadDescripción
Mesh Typebuiltin o asset
MeshNombre primitivo incorporado o GUID de malla importada
Material TypeMaterial o recurso material incorporado
MaterialNombre o material incorporado GUID
Primitive TessellationControles de segmento para primitivas integradas compatibles
Vertex Color ModeMaterial, colores de vértice de malla, iluminación de vértice GTE o color plano
Flat ColorColor definido en el renderizador para el modo Flat Color
Receive FogParticipa en la mezcla de distancia y niebla por vértice de PS1
Renderer RoomRoom opcional GameObject utilizada para el rechazo de conectividad de la Room

Las primitivas disponibles son Cube, Plane y Capsule. Al compilar para PS1, la geometría estática de Plane y Cube puede dividirse en fragmentos de malla para facilitar su renderizado. Capsule utiliza 96 triángulos tanto en el editor como en PS1, con un radio local de 0.5 y una altura total de 2 unidades. El tamaño de la malla no configura automáticamente un Character Controller: ajusta ese componente por separado y toma en cuenta la escala de la entidad.

Mesh Vertex Colors y GTE Vertex Lighting utilizan primitivas nativas Gouraud G3/GT3 en rutas compatibles. GTE Vertex Lighting se evalúa en tiempo de ejecución a partir de normales de malla; no es un preprocesamiento de iluminación fuera de línea.

Camera​

Define un punto de vista de renderizado.

PropiedadDescripción
FOVCampo de visión en grados

El tiempo de ejecución utiliza una cámara habilitada o una cámara impulsada por una configuración CameraRig/player.

Lua Behaviour​

Adjunta un archivo de script Lua a GameObject.

PropiedadDescripción
Script PathRuta relativa a un archivo .lua
Script PropertiesCadenas clave/valor expuestas a Inspector pasadas al script

Las callbacks del ciclo de vida de Engine usan nombres exactos de PascalCase:

  • Awake, OnEnable, Start, FixedUpdate, Update y LateUpdate;
  • OnCollisionEnter, OnCollisionStay y OnCollisionExit;
  • OnTriggerEnter, OnTriggerStay y OnTriggerExit;
  • OnDisable y OnDestroy.

Botones, Interactivos, Líneas de tiempo y GameObject.Invoke llaman a funciones Lua personalizadas por su nombre configurado exacto. Esas funciones están definidas por proyectos y no son alias del ciclo de vida.

Consulta la Descripción general de la API de Lua.

Collider​

Define un volumen de colisión para bloqueo y disparadores.

PropiedadDescripción
TypeCaja o esfera
Size / RadiusDimensiones de forma
Is TriggerSolo solapamiento, sin respuesta de bloqueo

Los Colliders son utilizados por las callbacks de colisión, callbacks de trigger, interactuables, pickups, estaciones, y el bloqueo de la geometría del mundo.

La colocación de la escena Level Builder crea un AABB Collider para la malla colocada. Sintonízalo en el Inspector si los límites generados son demasiado amplios o demasiado estrechos.

El entorno de ejecución de PS1 usa una fase amplia de detección de colisiones de capacidad fija con barrido y poda para los pares de Collider activos; después ejecuta las pruebas de forma habituales sobre los candidatos resultantes. Si el estado de la fase amplia no es válido o no está disponible, utiliza de forma conservadora la comprobación de todos los pares. Esta optimización no requiere configuración en el proyecto y no cambia los callbacks de colisión ni de trigger.

Character Controller​

Collider de locomoción de alto nivel para un movimiento estilo jugador.

PropiedadDescripción
HeightAltura de la cápsula
RadiusRadio de la cápsula
Step OffsetEscalada de pequeños pasos
Slope LimitLa pendiente máxima transitable
Skin WidthRelleno de colisión
Usa GravityAplicar gravedad a través del controlador

Utiliza Character Controller para el movimiento de jugadores en primera y tercera persona en lugar de traducir manualmente a través de World Colliders.

Las pruebas de paso, tierra y pendiente muestrean el verdadero plano superior de los Colliders de caja rotada. Step Offset controla pequeñas subidas y Slope Limit rechaza las caras superiores más pronunciadas. Este es un manejo de superficie específico del controlador, no un solucionador OBB de cuerpo rígido general o un sistema de plataforma móvil.

Player Input​

Asigna la entrada del mando a las acciones de movimiento, vista, carrera e interacción. El movimiento usa el stick izquierdo o el D-Pad. La vista de la cámara usa el stick derecho cuando hay un mando analógico disponible. Los componentes nativos del jugador no reutilizan los botones superiores ni los gatillos como ejes de cámara.

PropiedadDescripción
SchemeFirstPerson, ThirdPersonTank o ThirdPersonCameraRelative
Move ActionEje de movimiento nombrado
Look ActionEje de mirada nombrado
Run ButtonNombre del botón, predeterminado Circle
Interact ButtonNombre del botón, predeterminado Cross
Look Sensitivity X/YCamera/sensibilidad del controlador
Invert Look YInvertir aspecto vertical
Dead ZoneZona muerta analógica

Usa Player Input con Player Motor y un componente de controlador. En DuckStation, selecciona Digital Controller para proyectos que solo usen el D-Pad, o Analog Controller/DualShock con el modo analógico activado para controlar la cámara con el stick derecho.

Player Motor​

Controla los valores de movimiento utilizados por los controladores de jugadores nativos.

PropiedadDescripción
Move SpeedVelocidad de movimiento normal
Run SpeedVelocidad de carrera
Turn SpeedVelocidad de rotación
GravityFuerza de gravedad
AccelerationAceleración de movimiento
Allow RunPermite la entrada de ejecución
Usa GravityAplica gravedad a través de la pila del motor/controlador

First Person Controller​

Agrega el comportamiento de la cámara en primera persona a un jugador GameObject.

PropiedadDescripción
Eye HeightAltura Camera por encima de la base de jugadores
Lock Cursor On PlayComportamiento del modo de reproducción del editor
Head BobOpcional cámara bob
Head Bob AmountBob Intensidad

Configuración típica: Player Input, Player Motor, Character Controller, First Person Controller, Camera Rig y un Interaction Ray.

Third Person Controller​

Añade comportamiento de movimiento en tercera persona.

PropiedadDescripción
Control SchemeMovimiento relativo del tanque o de la cámara
Camera DistanceSeguir distancia
Camera HeightSeguir altura
Usa Camera ZonesPermite que CameraZone sobrescriba los valores

Configuración típica: Player Input, Player Motor, Character Controller, Third Person Controller, Camera Rig, un Mesh Renderer visible y Animator de jugador opcional.

Camera Rig​

Controla una cámara con respecto a un objetivo GameObject.

PropiedadDescripción
ModeFirstPerson, ThirdPersonFollow, ThirdPersonOrbit o Fixed
Target GameObject IDGameObject para seguir u orbitar
OffsetDesplazamiento de cámara local
Eye HeightAltura de la cámara en primera persona
Distance / HeightColocación en tercera persona
Follow SmoothSeguir suavizado
Collide With WorldOpción de colisión Camera
Pitch Min / MaxLímites del ángulo vertical de la cámara

Camera Zone​

Define un volumen que puede anular el comportamiento de la cámara.

PropiedadDescripción
ModeFixed, Follow u Orbit
Camera GameObject IDCamera o objetivo de plataforma
PriorityGana mayor prioridad
SizeLímites de zona
Cut On EnterCambio instantáneo en lugar de transición gradual
Blend TimeTiempo de transición

Las zonas Camera son más útiles en escenas en tercera persona.

Interaction Ray​

Permite a un jugador consultar objetos interactuables frente a ellos.

PropiedadDescripción
Cast ModeRay o Sphere
DistanceAlcance de interacción
RadiusRadio del barrido esférico
PromptTexto del aviso
Target GameObject IDObjetivo explícito opcional
Function NameFunción Lua personalizada exacta para llamar, comúnmente interact
Require Line Of SightBloquea la interacción a través de la geometría

Interactable​

Marca un GameObject como un objetivo de interacción.

PropiedadDescripción
EnabledIncluir el objetivo en las consultas y mensajes de interacción
PromptTexto mostrado al jugador
Function NameFunción Lua Behaviour invocada por la interacción
RadiusRadio de interacción
ButtonBotón específico del objetivo, o heredar Player Input.Interact Button
CooldownSegundos antes de que el objetivo pueda ser utilizado de nuevo, 0..3600
RepeatablePermitir interacciones posteriores; cuando está apagado, consumir después de la primera activación aceptada
Prompt CanvasSe muestra un lienzo con nombre opcional mientras este objetivo está dentro del alcance

Los nombres específicos de destino compatibles son Cross, Circle, Square, Triangle, L1, L2, R1, R2, L3, R3, Start y Select. La interacción utiliza el borde presionado del botón, no un estado mantenido continuamente. Cuando Prompt Canvas está vacío o no se puede resolver, el tiempo de ejecución muestra el texto Button: Prompt incorporado. Combina Interactable con un componente Lua Behaviour cuando el objeto debe reaccionar a la entrada del jugador. Lua puede deshabilitar o volver a habilitar temporalmente el componente a través de la API de Interactable.

Spawn Point​

Define dónde deberían aparecer o reaparecer los sistemas de estilo de jugador.

PropiedadDescripción
Spawn IDNombrado punto de aparición
Default SpawnSe utiliza cuando no se solicita un engendro específico

Particle System​

Emite partículas deterministas delimitadas de vallas publicitarias de configuraciones de autoría.

PropiedadDescripción
Enabled / Play On StartParticipación en tiempo de ejecución y arranque automático
Loop / Duration / Start DelayTiempo del emisor
RatePartículas por segundo, con un límite de 60
LifetimeVida mínima y máxima de las partículas
Local OffsetOrigen de la emisión en relación con el GameObject
Velocity / RandomnessVelocidad aleatoria base y por eje
ColorColoración de partículas RGBA de 8 bits
SeedSecuencia aleatoria determinista

Los preajustes Dust, Sparks y Steam proporcionan puntos de partida seguros para PS1. El Inspector estima la ocupación máxima frente al grupo compartido de 32 partículas. El ParticleSystem.Emit de Lua es la ruta global de un solo disparo; no inicia ni detiene un componente creado.

Audio Source​

Reproduce un clip de audio VAG mediante la SPU de PS1.

PropiedadDescripción
Audio ClipWAV importado convertido a .vag
VolumeVolumen de reproducción
LoopSi los bucles de reproducción
Play On StartIniciar automáticamente cuando se carga la escena

El audio reside en la memoria de la escena. Los clips importados deben ajustarse al presupuesto de audio del runtime. Para música de fondo larga, normalmente conviene usar Streaming Music (CD-XA) y la API global Music de Lua en lugar de un Audio Source.

Directional Light​

Añade datos de iluminación direccional.

PropiedadDescripción
DirectionDirección de la luz principal
ColorColor de luz direccional
IntensityMultiplicador de contribución direccional
AmbientAmbient Contribution

El tiempo de ejecución de PS1 utiliza una trayectoria de iluminación direccional limitada. Mantén la iluminación simple y motivada.

Transform Animator​

Controles denominados estados de animación de transformación en un GameObject.

PropiedadDescripción
StatesEstados de animación nombrados
Default StateEl Estado jugó inicialmente
SpeedVelocidad de reproducción
LoopSi los bucles de reproducción
Play On StartIniciar automáticamente

Lua puede reproducir, detener, establecer la velocidad, consultar el estado y cambiar el estado de la animación a través de la API de TransformAnimator. Este componente anima estados de transformación; no es el componente esquelético importado.

Una escena admite como máximo 32 componentes Transform Animator y cuatro estados por componente. El tiempo de ejecución de PS1 asigna almacenamiento de estado desde un grupo de componentes determinista solo para GameObjects que posee este componente, en lugar de reservar cuatro registros de estado dentro de cada escena GameObject. La validación bloquea escenas que exceden cualquiera de los límites.

Animator​

Reproduce clips importados desde un recurso FBX con skinning rígido.

PropiedadDescripción
EnabledParticipar en la actualización y el renderizado
SkinActivo .skn importado
Default ClipClip con nombre inicial
Playback SpeedMultiplicador de tiempo de clip
LoopReiniciar después del cuadro final
Play On StartIniciar el clip predeterminado automáticamente

El GameObject también utiliza su material y textura Mesh Renderer. Consulta Animación esquelética para importar, controlar el comportamiento, los límites y la reproducción de Animator.

Player Animator​

Mapas de los estados de movimiento del jugador nativo a los nombres de estado Transform Animator.

PropiedadDescripción
Idle StateEstado Transform Animator para inactivo
Walk StateTransform Animator estado para caminar
Run StateEstado Transform Animator para ejecutar
Interact StateTransform Animator estado de interacción
Speed DampHumedeciendo los cambios de estado

Úsalo con el Third Person Controller o cualquier representación visible del jugador que necesite una animación de transformación basada en el estado.

Room y Portal​

La Room define un volumen con nombre alineado con el eje con prioridad de desplazamiento y superposición. Portal hace referencia a dos habitaciones y controles dirigidos a la conectividad de visibilidad con estado habilitado, abierto y de dos caras. El estado del Portal puede cambiar con Portal.SetOpen().

El entorno de ejecución de PS1 conserva la primera habitación detrás de cada abertura adyacente válida. Después recorre los portales posteriores mediante pruebas conservadoras de superposición entre conos de abertura. Ante datos ambiguos, conserva la visibilidad para evitar que desaparezca geometría. Play Mode y PS1 comparten estas pruebas para un mismo estado de escena y cámara. Es un sistema de visibilidad conservador; no realiza oclusión exacta contra los planos del Portal ni consultas de oclusión por hardware. Consulta Habitaciones, portales y navegación.

NavMesh Surface describe un gráfico de altura limitada preprocesamiento con X/Z Cell Size, altura de celda vertical, aclaramiento del agente, Max Step, Max Slope y Max Drop. Soporta la rotación de la superficie Y y enlaces deterministas de cuatro vecinos. Pueden existir múltiples muestras de altura en una coordenada X/Z.

Navigation Modifier clasifica un Collider raíz como Obstacle, Walkable, Platform o WalkOff. Walkable y Platform requieren Colliders de caja sólidos y muestrean su cara superior real, con su rotación. WalkOff requiere un trigger y permite descensos limitados en una sola dirección. Platform sigue siendo información estática de preprocesamiento; no implementa plataformas móviles. Para el preprocesamiento, la geometría de obstáculos normal permanece en la raíz y solo admite rotación alrededor del eje vertical.

El agente NavMesh hace referencia a una superficie y almacena la velocidad, la aceleración, la distancia de parada y el comportamiento de rotación a velocidad. Los agentes deben permanecer en la raíz GameObjects porque las rutas de preprocesamiento y el movimiento en tiempo de ejecución usan posiciones en el espacio mundial. Las rutas del agente pueden usar la superficie asignada y otras alcanzables mediante Navigation Links explícitos. Las superficies desconectadas no se unen automáticamente.

Usa el API de NavMesh en Lua para solicitar rutas y mover agentes.