como crear articulaciones?? (solucionado)

Publicado por LuciaHedgehog, Junio 23, 2021, 12:44:02 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

LuciaHedgehog

Hola muy buenas noches o días, tengo una duda muy grande, quiero hacer algo parecido como un ragdoll pero que no sea un "cuerpo muerto" ya que lo que digo es más como un cuerpo con movimientos más rígido y no tan fluido no se si me entiendan por ejemplo darle efecto como si estuviera corriendo el robot gigante (no usan ragdoll) o alzando los brazos (un ejemplo seria como contra harcorps de la sega genesis), si tienen un código para cuerpo completo mejor, si es de solo los brazos también me gustaría saber acerca de eso  :-[


Los brazos de mi jefe tiene como esas típicas articulaciones de bolita en vez de brazos alargados, algo así como los jefes de Sonic uwu.


Si tienen un descargable para checarlo por dentro por favor, no tengo ni la menor idea de como crear esas articulaciones y menos programarle un movimiento  :'( estuve buscando en google o en esta comunidad había algo pero no, mas que los ragdoll

brunoxzx

#1
Creo que la solución más fácil a lo que buscas es usar spine, el cual tiene una implementación en GMS2.

Si ya lo conoces y no es lo que buscas, solo se me ocurre que estés preguntando por un ragdoll que sí use físicas, pero que a la vez tenga algún sistema de músculos que se opongan a la caída. Hay juegos que hacen esto, pero en ese caso la cosa sí se pone difícil. De ejemplos se me ocurren Examina y Overgrowth. Aúnque son en 3D.



Tambien buscando me encontre este ejemplo de unity


Cabe mencionar que el Spine tiene un sistema de IK, que permite mover los huesos sin que haya una animación para tal cosa, como si tu personaje tuviera que agarrar un vaso de agua, y solo le dieras la posición del bazo y automáticamente supiera que huesos mover para alcanzarlo, creando la animación mientras corre el juego.

Por último, si no te es viable usar el spine, pero sí quieres usar animaciones del tipo, quizá algo básico para mover los brazos de tu jefe no sea tan difícil de programar desde cero.


LuciaHedgehog


LuciaHedgehog

Cita de: brunoxzx en Junio 23, 2021, 04:37:47 PM
Creo que la solución más fácil a lo que buscas es usar spine, el cual tiene una implementación en GMS2.

entiendo, la verdad no se como importar un spine al 1.4 xd, ahi vere como se hace, solo que no manejo del 3d por ahora, pero gracias por ejemplos buen hombre uwu

brunoxzx

De nada, aunque si te pase los ejemplos 3d fue porque no se me ocurrió un juego 2d que hiciera eso, pero ya me acordé de este:



La cosa es que quería descartar que lo que necesitaras fuera físicas con esqueleto, por que es el caso más difícil. Si nada más necesitas el esqueleto puedes usar el spine, o lo que pasó 3dgeminis.

0m@R

interesante desafío, pero me pregunto si si necesitas físicas o es más bien "artístico" porque una cosa es cuerpo rígido y otra es solo kinemáticas inversas, creo que para un enemigo caricaturesco se puede programar algo en 1.4 usando simple código; depronto no tienes un ejemplo más puntual o descripción más detallada?

LuciaHedgehog

#7
Cita de: 0m@R en Junio 27, 2021, 11:16:27 AM
se puede programar algo en 1.4 usando simple código; depronto no tienes un ejemplo más puntual o descripción más detallada?

Es algo como esto del buen nacho, imagina que eso es como un brazo del que busco hacer, se ve que tiene muchas imágenes, el men me dijo que dijo que era solo dibujar, pero ni idea si uso kinematics u otra cosa  :-[  ya si no hay otro modo pues usare kinematics como dice 3d geminis y por cierto no tiene físicas porque no uso eso ya que es un juego shooter vertical


0m@R

mmm... la verdad no le veo necesidad ni de físicas ni de kinematics, parecen más reglas básicas, cosa de hacer varios puntos y simplemente decirles que se mantengan juntos a modo de cadena, si hay física de trasfondo pero no todo un motor de física; y las kinematics serían para hacer que el brazo siga al puño, pero como digo, con reglas básicas sale.

el otro día hice estas cadenas:
https://www.youtube.com/watch?v=LIcLVjdGcM0&ab_channel=Omwekiatl

pero no necesariamente debes hacer cadenas, puede ser un brazo y antebrazo, que se ajusten simplemente por ángulo (si o si) y escala (quizás); pilla:

si vas a mover la mano, se sabe que del cuerpo a esta hay una distancia máxima (brazo extendido), luego solo es encontrar los ángulos adecuados para brazo y antebrazo que cumplan con la posición actual de la mano.

Encontrar esos ángulos es lo que haría una física o kinemática, luego si el juego no tiene mucha sobrecarga de lógica y no importa uno que otro movimiento de estiramiento, se podría buscar estocásticamente un punto de codo, en torno al codo actual, para ajustar, y se interpola el movimiento.

sino, para no ser estocásticos, ante un cambio de la mano, se mueven los ángulos de ambas articulaciones en ambos sentidos, se evalúa una función de error que diga hacia cuál de los dos se alcanza un valor más próximo al deseado y allí se mueve; esto es lo que en ingeniería se llamaría un controlador, o también lo asocio con gradiente descendente pues tratas de reducir un error. ok creo que no he sido claro  :-[

si algo para el miércoles o jueves programo un ejemplo...

LuciaHedgehog

Cita de: 0m@R en Junio 28, 2021, 12:22:53 PM
mmm... la verdad no le veo necesidad ni de físicas ni de kinematics, parecen más reglas básicas, cosa de hacer varios puntos y simplemente decirles que se mantengan juntos a modo de cadena, si hay física de trasfondo pero no todo un motor de física; y las kinematics serían para hacer que el brazo siga al puño, pero como digo, con reglas básicas sale.

si algo para el miércoles o jueves programo un ejemplo...

okey muchas gracias un ejemplo echo me ayudaría mucho, es bueno que mencionen todos los ejemplos posibles ya que luego si se bugea el programa ya uso kinematics o viceversa si se bugea uso otro metodo jaja, pero el método que dices nunca lo había escuchado, nunca estudié ingeniería XD ya si alguien busca lo que quiero seria un buen aporte ya que era algo imposible de hacer hace años

0m@R

#10
He creado un ejemplo, tiene dos brazos y ambos están programados de manera diferente:



El izquierdo funciona con algoritmo estocástico, es decir que busca soluciones al azar y las compara con una función de error, o mejor dicho función de cómo debería ser lo ideal, un número que tiende a cero.

El derecho usa unas físicas rudimentarias, reglas básicas, el codo se aleja o acerca para cumplir con la posición ideal.

Nótese que el izquierdo suele hacer movimientos más bruscos, mientras el derecho parece que se estira y contrae.

Esto sirve si la articulación tiene más de un codo, mismo principio.

El cuerpo se puede mover, sea absolutamente, moviendo todo, o solo, forzando a que los brazos se adapten.

Aquí en mi Dropbox subí el ejecutable y editable, carpeta "NoJuegos", archivo "brazitop.zip":
https://www.dropbox.com/sh/plhbo1ornjah8jb/AAAOdaSe5JArLE1XRo--Eh_7a?dl=0

O en GitHub:
https://github.com/OmarsaurioJordan/Brazitop

También lo adjunto aquí...

edito: para evitar esos salticos que da el brazo izquierdo, cambiar en el código la comparación de errores, de <= por < solo :p

LuciaHedgehog

Cita de: 0m@R en Junio 30, 2021, 07:05:56 PM
He creado un ejemplo, tiene dos brazos y ambos están programados de manera diferente:

El izquierdo funciona con algoritmo estocástico, es decir que busca soluciones al azar y las compara con una función de error, o mejor dicho función de cómo debería ser lo ideal, un número que tiende a cero.

El derecho usa unas físicas rudimentarias, reglas básicas, el codo se aleja o acerca para cumplir con la posición ideal.

Nótese que el izquierdo suele hacer movimientos más bruscos, mientras el derecho parece que se estira y contrae.

Esto sirve si la articulación tiene más de un codo, mismo principio.

El cuerpo se puede mover, sea absolutamente, moviendo todo, o solo, forzando a que los brazos se adapten.
.


Ohhh ya ya muchas gracias, eso se ve interesante ando checando el código para saber más de ello porque la neta porque no hay tutoriales de eso creo jeje, y bueno esto podría ayudar a otros gamemakeros que pueden hacerlo sin descargar spiner para enemigos que no tienen mucha ciencia en sus movimientos y ahorraría un poco más de espacio XD.


Es un gran aporte que ojala hubiera tenido hace 6 años jaja  :'( me acuerdo que ni kinematics existía en ese entonces, esta información vale millones xd

0m@R

jaja ni lo menciones viejo, me arrepiento de no haber hecho tutoriales antes (cuando GM era la leche), ahora uso GMS y ya nadie vería tutoriales hechos ahí, quizá haga en Godot. Bueno, ahí queda para los Makeros que lo encuentren (aunque estos principios aplican a cualquier motor).

No olvides si algo poner el tema como cerrado o solucionado.

227 Visitantes, 0 Usuarios