Skip to content

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:
  • mansur
  • rootGuide(str) ; [default: None]
  • previousValues(dict) ; [default: {}]
Keyword Arguments:


collectFeathParamAdjustValues

Constructor: collectFeathParamAdjustValues(rootGuide)
Return: None
Arguments:
  • rootGuide
Keyword Arguments:


construct

Constructor: construct(mansur, MnsBuildModule, **kwargs)
Return: list (controls), dict (internalSpaces), MnsNameStd (moduleSpaceAttrHost)
Arguments:
  • mansur
  • MnsBuildModule
  • **kwargs
Keyword Arguments:


customGuides

Constructor: customGuides(mansur, builtGuides)
Return: None
Arguments:
  • mansur
  • builtGuides
Keyword Arguments:


deconstruct

deconstruct method implementation.

Transfer interJoints control back to the main joints.


Constructor: deconstruct(mansur, MnsBuildModule, **kwargs)
Return: None
Arguments:
  • mansur
  • MnsBuildModule
  • **kwargs
Keyword Arguments:


deleteUnusedMnsNodesFromRootGuide

Constructor: deleteUnusedMnsNodesFromRootGuide(rootNode = None)
Return: None
Arguments:
  • rootNode(str) ; [default: None]
Keyword Arguments:


getNumSections

Constructor: getNumSections(tweakersPerSection, doTweakers = False)
Return: None
Arguments:
  • tweakersPerSection
  • doTweakers(bool) ; [default: False]
Keyword Arguments:


jointStructure

Constructor: jointStructure(mansur, guides, mnsBuildModule = None, **kwargs)
Return: None
Arguments:
  • mansur
  • guides
  • mnsBuildModule(str) ; [default: None]
  • **kwargs
Keyword Arguments:


jointStructureSoftMod

Constructor: jointStructureSoftMod(mansur, guides, mnsBuildModule = None, **kwargs)
Return: None
Arguments:
  • mansur
  • guides
  • mnsBuildModule(str) ; [default: None]
  • **kwargs
Keyword Arguments:


moduleCompound

Constructor: moduleCompound(mansur, bmButtonList, guides, mnsBuildModule = None, **kwargs)
Return: None
Arguments:
  • mansur
  • bmButtonList
  • guides
  • mnsBuildModule(str) ; [default: None]
  • **kwargs
Keyword Arguments:


postConstruct

Constructor: postConstruct(mansur, MnsBuildModule, **kwargs)
Return: None
Arguments:
  • mansur
  • MnsBuildModule
  • **kwargs
Keyword Arguments: