I made interactable switches using the full body biped IK in Final IK. There was limited documentation but the demo scenes with the asset provided enought for me to test and breakdown how to get it working.
@raiganburns on twitter was asking if anyone had experience with Final IK's Full body IK and I remembered I dabbled with it before (November, 2017. 5ish months from time of writing... longer than I thought).
Since this video I swapped to more permanent character models but the setup is the same. Here is how I got some interaction to work.
Some setup
The Interaction target sets the bone's rotation and position. Not entirely sure what the settings do but I think they make the elbow swing out more or less or completely twist the arm.
IK settings for the character, notice those bones. I use Mixamo's autorigger to set up my characters but do a second pass for weights using Akeytsu. I've tried rigging myself but the bone twists end up messed up and Mixamo seems to get consistent results.
Body and left arm for interaction. Right arm is the same.
Grounder FBBIK magic
Interaction code is setup through my messy character controller where it finally calls the IK System like so
public void GrabObject(Transform grab, bool right)
{
IKEffector effector = ik.solver.rightHandEffector;
if (!right)
{
effector = ik.solver.leftHandEffector;
}
effector.target = grab;
effector.positionWeight = 1;
effector.rotationWeight = 1;
}
I also teleport the character to a better standing position so they do not lean so far trying to reach the lever. I should also lock the rotation to a certain limit but that was delayed because I ended up working on other systems. The lever doesn't react to the character, its just playing a tween when the character goes to interact with it so the character is actually just reacting to the movement instead of causing it.
Rig in blender, made available to reference. Rotation matters a lot for the rig, which is why I let Mixamo handle that for me for now.
Sample Blender Rig File, minus the model bits - Download
Character from the video is from the free Taichi Character Pack
This is all setup in prefabs and instaiated in. Doing it runtime procedurally is probably going to have quite a few more catches.
Hope this helps!