joleanes.com
Home About Scripts Plugins Tutorials Home Gallery Links

Scripts - Plugins

 

IKFK Solver

ikfk solver

 

 

Download File:

IKFKsolver_max_9-2008.zip
IKFKsolver_max_9-2008_x64.zip
IKFKsolver_max_2009.zip
IKFKsolver_max_2009_x64.zip
IKFKsolver_max_2010.zip
IKFKsolver_max_2010_x64.zip


This Plugin is a Beta version

Update News (Feb 23, 2009)
(Note: files saved with prior versions of this beta plugin may not work with the latest version)

 

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.
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
.IKFKBlend
.SwiveAngle
.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()

 

 

 

Copyright ©2009, Felix Joleanes.