Hola.
Para detectar colisiones de manera eficiente entre entidades en una escena se suele emplear una sencilla aproximación: A cada objeto complejo se le asigna un Bounding Volume (un objeto sencillo que lo representa a efectos de comprobaciones de colisiones). Lo más común es que se trate de un cilindro, una caja o una esfera. Luego no tienes más que comprobar intersecciones entre estos objetos sencillos y tomar las medidas necesarias en caso de colisión (en tu ejemplo, sería mover conjuntamente el objeto con la mano como si en verdad lo hubiera cogido).
Si quieres aproximaciones físicamente realistas tienes que emplear algún motor de física, como pudiera ser ODE, pero requiere bastantes ciclos de reloj con modelos complejos pues el cálculo se realiza a nivel polígono, no con aproximaciones. Un ejemplo de juego que emplee esta técnica es Doom 3.
Un saludo,
Ruben3d