Explicare como hacer un rig de brazo con Forward Kinematics e Inverse Kinematics (IK / FK ), de nuevo explico este concepto no es creación mia. bueno a lo que vamos. Primeramente crearemos 3 cadenas de joints, estas tres cadenas seran una para el IK, otra para el FK, y otra que llamaremos Bind, que es a la que ira pegado nuestro personaje, aqui podemos hacernos un poco de bolas con esto, va asi, la cadena de IK es donde montaremos nuestro IK handle en pocas palabras un rig normal de brazo, y la de FK sera la que controlemos a traves de las rotaciones de los Joints, la ultima cadena de Bind ozilara entre estas dos, controlando los movimientos de nuestro personaje :)
A continuacion crearemos nuestra curva de control para la mano y la llamaremos ctrl_hand, agregaremos un atributo en add attribute con el nombre de switch, para poder cambiar entre el IK y el FK, ahora vamonos al hypershade y creemos un node MultiplyDivide que llamare ikfk_muldiv y cambiaremos el Input 2 X a 0.1.
Conectaremos usando el connection editor nuestra ctrl_hand al ikfk_muldiv, conectando el valor switch a input1X.
Abriremos el outliner y con el boton de en medio (middle click) arrastraremos al hypershade los constrints del bind, es decir bind_shld_orientConstraint1, bind_elbow_orientConstraint1, bind_forarm_orientConstraint1 y bind_wrist_orientConstraint1. ya una ves ubicados en el hypershade pasaremos a conectarlos con el multiplydivide. Empezaremos conectando el ikfk_muldiv.input1x a bind_shld_orientConstraint1.FK_shld_w1 y repetiremos esto con cada constraint respectivamente.
Ahora traeremos otro nodo a nuestra area de trabajo en el hypershade, crearemos un Reverse node y renombremoslo a ikfk_rev, conectaremos nuestro ikfk_muldiv.outputx al ikfk_rev.inputx, ok con esto hecho empezaremos a conetar el reverse a los constraints, conectamos ikfk_rev.ouuputx a bind_shld_orientConstraint1.ik_shldW0, y repetimos el mismo paso par los otros constraints faltantes.
Con esto tenemos casi terminado el rig, ahora soo falta crear los controladores y el ik. empezemos pues por el ik handle, hagmos un IK handle del ik_shld al ik_forarm , ahora seleccionemos su effector en el outliner y movamos su pivote al joint ik_wrist con un snap to point, creemos un controlador para el hombro ctrl_elbow lo colacamos a la altura del codo un poquito hacia atras, ahora seleccionamos el controlador shift el ik handle y constraint pole vector, ahora selectionamos nuestra ctrl_hand shift el ik, constraint point, ok super hazta shi tenemos seteado el control del IK, nos falta orientar la mano, selecionamos nuestra ctrl_hand shift ik_wirst y constraint orient con maintain offset activado.
Ahora crearemos 2 controladores mas para el FK, uno para el hombro y otro para el codo, y los colocaremos en su joint respectivo, renombremoslo ctrl_shld_fk y ctrl_elbow_fk, freeze transformation para mandar sus valores a cero, eso es logico :p , ok ahora selecionamos nuestro ctrl_elbow_fk shift fk_elbow y constraint orient con el offset activado, y repetimos lo mismo con el ctrl_shld_fk y fk_shld , ahora selecionamos nuestro ctrl_elbow_fk shift ctrl_shld_fk y le damos un parent, por ultimo podemos usar un set driven key, solo para ocultar estas curvas cuando estemos en IK, traeremos nuestro set driven key y le daremos key al visibility de ambas curvas cuando nuestroo switch este en 0, el visibility estara en 0ff, y cuando el switch, este en 0.1 el visibility en 0n.
Ahora si podemos provar nuestro setup de IK FK y todo deve funcionar a la perfección ;) espero les haya servido.