Arte 3D - PG - Web - Colisionadores
Descripción General
Para la creación de colisionadores en proyectos web, el artista 3D debe crear geometrias que sirvan como base para que el programador las pueda generar de manera correcta. Algunas indicaciones deben ser tomadas en cuenta en estas geometrias en específico para que no presenten errores.
Proceso de Desarrollo
Para este proyecto se utilizaron tanto físicas en el balón como el giroscopio de los dispositivos para lograr la interacción que se quería para el usuario. Aunque las físicas fueron realizadas por el programador, en el modelo se tenían que proporcionar las geometrías necesarias que funcionarían como colisionadores.

Crear colisionadores en Web es distinto a crearlos para Unity, por ejemplo.
En este caso se optó por combinar en una sola mesh todo lo que funcionaría como obstáculo, ya que al tener ciertas limitaciones en la iluminación y para optimizar el modelo por ser para web, al utilizar mayormente colores sólidos se integraría el Ambient Occlusion junto con el Base Color. Sin embargo, esta geometría no podría funcionar directamente para la creación de los colisionadores, por lo que estos se agregaron aparte.


Los colisionadores son directamente creados por el programador, pero utilizan los valores de las geometrías que incluye el artista 3D para generar cada uno, por lo que deben tener ciertos parámetros para que funcionen correctamente:
No se pueden generar geometrías muy complicadas, por lo que se recomienda solamente ocupar cubos/rectángulos o esferas. En este caso, en los lugares donde había intersecciones, se utilizaron dos cubos adaptados a las dimensiones de cada lado, en lugar de realizar extrusiones como normalmente se haría.

Mantener las transformaciones de cada mesh, NO BORRARLAS. Es indispensable mantener la posición, rotación y escala para que basándose en esta información, los colisionadores se generen en los lugares que les corresponden con las dimensiones deseadas.
Los pivotes irán en el centro de cada geometría, no en el punto 0, para que se respete su posición.
Para estas geometrías que servirán como referencia en la creación de los colisionadores, se recomienda asignar un material para todos y disminuir su transparencia a 0 antes de exportar el modelo.

Para este proyecto primero se crearon los colisionadores aplicando las buenas prácticas del área, borrando las transformaciones, y blender asignaba por default el origen en las coordenadas 0. Por lo que al generar los colisionadores con estas especificaciones, para todos se creaban cubos de 1, 1, 1 en el punto 0.

Al mantener las transformaciones de cada geometría, los valores con los que se crean los colisionadores se mantienen en cada uno.
Un problema que se presentó fue al momento de girar 180 grados todo el modelo desde el padre, el valor en la posición de las geometrías se mantenían igual. Estos valores al ser locales no se ajustaban al momento de realizar el giro, por lo que al momento de generar sus colisionadores, se creaban en la misma posición que manejaban antes de realizar esta rotación. Esto no afectaba demasiado al ser un modelo simétrico en la mayoría de los obstáculos, pero las áreas que servían de portería presentaban cambios en ambos extremos, por lo que la posición errónea de los colisionadores era evidente en estás partes.
Aunque en el modelo las geometrías se visualizaran en una posición correcta, los valores en sus transformaciones eran los que generaban los colisionadores en su posición anterior.


Para resolverlo, se desenparentó el grupo de colisionadores para poder girar el modelo restante y que estos no tuvieran cambios. Posteriormente se volvieron a emparentar y se ajustó de manera manual cada geometría a su nueva posición. Con esto se modificaban sus valores y los colisionadores se generaban en la posición correcta.

Comentarios
Estas geometrias las puede agregar directamente el programador o agregarlas desde three.js, pero es mas sencillo crearlas desde algun software 3D y mantener estas especificaciones. Aunque se debe platicar con el programador para saber que forma es la mas eficiente de acuerdo al proyecto.
Ventajas
- Generando las geometrias desde el software 3D antes de exportar el modelo es mas rapido,ya que al tener una interfaz mas amigable es mas sencillo hacer modificaciones posteriores.
Desventajas
- Se debe se consciente de estos parametros para que no presenten errores al momento de que el programador genere los colisionadores.
- Tener en cuenta los valores locales y globales si se realizan modificaciones desde algun padre. Verificar que los ajustes se mantengan.
Elaboró
Erick Jurado