joleanes.com
Home About Scripts Plugins Tutorials Home Gallery Links

Scripts - Plugins

 

IKFK Solver

ikfk solver

 

 

Download File:

IKFKsolver_v1.04_max_9-2008.zip
IKFKsolver_v1.04_max_9-2008_x64.zip
IKFKsolver_v1.04_max_2009.zip
IKFKsolver_v1.04_max_2009_x64.zip
IKFKsolver_v1.04_max_2010-2011.zip
IKFKsolver_v1.04_max_2010-2011_x64.zip

Update News (May 28, 2010)


Installation:

Download the .zip file corresponding to the version of your 3ds max 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 archs 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 interactivelly by rotating the FK nodes.

Watch this video description: IKFKSolver video.

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 respectivelly and makes a match of both modes.
Swivel Angle: This values controls the orientation of the hierarchy.
Scale Mult: This values multiplyes 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 treshold 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 treshold.
Show All Nodes Keys: If this option is on every node will display the keyframes 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 overrided 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:

Properties:

.PrefRotX (Preferred_Rotation_X) : angle
.PrefRotY (Preferred_Rotation_Y) : angle
.PrefRotZ (Preferred_Rotation_Z) : angle
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)

.FKSubControl : transform
This is the controller that defines the transform of the FK Nodes. (This parameter is only available in FK Nodes).

.IKSubControl : 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).

.MatchMainPrefRotation : boolean
.MatchSecPrefRotation : boolean
.MatchScaleMult : boolean
.ParentSpace : integer
.PrefTreshold : angle
.DisplayGoal : boolean
.DisplayTarget : boolean
.ShowAllNodesKeys : boolean
.IKFKBlend
.SwivelAngle
.ScaleMultiplier
.IKStretch

Control their respective values.

.DisplayIKFK : boolean
Displays lines that shows the current IK and FK transformations.

 

Methods:

.Match()
Match the IK and FK transformations

.SetFK()
.SetIK()
Set and match the IKFKBlend value.

Other Methods:

.SetTarget <node>
.SetGoalParent <node>
.SetTarget <node>
.GetMainFKNode()
.GetSecFKNode()
.GetLastFKNode()
.GetGoal()
.GetTarget()
.GetGoalParent()

 

This free plugin can be used for commercial or personal purposes. I only ask to credit me for their creation. This tool hardly can cause any damage, but if that happens i cannot be held responsible for that. It cannot be distributed, If you need to share this tool please refer to this site to do so.

 

 

 

Copyright ©2010, Felix Joleanes.