Animación de Brazo Robótico en Blender

DavidS4Z - 27/12/2023 17:30
Hola, ¿cómo están? Tengo una duda.

Estoy realizando una animación en Blender 4.0 de un brazo robótico. En la animación, quiero que el brazo realice un giro de 180 grados, agarre una esfera, vuelva a realizar el giro y la traslade hacia un recipiente; luego, la suelta y la esfera queda suspendida dentro del recipiente con un movimiento leve en el eje Z hacia arriba y hacia abajo. La duda que tengo es: ¿Cómo hago para que la esfera se mantenga sujeta a la pinza del brazo mientras está en movimiento?

Realicé una prueba aplicando un "object" y también un "object (keep transform)". Con eso, debería lograr que la esfera se mantenga sujeta a la pinza, pero hay un problema: el brazo realiza algunos movimientos antes de posicionarse para agarrar la esfera y, si aplico un "object", la esfera se mueve en conjunto con el brazo durante toda la animación. (En el video que adjunté se muestra la animación completa del brazo).

Si pueden ayudarme a lograr esta animación, se los agradecería mucho. Necesito renderizarlo entre hoy y mañana porque son 250 fotogramas y llevará muchas horas renderizarse.

[video=youtube_share;C3xxnvRJyDQ]https://youtu.be/C3xxnvRJyDQ[/video]
Soliman - 27/12/2023 18:22
Con dos "Bone Constraints" y dos huesos se puede hacer.... :)

[video=youtube_share;40JIJ-JQ2XI]https://youtu.be/40JIJ-JQ2XI[/video]
DavidS4Z - 27/12/2023 21:30
Gracias por responder y por la ayuda. Realicé la animación sin el sistema de huesos debido a su complejidad y falta de respuesta precisa a los movimientos necesarios para el brazo. Es decir, el brazo debe rotar en todos los ejes, y las articulaciones, al ser planas, presentaban problemas al realizar la rotación en el eje Z. Esta acción se ejecuta con la articulación más pequeña, separada de la base del brazo para permitir una rotación libre. Sin embargo, los extremos de cada articulación se tocaban y traspasaban. Esto se soluciona fácilmente bloqueando los ejes para que la rotación funcione correctamente.

El problema surge cuando intento rotar el brazo en el eje Z y también cuando intento rotar la pinza, que también debe realizar una rotación en el eje Z. Además, la articulación donde se sitúa la pinza responde de manera deficiente a los movimientos y no rota lo suficiente en el eje X.

¿Existirá alguna otra manera de lograrlo sin el sistema de huesos?

En caso de no encontrar otra alternativa, intentaré crear la animación nuevamente utilizando el sistema de huesos y veré qué sucede.

Tenía la intención de subir un video mostrando parte de la animación, pero la página no me lo permite, posiblemente porque el archivo es muy pesado, alrededor de 500 MB. Desconozco cuál podría ser el límite permitido.
3dpoder - 27/12/2023 21:46
Sí, existen algunas maneras de lograr que la esfera se mantenga sujeta a la pinza del brazo robótico sin el sistema de huesos. Una manera es utilizar un modificador de "Object Instance". Este modificador permite que un objeto se copie a otro objeto, manteniendo la posición y rotación relativa entre ambos. Para usar este modificador, sigue estos pasos:



Con este modificador aplicado, la esfera se copiará a la pinza y se mantendrá en la misma posición relativa. Sin embargo, la esfera se moverá con la pinza cuando esta se mueva. Para evitar esto, puedes bloquear los ejes de rotación de la esfera en el modificador de "Object Instance". Para ello, haz clic en el icono de "Lock" en el panel de modificadores.

Otra manera de lograr que la esfera se mantenga sujeta a la pinza es utilizar un modificador de "Copy Location". Este modificador permite copiar la ubicación de un objeto a otro objeto. Para usar este modificador, sigue estos pasos:



Con este modificador aplicado, la esfera se mantendrá en la misma ubicación que la pinza. Sin embargo, la esfera no se moverá con la pinza cuando esta se mueva. Para lograr esto, puedes utilizar un script para mover la esfera junto con la pinza.

Para mover la esfera junto con la pinza, puedes utilizar el siguiente script de Python:

[CODE]import bpy

def move_sphere(s):
s.location = bpy.context.active_object.location

sphere = bpy.data.objects["Esfera"]

def animate():
for i in range(100):
move_sphere(sphere)
bpy.context.scene.frame_current += 1

bpy.app.handlers.frame_change_pre.append(animate)
[/CODE]

Este script se ejecutará cada vez que cambie el fotograma. El script toma la esfera como parámetro y actualiza su ubicación a la ubicación de la pinza.

Para utilizar este script, sigue estos pasos:



Con este script aplicado, la esfera se moverá junto con la pinza cuando esta se mueva.

A ver si este sistema te funciona, un saludo.

:ok:
DavidS4Z - 27/12/2023 22:13
Muy bueno el dato, y lo voy a probar. Cualquier otra duda que me surja, te responderé por este hilo.

¡Muchas gracias por la ayuda!

¡Saludos! :-D
Soliman - 28/12/2023 10:02
[QUOTE=DavidS4Z;1022946]Gracias por responder y por la ayuda. Realicé la animación sin el sistema de huesos debido a su complejidad y falta de respuesta precisa a los movimientos necesarios para el brazo. Es decir, el brazo debe rotar en todos los ejes, y las articulaciones, al ser planas, presentaban problemas al realizar la rotación en el eje Z. Esta acción se ejecuta con la articulación más pequeña, separada de la base del brazo para permitir una rotación libre. Sin embargo, los extremos de cada articulación se tocaban y traspasaban. Esto se soluciona fácilmente bloqueando los ejes para que la rotación funcione correctamente.
El problema surge cuando intento rotar el brazo en el eje Z y también cuando intento rotar la pinza, que también debe realizar una rotación en el eje Z. Además, la articulación donde se sitúa la pinza responde de manera deficiente a los movimientos y no rota lo suficiente en el eje X.
¿Existirá alguna otra manera de lograrlo sin el sistema de huesos?
En caso de no encontrar otra alternativa, intentaré crear la animación nuevamente utilizando el sistema de huesos y veré qué sucede.
Tenía la intención de subir un video mostrando parte de la animación, pero la página no me lo permite, posiblemente porque el archivo es muy pesado, alrededor de 500 MB. Desconozco cuál podría ser el límite permitido.[/QUOTE]
................
Creo que se puede abordar de diversas formas. Utilizar huesos proporciona un mayor control, ya que puedes gestionarlos de manera más detallada. Las Constraints son útiles, ya sea para objetos en general o para Armatures con Bone Constraints.

Realizarlo manualmente sería posible, pero podría resultar complicado lograr las rotaciones exactas. También puedes incorporar EMPTYs a la escena como puntos de referencia para mover objetos.

En cuanto a la observación sobre que los extremos se tocan, no estoy seguro a qué te refieres. Sin embargo, esto podría estar relacionado con la fase de modelado o la necesidad de aplicar Constraints, como limitación de rotación, por ejemplo.

[video=youtube_share;OQ0K_va6zb0]https://youtu.be/OQ0K_va6zb0[/video]

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #247186