Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

FINAL IK - Full Body IK, Aim, Look At, FABRIK, CCD IK... [1.0 RELEASED]

Discussion in 'Assets and Asset Store' started by Partel-Lang, Jan 15, 2014.

  1. FellowPlayer123

    FellowPlayer123

    Joined:
    Dec 23, 2016
    Posts:
    114
    I would love to check this! Where can I grab it from?
     
  2. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,548
    Can just copy component and paste values, then right-click on FBBIK component header and do "Auto-detect References" from the context menu.

    Best,
    Pärtel
     
  3. FellowPlayer123

    FellowPlayer123

    Joined:
    Dec 23, 2016
    Posts:
    114
    Thanks, Partel!

    I was attaching FullBodyBipedIK to the character's empty child that didn't contain the Animator component (which was on the root) that's why it didn't auto-recognize it. So that fixes the problem.

    How about the Hit Reaction component? It doesn't have an auto-recognize option. It only has "Find References in Scene" option, but it doesn't detect - I have to manually put each collider to the slot.

    Is there a way to quickly copy the Hit Reaction component from one Avatar to the other as well?

    Thanks!
     
    Last edited: Apr 6, 2022
  4. daedal

    daedal

    Joined:
    Dec 19, 2013
    Posts:
    31
    That debugging trick made the jitter problem obvious. A physical interaction plugin I use was causing the jitter because it was out of sync with the network ticks. Thanks!

    On another note, I found it necessary to modify your TwistSolver class to allow for a weight of -1. I needed this for my lower arm twist bones to ensure that they don't rotate in the opposite direction of the hand. Is there another way to achieve this without modifying your code?

    My skeleton may be oddly constructed. Both the hand and twist bones are parented to the lower arm bone instead of the lower arm -> lower arm twist -> hand pattern.
     
  5. loir

    loir

    Joined:
    May 28, 2013
    Posts:
    4
    What is your solution?
     
  6. loir

    loir

    Joined:
    May 28, 2013
    Posts:
    4
    Hi @Partel-Lang ,
    I have a character I made with Reallusion Character Creator/iClone, that I imported into Unity 2020.3.25f1. What is my next best step to get it working so it can be used with Oculus Quest? I'd like to be able to switch between recorded animations and player control.
     
  7. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,548
    Don't have a tool for that, sorry. If your other characters have the same bone names, could make an editor script that finds the bone with the same name in the other hierarchy and gets the collider from that. There's no way for me to make a generic solution for everybody though, usually bone names don't match.

    Hey,
    If hand is not parented to lower arm twist, then you should setup the twist solver like this:
    twistrelaxer2.PNG
    (never mind the missing IK slot)

    Hey,

    1. Drop your character to the scene at the position of the oculus player/camera rig
    2. Add VRIK component
    3. Move CenterEyeAnchor and hand anchors to the head and hands of the avatar as if they were worn by it.
    4. Make duplicates of the head and hand bones of the avatar
    5. Parent the duplicates to the CenterEyeAnchor and hand anchors accordingly
    6. Assign the duplicates as head and hand targets in VRIK

    You can blend between IK and animation using ik.solver.IKPositionWeight (0 - 1).

    Cheers,
    Pärtel
     
  8. Crossway

    Crossway

    Joined:
    May 24, 2016
    Posts:
    507
    I mentioned the 2.1 version is only for unity 2020.1.25 and next but my unity version is 2020.1.17f1 and I can't update unity for now because of a big reason! Is that possible to fix that bugs also in v2.0 too?
     
  9. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,548
    Version 2.1 works with Unity 2018.4.28 and later. When I submit new versions, I upload separate packages for 2018, 2019, 2020, 2021, etc. Unity should automatically get you the right version for download.
    Also, should be no problem backporting FIK package from 2020.1.25 to 2020.1.17.

    Best,
    Pärtel
     
    Crossway likes this.
  10. Crossway

    Crossway

    Joined:
    May 24, 2016
    Posts:
    507
    Sorry, after removing final ik folder from C:\Users\AppData\Roaming\... it solved my issue with asset store.
     
    Partel-Lang likes this.
  11. w_adams

    w_adams

    Joined:
    Apr 7, 2016
    Posts:
    34
    Are any of the solvers in this package appropriate for a telescoping movement, such as on a hydraulic crane?
     
  12. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,548
    Hey,
    None of the solvers can use prismatic joints, I mean they can't use the joint to reach the target, but they will adapt to you manipulating the joint yourself. So if you make the crane longer by increasing the localPositions of the parts via script, the IK will still reach the target if it can.

    Best,
    Pärtel
     
  13. Eros96

    Eros96

    Joined:
    Sep 26, 2019
    Posts:
    29
    Hi @Partel-Lang ,

    new to FinalIK. I am using it for VRIK to create avatar of the user in VR. I have a problem with the wrist rotation of the avatar when doing some movements with the hand as in the figure. What should I do to fix this weird behaviour?

    Thank you.
     

    Attached Files:

  14. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,548
    Hey,
    Add the TwistRelaxer component. Check out the "VRIK (Twist Relaxers)" demo, find the components on the forearm roll bones of the Pilot.

    Best,
    Pärtel
     
  15. Milkinator

    Milkinator

    Joined:
    May 18, 2014
    Posts:
    1
    Hi @Partel-Lang,

    I have a character using the CCD IK component on the arms. The goal is to have an arm that can stretch while still utilizing the IK solving.

    upload_2022-5-3_14-55-7.png

    I know there are stretching options for standard bipedal characters and their arms, but is there any way to dynamically stretch a CCD IK with a custom joint layout like in this photo?

    Any help would be greatly appreciated!
     
  16. schema_unity

    schema_unity

    Joined:
    Jun 13, 2018
    Posts:
    114
    Hello @Partel-Lang,

    I'm currently working on an auto-setup for my character framework.

    I would like to have my characters in t-pose in the editor, but that will of course mess with the the bend directions of arms and legs (FullBodyBipedIK).

    Is there a way to manually set the bend directions of arms and legs at startup without modifying the pose of the skeleton? Or the possibility to "lock" them to be able to reset the pose without affecting them any further?

    Thank you again for your fantastic work.
     
  17. Prog_Meisters

    Prog_Meisters

    Joined:
    Mar 25, 2013
    Posts:
    8
    Hi @Partel-Lang,

    I'm having a problem with getting the correct position of the arms after they have been modified by Aim IK.

    I have Aim IK on the arm bone, and there is a lasergun in the hand that uses a LineRenderer to represent the beam. I update the position of the points in the LineRenderer based on the position of the gun, but it seems that the gun position fluctuates between where the animator would put the arm, and where the IK would put the arm from frame to frame.This causes it to jump between the two positions.

    So how do I consistently get the correct position of the object after the IK has updated? Is there an event or anything that's fired once the IK has updated all the transforms with the new position?

    I've tried moving my code to late update, but that consistently gets the position of where it would be if it were controlled by the animation, and not the IK position.

    Please advise.

    Thank you.


    Edit: Solved it!
    Subscribed my method to the event AimIK.solver.OnPostUpdate and that did the trick.
     
    Last edited: May 6, 2022
  18. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,548
    Hey,
    No problem, please get this extra component CCDStretch.cs. Can do both squash and stretch.

    Hey,
    Yeah, can call ik.solver.SetLimbOrientations(). There are presets for UMA and 3ds Max Biped, but you can declare your own BipedLimbOrientations too. Instructions in the user manual:

    setlimborientations.png

    Cheers,
    Pärtel
     
    schema_unity and Milkinator like this.
  19. chadfranklin47

    chadfranklin47

    Joined:
    Aug 11, 2015
    Posts:
    221
    Hey Pärtel, I had to step away from this issue for a while, but after taking a look at it again, I see that for some reason the initial rotation of the bones is not being read properly. In the first picture in my initial post linked above you can see that I needed to manually bend the knees to get FinalIK to detect them as pointing in the correct direction. Without doing so, the arrows pointed inwards toward each other. But because the rotations are not being read properly in Start() for some reason, when I enable the bend goal, the legs bend even more incorrectly as the inside of the knees try to point towards the bend goal. Not sure if this issue is related to the original issue.

    Is there any way to have FBBIK sample a stored EditorIK Pose instead of the character's current pose in Start()? If not, could I apply a pose to the character and then call a method to sample the character's pose? I believe this would fix many issues as I am also dealing with this issue in places where Timeline is used as Timeline overrides the character pose in edit mode, overriding any manual rotations I made.

    In this instance though, I am not using Timeline and am not sure what is causing the initial knee rotations to not be read correctly by FBBIK. Any idea what could be going wrong? Thanks.

    Edit:
    I have tried both different animations and different models and the issue is occurring for all. It seems to only happen when the leg is extended. When the knee is bent the grounder and bend goals work fine. The issues with the grounder and bend goal start to happen as the knee nears full extension.

    Here is a quick video with the bend goal weights set to 1 and with no grounder component enabled:



    Here is a video of my initial problem with the grounder:
     
    Last edited: May 10, 2022
  20. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,548
    Hey,
    Would it be possible for you to send me that character fbx and the walking animation so I could take a closer look here?

    PM here or support@root-motion.com or freshdesk.

    Best,
    Pärtel
     
  21. chadfranklin47

    chadfranklin47

    Joined:
    Aug 11, 2015
    Posts:
    221
    Thanks for taking a look, I sent a PM to the email linked above.
     
  22. Hololena

    Hololena

    Joined:
    Oct 25, 2018
    Posts:
    3
    Sorry for my late reply! Meanwhile we had to present the project with stuttering But now I am working on!
    I am using procedural and it makes no difference if I set locomotion weight to 0 or 1.
     
  23. VR_Junkie

    VR_Junkie

    Joined:
    Nov 26, 2016
    Posts:
    77
    Hello, I am having a weird issue with my multiplayer networked game. I use vrik on all of my characters and am seeing a issue with the knees of the FIRST SPAWNED character. The first character spawned (we instantiate more throughout the playthrough) has knees that stay bent in the same direction (see video attached). The knees work fine for the player that is controlling the character but look strange for everyone else. All the other characters work fine, it is only the first character that isnt working correctly. The follow points for head and arms are correct across the network and we arent using leg follow points. Locomotion is set to animated. Do you have any idea why this only happens to the first character? I preset the vrik values and dont change them. I think it may be a timing issue because player 1 loads his character before player 2 and player 3. Is there something in vrik that is time sensitive.

    This is the view from player 2 so player 1 is in the body and you can see the characters knees stay pointed in the same direction even after spinning around. NOTE: player 2's character works perfectly fine.
    https://netorgft7274853-my.sharepoi...dqGsT_Y9AZFspFeyyczOWsBiaKCwqGddAF26poggZo_3A

    These are the values used in the vrik
    https://netorgft7274853-my.sharepoi...bMgoCyUg5lHjJkVEyuL3csBtJR-q21_55C5komlBKKI9A
     
  24. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,548
    Thanks, just replied to the email.

    Hey,
    That third arm, does it have any IK on it? If so, you'll need to make sure that IK is updated after the VRIK.
    Can use the IKExecutionOrder component or make a script that disables both IK components at Start and call

    vrik.solver.Update();
    thirdArmIK.solver.Update();

    from LateUpdate();

    Hey,

    Could it be that you were instantiating the characters with IK disabled and enabling it at some arbitrary time later when you needed it?

    IK samples the pose when it is initialized (in Start so whenever you enable the IK) to find out which way to bend the limbs and stuff. So if that happens at a random time, the pose of the character is probably different and so will be the sampling results. Best to have the IK enabled to make sure everyone gets sampled the same, then disable it when ik.solver.initiated returns true.

    Best,
    Pärtel
     
  25. jiaxinzhu

    jiaxinzhu

    Joined:
    Feb 19, 2021
    Posts:
    1
    Hey! I'm new on using the final IK and recently I have been following the Interaction System Tutorial series. I go to the point where you could pick up an object and drop it when pressing D. However, in my case the object is not being picked up even though I set up everything exactly like the tutorial. Here's a description of what I have:
    My character's components:
    upload_2022-5-17_18-28-27.png
    upload_2022-5-17_18-29-29.png

    My Interaction Object
    upload_2022-5-17_18-30-27.png
    upload_2022-5-17_18-30-48.png
    upload_2022-5-17_18-31-11.png

    My Interaction Object's Script:
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using RootMotion.FinalIK;
    using RootMotion.Demos;


    public class JZ_Gasa : MonoBehaviour
    {
    public InteractionObject m_gasa;
    public OffsetPose m_holdPose;

    private float m_holdWeight;
    private FullBodyBipedIK m_ik;

    IEnumerator OnPickUp()
    {
    Debug.Log("Picking Up");
    m_ik = m_gasa.lastUsedInteractionSystem.GetComponent<FullBodyBipedIK>();

    while (m_holdWeight < 1f)
    {
    m_holdWeight += Time.deltaTime;
    yield return null;
    }
    }

    void LateUpdate()
    {
    if (m_ik == null)
    return;

    m_holdPose.Apply(m_ik.solver, m_holdWeight, m_ik.transform.rotation);
    //m_ik.solver.rightHandEffector.positionOffset += m_ik.transform.rotation * m_holdOffset * m_holdWeight;
    }

    void Update()
    {
    if (m_ik == null) return;

    if (Input.GetKeyDown(KeyCode.K))
    Debug.Log("Dropping object");
    StartCoroutine(Drop());


    }

    IEnumerator Drop()
    {
    GetComponent<Rigidbody>().isKinematic = false;
    transform.parent = null; //aquí se podría cambiar por el del player con algún collider

    while (m_holdWeight > 0f)
    {
    m_holdWeight -= Time.deltaTime * 3f;
    yield return null;
    }
    }

    }

    Hope you can help me find the issue and thanks in advance
     
  26. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,548
    Hey,
    Sorry about, there's a bug in the current version. Link to the patch is in the description of that first video tutorial.

    Best,
    Pärtel
     
  27. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,548
    Hi guys,

    Letting you know I'll be away on a little vacation, will return 1st of June. Please leave your questions here, will reply when I'm back. Thanks!

    Pärtel
     
  28. Shii

    Shii

    Joined:
    Nov 23, 2014
    Posts:
    31
    Hi!
    I encountered an issue with VRIK chest goal. When model in standing position chest follows chest goal rotation but when model tilted 90 degrees backward or forward (laying down horizontally) chest stops following chest goal rotation completely. Any quick way to fix that so model orientation in space won't affect how chest goal works?
     
  29. Crossway

    Crossway

    Joined:
    May 24, 2016
    Posts:
    507
    I encountered a new issue too after updating unity 2018.4 to unity 2020.1.17 ... as the below video shows gun can't follow its follow point after character lose balance. (If I set animator update mode to "Normal" instead of "Animate Physics" it solves the issue but I can't do this)

     
    Last edited: May 25, 2022
  30. ROBYER1

    ROBYER1

    Joined:
    Oct 9, 2015
    Posts:
    1,450
    Hi Partel

    I have been working on a VR Asset that has optional VRIK integration and I needed to include a modified version of Calibrator.cs and RootController.cs in my asset to include optional integration with VRIK. I was wondering if possible can I share the package with you to check I am not including anything that cannot be shared as I don't need the full FinalIK asset to be in the package I upload but those two mentioned scripts are customised for my asset to work fully.

    If you are able to pm me on here I can discuss this with you as I would like to include VRIK support in my asset to promote your asset.

    -Rob
     
  31. ramahani

    ramahani

    Joined:
    Mar 9, 2022
    Posts:
    2
    Hello,
    How do I use the VRIK PUN package with HTC VIVE PRO? Do I just attach the script to my avatar or do I need to do something else? Also, do I just assign the Vr rig and IK values in the inspector or do I also assign the Calibration values
     
  32. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,548
    Hey,
    VRIK and its chest goal work in the rotation space of the character root. It works if you rotate the root by 90 degrees too.

    Hey,
    How are you attaching that gun to the character? Should be OK if you just parented it to the hip bone. I mean the hip bone of the animated hierarchy, not PuppetMaster hierarchy.

    Hey,
    Haven't tried it with VIVE PRO since I don't have one, but I think it should work by assigning all the required fields. Calibration values need to be changed if your hands positions/rotations end up wrong relative to the controllers. Can use those offset values to adjust them.

    Best,
    Pärtel
     
  33. Crossway

    Crossway

    Joined:
    May 24, 2016
    Posts:
    507
    Hi, It's not parented to the hip bone because when I do this final ik interaction doesn't work correctly (Can't pick up gun correctly because character hand can't match interaction target on the gun when it is parented to the hip bone)
     
  34. matorga

    matorga

    Joined:
    Nov 26, 2021
    Posts:
    5
    Hi, we are using Final IK for controlling a character in vr using htc vive trackers for the hands and when using the VRIK Calibrator, if we use the transform of the duplicated hand bones placed inside the xr rig, each time we press "c" the hands rotate until they finally reach the desired orientation after three or four tries. If the transform used is the one from the parent object, the one with the Steam VR Tracked Object script, then it positions the hands in one way (wrong way) no matter many times you pess the "c" key. We've tried every single vector combination but it doesn't work well with the first press in any case.
     
  35. botove

    botove

    Joined:
    Apr 10, 2015
    Posts:
    51
    Hello, sorry if it was already asked, can't find the answer. I have problem with BipedIK component, specifically pelvis part of it. I want to set Y axis position offset, when i apply it to character setup as humanoid works fine, but when it's same character but generic, the character moves away like offset sums constantly
     
  36. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,548
    Hey,
    If there's a script controlling the gun's position, make sure it runs in LateUpdate and has higher value than PuppetMaster has in the Script Execution Order. Or use PuppetMaster.OnWrite delegate.

    Hey,
    Not sure what's going on there, but there's another newer, simpler and more reliable method of calibrating head and hands. Please take a look at the "VRIK (Basic Head & Hands Calibration)" demo and VRIKCalibrationBasic.cs.

    Hey,
    That generic character probably doesn't have any animation for pelvis position, so it accumulates. Do you have "Fix Transforms" enabled in BipedIK?

    Best,
    Pärtel
     
  37. botove

    botove

    Joined:
    Apr 10, 2015
    Posts:
    51
    Thanks for fast answer. Yeah, have "Fix Transforms" enabled. It's same character with same animation, just different rig setup humanoid/generic.
     
    Last edited: Jun 7, 2022
  38. Crossway

    Crossway

    Joined:
    May 24, 2016
    Posts:
    507
    When I set it as "LateUpdate" It can't follow hip anymore. Can you please create a script for this? Because when I parent gun to the hip bone interaction targets on the gun doesn't work correctly ... a follow script that is compatible with puppet master and unity 2020.1.1 or newer versions would be cool :)
     
  39. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,548
    Hey, please see if this patch fixes it for you.

    Hey,
    Here, made a little example for you. In game view there's a button to pick up the gun. In the interaction object there's an event that disables the FollowMuscle script because it's not supposed to follow the hips anymore when picked up.
    But it seems to work the same if you get rid of the FollowMuscle script and just parent the gun to the pelvis.

    Best,
    Pärtel
     
    Crossway likes this.
  40. botove

    botove

    Joined:
    Apr 10, 2015
    Posts:
    51
    Yeah, it works now. Thanks!
     
  41. matorga

    matorga

    Joined:
    Nov 26, 2021
    Posts:
    5
    Thanks, the VRIK Calibration Basic was easier to configure. I've also implemented the Stretch curves from the Pilot example because the arms where too long after the calibration, but now it shows this ugly stretching. I wonder if there is a way to show the stretching in a more appealing way. I've tried smoothing the weight paint but it doesn't get much better.
    Captura de pantalla (11).png
     
  42. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,548
    Hey,
    TwistRelaxer component can help with that. It's a component that runs on top of VRIK and can smooth out the twist angles of bones. Please take a look at the "VRIK (Twist Relaxer)" demo, find the component on the forearm roll bones of the Pilot.

    Best,
    Pärtel
     
  43. Arjun-Gupte

    Arjun-Gupte

    Joined:
    May 31, 2013
    Posts:
    53
    Hello,

    We seem to be having an issue on M1 Macs where the IK makes the arms and legs bent and moving the solvers do not unbend it. It is fine on Intel Macs and Windows, but only on M1 does this issue happen. I'm attaching a picture of it happening.

    This video shows the issue in action.
     

    Attached Files:

    Last edited: Jun 10, 2022
  44. matorga

    matorga

    Joined:
    Nov 26, 2021
    Posts:
    5
    I'm sorry I didn't explain the image properly. I am already using Twist Relaxer and it works fine, that pinching is not produced by twisting the arm but by using the arm stretching. It looks fine if I put the Arm Lenght Mlp to 1 but then the arms are too long and appear always flexed
     
  45. VR_Junkie

    VR_Junkie

    Joined:
    Nov 26, 2016
    Posts:
    77
    Hello, this is related to an old question I asked you about crouching. The code you gave me worked fine but I tried to switch it to a Coroutine using yield return new WaitForEndOfFrame and it didnt work. Why is that, considering WaitForEndOfFrame is after LateUpdate? Also when does the reference position switch from what the animation position should be to where vrik sets it?
     
    Last edited: Jun 13, 2022
  46. look001

    look001

    Joined:
    Mar 23, 2017
    Posts:
    111
    Hey there, is it possible to create a FABRIK chain and add a bend goal for it? E.g to create an elbow without a full biped character rig. Thanks!
     
  47. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,548
    Hey,
    I've heard from a couple of users before that LimbIK (used by BipedIK) fails on M1. LimbIK is basically just a bunch of basic math and math should work the same on all platforms so it must be a Unity bug. Have you tried the latest Unity version, maybe they have fixed it by now? I'm sorry I don't have an M1 Mac so I can't find the issue from here.

    Ah I see.. That arm length mlp works by multiplying the localPosition of the elbow and hand bones. That works if the skinning of the mesh supports that kind of thing. If you have all the forearm vertices skinned only to elbow and all hand vertices to hand bone and there's no smooth blending between the two, it will not look good.

    What you can do instead of using arm length mlp, just simply reduce the scale of the upper arm bones.

    Hey,

    WaitForEndOfFrame waits until the end of the frame after Unity has rendererd every Camera. It is generally used for stuff like taking screenshots. Any change you make to Transforms, bones and stuff at that time has no visible effect because the cameras have already been rendered.

    Hey,
    Please grab this FABRIKBendGoal script (will add to next version).
    There's also a CCDBendGoal in the package for CCDIK.

    Best,
    Pärtel
     
    look001 likes this.
  48. look001

    look001

    Joined:
    Mar 23, 2017
    Posts:
    111
    Wow, thanks you so much!
     
  49. lge_kymin

    lge_kymin

    Joined:
    Feb 16, 2022
    Posts:
    3
    Hi!
    I implemented golf using FBBIK.
    The handle positions of the golf club (1) and the ball (2) are as shown in the following figure.
    I want the hand and club head are sticking and moving following golf club handle(1) and ball(2) respectively.
    upload_2022-6-15_16-4-2.png

    I succeeded in getting the club head to stick and move along the ball with FBBIK.
    upload_2022-6-15_16-4-55.png

    How can I attach and move the hand along the golf handle(1)?
     
  50. hodge47

    hodge47

    Joined:
    Apr 14, 2014
    Posts:
    25
    Hello. This is not particularly a FinalIK question as the same thing happens with other solutions such as Unity's Animation Rigging package, but I figured I'd ask the IK experts as we are only using FinalIK.

    I downloaded the Y-bot character from Mixamo for testing and added a BipedIK component to it. It worked perfectly with target position and rotation weights set to 1. This week, the character artist I'm working with sent me a character rigged in Mixamo and I dropped it in and the rotations were now reversed such as the foot folding in on itself in the idle position. So we redid the rig again in Mixamo and compared it to the downloaded Y-bot from Mixamo and we found the limb roots have an opposite rotation. So we tried a custom rig in Blender as well as the Blender addon Auto-Rig Pro each with the same results as the Mixamo rig.

    I was wondering if there is a way to get the bones from the rig to be like the downloaded character from Mixamo as their auto-rigger is the complete opposite somehow or maybe a way to compensate for the rotation? I will move ahead with the funky target rotations if needed, but I'd rather be able to use clean rotations as I'm adjusting the target transforms a lot in code. Here is a video demonstrating what I mean...



    Thank you for your time!