Carga
Elige qué esperan tus visitantes cuando se abre tu proyecto y configura la pantalla de inicio.
Los visitantes solo esperan una vez, al principio. Lo que cargas en ese momento es lo que más influye en lo rápido que parece abrirse tu proyecto.
Cómo llegan los archivos
Un archivo llega de una de estas tres formas:
- Precargado: se descarga antes de que se abra la escena. La pantalla de inicio lo espera. Úsalo para todo lo que se ve en los primeros segundos.
- Diferido: la escena se abre sin él, y el archivo aparece cuando llega. Úsalo para el contenido que sale más adelante en la experiencia.
- En streaming: se reproduce directamente desde la red, sin descargarse entero. Úsalo para vídeo y audio.
Solo el vídeo y el audio pueden empezar a reproducirse antes de haber llegado del todo. Un modelo, una textura o una fuente tienen que llegar enteros para poder usarse. Diferirlos solo significa que la escena se abre sin esperar y el archivo aparece cuando está listo.
Ajuste del proyecto y de cada archivo
El interruptor Project preload de los ajustes del proyecto es el valor por defecto para todos los archivos. Cada archivo puede cambiarlo. En Project assets, pasa el cursor por encima de un archivo: aparecen dos botones en su fila.
- Always preload: la escena siempre espera a este archivo, diga lo que diga el proyecto.
- Always stream: la escena nunca lo espera. El vídeo y el audio van en streaming; los demás archivos se difieren.
- Si no está activado ninguno, el archivo sigue a Project preload.
Haz clic otra vez en un botón para desactivarlo. Mientras uno de ellos está activado, los botones siguen visibles en la fila.
Los archivos nuevos de vídeo y audio empiezan con Always stream activado, porque esperar a un vídeo entero antes de abrir la escena no aporta nada. Todos los demás archivos nuevos siguen el ajuste del proyecto.
El ajuste de carga pertenece al archivo, no a los objetos que lo usan. Así, dos objetos que comparten un archivo siempre lo cargan de la misma forma.
Una buena configuración para empezar
Para la mayoría de los proyectos:
- Precarga los modelos y las texturas de la primera escena, y cualquier fuente que muestres desde el principio.
- Difiere todo lo que pertenece a escenas posteriores.
- Pon en streaming todo el vídeo y el audio. Ya es así por defecto.
Tus visitantes esperan un momento una sola vez y, después, la experiencia no vuelve a pararse para cargar.
Pantalla de inicio
Antes de que aparezca tu escena, los visitantes pueden ver dos pantallas:
- una pantalla que tocan para empezar;
- una pantalla que se va llenando mientras llegan los archivos.
Configura las dos en los ajustes del proyecto: el fondo, el logotipo, el botón de inicio y su texto, los mensajes de bienvenida y el estilo del indicador de carga.
Los navegadores no reproducen sonido hasta que el visitante interactúa con la página. Con los permisos de AR pasa lo mismo: solo se conceden dentro del toque que los pidió. Sin un botón que pulsar, tu primer sonido no se reproduce, y puede que el aviso de la cámara no aparezca nunca.
Tu propia pantalla de inicio
La pantalla de inicio integrada es una plantilla. Para hacer la tuya, escribe un script de inicio. Controla las dos pantallas. Además, define su propio panel de ajustes, así que quien lo use rellena campos en lugar de editar código.
init((ctx: PreloadContext) => {
// Declara el panel de ajustes. Esto se ejecuta antes de dibujar nada: solo declara, nunca dibujes.
ctx.on('describe', (p) => {
p.section('look', { en: 'Look' });
p.color('tint', { label: { en: 'Background' }, default: '#101014', section: 'look' });
p.text('caption', { label: { en: 'Caption' }, default: '', localized: true, section: 'look' });
p.boolean('hideWhenReady', { label: { en: 'Hide when ready' }, default: true });
});
ctx.on('launch', () => {
/* muestra la pantalla que se toca para empezar */
});
ctx.on('loading', () => {
/* muestra la pantalla que se va llenando */
});
ctx.on('progress', ({ loaded, total, percent }) => {
/* actualiza tu propia barra de progreso */
});
ctx.on('ready', () => {
/* ya ha llegado todo */
});
});
| Evento | Cuándo se dispara |
|---|---|
describe | se está creando el panel de ajustes, en el entorno de ejecución y en el editor |
start | el entorno de ejecución está arrancando |
launch | es el momento de mostrar la pantalla que toca el visitante |
loading | es el momento de mostrar la pantalla que se va llenando |
progress | están llegando archivos: loaded, total, percent |
ready | ha llegado todo lo necesario |
error | algo ha fallado |
Los ajustes se pueden traducir, así que un mismo script de inicio funciona en todos los idiomas de tu proyecto.
Lo que arranque tu escena tiene que llamarse desde el propio controlador de clic del botón. Los permisos de orientación del dispositivo y de la cámara solo se conceden dentro del toque que los pidió. Si arrancas la escena en el siguiente fotograma, los pierdes.
Si tu script de inicio lanza un error, se muestra la pantalla integrada en su lugar.
Lo que no hace falta cargar
- Una escena que no usa física no tiene que esperarla.
- Las copias instanciadas y las partículas apenas aumentan la descarga, por muchas que haya.
Los visitantes nunca esperan por cosas que no necesitan. Más información en Por qué AR Clip.
Siguiente: Paquetes compartidos: los paquetes de código que puedes importar.