PDF de programación - Diseño de juegos 3D para Web – Libro 01

Imágen de pdf Diseño de juegos 3D para Web – Libro 01

Diseño de juegos 3D para Web – Libro 01gráfica de visualizaciones

Publicado el 17 de Marzo del 2021
2.271 visualizaciones desde el 17 de Marzo del 2021
1,7 MB
53 paginas
Creado hace 7a (28/12/2016)
1 www.TheFivePlanets.org

Índice de contenidos







Índice de contenidos

www.TheFivePlanets.org 2





DISEÑO DE JUEGOS 3D PARA WEB -

LIBRO 01 (PREVIEW)

THREE.JS – HTML5 Y WebGL

PREVIEW

Jordi Josa



3 www.TheFivePlanets.org

Índice de contenidos







Índice de contenidos

www.TheFivePlanets.org 4

ÍNDICE DE CONTENIDO

INTRODUCCIÓN

Para quien es este libro

Objetivo de la colección

Creemos nuestro juego de rol

¿Por qué un juego de rol?

¿Cómo es el juego que crearemos?

Tecnologías a usar

Three.js

Detección de colisiones y leyes de la física

Ammo.js

Cannon.js

Physijs

Oimo.js

JQuery

Blender

Adobe Photoshop

C1 - THREE.JS: PRIMEROS PASOS

Hola mundo

Escena

Mesh

Geometría

Material

Cámara

Cámara en perspectiva (THREE.PrespectiveCamera)

Render

WebGL (THREE.WebGLRenderer)

5 www.TheFivePlanets.org

Introducción



Canvas (THREE.CanvasRenderer)

CSS3D (THREE.CSS3DRenderer)

Ejes, Posición, Escala y Rotación

Ejes

Posición y Escala

Posición relativa

Rotación

Rotación sobre su eje

Rotación respecto a un punto de referencia

Convertir grados a radianes y viceversa

Animación de la escena

Clock

C2 - TREEJS: PREPARANDO EL ENTORNO DE DESARROLLO

Solucionar el error “cross-origin-domain”

Chrome

Firefox

Instalar un servidor web local

Servidores portables

PWS (Apache + MySQL + PHP)

UwAmp (Apache + MySQL + PHP)

Mongose

Servidores no portables.

XAMPP

MAMP

Web server para Node.js

Estadísticas (stats.js)

Control ui

Tipos de campos a usar en la interfaz

Carpetas

Índice de contenidos

www.TheFivePlanets.org 6



Eventos

Detectar soporte WEBGl

C3 - THREEJS: GEOMETRÍAS, MATERIALES, LUCES Y
SOMBRAS

Geometrías

Geometrías 3D predefinidas

Cubo (THREE.BoxGeometry)

Esfera (THREE.Sphere)

Poliedro (THREE. IcosahedronGeometry,
THREE.DodecahedronGeometry, THREE.OctahedronGeometry,
THREE.TetrahedronGeometry)

Cilindro (THREE.CylinderGeometry)

Cono (THREE.ConeGeometry)

Torus (THREE.TorusGeometry)

TorusKnot (THREE.TorusKnotGeometry)

Geometrías 2D predefinidas

Plano (THREE.Plane)

Círculo y polígono (THREE.Circle)

Ring (THREE.Ring)

Geometrías personalizadas

Figura 2D libre (THREE.Shape y THREE.ShapeGeometry)

Dar volumen a una figura plana (THREE.ExtrudeGeometry)

Texto en 3D (THREE.TextGeometry)

Materiales

THREE.MeshBasicMaterial

THREE.MeshNomalMaterial

THREE.MeshDepthMaterial

THREE.MeshLambertMaterial

THREE.MeshPhongMaterial

THREE.MultiMaterial

7 www.TheFivePlanets.org

Índice de contenidos



Texturas

Texturas múltiples - Mapeado UV

Repetir la textura

Transparencias

Luces

Iluminación de ambiente (THREE.AmbientLight) y direccional
(THREE.DirectionalLight)

Luz Hemisférica (THREE.HemisphereLigh)

Punto de luz (THREE.PointLight) y Luz focal (THREE.SpotLight)

Sombras

C4 - THREEJS: CREANDO NUESTRO MUNDO

Cargar modelos externos (loaders)

Formato .OBJ (THREE.OBJLoader y THREE.MTLLoader)

Activar sombras y cambiar propiedades del objeto

Solucionando problemas

Escala

Solucionar problema del servidor WEB

El objeto no muestra la textura.

Tiempo de carga demasiado lento o reducción de frames durante
la ejecución.

Texturas, gama, colores.

Formato collada. DAE (THREE.ColladaLoader) y animaciones de
objetos

Activación animación del objeto

Activar sombras y cambiar propiedades del objeto

Solucionar problemas

Escala

Solucionar problema del servidor WEB

El objeto no muestra la textura.

Tiempo de carga demasiado lento o lentitud de ejecución.

Índice de contenidos

www.TheFivePlanets.org 8



Formato nativo de three.js

Niebla

Niebla lineal - THREE.Fog (color, inicio, fin)

Niebla exponencial – THREE.FoxExp2 (color, densidad)

Crear la base del juego

Mejorando bucle de animación (world_v01.js)

Métodos de $WORLD

Propiedades de $WORLD

Crear un suelo básico (ground_v01.js)

Mover un objeto por un camino trazado (controls_path_v01.js)

Crear un cielo

Crear un cielo con un cubo (Skybox)

Crear un cielo con una esfera (Skydome)

Crear un cielo con una esfera y con un degradado

Crear vegetación y elementos naturales

Usar THREE.Sprite para crear hierba y árboles

Crear hierba usando planos

Crear el mapa del juego

Cargar varios modelos no animados simultáneamente

Clonar objetos

Crear una barra de progreso y una pantalla de carga (splashScreen)

Añadir aldeanos y crear sus rutinas de la vida diaria

Clonar objetos animados

Crear una Inteligencia Artificial básica mediante rutas
preestablecidas

Añadir monstruos y moverlos

Crear una Inteligencia Artificial básica mediante movimiento
errático

C5 - THREEJS: EXPLORAR E INTERACTUAR

9 www.TheFivePlanets.org

Índice de contenidos



Controlador básico en primera persona - movimiento por teclado y ratón

Controladores THREE.JS

FirstPersonControls.js

FlyControls.js

OrbitControls.js

TrackballControls.js

Control de movimiento vía webcam (WebRTC)

Acceso a la webcam (HTML5 getUserMedia API)

Creando la interfaz

Captura de las dos imágenes

Comparar los dos últimos frames de la cámara

Determinar los botones o zonas de la pantalla que presentan
movimiento

Aplicar el control por movimiento al juego

Control de la página web vía Gamepad

Detección del API

Eventos Gamepad

Consulta de los objetos tipo Gamepad

Ejemplo completo: Visualización del estado del gamepad

Poniéndolo todo junto

Seleccionar objetos y clickar - raycaster

¿Cómo funciona?

Preparando la escena

Lanzando el rayo

Calculando las intersecciones y seleccionando el objeto

Pulsando sobre el objeto

Arrastrar y soltar - raycaster

Preparando la escena

Control de los eventos del ratón

Índice de contenidos

www.TheFivePlanets.org 10



Interactuando con los elementos del juego

Pantalla completa (API HTML5 Fullscreen)

Los métodos, propiedades y eventos de la API Fullscreen

Detección de disponibilidad del API de pantalla completa

Cambiar a modo de pantalla completa

Cancelar el modo en pantalla completa

Comprobar si se está en modo pantalla completa

Captura de los eventos de pantalla completa

La pseudo-clase CSS :fullscreen

C6 THREEJS: PRÓXIMOS LIBROS DE LA COLECCIÓN

Gestión de la detección de colisiones

Motor de las leyes físicas

Creación de una interfaz rica para el juego

Gestión de los efectos de sonido y música de fondo

Cómo almacenar y recuperar los datos de las partidas

Cómo empaquetar y distribuir nuestra aplicación

Cómo mejorar la Inteligencia Artificial de los monstruos y aldeanos

Sharders, texturas avanzadas y sistema de partículas.

Modelos 3D animados

11 www.TheFivePlanets.org

Índice de contenidos



INTRODUCCIÓN

PARA QUIEN ES ESTE LIBRO

Este libro es para gente con conocimiento básico de JavaScript y HTML que quiera
aprender cómo realizar escenas y animaciones en 3D usando la librería Three.js, e
iniciarse en el mundo del diseño de juegos sobre web. El libro forma parte de una
colección en la que se irán introduciendo todos los conceptos, herramientas y
tecnologías que necesitaremos para la creación de juegos complejos y convertirnos
en verdaderos maestros.

Durante la colección de libros, diseñaremos e implementaremos un juego de rol
“THE FIVE PLANETS”. Por todo ello, el libro también va dirigido a aquellos que
ya conocen Three.js, pero quieren seguir el proceso de creación de este juego en
particular, y adquirir los elementos más complejos que se presentan en fases
posteriores.

OBJETIVO DE LA COLECCIÓN

El objetivo de la colección de libros es aprender todo lo necesario para crear juegos
en 3D con tecnología web y finalmente proponer formas de rentabilizar las
creaciones. Para ello iremos creando desde el principio un juego de ROL, tipo “The
Elder Scrolls V: Skyrim”, “Fallout 4” ..., con los principales elementos que
presentan, o sea la creación de los mapas en 3D, la inteligencia artificial de los
enemigos, la gestión del inventario (armamento, armaduras, pociones, …), el
sistema de misiones y por supuesto el sistema de estadísticas y niveles de los
personajes tan característicos de estos juegos.

Bueno, quizás no tan ambicioso como los que he citado, pues unos juegos así
requieren de equipos y presupuestos muy extensos con los que no contamos, sino
más bien una mezcla de los juegos como eran antes, tipo “Ishar III”, o la legendaria
saga de los “Migth and Magic”, con los de nueva generación.

CREEMOS NUESTRO JUEGO DE ROL

¿Por qué un juego de rol?
La creación de un juego de ROL en 3D presenta una colección de retos, que no se
encuentran en los Juegos de plataforma, los árcades, o bien los de tipo tablero.
Todos ellos mucho más sencillos, pues sólo cubren algunas funcionalidades.

Los juegos de ROL, o al menos en los que estamos pensado, incorporan todos estos
elementos:

13 www.TheFivePlanets.org

Introducción




Amplios mapas, con ciudades, bosques, llanuras y por supuesto mazmorras
donde interactuar. Con ello cubriremos ampliamente el diseño de mapas y escenas
en 3D, el examen de técnicas básicas para la creación del cielo y el suelo.

Incluyen un “shooter” a tiempo real, con la posibilidad de lanzar hechizos
devastadores, como bolas de fuego. En ellos nos enfrentamos a una horda de
enemigos capaz de responder con ataques igual de formidables. Esto nos permitirá
introducir la gestión de la Inteligencia Artificial, y las animaciones avanzadas.

Las partidas suelen ser largas y demorarse por varios días. Con muchas
misiones y un mundo muy cambiante. Todo ello implica que guardar una partida
para posteriormente cargar los datos y volver al estado en que dejamos el juego
implica el manejo de muchos datos.
  • Links de descarga
http://lwp-l.com/pdf19000

Comentarios de: Diseño de juegos 3D para Web – Libro 01 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad