Semana 12. A-frame
Nos adentramos en la decimosegunda semana del blog. Los retos indicados son:
Cannon -> Ammo
Modelado 3D
¿Cannon es valido en NAF?
Cannon -> Ammo
Marta Quintana me ha pasado un repositorio en el cual se usa el motor de físicas AMMO y no CANNON, por tanto, el objetivo ya se encuentra implementado a nivel código fuente. A continuación, voy a trastear y crear diferentes escenas.
Escena básica sin robots (S281.json)
A continuación podemos observar que nuestra escena tiene dos esferas diferentes y cada una tiene su propia gravedad. Además, se ha registrado un componente en ‘JS-editor\index.html’ que ha permitido el rebote de nuestras esferas.
Se ha de tener en cuenta que no es necesario indicar la gravedad entidad por entidad, sino que se puede dar la misma a toda la escena.
Escena básica con modelo gltf (S282.json)
En este apartado únicamente voy a añadir el modelo gltf a la escena y su malla de colisión, es decir, no voy a tratar al modelo como un robot. Aplicando lo que he aprendido en semanas anteriores es sencillo añadir la malla de colisión a nuestra entidad.
Escena básica con robots (S291.json)
La complejidad se encuentra en añadir a los robots las mallas de colisión, ya que las físicas no son otorgadas de forma común. Existe un componente denominado physics-object que se encarga de otorgarle las físicas a estos robots. ¿Dónde se encuentra localizado? Tras realizar una busqueda exhaustiva lo he localizado en la siguiente ruta: simulation\aframe-component\gltfPhysicsObject. Es importante tener en cuenta que al modificar ficheros externos a la propia escena se ha de actualizar antes de lanzar el servidor con ‘npm run build’. Por tanto, una vez tengamos lo anterior claro se pueden añadir las mallas de colisión complejas de forma sencilla (se mantiene el método usado en la semana anterior).
Nota: la opacidad de la malla se puede poner sin problemas, pero he decidido usar el colo rojo para visualizarlo mejor.
Escena compleja con robots (teleoperador y cámaras)
Problematica. A pesar de haber logrado introducir ammo, y que funcione correctamente con las cámaras y el teleoperador, es muy complejo. Tanto Marta como yo tenemos dificultades para relacionar todos los puntos.
¿Cannon es valido en NAF?
Nos encontramos ante una pregunta importante, ya que en caso de no lograr introducir el motor de físicas podríamos usar NAF en Kibotics. Por ello, en primer lugar hemos de comprobar el funcionamiento de Cannon en NAF.
-
Uso de Cannon en una escena Aframe básica. ☑
-
Uso de Cannon en una escena NAF básica.
Nota: El siguiente enlace es válido para el funcionamiento de las físicas, ya que si usamos otros más actuales no funciona.
<script src="https://aframe.io/releases/0.7.0/aframe.min.js"></script>
Nota: El siguiente enlace es válido para el funcionamiento de las físicas Ammo en NAF, ya que si usamos otros menos actuales no funciona.
<script src="https://aframe.io/releases/1.3.0/aframe.min.js"></script>
Por tanto, teniendo esto encuenta podemos determinar que no es posible usar Cannon en NAF.
Conclusión
No, no es posible usar el motor de físicas Cannon en NAF, ya que las versiones de A-frame son diferentes y no compatibles.
Modelado 3D
Este apartado no ha sido investigado aún debido a la complejidad de los anteriores.
Duda principal
¿Cómo puedo introducir todas las dependencias necesarias en NAF en el repositorio de Kibotics? Nunca he realizado algo similar y la complejidad es elevada dado a que existen muchas carpetas y exactamente no se donde podría introducirlo.