wing
Author: Asaf Ben-Zur
Best used for: Bird Wings
This module is designed for birds (feathered) wings.
This is a compound module.
The main module is based on the limb module, including most of it's features.
On top of the main limb module, there is a compound FK chain modules extending from each of the main modules main guides, to create a global feathers silhouette control.
Out of these compounds, a grid of interp-joints is created to control the shape's deformation, using mnsPointOnCuveNode as a driver.
As a bird wing is incredibly complex, controlling it precisely is incredibly difficult.
With that in mind, the grid of interp joints is designed to control the overall shape of the feathers as a group, mid-controls to curl them as a group, as well as control each feather row individually.
Use featherJoints attribute to define the number of feathers along the wings main skeleton.
Post joint-struct creation, use the custom position adjustment attribute on the root-guide to adjust the position of the joint grid to match your needs.
This module also contains multiple features to make animation even better:
Feathers spring, global wave control, individual feather control, bendy limbs, extension-to-look-at for easy wing fold control.
Defenitions
attempFeatherParamAdjustRemap
Constructor: attempFeatherParamAdjustRemap(mansur, rootGuide = None, previousValues = {}) Return: None Arguments:
Keyword Arguments:
collectFeathParamAdjustValues
Constructor: collectFeathParamAdjustValues(rootGuide) Return: None Arguments:
Keyword Arguments:
construct
Constructor: construct(mansur, MnsBuildModule, kwargs) Return: None Arguments:
Keyword Arguments:
customGuides
Constructor: customGuides(mansur, builtGuides) Return: None Arguments:
Keyword Arguments:
deconstruct
deconstruct method implementation.
Transfer interJoints control back to the main joints.
Constructor: deconstruct(mansur, MnsBuildModule, kwargs) Return: None Arguments:
Keyword Arguments:
deleteUnusedMnsNodesFromRootGuide
Constructor: deleteUnusedMnsNodesFromRootGuide(rootNode = None) Return: None Arguments:
Keyword Arguments:
getNumSections
Constructor: getNumSections(tweakersPerSection, doTweakers = False) Return: None Arguments:
Keyword Arguments:
jointStructure
Constructor: jointStructure(mansur, guides, mnsBuildModule = None, kwargs) Return: None Arguments:
Keyword Arguments:
jointStructureSoftMod
Constructor: jointStructureSoftMod(mansur, guides, mnsBuildModule = None, kwargs) Return: None Arguments:
Keyword Arguments:
moduleCompound
Constructor: moduleCompound(mansur, bmButtonList, guides, mnsBuildModule = None, kwargs) Return: None Arguments:
Keyword Arguments:
postConstruct
Constructor: postConstruct(mansur, MnsBuildModule, kwargs) Return: None Arguments:
Keyword Arguments: