0% found this document useful (0 votes)
38 views36 pages

FinalIK Change Log

The Final IK Release Notes document outlines the version history and updates for the Final IK software, detailing improvements, fixes, and upgrade guides from version 0.1 to 2.1. Key enhancements include new features for VRIK, improved usability, and various bug fixes across multiple versions. The document emphasizes the importance of backing up projects before upgrading and provides integration instructions for various packages.

Uploaded by

virus672
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views36 pages

FinalIK Change Log

The Final IK Release Notes document outlines the version history and updates for the Final IK software, detailing improvements, fixes, and upgrade guides from version 0.1 to 2.1. Key enhancements include new features for VRIK, improved usability, and various bug fixes across multiple versions. The document emphasizes the importance of backing up projects before upgrading and provides integration instructions for various packages.

Uploaded by

virus672
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 36

Final IK Release Notes

Version 2.1
Upgrade Guide
Improvements
Fixes

Version 2.0 - 16.10.20


Upgrade Guide
Improvements
Fixes

Version 1.9
Upgrade Guide
Improvements
Fixes

Version 1.8 - 25.10.18


Upgrade Guide
Improvements
Fixes

Version 1.7 - 17.01.18


Upgrade Guide
Improvements
Fixes

Version 1.6.1 - 11.04.2017


Upgrade Guide
Improvements
Fixes
Changes

Version 1.6 - 07.03.2017


Improvements
Fixes
Changes

Version 1.5 - 13.10.2016


Improvements

1
Fixes
Changes

Version 1.4 - 15.06.2016


Improvements
Fixes

Version 1.3
Improvements
Fixes
Changes

Version 1.2 - 11.11.2015


Learning
Improvements
Fixes

Version 1.1 - 14.09.2015


Changes
FullBodyBipedIK
VR
Grounder
Demos
Common
Editor

Version 1.0 - 25.06.2015


Interaction System
Demos
2D
Finger Rig
VR
FullBodyBipedIK
Common
Upgrade Guide

Version 0.5 - 24.02.2015


FullBodyBipedIK
Interaction System
OVR
Documentation
Common

2
Upgrade Guide

Version 0.41 - 22.09.2014


FullBodyBipedIK
AimIK

Version 0.4 - 07.08.2014


AimIK
FullBodyBipedIK
Interaction System
Common
LimbIK
Grounder
BipedIK
FABRIK
Third Party Support
Upgrade Guide

Version 0.3 - 07.04.2014


FullBodyBipedIK
FABRIK
LimbIK
Grounder
Common

Version 0.22 - 13.03.2014


FullBodyBipedIK
AimIK
FABRIKRoot
Upgrade Guide

Version 0.21 - 20.02.2014

Version 0.2 - 19.02.2014


FullBodyBipedIK
LookAtIK
AimIK
Rotation Limits
Common
Documentation
Upgrade Guide

BETA (0.1) - 15.01.2014

3
Version 2.1

Upgrade Guide

1. MAKE A BACKUP! Open a new scene, delete “Plugins/RootMotion” and reimport. Also
reimport PuppetMaster if you had that in your project.
2. If you were using any of the integration packages, reimport them from
“Plugins/RootMotion/FinalIK/_Integration”.

Improvements

1. Added “Clip Settings” to Baker, allowing you to define AnimationClipSettings to the


baked animation clips.
2. Added “Shoulder Yaw Offset” and “Shoulder Pitch Offset” to VRIK arm settings to make
you able to tweak shoulder rest angles.
3. Added headers to VRIK, ArmIK and LegIK for better readability and parameter grouping.
4. Added integration package for Ready Player Me avatars - VRIK - Oculus calibration.
5. Added support for a head look-at target to Recoil.cs.
6. Added support for armless VRIK.
7. Added a new “Animated” locomotion module to VRIK.
8. Added the Movement Animset Pro (AS package from Kubold) integration package (VRIK
animated locomotion).
9. Added the “Use Animated Head Height Weight/Range/Blend” parameters to VRIK spine
to allow for more natural locomotion animation for 3rd person networked avatars by
inheriting vertical head bob motion from the animation while head target height is close
to head bone height.

Fixes

1. Fixed TwistRelaxer not resetting to default localRotation with Fix Transforms enabled.
2. Fixed unanimated roll bones rolling when used by the TwistRelaxer.
3. Fixed broken BipedIK inspector in Unity 2020.
4. Fixed picking up InteractionObjects while interaction is paused.
5. Fixed RotationLimitPolygonal and RotationLimitSpline Scene View tools being partially
not visible in Unity 2019 and later.
6. Fixed VRIK leg stretching not working without foot targets.
7. Fixed InteractionSystem running at different speeds with AnimatePhysics update mode.
8. Fixed a bug causing HitReaction to twitch when hitting the head of a moving character.

4
Version 2.0 - 16.10.20

Upgrade Guide

3. MAKE A BACKUP! Open a new scene, delete “Plugins/RootMotion” and reimport. Also
reimport PuppetMaster if you had that in your project.
4. If you were using any of the integration packages, reimport them from
“Plugins/RootMotion/FinalIK/_Integration”.
5. TwistRelaxer.cs was restructured to support multiple relaxers on the same body part and
TwistRelaxer components need to be set up again, sorry for the inconvenience! Find the
TiwstRelaxer, add in one or more TwistSolvers, assign the Transforms, set weight to 1
and “Parent Child Crossfade” to 0.5 to get the previous default behaviour. If you wish to
use multiple solvers, add them into the array in inverse hierarchical order - children first.

Improvements

10. Added VRIKCalibrator.CalibrateHead() and CalibrateHands() to make it easier to


calibrate avatars with arbitrary bone orientations.
11. Added VRIKCalibrationBasic.cs and “VRIK (Simple Head & Hands Calibration)” demo to
show an easier way to calibrate VRIK for the most common head & hands VR case.
12. Added support for additional AimIK pass for the head to FPSAiming.cs to support look-at
while aimWeight less than 1.
13. Added default pose and Start/Stop Solver buttons to EditorIK, improving it’s reliability
and usability. Fixed EditorIK not working with LookAtIK.
14. Added letting go with one hand functionality to PickUp2Handed.cs (InteractionSystem).
15. TwistRelaxer.cs was restructured to support multiple relaxers on the same body part.
See Upgrade Guide for more information.
16. Added VRIK PUN demo (_Integration folder).
17. Added VRIK PUN2 demo (_Integration folder).
18. Added GetYaw(), GetPitch() and GetBank() methods to V3Tools.cs and QuaTools.cs.
19. Added “Smooth Damp Time” to AimController.cs. This can be used as an alternative
target direction interpolation method (disabled by default) to interpolate yaw, pitch and
magnitude separately instead of spherical interpolation that can cause unwanted results
sometimes.
20. Added “Max Body Y Offset” to VRIK Locomotion settings. Reducing this value reduces
head bob from locomotion.
21. Updated SteamVR integration package to v2.6.1.
22. Added “Three DOF” rotation mode to InteractionTarget to allow objects to be picked up
from any angle.
23. Added the “scale” parameter to VRIK to make it work consistently with small or large
scale characters.

5
24. Added VRIK.solver.locomotion.Relax() to force VRIK to take two footsteps to realign to a
more neutral position when standing.
25. Added CCDBendGoal.cs. Add this to a GameObject you wish CCD to bend towards.

Fixes

9. Fixed a bug with Grounding.lowerPelvisWeight in some cases lifting the pelvis and
liftPelvisWeight lowering it.
10. Fixed Baker IK position/rotation baking for Animators that have parent gameobjects.
11. Fixed Baker not updating clip length when overwriting a file.
12. Fixed GrounderBipedIK spine rolling when Animator was disabled.
13. Added QueryTriggerInteraction.Ignore to all Grounder raycasts.
14. Fixed VS warnings about redundant SerializeField attributes.
15. Fixed InteractionObject.cs not using CompareTag.
16. Fixed hands lagging behind when a moving player picked up an object with the
Interaction System.
17. Fixed VRIK not rotating the pelvis correctly when Pelvis Target set and Pelvis Rotation
Weight set to 1.
18. Simplified and optimized RotationLimitHinge calculations.
19. Fixed InteractionEffector NullReferenceException when using Enter Play Mode Options.
20. Fixed Grounding.isGrounded always returning true. Fixed GrounderIK rotating the root
while not grounded.
21. Fixed FingerRig solution dependence on hand rotation.
22. Fixed VRIK rotating the upper arm bone even if arm Position/Rotation Weight is 0.

6
Version 1.9

Upgrade Guide

6. MAKE A BACKUP! Open a new scene, delete “Plugins/RootMotion” and reimport. Also
reimport PuppetMaster if you had that in your project.
7. If you were using any of the integration packages, reimport them from
“Plugins/RootMotion/FinalIK/_Integration”.
8. Dropped support for Unity 5.x (not supported by Asset Store anymore). Min supported
Unity version now is 2017.4.28f LTS. If you need a Unity5.x compatible version, please
contact developer.

Improvements

26. Improved VRIK master weight blending.


27. Added BendGoalWeight to InteractionObject.
28. Added LOD and VRIKLODController.cs to VRIK. Setting LOD level to 1 saves
approximately 20% of solving time. LOD level 2 means IK is culled, with only root
position and rotation updated if locomotion enabled.
29. Added “Root Heading Offset” to VRIK Spine settings. Enables you to change the angle
of the root relative to the HMD to turn the avatar sideways if you’d like to have an angled
stance for example when holding a rifle or boxing.
30. Added SetFootPosition() to GroundingLeg.cs. Enables you to override the animated
position of the foot and therefore use the single pass of IK already used by the Grounder
to offset or plant a foot to a world space position together with the grounding effect.
31. Changed MechSpiderLeg.cs to keep the feet rotated relative to ground normal.
32. Added RotationLimit.SetDefaultLocalRotation(Quaternion localRotation) to allow you to
define limit default local rotation by script.
33. Updated Oculus integration package to v1.37.
34. Updated SteamVR integration package to v2.2.0.
35. Added EditorIK.cs to update any IK component in Editor mode.
36. Added baseForwardOffsetEuler to the eyes of LookAtIK so clamping base direction
could be adjusted for irregularly shaped eyes.
37. Updated UMA integration package to v 2.8.1.
38. Added the Baker, a powerful new tool for baking IK to Humanoid, Generic and Legacy
animation clips.
39. Added AimIK, FBBIK and LimbIK demos for the Baker.

7
Fixes

23. Fixed Grounder’s “Overstep Fall Down” functionality in Unity 2018, where raycasts
starting from inside colliders return Vector3.zero as hit point.
24. Fixed a bug in VRIKCalibrator that did not allow to calibrate without a pelvis target.
25. Fixed arm localPosition warping when blending in/out of of VRIK weight.
26. Fixed GrounderIK twitching with AnimatePhysics update mode.
27. Fixed VRIK pelvis rotating to Pelvis Target if it assigned, but Pelvis Rotation Weight zero.
28. Fixed FingerRig solution dependence on hand rotation.
29. Fixed IKSolverTrigonometric/IKSolverLimb failing when solved on extremely small rigs.
30. Fixed VRIK arm solver elbow twisting out of hinge limit.
31. Fixed bugs in IKSolverLookAt.GetPoints() and IKSolverFullBody.GetPoints().
32. Removed all warnings generated by Final IK scripts in Unity 2018.3.
33. Moved InteractionObject initiation from Awake to Start to allow creating them in runtime.
34. Fixed VRIK thigh and calf twist rotation for characters that have no toe bones.
35. Fixed RotationLimit scene view tools not showing up in Unity 2018 versions.
36. Stopped VRIK locomotion from taking repeated steps to the same position.

8
Version 1.8 - 25.10.18

Upgrade Guide

9. MAKE A BACKUP! Open a new scene, delete “Plugins/RootMotion” and reimport. Also
reimport PuppetMaster if you had that in your project.
10. If you were using any of the integration packages, reimport them from
“Plugins/RootMotion/FinalIK/_Integration”.

Improvements

40. Added scaleMlp to VRIKCalibrator.Settings to enable you to make adjustments to


character scale.
41. Added LookAtController.cs and “LookAt Controller” demo scene. LookAtController is a
tool for LookAtIK that easily takes care of problems like smoothing weight, smooth
switching between multiple targets, smooth turning towards the target and root rotation.
42. Added an error log to VRIK that prevents it from updating when the character scale is
zero and producing NaN errors.
43. Demo character can double-jump now.
44. VRIK leg solver does not sample the animation each frame to find the bend plane any
more as it has proven to be unreliable. Instead you'll get a "Bend To Target Weight" for
the legs. You can use it to keep the bending plane locked to the hips (value of 0) or to
the rotation of the foot (value of 1) or anything in between.
45. Added legLengthMlp to VRIK, enables you to configure default leg length.
46. Added stretchCurve to VRIK’s legs for automatic and smooth stretching.
47. Added “Aim Offset” to FPSAiming.cs, that enables you to adjust the normal aiming angle
in the First Person Shooter demos.
48. Added “Shoulder Twist Weight” to VRIK arm settings, the weight of twisting the
shoulders back when arms are lifted up.
49. Added a new offset modifier and demo for FBBIK - “Penetration Avoidance”, that can be
used to keep the hands and feet from penetrating scene geometry when the character
has a very slim character collider.
50. Added a new component - ArmIK, which enables you to use VRIK’s arm solver
independently.
51. TwistRelaxer has public “Parent” and “Child” fields now, so it can be used on forearm roll
bones that are not parents of the hand bone. Will be automatically assigned if left empty.
52. Added VRIKPlatformController.cs and the “VRIK (Moving Platform Controller)” demo,
that enables you to easily move your VRIK character from platform to platform.
53. VRIK supports legless characters now.

9
54. VRIKCalibrator returns CalibrationData now, that can be used to calibrate the same
character in another scene exactly the same way.
55. Improved VRIK stability with prone/supine poses.
56. Added “OverstepFallsDown” to to Grounding solver. Disabling it keeps the foot that is
over a ledge at the root level.
57. Added the first multithreaded AnimationJob versions of Final IK solvers: CCDIKJ and
AimIKJ. Requires Unity version min 2018.2.4.

Fixes

37. Fixed avatar height changing when recalibrating VRIK.


38. Fixed a NullReferenceException in IKSolverVRArm.cs when VRIK was added in runtime.
39. Changed Update to LateUpdate in VRIKPlatform.cs to support Mecanim-animated
platforms.
40. Added FingerRig.StoreDefaultLocalState() to update the default pose used by Fix
Transforms.
41. Made it possible to manually update HandPoser and GenericPoser by calling
poser.UpdateManual();
42. Fixed VRIK “Shoulder Weight” blending issue in “Yaw Pitch” mode.
43. Fixed a bug in VRIK that moved the head off target when “Pelvis Position Weight” was
between 0 and 1.
44. Fixed a bug with calling FBBIK solver.SetLimbOrientations before FBBIK has initiated.
45. Fixed a bug with unnatural VRIK spine bending when using laying down or other
non-vertical animations.
46. Fixed a bug with unstable hip rotation with some characters using VRIK.
47. Fixed a bug with VRIKCalibrator scale when character root Y was not 0.
48. Fixed physics interpolation issues caused by GrounderQuadruped’s and GrounderIK’s
root rotation in Unity 2017.x versions.
49. Fixed errors with VRIK used on shoulderless characters.
50. Fixed InteractionSystem not working when FBBIK was updated manually.
51. Fixed VRIKCalibrator failing to calibrate the head right if the character was rotated at the
time of calibration.
52. VRIK locomotion footstep rotations will not get messed up when ik.solver.Reset() called
in the middle of walking animation.
53. Grounders will not raycast against trigger colliders.

10
Version 1.7 - 17.01.18

Upgrade Guide

1. MAKE A BACKUP! Open a new scene, delete “Plugins/RootMotion” and reimport. Also
reimport PuppetMaster if you had that in your project.
2. If you were using any of the integration packages, reimport them from
“Plugins/RootMotion/FinalIK/_Integration”.

Improvements

1. Simplified the “Aim Swing” demo, added AimSwing.cs.


2. “Humanoid Third Person” controller is able to turn on spot while in Strafe mode.
3. Made MotionAbsorb an OffsetModifier, will enable you to set it’s mode to
“PositionOffset”, in which it will use effector.positionOffset and enable you to keep using
effector position and rotation to override whatever it is doing or use it seamlessly with the
InteractionSystem.
4. TwistRelaxer will work now also if the hand bone is not parented to the twist bone.
5. Added “Twist Angle Offset” to TwistRelaxer, can be used to adjust the default twist
rotation of the bone it is used on.
6. Added the VRIK LeapMotion integration package.
7. Added spineTargetOffset to IKSolverLookAt.cs. Can be used to make the chest look at a
different target position.
8. Added VRIKCalibrator.cs and the “VRIK (Calibration)” demo scene. Enables you to more
easily set up VRIK with up to 6 trackers.
9. Added UnityEvent implementation to interaction events.
10. Added rotationWeight to FingerRig’s fingers.
11. Added “Rotation DOF” to FingerRig’s fingers, can be used to set rotational degrees of
freedom to 1 for the fingers to enable rotation around a single axis instead of all 3.
12. Added armLengthMlp to VRIK, enables you to configure default arm length.
13. Added stretchCurve to VRIK’s arms for automatic and smooth stretching.
14. Added “Move Body Back When Crouching” to VRIK’s spine settings. Enables you to
better adjust the crouching pose.
15. Added “Rotate Chest By Hands” to VRIK’s spine settings. Defines the amount of rotation
applied to the chest based on hand positions.
16. The spine bends more naturally now, especially when “Maintain Pelvis Position” is set to
a higher value.
17. Added blocking functionality to CameraController.cs.

11
18. Added AimController.cs - a new tool for AimIK that easily takes care of problems like
smoothing weight, smooth switching between multiple targets, smooth turning towards
the target, root rotation and using recoil/reload animations with AimIK.
19. Added the VRIK (Hit Reaction) demo that uses HitReactionVRIK for procedural hit
reactions.

Fixes

1. Fixed a Null Reference Exception when adding FBBIKHeadEffector in runtime.


2. Fixed a bug with the blending of VRIK “Bend Goal Weight”.
3. Fixed a bug with the InteractionSystem not resetting effectors right when another
interaction was called before the effectors were fully reset.
4. Fixed a bug with FABRIK bones drifting apart after a while when “Fix Transforms”
disabled and rotation limits used.
5. Fixed a bug with VRIK arm bend goal accuracy.
6. Fixed a bug with VRIK “Max Root Angle” locked to 25.
7. Fixed a bug with using VRIK leg bend goals messing up leg solver results.
8. Fixed a bug with InteractionSystem LookAt not working smoothly with AnimatePhysics
Animator update mode.
9. Fixed a bug with VRIK producing different results when rotated upside down.
10. InteractionSystem will update it’s effectors directly before FBBIK update instead of
LateUpdate so it always has the latest transformations to work with even if other IK has
been solved before FBBIK.
11. Fixed the demo character controller rotation bug in Unity 2017.2.

12
Version 1.6.1 - 11.04.2017

Upgrade Guide

1. MAKE A BACKUP! Open a new scene, delete “Plugins/RootMotion” and reimport. Also
reimport PuppetMaster if you had that in your project.
2. If you were using any of the integration packages, reimport them from
“Plugins/RootMotion/FinalIK/_Integration”.

Improvements

1. Added a target slot to BipedIK’s Pelvis.


2. Added “Chest Goal” and “Chest Goal Weight” to VRIK. Used for turning the chest
towards a world space position.
3. VRIK chest rotation offset will not be weighed down by “Chest Rotation Weight”
anymore.
4. CharacterControllerThirdPerson will not slide down on slopes anymore.

Fixes

1. Safeguarded Grounder from a CapsuleCast bug in Unity that might cause it to return
NaN for hit.point when cast against large colliders. This used to cause “Invalid
IKEffector.positionOffset (contains NaN)!” errors in IKEffector.cs.
2. Fixed editor script obsolete API warnings in Unity 5.6.

Changes

1. VRIK “Chest Rotation Weight” renamed to “Neck Stiffness”.

13
Version 1.6 - 07.03.2017

Improvements

1. Added footstep events to VRIK locomotion.


2. Added VRIK support to the Leap Motion integration package.
3. Added a scene with VRIK set up for Oculus Rift
(Assets/Plugins/RootMotion/FinalIK/_Integration/Oculus.unitypackage).
4. Added a scene with VRIK set up for Steam VR
(Assets/Plugins/RootMotion/FinalIK/_Integration/Steam VR.unitypackage).
5. Added the “VRIK (Moving Platform)” demo scene to help with VR characters set up on
moving objects.
6. Added the “VRIK (Twist Relaxers)” demo scene to help with updating twist bones after
VRIK has solved.
7. Added “Min Head Height” to VRIK spine settings. The head of the avatar will not be
lowered past that even if the player is lying down on the ground.
8. VRIK can now work with any root rotation, meaning you can use it on walls, ceilings or
while floating in space.
9. VRIK will update footstep rotation while the foot is stepping.
10. Added relaxLegTwistMinAngle and relaxLegTwistSpeed to VRIK locomotion. That
rotates the footstep while the leg is not stepping to relax the twist rotation of the leg.
11. Added the “VRIK (Grounder)” demo scene.
12. VRIK will work with characters that have no chest bone.
13. Added “Pelvis Rotation Weight” to VRIK.
14. Added a new component, LegIK, an analytic solver for a 4-segment leg.
15. Added the “Leg IK” demo scene.
16. Removed “Parent”, “Child”, “Twist Axis” and “Axis” from TwistRelaxer, they will be
calculated automatically for easier setup.

Fixes

1. Fix to VRIK arm solver, blends out all changes to arm bone rotations with arm position
weight.
2. Updated the Leap Motion integration package.
3. Moved CameraControllerInspector to “Shared Demo Scripts” so FIK could be imported
without demo assets.
4. InteractionSystem will not use trigger colliders unless they have an InteractionTrigger
component.
5. Fixed InteractionTrigger scene view GUI box for Retina screens and Unity 5.4.
6. Fixed a bug with VRIK locomotion when setting Time.timeScale to 0.

14
7. IKExecutionOrder will not ignore Fix Transforms and will work with Animate Physics
update mode.
8. RotationLimit will not set default orientation in Awake if SetDefaultLocalRotation() has
been called.
9. Fixed a NullReferenceException when adding FBBIKHeadEffector in runtime.
10. Fixed a bug with VRIK that did not blend shoulderRotationWeight properly if arm position
weight was less than 1.
11. Fixed a bug with FBBIK limb mapping accuracy.
12. No more Array out of range error when calling VRIK.solver.Reset before the solver has
initiated.
13. Fixed a VRIK spine twitch when working with super-human sized characters.
14. Fixed a bug with TwistRelaxer moving the hand away from it’s position when the twist
bone was not aligned orthogonally to the arm.

Changes

1. Removed obsolete virtual reality demos and assets. Use this link if you still need them
for reference.
2. Added relaxLegTwistMinAngle and relaxLegTwistSpeed to VRIK locomotion. Set
relaxLegTwistSpeed to 0 to maintain FIK 1.5 behaviour.
3. Renamed “VRIK (Beta)” demo scene to “VRIK (Basic)”.
4. Updated minimum supported Unity version to 5.3.6f1.
5. Moved Plugins/Editor/RootMotion to Plugins/RootMotion/Editor.

15
Version 1.5 - 13.10.2016

Improvements

1. Added the “Two Handed Prop” demo scene and script.


2. Added the “Third Person Shooter (Recoil)” demo scene, update
AnimatorController3rdPersonIK.cs to support Recoil.
3. Added a “Hands Pull Body” toggle to FBBIKHeadEffector. Disabling it will give full priority
to the head effector and the hands will not be able to pull the head away. Also, disabling
it will significantly improve the performance.
4. Added VRIK (Beta), a new full body solver designed specifically for contemporary VR
requirements in inverse kinematics.

Fixes

1. Fixed a bug that broke LookAtIK when the bones assigned to it were removed and other
bones assigned.
2. Extended Posers from SolverManager, which will make them work properly with
AnimatePhysics.
3. Added “Aim IK Solved Last” toggle to Recoil.cs, which will enable the procedure to be
used if AimIK is solved after FBBIK.

Changes

1. Removed “Time Step” from all solvers.

16
Version 1.4 - 15.06.2016

Improvements

1. Added LeapMotion (Orion) integration package to


Plugins/RootMotion/FinalIK/_Integrations.
2. Made FPSAiming work with Recoil, added the “First Person Shooter (Recoil)” demo
scene.
3. Added the “Head Effector (Hand Controllers)” demo scene.
4. Added TwistRelaxer.cs, a tool for relaxing twist bones after solving IK.

Fixes

1. Fixed Grounders moving the feet of the characters to Vector3.zero in the first frame.
2. GrounderQuadruped can now be used on a spherical planet. Update
GrounderQuadruped.gravity to always point towards the center of the planet. The
magnitude of the vector is irrelevant.
3. Fixed a bug with the CharacterThirdPerson that enabled jumping in air when the ground
was too far.
4. Aded public bool TriggerInteraction(int index, bool interrupt, out InteractionObject
interactionObject) and public bool TriggerInteraction(int index, bool interrupt, out
InteractionTarget interactionTarget) to InteractionSystem as an easy way to retrieve
InteractionObjects/Targets when triggering interactions.
5. Fixed some bugs with GrounderQuadruped root rotation.
6. Fixed a bug with FBBIKHeadEffector ignoring body, thigh and shoulder effector
positionOffsets.
7. CharacterThirdPerson.cs now supports arbitrary gravity.

17
Version 1.3

Improvements

1. Simplified FBIKBoxing.cs script.


2. HeadEffector will use FBBIK.fixTransforms, meaning you will be able to use it with
unanimated characters.
3. Rotation Limits now support multiple object editing.
4. Added the Playmaker actions to “Plugins/RootMotion/FinalIK/_Integration” as a
unitypackage. Double-click to import the actions when you have Playmaker already
imported.
5. Added a seated example to the “Head Effector” demo.

Fixes

1. You can now easily move the root to where the ragdoll is before getting up, when using
the RagdollUtility. See the RagdollUtilityDemo.cs script.
2. InteractionSystem will not change any FBBIK settings that not used by the
InteractionObject.
3. FBBIKHeadEffector now accounts for FBBIK solver weight and can be blended out
correctly
4. LimbIK.avatarIKGoal can now be changed after the solver has initiated.
5. Removed tooltips from arrays in InteractionObject and the Grounders. A bug in Unity
causes tooltipped arrays to fail the Editor sometimes.
6. Fixed a bug that didn’t initiate the IK solver when the IK component was disabled in
Awake.
7. FixTransforms will not be applied when solver weight <= 0f.
8. InteractionSystem will ignore InteractionTriggers that are disabled or deactivated.
9. Renamed InteractionSystem.collider and InteractionSystem.camera to get rid of new
keyword warnings when building projects.
10. Changing InteractionObject curve lengths will now update interaction length as
expected.

Changes

1. ShoulderRotator.cs moved to RootMotion.FinalIK namespace.

18
Version 1.2 - 11.11.2015

Learning

1. All components are now using the HelpURL attribute so you can get to the best learning
resource by clicking on the help button of each component.

Improvements

1. HandPoser and GenericPoser now have a “Fix Transforms” option like the IK
components. That will help with doing interactions with unanimated characters.
2. MechSpider can now be easily scaled by changing the MechSpider.scale value.
3. CharacterThirdPerson now also rotates the character around the Y axis with moving
platforms and transfers root rotation to the controller.
4. Reduced package size by 20%, improving downloading and importing times.
5. Made Final-IK compatible with PuppetMaster.

Fixes

1. Fixed empty warning when adding FBBIK in runtime.


2. InteractionSystem LookAt function continue looking at objects when the interaction is
paused.
3. Fixed a bug with FABRIKRoot not considering FABRIK chain targets.
4. Fixed error message when adding GrounderFBBIK.
5. Fixed RotationLimitSpline Scene View tool.
6. Removed warnings in Unity 5.3.

19
Version 1.1 - 14.09.2015

Changes

1. IK.Disable() is deprecated. Use enabled = false instead.


2. Moved AimPoser, Amplifier, BodyTilt, HitReaction, Inertia, OffsetModifier, OffsetPose and
Recoil to the RootMotion.FinalIK namespace.
3. Converted folder structure to :
Main Contents: Assets/Plugins/RootMotion/…
Editor Scripts: Assets/Plugins/Editor/RootMotion/...
This will make Final IK available for all compilation passes/languages, speed up
compilation times and make it easier for other Asset Store developers to create
compatible tools.

FullBodyBipedIK

1. FBBIK solver now survives assembly reload and can be updated in editor mode.
2. Fixed blending solver weight when using bend goals.
3. Added public bool ReferencesError(ref string errorMessage) and public bool
ReferencesWarning(ref string warningMessage) so you can check if the FBBIK
references are OK from your own scripts.
4. Fixed RagdollUtility for Unity 5.2 (worked around a 5.2 Mecanim bug)

VR

1. VR demos now check if “Virtual Reality Supported” is enabled in the Player Settings to
avoid confusion.
2. Renamed OculusSetup to VRSetup and script names containing OVR to VR to get rid of
device discrimination.

Grounder

1. Fixed a bug with GrounderFBBIK that created problems when updating FBBIK manually
in FixedUpdate.
2. Fixed a bug with the “Third Person Humanoid” Animator Controller that appeared when
jumping up from idle animation.

20
3. Added Grounder.Reset() that enables you to teleport a grounded character without
problems.

Demos

1. Fixed joint ranges of the ragdolls in “Mapping To Ragdoll” and “Ragdoll Utility”.
2. Fixed a bug in MechSpiderLeg.cs that might have set footsteps to wrong height.
3. MechSpider.cs “Min Height” parameter works as expected now.

Common

1. Added video tutorial links to the context menu of FullBodyBipedIK, AimIK and
InteractionSystem components (others coming).

Editor

1. Reviewed the warning system. Solver setup warnings will be displayed in a warning box
in the Inspector, no more “What’s wrong?” button logging in the console.

21
Version 1.0 - 25.06.2015

Interaction System

1. Fixed a bug with picking up objects, where they were parented with a random offset.
2. When the InteractionObject is destroyed in the middle of interaction, will smoothly reset
the interacting effectors to defaults.
3. Fixed a bug with the InteractionSystem.speed value, it can now be used without
problems when pausing/picking up objects.

Demos

1. Restructured the 3rdPersionDummy demo. Made it use a simple upper-body aiming


pose instead of 2 wasteful FBBIK passes.
2. Restructured CharacterThirdPerson, made the character controllers in the Grounder
demo smoother and more responsive.
3. Removed CharacterControllerSimpleAim.cs (it is not needed anymore as IK solvers
have “Target” properties).
4. Added the “Ragdoll Utility” demo scene.
5. Improved the “Mapping To Ragdoll” demo scripts to support smoothly blending in and out
of the mapping.
6. Converted the “Aim Weapon” demo to Mecanim.
7. Deleted CarryBoxDemo.cs, just assigned the hand IK targets to the effector target slots.
8. Added “CCD IK 2D” and “FABRIK 2D” demo scenes.
9. Added the “Finger Rig” demo scene.
10. Converted the “Hit Reaction” demo to Mecanim.
11. Converted the “Full Body FPS” demo to Mecanim.
12. Converted all Viking demos to Humanoid.
13. Removed Generic Dummy and his animations and Animator Controllers, all using
Humanoid now.
14. Cleaned up many unused demo assets, reducing considerably the size of the package
and import time.
15. Renamed most of the demo assets for better readability and consistency.
16. Removed the old and very confusing Legacy-based demo character controllers
(CharacterControllerBase.cs, CharacterControllerDefault.cs,
CharacterControllerLegacy.cs, CharacterAnimationSimpleLegacy.cs). Replaced them all
with SimpleLocomotion.cs that works on Mecanim.

22
2D

1. Added a “2D” toggle to all Heuristic solvers (CCD, Aim, FABRIK). If toggled, the chains
will be solved only on the XY plane, meaning bones will be rotated around the Z axis
only.

Finger Rig

1. Created the FingerRig component. Add it to the hand GameObject, fill in the Fingers (or
right-click on the component header and have them automatically detected). See the
“Finger Rig” demo scene.

VR

1. Updated all FinalIK VR Demos and scripts to Unity5.1, merged the external VR package
into the main project.

FullBodyBipedIK

1. Auto-detecting bone references for Humanoid characters is more reliable (using


Animator.GetBoneTransform()).
2. Fixed a bug with FBBIKHeadEffector, that did not disable it’s behaviour when the
component was deactivated or disabled.
3. Fixed ShoulderRotator.cs to account for FBBIK solver weight.
4. Fixed a bug with limb mapping, where the right shoulder was dislocated under extreme
solver stress.
5. FBBIKHeadEffector.cs can now be added in runtime without errors.

23
Common

1. Added RagdollUtility.cs that can be used to smoothly blend a character between


animated and ragdoll modes. It also enables you to apply IK to make kinematic
adjustments on a ragdoll pose (see the “Ragdoll Utility” demo scene).
2. Moved some demo assets (that will be also used in other packages in the future) to
RootMotion/Shared Demo Assets.
3. Moved HandPoser.cs, GenericPoser.cs, IKExecutionOrder.cs to the RootMotion.FinalIK
namespace.

Upgrade Guide

1. Backup your project before upgrading!


2. Open a new empty scene, remove the existing RootMotion folder, reimport from
the Asset Store.
3. Namespace RootMotion.FinalIK.Demos was renamed to RootMotion.Demos to support
sharing demo scripts with other RootMotion packages in the future. You will have to
replace “using RootMotion.FinalIK.Demos;” with “using RootMotion.Demos” in your own
scripts if you are referring to any of the demo scripts.

24
Version 0.5 - 24.02.2015

FullBodyBipedIK

1. Added the FBBIKHeadEffector script and the Head Effector demo scene
2. Added the “Soccer Kick” demo scene
3. Added the “Recoil” demo scene and scripts
4. Added the AnimationWarping script. This enables you to warp an effector from animation
space to world space (see the “Soccer Kick” demo).

Interaction System

1. Restructured InteractionTrigger. Each trigger can now specify the ranges for both
character position and camera position for triggering interactions. This is most useful for
VR and first person rigs.

OVR

1. Made a separate package containing OVR demos and helpful scripts about full body
mapping to the head controller, aiming and interactions.

Documentation

1. Added Search to the Script Reference.

Common

1. Moved all Editor scripts to RootMotion/FinalIK/Editor and RootMotion/Editor folders to


make things easier for Javascript users
2. Added tooltips to the Interaction System and Grounder components and reusable demo
scripts
3. Removed or made unique all conflicting assets from Unity’s Sample Assets package
4. Restructured character controller scripts in the Grounder demo
5. Fixed a bug with MechSpiderLeg.cs

25
6. Removed skyboxes to reduce size of package

Upgrade Guide

1. Backup your project before upgrading!


2. Open a new empty scene, remove the existing RootMotion folder, reimport from
the Asset Store.
3. All InteractionTriggers will be broken because of restructuring and have to be filled in
again. Unfortunately this was unavoidable.

26
Version 0.41 - 22.09.2014

FullBodyBipedIK

1. Redesigned the Hit Reaction component and demo scene


2. Fixed a bug that did not allow for scaling characters after they had been initiated

AimIK

1. Fixed a bug with the solver that always used Vector3.forward as the Pole Axis
2. Added the AimIK Pole demo scene

27
Version 0.4 - 07.08.2014
AimIK

1. Fixed error when Clamp Weight was 1


2. Added polePosition, poleWeight and poleTarget to the solver. This enables us to keep
another axis of the Aim Transform oriented at a position in world space

FullBodyBipedIK

1. About 20% performance improvement


2. Fixed initiation error when manually setting up the bone references in the Editor
3. Improved bend direction stabilization
4. Added FBIKChain.push and FBIKChain pushParent
5. New custom editor
6. FBBIK iterations can be now set to 0. In that case, full body effect is disabled and only
trigonometric passes will be calculated.
7. Added effector target transforms. You can now assign them in the Editor or write
ik.leftHandEffector.target = transform. FBBIK will automatically set effector position and
rotation to match the target transform’s. It will overwrite IKEffector.position = something.
8. Added the Full Body FPS demo scene and scripts
9. Added the Pendulum demo scene to demonstrate how a character could be mapped to
a ghost ragdoll with FBBIK

Interaction System

1. InteractionObject now also works with Legacy


2. Icons for all Interaction System components
3. Added Push and PushParent to InteractionObject weight curve types
4. All InteractionSystem methods now return a bool value notifying if the operation was
actually carried out or not. So if StartInteraction() returns false, the interaction did not
start (maybe because the effector was already in interaction).
5. Integrated InteractionLookAt to IntegrationSystem to reduce the number of components.
All used InteractionLookAt components need to be removed, Unity will give a warning if it
finds any.
6. Added InteractionObject.WeightCurve.Type.PoserWeight. That will be used to determine
weight of the hand posers.
7. Added picking up spherical objects to the Interaction PickUp2Handed demo
8. Restructured InteractionObject to add events that are easier to understand.

28
Common

1. Added IKExecutionOrder for easy editing of the order in which the IK components
update their solvers.
2. All components of Final IK now have “User Manual” and “Script Reference” buttons in
their context menu.
3. All component custom inspectors have a warning box now to inform you of
invalid/incomplete setups without spamming the console.
4. Many bugfixes for custom inspectors
5. Revised component menu structure
6. Improved scene view handle and button scaling
7. Added range sliders to inspectors
8. Fixed the bug with IK components that found the wrong Animator/Animation component
from the character hierarchy to get the Animate Physics value from
9. Improved the MechSpider demo, the spider is now capable of climbing vertical surfaces

LimbIK

1. Changed IKRotation to match the orientation of the last bone, like FBBIK
effectorRotation
2. SetBendGoalPosition now takes a weight parameter.
3. Added the “Goal” bend modifier that allows you to assign a bend goal Transform.

Grounder

1. Small fixes, Grounder components can be added in runtime without errors


2. Added lowerPelvisWeight and liftPelvisWeight to the Grounding solver
3. Added horizontal wall running to the demo scene
4. Enabled strafing for the biped character controller in the demo scene (switch Move Mode
to Strafe)
5. Added OnPreGrounder and OnPostGrounder delegates to the Grounder components

BipedIK

1. Simplified Pelvis constraints. Instead of bipedIK.solvers.pelvis.positionConstraint.position


you can now use bipedIK.solvers.pelvis.position. Same with positionWeight,
positionOffset, rotation, rotationWeight and rotationOffset.

29
FABRIK

1. 2-3 times faster constrained FABRIK chains.


2. Removed IKSolverFABRIK.updateBoneLengths. It will always update bone lengths and
axes now, making it possible to skip animated bones in the hierarchy.

Third Party Support

1. Playmaker actions for all IK components and the Interaction System

Upgrade Guide

1. Backup your project before upgrading!


2. LimbIK IKRotation has been changed to match the orientation of the last bone like
FBBIK effectorRotation. If you are using LimbIK or BipedIK somewhere, you will have to
rotate the targets to match the exact desired rotations of the hand bones. This change
will simplify setting up IK targets in the future (just copy the hand bone, pose it and use it
as the target).
3. If you have used BipedIK pelvis constraints, you need to change
bipedIK.solvers.pelvis.positionConstraint.position to bipedIK.solvers.pelvis.position.
Same with positionWeight, positionOffset, rotation, rotationWeight and rotationOffset.
4. Integrated InteractionLookAt to IntegrationSystem to reduce the number of components.
All used InteractionLookAt components need to be removed, Unity will give a warning if it
finds any.
5. All InteractionObjects will need to specify PoserWeight curve or multiplier if you wish to
use HandPosers.
6. Restructured InteractionObject to an event based system. Some properties like
triggerTime, releaseTime, the animations and message recipients will have to be
reassigned for the events.

30
Version 0.3 - 07.04.2014
FullBodyBipedIK

1. Added OffsetEffector.cs and demo scene


2. Added Interaction Walls demo scene and script
3. Fixed FixTransforms bug that was causing some twitching on some unanimated rigs
4. Improved spine mapping performance and accuracy. Not all spine bones need to be
included in the spine references. It works the fastest if spine length is 2, first bone in the
spine is the root node and the other is the last spine bone.
5. Improved solver weight blending. You can now weigh out the solver without dislocating
the limbs even when the effectors are pinned
6. Improved the custom inspector and the validation of the biped references.

FABRIK

1. Improved solver stability under constraints.

LimbIK

1. Animated bones can be skipped in the hierarchy when assigning bones for LimbIK and
TrigonometricIK. The last bone will still be solved to the correct position.

Grounder

1. Added the GrounderFBBIK, GrounderBipedIK, GrounderIK and GrounderQuadruped


components and the Grounder demo scene.

Common

1. Added OnPreInitiate, OnPostInitiate, OnPreUpdate and OnPostUpdate delegates to all


IK solvers.
2. IK Component inspectors draw the scene view handles for disabled IK components
3. All IK components not will look up the hierarchy to find the first Animation/Animator
component to know if animatePhysics is on or off for the character.
4. Improved CameraController demo script

Upgrade Guide

1. Backup your project before upgrading!

31
Version 0.22 - 13.03.2014
FullBodyBipedIK

1. ShoulderRotator now works for characters that have animatePhysics enabled.


2. Added BipedLimbOrientations. It is now very easy to fix limb bending directions for UMA,
3ds Max and other skeleton types if necessary
(ik.solver.SetLimbOrientations(BipedLimbOrientations.UMA);). Removed
IKConstraintBend.SetBendDirection() and IKMappingLimb.SetBendDirection().
3. Switched FBBIK limbs from 1DOF joints to 3DOF joints. This does not enforce the limbs
to behave like hinge joints anymore and will allow for lossless solving and mapping of
the limbs, meaning that if you have FBBIK on with 0 effector weights, the animation will
remain the same.
4. Removed IKConstraintBend.BendBone because it is not necessary anymore after
switching to 3DOF joints.
5. Restructured FBBIK chain structure to remove object composition cycle. This change is
required for upgrading to Unity 4.6 (Beta).

AimIK

1. Added the Aim Swing demo scene.

FABRIKRoot

1. Restructured to remove object composition cycle. This change is required for upgrading
to Unity 4.6 (Beta).

Upgrade Guide

1. Backup your project before upgrading!


1. IKConstraintBend.BendBone was removed, if you have any code using it, just delete it,
will not be necessary anymore.
2. FullBodyBipedIK chain structure was restructured, so all used FBBIK components have
to be reinitialized. Just right-click on the FBBIK coponent and select Reinitiate from the
context menu. Pull and Reach values of the chains will reset to defaults.
3. FABRIKRoot was restructured and the chains have to be rebuilt in the inspector.

32
Version 0.21 - 20.02.2014

1. Removed Button.cs, a relic testing script that was unused and not namespaced.

33
Version 0.2 - 19.02.2014
FullBodyBipedIK

1. Better scaling of the effector handles (for extra large/small characters)


2. Fixed a bend constraint bug that occured with very tiny characters
3. Added shortcuts to limb IK mappings (IKSolverFullBodyBiped.leftArmMapping,
IKSolverFullBodyBiped.rightArmMapping, …)
4. Added IKMappingLimb.weight for spherical interpolation of the limbs and for the
possibility of disabling the effect of IK for a limb.
5. Added reach smoothing modes (FBIKChain.reachSmoothing).
6. Added IKSolverFullBodyBiped.GetLimbMapping(FullBodyBipedEffector).
7. Added IKConstraintBend.SetBendDirection() and IKMappingLimb.SetBendDirection() to
enable you to change the bending direction of the limb.
8. Added Amplifier and a demo scene for it.
9. Added OffsetPose.Apply(IKSolverFullBodyBiped solver, float weight, Quaternion
rotation)
10. Fixes to Inertia deltaTime issues.
11. Removed IKEffector.Mode, you can use IKEffector.maintainRelativePositionWeight now
for smooth blending between the former MaintainAnimatedPosition and
MaintainRelativePosition
12. Added OffsetModifier that will be the base abstract class for Inertia, BodyTilt, Amplifier,
EffectorOffset and all other FBBIK effector positionOffset modifiers in the future.
OffsetModifier works with animatePhysics, uses delegates safely and makes it easy to
apply limits to the offset. It will also make it easier for you to create your custom offset
modifiers, check out EffectorOffset.cs.
13. Added the TerrainOffset demo that was used to make the AimIK - Redirecting Animation
tutorial.
14. Fixed IKSolverLookAt.SetChain. The LookAt solver now works with no head and nulls
can be passed to SetChain.
15. Added GenericPoser, which is similar to HandPoser, but enables you to pose hierarchies
that have a different number of bones.
16. Added the Interaction System and with it 3 demo scenes: Interaction, Interaction
Character2Character and Interaction PickUp2Handed.

LookAtIK

1. Improved IKSolverLookAt. It now looks better with animations that have strong amplitude
on the spine such as running and sprinting.

34
AimIK

1. RotationLimits can be used on the Aim Transform of AimIK now.

Rotation Limits

1. Fixed RotationLimitAngle twist limit when swing limit is 0.

Common

1. Added V3Tools to help dealing with vector algebra.


2. Added Fix Transforms option to all the IK components. Its now possible to use FBBIK
and BipedIK with no Animation/Animator component. With Fix Transforms set to true,
there will bo more issues with unanimated bones.
3. Clamped all solver weights to 0-1.

Documentation

1. Updated User Manual and Script Reference to 0.2


2. Added diagrams to the Script Reference

Upgrade Guide

1. Backup your project before upgrading!


2. The new Fix Transforms option for IK components will be defaulted to true. You can turn
it off for a small performance gain on solvers you don’t need it for. It will also make any
unanimated IK chain reset to it’s initial pose in each Update before solving, so if you
need additive solving of your CCD/FABRIK/FABRIKRoot chains, turn it off.
3. IKEffector.Mode was changed to IKEffector.maintainRelativePositionWeight, so if you
used MaintainRelativePosition anywhere, you will have to change it to
effector.maintainRelativePositionWeight = 1.
4. Changes to BodyTilt behaviour, you may need to adjust the OffsetPoses for tilting.

35
BETA (0.1) - 15.01.2014
Initial Release

36

You might also like