Saltar al contenido principal

Límites de ejecución

Esta página centraliza los límites de tiempo de ejecución que importan durante la creación. Estos límites son aplicados o validados por el canal de edición/construcción y reflejan el diseño de tiempo de ejecución de tamaño fijo.

Capacidades principales del entorno de ejecución​

LímiteValor
GameObjects por escena160
Recursos de textura64
Ranuras de página de textura20
Recursos de malla192
Recursos de material64
Clips Audio16
Streaming de pistas de música CD-XA8
Componentes Lua Behaviour32
Caché de código fuente de script32
Canvas de UI8
Elementos de UI32
Entradas de texto de IU32
Fuentes de mapa de bits3
Habitaciones24
Portales48
NavMesh Superficies4
Agentes de NavMesh16
Nodos de navegación256
Enlaces dirigidos por navegación1,024
Clips de escena8
Tracks por cutscene12
Keyframes por pista48
Cutscene keyframes en una escena256
Clips Animation independientes12
Instancias Animation independientes simultáneas8
Pistas por clip Animation independiente12
cuadros clave por pista Animation independiente48
Cuadros clave de Animation independientes en una escena256
Componentes del Animator por escena32
Estados de animación por GameObject4
Mallas con skinning por escena16
Partículas32
Pares de colisión64
Recursos del manifiesto256
Scripts manifiestos64
Escenas de manifiesto32

Límites de memoria y archivos​

LímiteValor
RAM principalTotal de hardware 2 MB
VRAMTotal de hardware 1 MB
RAM SPUTotal de hardware 512 KB
Límite del heap de Lua durante la ejecución512 KB
Tamaño máximo de un script Lua64 KB
Presupuesto de instrucción LuaPor callback más un presupuesto global por cuadro
Tamaño máximo del manifiesto16 KB
Tamaño máximo de una escena binaria160 KB
Buffer de paquetes en tiempo de ejecución96 KB
Umbral recomendado de memoria de paquetes80 KB
Objetivo de producción de escena binaria65% de 160 KB
Objetivo de producción manifiesto70% de 16 KB
Objetivo de producción de paquetes80% de 96 KB
Nivel de advertencia RAM en tiempo de ejecuciónMenos de 160 KB libres dentro del presupuesto de tiempo de ejecución seguro de PS1
Mínimo de RAM libre para ReleaseTener menos de 96 KB libres impide generar una compilación Release

Límites de Renderización y Presupuestos​

TemaValor o regla
Longitud de la tabla de ordenamientoGrupos 2048
Grupos de la tabla de ordenamiento reservados para UI64 grupos en primer plano
Luces direccionales de escena3
Triángulos máximos recomendados por mallaLímite blando 2,000
Triángulos máximos duros por malla2,048; dividir o sectorizar antes de la compilación
Triángulos de escena máxima recomendadosLímite blando 4,000
Recomendado distancia lejanaMantener en o por debajo de unidades de mundo 32 aproximadamente cuando sea posible
Enfoque estático incorporado para preprocesarCompatible con geometría Plane y Cube

Límites de SaveData​

LímiteValor
Asignación de tarjetas de memoriaUn bloque de 8.192 bytes
Puerto de tarjeta de memoria activoPuerto 1
Entradas clave/valor32
Campo clave32 bytes incluyendo el terminador
Campo de valor64 bytes incluyendo el terminador

Para PlayerPrefs, usa claves de hasta 28 bytes y valores de texto de hasta 61 bytes. Ambas API comparten el límite de 32 entradas. Consulta Persistencia para guardar, cargar y manejar errores.

Los agentes NavMesh.FindPath() y NavMesh en tiempo de ejecución requieren que la ruta completa se ajusta a 32 puntos de ruta. Las solicitudes más largas fallan en lugar de devolver una ruta parcial. NavMeshAgent usa su superficie asignada y otras superficies alcanzables mediante Navigation Links dirigidos explícitos. Los nodos/enlaces del gráfico de navegación se cuecen en la escena y cuentan con el tamaño de carga .BSN, así como sus matrices de tiempo de ejecución fijas.

Límites de línea de tiempo​

Solo se reproduce un clip de línea de tiempo a la vez. Los nombres de clip y de pista usan el campo de cadena BSN de 31 caracteres; las cargas útiles de eventos usan el campo de 63 caracteres. La validación requiere estrictamente aumentar los tiempos de cuadro clave dentro de la duración del clip.

Límites Animation independientes​

Hasta ocho instancias independientes se ejecutan simultáneamente. Las ranuras activas se evalúan de 0 a 7, y una ranura posterior gana cuando dos clips escriben la misma propiedad en un cuadro. OnComplete se ejecuta solo después de la finalización natural sin bucle, nunca después de Stop o un bucle.

Los clips independientes admiten pistas para la transformación y activación de GameObjects; la visibilidad, el progreso, el color, la posición y el tamaño de la UI; la vibración; y los eventos de clips esqueléticos. Las pistas de cámara, audio, scripts y niebla son exclusivas de las cinemáticas.

Transform Animator Piscina​

El componente Transform Animator utiliza un grupo determinista de capacidad fija de 32 filas, con cuatro estados de transformación por fila. Una fila se asigna solo cuando un GameObject de escena realmente tiene un Transform Animator, por lo que el GameObjects ordinario no incrusta cuatro registros de estado no utilizados en cada tiempo de ejecución GameObject. La asignación sigue el orden determinista de carga de escena y el grupo se restablece en la carga de escena.

Esta sigue siendo una capacidad difícil, no una memoria de escritorio en crecimiento dinámico. El editor y la compilación rechazan una escena por encima de 32 componentes Transform Animator, y cada componente debe permanecer en o por debajo de cuatro estados.

Límites esqueléticos Animation​

LímiteValor
Huesos por recurso64
Clips por recurso16
Vertices por recurso4,096
Índices por recurso12,288
Geometría por recurso / escena128 KiB / 192 KiB
Rasguño de deformación compartido64 KiB
Datos de matriz por recurso/escena192 KiB / 256 KiB
Nombre del clip / huesoPersonajes 24 / 31

El importador utiliza un hueso dominante por vértice y un material por recurso. El búfer temporal compartido es el mayor requisito de recursos, no una suma por renderizador. Consulta Animación esquelética para ver el flujo de trabajo completo.

Límites de propiedad de script​

LímiteValor
Propiedades por componente Lua Behaviour8
Nombre de la propiedad32 bytes
Longitud del valor de la propiedad64 bytes

Validación de cadenas en tiempo de ejecución​

La compilación valida cadenas de tiempo de ejecución de tamaño fijo antes de escribir archivos .BSN. Los nombres de GameObject, nombres de malla, GUID de material/audio, rutas de script, propiedades de script, acciones de entrada, solicitudes de interacción, nombres de botones/lienzos interactivos, nombres de funciones de callback, ID de Spawn Point, nombres de estados de Transform Animator, nombres de UI Canvas y texto de interfaz de usuario deben ajustarse a sus campos de tiempo de ejecución. Los valores demasiado largos se informan como problemas de compilación en lugar de truncarse silenciosamente.

Política de voz Audio​

La PS1 SPU proporciona 24 voces de hardware. Polygon Engine no roba silenciosamente una voz que ya está en uso; si todas las voces están ocupadas, la reproducción falla con un error de tiempo de ejecución Audio: no channel available explícito. Mantén los efectos simultáneos de una sola toma y las fuentes de bucle dentro de ese presupuesto de voz.

La música CD-XA sigue una ruta de transmisión global separada y no ocupa una de las 16 ranuras de clip de audio residentes. Solo se reproduce una transmisión de música a la vez. Consulta Importación de audio para saber cuándo elegir cada ruta.

Límites de exportación Level Builder​

LímiteRegla
Rango de índice de vérticeDebe ajustarse a índices de 16 bits
Bordes triangulares largosValidar y tessellate cuando sea necesario
Caras degeneradasDebe ser fijado antes de la exportación confiable
Geometría no múltipleTratar como una advertencia/riesgo para el uso en tiempo de ejecución
Ranuras de materialMáximo 64 por malla Level Builder
Colisión de escenaLas mallas colocadas deben mantener o ajustar su Collider generado

Cómo usar esta página​

Cuando una escena crece, revisa los límites en este orden:

  1. Ejecuta Build > Validate Project.
  2. Abre Build > Tools & Diagnostics > Show PS1 Budget.
  3. Cree el proyecto e inspecciona los informes posteriores al preprocesamiento en Build/ps1/logs/.
  4. Compara errores difíciles con esta página.
  5. Reduce el contenido, divide escenas, simplifique los recursos o ajusta la creación antes de probar en DuckStation.

Si un número aquí y un mensaje de validación no están de acuerdo, confíe en el resultado de validación actual y actualice esta documentación.

Asignación y dominios numéricos​

Las escenas BSN de producción reservan almacenamiento para su cantidad real de GameObjects, a razón de 1,552 bytes por registro de ejecución, y conservan el límite de 160 objetos. Este costo por registro se suma a las asignaciones de las mallas referenciadas, Lua y las funciones opcionales. La ruta heredada de archivos JSON sueltos de Debug puede reservar la capacidad completa de entidades. Los búferes de las mallas integradas conservan únicamente el tamaño de la geometría generada; sus límites de subdivisión no han aumentado.

Puede haber como máximo 16 emisores Particle System creados, que comparten el conjunto de 32 partículas del entorno de ejecución. Los Input Action Maps contienen como máximo 32 acciones. Las capacidades de los campos de texto incluyen el byte de terminación: los nombres de propiedades de scripts admiten hasta 31 bytes y los valores hasta 63. Estos límites se expresan en bytes, no en cantidad de caracteres Unicode.

La posición en el mundo usa valores de 32 bits con signo a una escala de 1,024 unidades por unidad del mundo. La escala de Transform usa una conversión independiente de 16 bits con signo y una magnitud máxima de 32767 / 1024. Las representaciones locales de la malla para preprocesamiento y proyección usan otras escalas; no sustituyas el contrato de coordenadas del mundo por una constante de preprocesamiento de vértices. Los setters y la validación de compilación rechazan datos no finitos o fuera de rango.

El presupuesto orientativo de paquetes de 80 KiB es distinto del objetivo de Production Acceptance de 80% de 96 KiB. Las cantidades de memoria que el editor muestra como KB usan unidades de 1,024 bytes. Consulta Panel de presupuestos para conocer el cálculo del pico de memoria durante la carga y el alcance de PS1 Ready.