IKFK Solver
Download File:
For 3ds max 2010 to 2016.
Source Code:
Installation:The zip file contains several folders for each version of 3ds max, go to the folder corresponding to your 3ds max version and extract the files in the plugins folder of your max root directory, restart max.
Description:This is a solver that enables the animator the use of Both IK (inverse kinematics) and FK (forward kinematics) in the same hierarchy, useful for all kind of character limbs. The animator can easily switch between the modes using the IKFKBlend value, a value of 0.0 sets the hierarchy in forward kinematics Mode, that means that the movement of each node is inherited to its child, in this mode the animator can easily define arcs of movements. A value of 100 set the hierarchy in inverse Kinematics mode, that means that the nodes will try to reach the position of the IKGoal helper, in this mode the animator can easily attach the foot or the hands of the character to the ground or other objects.
The animator can interact with both modes without changing the IKFKBlend value, by rotating the FK nodes (or bones) or by moving the IKGoal Helper. The solver automatically match both IK and FK values each time that the FK or IK buttons are pressed or when the animator moves the IKGoal or rotates the FK Nodes. Other matches are done depending on the operation in progress. The solver can use a float value to set the orientation of the hierarchy (Swivel Angle) or use a target node instead. The solver has scaling and stretching features as well. The way of scaling the hierarchy in FK mode is by using the Scale Mult Value, when this value is in 100 the hierarchy will be in its original size, if this value is increased or decreased it will shrink or grow the size of the hierarchy respectively. The way of scaling the hierarchy in IK mode is setting the IKStretch value to 100 and pulling the IK Goal a distance greater than the length of the hierarchy. the Scale Mult and the IKStretch are automatically matched every time that the animator switches modes if the Match Scale Multiplier is on. There are some rotation values that are called preferred angles, these values are used to define the orientation where the hierarchy bends. The Preferred angles can be changed interactively by rotating the FK nodes. |
Settings:
IKFK Solver Properties:
IKFKBlend: This value control the blend within both modes, a value of 0.0 means that the solver is in FK Mode, and a value of 100 means that the solver is in IK Mode.
FK and IK Buttons: These buttons sets the IKFKBlend value to 0.0 and 100.0 respectively and makes a match of both modes.
Swivel Angle: This values controls the orientation of the hierarchy.
Scale Mult: This values multiplies the size of the hierarchy (grows or shrinks its size).
IK Stretch: This value controls how much effect has the IK Stretching (scaling the hierarchy by pulling the IKGoal), if the value is 0.0 there is not any stretching effect.
FK and IK Buttons: These buttons sets the IKFKBlend value to 0.0 and 100.0 respectively and makes a match of both modes.
Swivel Angle: This values controls the orientation of the hierarchy.
Scale Mult: This values multiplies the size of the hierarchy (grows or shrinks its size).
IK Stretch: This value controls how much effect has the IK Stretching (scaling the hierarchy by pulling the IKGoal), if the value is 0.0 there is not any stretching effect.
IKFK Solver Options:
Pick Target: With this feature you can select the target of the orientation of the hierarchy (it'll replace the job done by the Swivel Angle value).
Pick Goal Parent: With this feature you can select a parent of the IKGoal Helper in order to include it in the IK-FK matching/switching system. It is useful to setup reverse foots that can interact with the solver (the object has to be a parent of the IKGoal node).
Match Scale Multiplier: if this option is on the solver will match the Scale Mult and IKStretch value every time the user switches modes.
Match Main Pref Rotation: if this option is on the solver will match the preferred rotation of the main fk node every time that the user moves the solver (using an IK or FK node), the main preferred rotation controls in which angle the solver will flip if a target node is not used.
Match Sec Pref Rotation: if this option is on the solver will match the preferred rotation of the second fk node every time that the user moves that node, the secondary preferred rotation controls in which angle the solver bends.
Match Treshold: This threshold prevents unintentionally changes of the preferred angles, those values will only change if the angle of rotation of the second FK node in regards to the first FK Node is greater than the threshold.
Show All Nodes Keys: If this option is on every node will display the key frames of all the nodes of the solver in the track bar when selected, this is useful to move , copy or delete keys created by the solver without the need of selecting all the nodes, this can be overridden using the Current Transform Key Filter.
Display Goal Line: Displays a line that goes from the first FK Node to the IKGoal Helper.
Display Target Line: If there is a target node selected a line will be displayed from the position of this node to the position of the second FK node.
Pick Goal Parent: With this feature you can select a parent of the IKGoal Helper in order to include it in the IK-FK matching/switching system. It is useful to setup reverse foots that can interact with the solver (the object has to be a parent of the IKGoal node).
Match Scale Multiplier: if this option is on the solver will match the Scale Mult and IKStretch value every time the user switches modes.
Match Main Pref Rotation: if this option is on the solver will match the preferred rotation of the main fk node every time that the user moves the solver (using an IK or FK node), the main preferred rotation controls in which angle the solver will flip if a target node is not used.
Match Sec Pref Rotation: if this option is on the solver will match the preferred rotation of the second fk node every time that the user moves that node, the secondary preferred rotation controls in which angle the solver bends.
Match Treshold: This threshold prevents unintentionally changes of the preferred angles, those values will only change if the angle of rotation of the second FK node in regards to the first FK Node is greater than the threshold.
Show All Nodes Keys: If this option is on every node will display the key frames of all the nodes of the solver in the track bar when selected, this is useful to move , copy or delete keys created by the solver without the need of selecting all the nodes, this can be overridden using the Current Transform Key Filter.
Display Goal Line: Displays a line that goes from the first FK Node to the IKGoal Helper.
Display Target Line: If there is a target node selected a line will be displayed from the position of this node to the position of the second FK node.
Maxscript properties and methods:
The following method is used to create the solver:
createIKFK firstNode lastNode
The following properties and methods can be accessed through $objectName.controller:
createIKFK firstNode lastNode
The following properties and methods can be accessed through $objectName.controller:
Properties:
These are the preferred rotation values, you can change them in order to change orientation where the hierarchy bends. (These parameters are only available in FK Nodes)
.PrefRotX (Preferred_Rotation_X) : angle
.PrefRotY (Preferred_Rotation_Y) : angle
.PrefRotZ (Preferred_Rotation_Z) : angle
This is the controller that defines the transform of the FK Nodes. (This parameter is only available in FK Nodes).
.FKSubControl : transform
This is the controller that defines the transform of the IK Nodes (IK Goal and IK Target).
(This parameter is only available in FK Nodes).
.IKSubControl : transform
These control their respective values.
.MatchMainPrefRotation : boolean
.MatchSecPrefRotation : boolean
.MatchScaleMult : boolean
.ParentSpace : integer
.PrefTreshold : angle
.DisplayGoal : boolean
.DisplayTarget : boolean
.ShowAllNodesKeys : boolean
.IKFKBlend
.SwivelAngle
.ScaleMultiplier
.IKStretch
This displays lines that shows the current IK and FK transformations.
.DisplayIKFK : boolean
.PrefRotX (Preferred_Rotation_X) : angle
.PrefRotY (Preferred_Rotation_Y) : angle
.PrefRotZ (Preferred_Rotation_Z) : angle
This is the controller that defines the transform of the FK Nodes. (This parameter is only available in FK Nodes).
.FKSubControl : transform
This is the controller that defines the transform of the IK Nodes (IK Goal and IK Target).
(This parameter is only available in FK Nodes).
.IKSubControl : transform
These control their respective values.
.MatchMainPrefRotation : boolean
.MatchSecPrefRotation : boolean
.MatchScaleMult : boolean
.ParentSpace : integer
.PrefTreshold : angle
.DisplayGoal : boolean
.DisplayTarget : boolean
.ShowAllNodesKeys : boolean
.IKFKBlend
.SwivelAngle
.ScaleMultiplier
.IKStretch
This displays lines that shows the current IK and FK transformations.
.DisplayIKFK : boolean
Methods:
This method matches the IK and FK transformations
.Match()
These methods set and match the IKFKBlend value.
.SetFK()
.SetIK()
Other Methods:
.SetTarget <node>
.SetGoalParent <node>
.SetTarget <node>
.GetMainFKNode()
.GetSecFKNode()
.GetLastFKNode()
.GetGoal()
.GetTarget()
.GetGoalParent()
.Match()
These methods set and match the IKFKBlend value.
.SetFK()
.SetIK()
Other Methods:
.SetTarget <node>
.SetGoalParent <node>
.SetTarget <node>
.GetMainFKNode()
.GetSecFKNode()
.GetLastFKNode()
.GetGoal()
.GetTarget()
.GetGoalParent()