Code Monkey home page Code Monkey logo

a-frame-example's Introduction

Uso de A-Frame para un ejemplo básico con Realidad Virtual

Este proyecto muestra un ejemplo sencillo de realidad virtual usando A-Frame.

Cómo comenzar

Para empezar con A-Frame lo mejor es visitar su completa web que incluye muchísimos recursos interesantes para su aprendizaje. https://aframe.io/

Algunos conceptos previos

Concepto de Realidad Virtual

Según la Wikipedia, la realidad virtual (RV) es un entorno de escenas u objetos de apariencia real.

3Dof vs 6Dof, e imágenes 360º

Distinguir entre 3DOF (3 grados de libertad) y 6DOF (6 grados de libertad):

alt text

La imagen es del siguiente enlace que lo explica muy bien: https://packet39.com/blog/2018/02/25/3dof-6dof-roomscale-vr-360-video-and-everything-in-between/

Las imágenes 360º tienen 3Dof.

WebGL -> Three.js --> A-Frame

Según su propia web, https://aframe.io/docs/1.0.0/introduction/, A-Frame es un framework para la web que permite crear experiencias de realidad virtual.

Se basa en Three.js, que a su vez hace uso de WebGL (librería para crear gráficos con JavaScript).

WebVR/AR/XR

WebXR es aún un draft (borrador) de W3C para crear experiencias virtuales en la Web. Engloba WebVR y WebAR.

Posicionamiento en A-Frame

Una imagen vale más que mil palabras:

alt text

Aquí puedes encontrar más detalles: https://aframe.io/docs/1.0.0/guides/building-a-basic-scene.html

Prerequisitos

Lo que necesitas es tiempo... mucho tiempo... y...

  • Tener conocimientos básicos de HTML, CSS y JavaScript.
  • Visual Studio Code.
  • Estaría bien tener unas gafas VR de google ("Cardboard").
  • Más horas de las que pensarías en un principio...

Pasos a seguir en la creación de este proyecto

Puedes seguir la creación de este proyecto con el vídeo explicativo subido a YouTube:

https://youtu.be/GHzStTeFztM
  • PASO 1: Entender qué es Realidad Virtual (RV), qué es A-Frame.
  • PASO 2: Usar Street View Download 360 para descargar una imagen 360º de Google Street View.
  • PASO 3: Crear una escena(a-scene) con una imagen de 360º(a-sky) con A-Frame.
  • PASO 4: Probar la escena con XAMPP. O cualquier alternativa que proporcione un servidor HTTPS. P.Ej: Glitch.
  • PASO 5: 3Dof vs 6 Dof. Una imagen 360º son 3Dof.
  • PASO 6: Usar a-asset para los recursos como imágenes, vídeos o audios.
  • PASO 7: Crear un plano(a-plane) con un texto(a-text), posicionarlo, y darle un ancho y un alto. Se mide en metros.
  • PASO 8: No usar CSS en los elementos de A-Frame. Usar a-mixin.
  • PASO 9: Crear otro plano.
  • PASO 10: Entender las entidades y componentes.
  • PASO 11: Crear una cámara(a-camara) con cursor(a-cursor). Y añadir elementos "clickeables", usando raycaster.
  • PASO 12: Crear el componente "change-site" para cambiar el valor del componente "src" de la entidad "a-sky". Comprender el uso de this.el y this.data.
  • PASO 13: Usar un componente preexistente para reproducir un sonido cuando se cambia de escena.
  • PASO 14: Crear una animación para un elemento a-box.
  • PASO 15: Agrupar elementos en un a-entity. a-entity equivale a un div. Los componentes position se heredan.
  • PASO 16: Cambiar el componente change-site para hacer que el a-box cambie su posición según se seleccione un sky u otro. Entender el uso de this.el, querySelector, querySelectorAll, y la construcción Object.keys(Array).forEach().
  • PASO 17: Usar el atributo "opacity" para hacer un elemento "a-circle" transparente y así crear una zona que permita cargar un nuevo "a-sky" cuando el cursor entra en ella. Aprovechamos para ver como depurar con Ctrl + Alt + i.
  • PASO 18: Crear un botón con HTML para activar/desactivar el sonido.

Y ahora qué...

Después de este tutorial es interesante que sigas las guías del propio sitio de A-Frame de dónde he sacado la mayor parte de la información de partida de este proyecto:

Creado con

  • Visual Studio Code - El editor usado en este proyecto.
  • A-Frame - Un framework web para crear experiencias de realidad virtual.
  • Street View Download 360 - Herramienta para capturar y descargar imágenes 360º de Google Street View.
  • Firebase - Usaremos firebase para el despliegue de nuestro ejemplo. (Uso de hosting con Firebase)
  • XAMPP - Crea un servidor HTTP para realizar las pruebas en local.
  • Glitch - Permite probar y desplegar tus proyectos implementando un servidor HTTPs.
  • Voxedit - Permite editar ficheros en formato Vox y exportarlos a diferentes formatos como gltf.
  • Audacity - Permite editar sonidos. Utilizado aquí para convertir a formato ogg y reducir el tamaño de los ficheros de sonido.

Reconocimientos

a-frame-example's People

Contributors

tcrurav avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.