¡Potenciadores de Pixi!

Rate this content
Bookmark

Un vistazo a las características más geniales y menos conocidas de Pixi.js.

Incluyendo tratamientos como:

- Mallas

- Animación Spine

- Filtros personalizados

- Texturas de renderizado y exportación de imágenes


Mostrando ejemplos de cómo puede hacer que trabajar con WebGL sea súper fácil y darle a tu contenido esa ventaja que necesita para destacar.

This talk has been presented at JSNation Live 2021, check out the latest edition of this JavaScript Conference.

FAQ

Un renderizador de Pixie es una herramienta que permite crear y manipular gráficos en el entorno de Pixie. Se utiliza para establecer el ancho y el alto de la ventana de visualización y es fundamental para iniciar el proceso de renderización de gráficos y efectos.

Para crear un fondo en Pixie, simplemente se crea un objeto sprite que es un elemento básico en Pixie. A este objeto se le asigna una textura, y luego se puede posicionar y alinear dentro de la escena.

El objeto ticker en Pixie se utiliza para manejar la actualización de los fotogramas de animación a una tasa predeterminada, generalmente 60 fps. Permite agregar funciones que se ejecutarán en cada fotograma, facilitando la creación de animaciones y el movimiento continuo dentro de la escena.

En Pixie, los efectos de movimiento se añaden mediante el uso del objeto ticker para modificar propiedades como la posición de los sprites basándose en su velocidad asignada. Los sprites pueden ser configurados para moverse automáticamente y envolverse alrededor de la escena para crear un efecto continuo.

La cuerda de Pixi es un power-up que permite distorsionar una imagen basada en una matriz de puntos. Funciona asignando una textura a una serie de puntos que pueden ser animados o manipulados, distorsionando la textura de acuerdo a la posición de los puntos para crear efectos visuales dinámicos.

El soporte Spine en Pixie se implementa mediante un plugin que permite cargar y utilizar animaciones creadas con Spine. Estas animaciones se basan en posiciones y movimientos registrados, y se pueden ejecutar en tiempo real dentro de Pixie para crear animaciones complejas y de alta calidad.

Los filtros de Pixi son herramientas que permiten modificar la apariencia de los objetos en la escena a través de efectos como desenfoque o desplazamiento. Se aplican asignando el filtro deseado al objeto de filtros de cualquier elemento en Pixie, y pueden combinarse para crear efectos visuales más complejos.

Mat Groves
Mat Groves
30 min
09 Jun, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Pixie es una poderosa herramienta para crear escenas y efectos en el desarrollo de software. Admite características como mapeo de texturas, animación Spine y filtros para crear efectos geniales. La charla también cubre el uso de texturas de renderizado para capturar y descargar imágenes, así como la importancia de la comunicación y una actitud positiva en el desarrollo de software. El orador comparte su viaje hacia la programación y discute el potencial de portar juegos de Unity a JavaScript utilizando tecnologías como web GL y web GPU.
Available in English: Pixi Powerups!

1. Introducción a Pixie y Creación de Escenas

Short description:

Potenciadores de Pixie. Usa Pixie para crear efectos agradables y mejorar tu contenido. Crearemos una escena usando Pixie y explicaremos el código y los efectos. Es como un Pokémon Snap económico. Haz clic en los peces para generar una Polaroid. Comienza creando un nuevo renderizador de Pixie. Establece el ancho, alto y agrega CSS para alineación. Crea un escenario, una escena y añádelos al renderizador. Usa el ticker de Pixie para los fotogramas de animación. Construye la escena y explica las características. Crea un fondo usando un objeto sprite y una textura.

Potenciadores de Pixie. Estas son características geniales que puedes usar en Pixie para crear efectos agradables y mejorar tu contenido. Vamos a hacer esto hoy a través de un ejemplo. Vamos a crear esta escena usando Pixie. Voy a repasar el código y explicar qué estamos usando y por qué para crear los diferentes efectos.

Básicamente, esto es como un Pokémon Snap económico. Puedes hacer clic en los pececitos y generará una pequeña Polaroid para ti. Hagámoslo.

Para empezar, vamos a ver nuestro código. Vamos a ordenarlo. Vamos a index.ts. Aquí vamos. Para empezar, vamos a crear un nuevo renderizador de Pixie. Es tan sencillo como importar un renderizador de Pixie. Obtenemos un nuevo renderizador, establecemos nuestro ancho y alto. Solo está codificado para facilitar hoy, así que no tenemos que preocuparnos por cambiar el tamaño. Entonces, creamos un renderizador, luego añado un poco de CSS que simplemente hace que esté centrado y se ajuste bien. Luego tomamos la vista del renderizador que es básicamente el elemento del lienzo en el que Pixie va a renderizar y lo añadimos al DOM.

Luego creamos un escenario y una escena y añadimos la escena al escenario y su contenedor que es como un elemento div o un nodo en su árbol DOM. Luego usamos el objeto ticker de Pixie que es básicamente una forma fácil de usar los fotogramas de animación solicitados. Así que solo añadimos una función a este ticker y significa que se llamará a 60 fps. Y luego lo que hacemos en cada fotograma es simplemente ir al renderizador, renderizar mi escenario y terminamos con esto. Bueno, no exactamente esto. Terminamos con esto, una hermosa pantalla negra. Así que vamos a construir esta escena y a medida que hablemos un poco sobre, a medida que toquemos características daré una pequeña explicación de cómo funcionan.

Lo primero que queremos hacer es crear un fondo. Así que si simplemente entro aquí, es muy sencillo. Solo creamos un objeto sprite que es lo más básico de Pixie. Aquí hay una textura y luego simplemente puedes poner esa textura en tu escena y moverla y alinearla, y cosas así.

2. Añadiendo Fondo, Peces y Primer Plano

Short description:

Agrega un fondo a la escena y crea un fondo básico encantador. Luego, crea un arreglo de peces y recórrelos para crear sprites de peces. Establece la posición, velocidad y voltea el pez según su velocidad. Agrega el pez a la escena y añádelo al arreglo de peces. Usa el ticker para mover el pez y envolverlo cuando llegue al borde. Agrega un primer plano a la escena. Ahora tenemos una escena con fondo, peces y primer plano.

Entonces no vamos a hacer nada. Simplemente vamos a crear uno usando este fondo PNG y luego vamos a tomar nuestra escena y vamos a agregar el fondo a la escena. Y veamos cómo se ve. Ahí vamos. Un fondo básico encantador.

A continuación, vamos a agregar algunos peces. Aquí está nuestra función para crear peces. Lo primero que hacemos es crear un arreglo vacío de peces. Aquí es donde vamos a almacenar una referencia a todos nuestros pequeños peces. Luego vamos a recorrer 20 veces y crear un sprite de pez usando un recurso de pez. Básicamente, el diseñador me dio siete recursos de pez, por lo que esto simplemente usará un sprite diferente hasta siete. Así que va pez 1, 2, 3, 4, 5, 6, 7 y luego vuelve a empezar. Una vez que tenemos un sprite de pez, simplemente establecemos el ancla en 0.5, 0.5, lo que significa que el centro de este objeto sprite estará en el punto cero en lugar de la esquina superior izquierda, que es el valor predeterminado. A continuación, establecemos la posición de nuestros peces, así que vamos a tener una coordenada x aleatoria en algún lugar de forma aleatoria en el ancho y luego una altura aleatoria menos 300 para que no terminemos, él no termine yendo, los peces no terminen bajo tierra. Luego asignamos una velocidad aleatoria, más o menos la velocidad, y luego volteamos el pez dependiendo de su velocidad. Así que si va en esa dirección, lo escalamos en menos 1 y si va en esa dirección, simplemente mantenemos la escala como 1. Luego tomamos nuestro pez, lo agregamos a la escena y añadimos nuestro pez al arreglo de peces. Ahora veamos qué obtenemos. Deberíamos obtener esto. Así que cada vez que actualizo obtengo algunos peces pequeños encantadores, simplemente moviéndose alrededor.

Lo siguiente que voy a hacer es usar el ticker nuevamente como lo hicimos antes para renderizar, pero lo vamos a usar para mover nuestros peces. Todo lo que hacemos es recorrer todos nuestros peces, aquí hay un pez, y vamos, bien, pez, añade su velocidad. Así que simplemente se moverá en la dirección que se le asignó aquí. Cuando llegamos al borde, simplemente usamos un módulo, lo que significa que se envolverá, así que cuando llegue a un lado se envolverá al otro y viceversa. Y ejecutémoslo ahora, ahí vamos, tenemos algunos peces nadando. Obviamente, lo genial de Pixie es que es bastante eficiente, por lo que realmente puedes tener muchos peces y siempre se mantendrá suave. Eso es un poco demasiado para nosotros, volvamos a 20, creo.

Bien, lo siguiente que queremos hacer es agregar un primer plano. Nuevamente, al igual que el fondo, muy sencillo, agrégalo a la escena. Ahí vamos, ahora tenemos fondo, peces y primer plano.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Optimización de juegos HTML5: 10 años de aprendizaje
JS GameDev Summit 2022JS GameDev Summit 2022
33 min
Optimización de juegos HTML5: 10 años de aprendizaje
Top Content
PlayCanvas is an open-source game engine used by game developers worldwide. Optimization is crucial for HTML5 games, focusing on load times and frame rate. Texture and mesh optimization can significantly reduce download sizes. GLTF and GLB formats offer smaller file sizes and faster parsing times. Compressing game resources and using efficient file formats can improve load times. Framerate optimization and resolution scaling are important for better performance. Managing draw calls and using batching techniques can optimize performance. Browser DevTools, such as Chrome and Firefox, are useful for debugging and profiling. Detecting device performance and optimizing based on specific devices can improve game performance. Apple is making progress with WebGPU implementation. HTML5 games can be shipped to the App Store using Cordova.
Construyendo Experimentos Divertidos con WebXR & Babylon.js
JS GameDev Summit 2022JS GameDev Summit 2022
33 min
Construyendo Experimentos Divertidos con WebXR & Babylon.js
Top Content
This Talk explores the use of Babylon.js and WebXR to create immersive VR and AR experiences on the web. It showcases various demos, including transforming a 2D game into a 3D and VR experience, VR music composition, AR demos, and exploring a virtual museum. The speaker emphasizes the potential of web development in the metaverse and mentions the use of WebXR in Microsoft products. The limitations of WebXR on Safari iOS are discussed, along with the simplicity and features of Babylon.js. Contact information is provided for further inquiries.
Haciendo Juegos Increíbles con LittleJS
JS GameDev Summit 2022JS GameDev Summit 2022
34 min
Haciendo Juegos Increíbles con LittleJS
Top Content
Little.js is a super lightweight and fast JavaScript game engine that has everything included to start making games right away. It has a tiny footprint and no dependencies, making it perfect for size-coding competitions like JS13K. Little.js is built with an object-oriented structure and comes with several classes. It provides a fast rendering system, a comprehensive audio system, and various starter projects for different game types. Little.js is designed to be simple and easy to understand, allowing you to look at and modify the code.
¡Mejora el rendimiento de tus juegos WebGL Unity!
JS GameDev Summit 2023JS GameDev Summit 2023
7 min
¡Mejora el rendimiento de tus juegos WebGL Unity!
The Talk discusses ways to boost the performance of WebGL Unity games, including issues with bundle size, memory usage, and runtime performance. It suggests using Brotli for compression and non-exception support for better performance. Choosing the appropriate texture compression format and experimenting with separate builds can also help. The Talk also covers optimizing textures, models, audio, and assets by reducing build size, using compression, disabling unnecessary models, and optimizing audio quality. Unity's optimization tools and profilers are recommended for analyzing performance and memory issues.
Cómo no construir un videojuego
React Summit 2023React Summit 2023
32 min
Cómo no construir un videojuego
The Talk showcases the development of a video game called Athena Crisis using web technologies like JavaScript, React, and CSS. The game is built from scratch and includes features like multiple game states, AI opponents, and map editing. It demonstrates the benefits of using CSS for game development, such as instant load times and smooth transitions. The Talk also discusses optimizing performance, supporting dark mode, and publishing the game to other platforms.
Mejora el rendimiento de tus juegos utilizando Canvas
JS GameDev Summit 2023JS GameDev Summit 2023
8 min
Mejora el rendimiento de tus juegos utilizando Canvas
The Talk discusses the use of the canvas element in games and web applications to improve performance. It compares the Canvas API and WebGL API, highlighting the advantages and disadvantages of each. The Canvas API allows for both CPU and GPU rendering, while WebGL API only uses GPU and hardware acceleration. Using the canvas element can significantly enhance performance, but it comes with increased complexity and development costs.

Workshops on related topic

Crea un Juego Con PlayCanvas en 2 Horas
JSNation 2023JSNation 2023
116 min
Crea un Juego Con PlayCanvas en 2 Horas
Top Content
Featured WorkshopFree
Steven Yau
Steven Yau
En esta masterclass, construiremos un juego utilizando el motor WebGL de PlayCanvas desde el principio hasta el final. Desde el desarrollo hasta la publicación, cubriremos las características más cruciales como la escritura de scripts, la creación de UI y mucho más.
Tabla de contenido:- Introducción- Introducción a PlayCanvas- Lo que vamos a construir- Agregando un modelo de personaje y animación- Haciendo que el personaje se mueva con scripts- 'Falsa' carrera- Agregando obstáculos- Detectando colisiones- Agregando un contador de puntuación- Fin del juego y reinicio- ¡Resumen!- Preguntas
Nivel de la masterclassSe recomienda familiaridad con los motores de juegos y los aspectos del desarrollo de juegos, pero no es obligatorio.
Cómo crear arte generativo increíble con código JavaScript simple
JS GameDev Summit 2022JS GameDev Summit 2022
165 min
Cómo crear arte generativo increíble con código JavaScript simple
Top Content
WorkshopFree
Frank Force
Frank Force
En lugar de dibujar manualmente cada imagen como en el arte tradicional, los artistas generativos escriben programas que son capaces de producir una variedad de resultados. En esta masterclass aprenderás cómo crear arte generativo increíble usando solo un navegador web y un editor de texto. Comenzando con conceptos básicos y avanzando hacia la teoría avanzada, cubriremos todo lo que necesitas saber.
PlayCanvas de principio a fin: la versión rápida
JS GameDev Summit 2022JS GameDev Summit 2022
121 min
PlayCanvas de principio a fin: la versión rápida
Top Content
WorkshopFree
João Ruschel
João Ruschel
En esta masterclass, construiremos un juego completo utilizando el motor PlayCanvas mientras aprendemos las mejores prácticas para la gestión de proyectos. Desde el desarrollo hasta la publicación, cubriremos las características más cruciales como la gestión de activos, scripting, audio, depuración, y mucho más.
Introducción a WebXR con Babylon.js
JS GameDev Summit 2022JS GameDev Summit 2022
86 min
Introducción a WebXR con Babylon.js
Workshop
Gustavo Cordido
Gustavo Cordido
En este masterclass, te presentaremos los conceptos básicos de la construcción de experiencias de Realidad Mixta con WebXR y Babylon.js.
Aprenderás lo siguiente:- Cómo agregar objetos de malla 3D y botones a una escena- Cómo utilizar texturas procedurales- Cómo agregar acciones a objetos- Cómo aprovechar la experiencia predeterminada de Realidad Cruzada (XR)- Cómo agregar física a una escena
Para el primer proyecto en este masterclass, crearás una experiencia interactiva de Realidad Mixta que mostrará estadísticas de jugadores de baloncesto a fanáticos y entrenadores. Para el segundo proyecto en este masterclass, crearás una aplicación WebXR activada por voz utilizando Babylon.js y Azure Speech-to-Text. Luego, desplegarás la aplicación web utilizando el alojamiento de sitios web estáticos proporcionado por Azure Blob Storage.
Masterclass de Codificación en Vivo de Juegos Pequeños
JS GameDev Summit 2023JS GameDev Summit 2023
115 min
Masterclass de Codificación en Vivo de Juegos Pequeños
Workshop
Frank Force
Frank Force
Sumérgete en el cautivador mundo del desarrollo de microjuegos con Frank Force en este interactivo masterclass de codificación en vivo. Diseñado tanto para desarrolladores experimentados como para curiosos principiantes, esta sesión explora los desafíos únicos y las alegrías de crear juegos y demos con restricciones extremas de tamaño.