Namespace

Bone

Duik.Bone

Bone and armatures related tools.

View Source api3.jsxinc, line 3781

Methods

# static align(bones) → {Array.<float>}

Rotates the chain so that the bones form a straight line.
The bones must be parented together.
Parameters:
Name Type Description
bones Array.<ShapeLayer> | DuList.<ShapeLayer> The bones to align

View Source api3.jsxinc, line 5067

The list of the original rotations (before alignment)
Array.<float>

# static arm(characterNameopt, typeopt, sideopt, shoulderopt, armopt, forearmopt, handopt, clawsopt, locationopt, forceLinkopt)

Creates a new arm.
Parameters:
Name Type Attributes Default Description
characterName string <optional>
The name of the character
type OCO.LimbType <optional>
OCO.LimbType.HOMINOID The type of limb
side OCO.Side <optional>
OCO.Side.LEFT The side
shoulder Boolean <optional>
false Whether to create a shoulder
arm Boolean <optional>
true Whether to create an arm / humerus
forearm Boolean <optional>
true Whether to create a forearm
hand Boolean <optional>
true Whether to create a hand
claws Boolean <optional>
false Whether to add claws
location Boolean <optional>
OCO.Location.FRONT The location of the arm
forceLink boolean <optional>
false whether link the selected layers/properties to the new armature

View Source api3.jsxinc, line 3803

# static autoParent(layersopt, bonesopt, useNamesopt)

Automatically (tries to) links the artwork layers to their corresponding bones.
Finds the bones using the anchor point coordinates of the artworks, or their names
Parameters:
Name Type Attributes Default Description
layers Array.<Layer> | DuList.<Layer> | LayerCollection <optional>
The artwork layers. If bones is omitted, it may also contain the bones.
bones Array.<Layer> | DuList.<Layer> | LayerCollection <optional>
The bones to parent to. If omitted, will try to find them in layers, or in the comp if there's no bone in layers.
useNames bool <optional>
false If true, will use layer names instead of locations to find the corresponding bone.

View Source api3.jsxinc, line 4761

# static bake(bakeBonesopt, bakeEnvelopopt, bakeNoodlesopt, layersopt, reselectLayersopt)

Bakes the appearance of the selected bones to improve performance by removing appearance-only expressions and effects.
Parameters:
Name Type Attributes Default Description
bakeBones Boolean <optional>
true Set to false to keep the bone display
bakeEnvelop Boolean <optional>
true Set to false to keep the envelop settings
bakeNoodles Boolean <optional>
true Set to false to keep all noodles even if they're hidden
layers Array.<Layer> | DuList.<Layer> | Layer <optional>
The layers to bake; will use selected layers from the current comp if omitted.
reselectLayers Boolean <optional>
true Set to false to not reselect the bones after the baking process

View Source api3.jsxinc, line 4583

# static bakeArmatureData(layersopt)

Bakes the "Armature" part of the Bone Data effect
Parameters:
Name Type Attributes Description
layers Array.<Layer> | DuList.<Layer> | Layer <optional>
The layers to bake; will use selected layers from the current comp if omitted.

View Source api3.jsxinc, line 4535

# static color(layeropt) → {DuColor}

Checks the color of the bone layer
Parameters:
Name Type Attributes Default Description
layer Layer <optional>
DuAEComp.getActiveLayer The layer. If omitted, will check the first selected bone of the current comp

View Source api3.jsxinc, line 5222

DuColor

# static customLimb(numopt, nameopt, characterNameopt, sideopt, locationopt, forceLinkopt)

Creates a custom limb.
Parameters:
Name Type Attributes Default Description
num int <optional>
2 The number of bones in case nothing is selected in the comp. Otherwize, a bone is created for each selected path vertex/puppet pin/layer.
name string <optional>
'Limb' The name of the limb
characterName string <optional>
The name of the character
side OCO.Side <optional>
OCO.Side.NONE The side of the limb
location OCO.Location <optional>
OCO.Location.NONE The location of the limb
forceLink boolean <optional>
false whether to link the selected layers/properties to the new armature

View Source api3.jsxinc, line 3994

# static duplicate(compopt) → {Array.<Layer>}

Duplicates the selected bones, updates the hierarchy and display
Parameters:
Name Type Attributes Default Description
comp CompItem <optional>
DuAEProject.getActiveComp() The comp

View Source api3.jsxinc, line 4379

The new bones
Array.<Layer>

# static envelopColor(layeropt) → {DuColor}

Checks the color of the envelop of the bone layer
Parameters:
Name Type Attributes Default Description
layer Layer <optional>
DuAEComp.getActiveLayer The layer. If omitted, will check the first selected bone of the current comp

View Source api3.jsxinc, line 5569

DuColor

# static envelopOffset(layeropt) → {float}

Checks the offset of the envelop of the bone layer
Parameters:
Name Type Attributes Default Description
layer Layer <optional>
DuAEComp.getActiveLayer The layer. If omitted, will check the first selected bone of the current comp

View Source api3.jsxinc, line 5440

float

# static envelopOpacity(layeropt) → {float}

Checks the opacity of the envelop of the bone layer
Parameters:
Name Type Attributes Default Description
layer Layer <optional>
DuAEComp.getActiveLayer The layer. If omitted, will check the first selected bone of the current comp

View Source api3.jsxinc, line 5503

float

# static envelopSize(layeropt) → {float}

Checks the size of the envelop of the bone layer
Parameters:
Name Type Attributes Default Description
layer Layer <optional>
DuAEComp.getActiveLayer The layer. If omitted, will check the first selected bone of the current comp

View Source api3.jsxinc, line 5375

float

# static envelopStrokeColor(layeropt) → {DuColor}

Checks the stroke color of the envelop of the bone layer
Parameters:
Name Type Attributes Default Description
layer Layer <optional>
DuAEComp.getActiveLayer The layer. If omitted, will check the first selected bone of the current comp

View Source api3.jsxinc, line 5699

DuColor

# static envelopStrokeSize(layeropt) → {float}

Checks the stroke size of the envelop of the bone layer
Parameters:
Name Type Attributes Default Description
layer Layer <optional>
DuAEComp.getActiveLayer The layer. If omitted, will check the first selected bone of the current comp

View Source api3.jsxinc, line 5635

float

# static fin(characterNameopt, sideopt, fishbonesopt, forceLinkopt)

Creates a new fin.
Parameters:
Name Type Attributes Default Description
characterName string <optional>
The name of the character
side OCO.Side <optional>
OCO.Side.LEFT The side
fishbones int <optional>
true Number of fishbones to create
forceLink boolean <optional>
false whether link the selected layers/properties to the new armature

View Source api3.jsxinc, line 4266

# static fishSpine(characterNameopt, headopt, spineopt, forceLinkopt)

Creates a new fish spine.
Parameters:
Name Type Attributes Default Description
characterName string <optional>
The name of the character
head Boolean <optional>
true Whether to create a head
spine int <optional>
3 Number of spine bones
forceLink boolean <optional>
false whether link the selected layers/properties to the new armature

View Source api3.jsxinc, line 4302

# static get(selectedOnlyopt, compopt) → {Array.<ShapeLayer>}

Gets the bones in the comp
Parameters:
Name Type Attributes Default Description
selectedOnly Boolean <optional>
true Whether to get only the selected layers or all of them
comp CompItem <optional>
DuAEProject.getActiveComp() The comp

View Source api3.jsxinc, line 5111

The bones
Array.<ShapeLayer>

# static getLimbs(layersopt) → {Array.<Array.<ShapeLayer>>}

Returns the bones sorted by limbs they belong to
Parameters:
Name Type Attributes Default Description
layers Array.<Layer> <optional>
Duik.Bone.get(false) The layers to include as bones in the doc

View Source api3.jsxinc, line 5121

the limbs
Array.<Array.<ShapeLayer>>

# static getOrientation(bone) → {float}

Gets the bone orientation value
Parameters:
Name Type Description
bone ShapeLayer The bone

View Source api3.jsxinc, line 5097

The orientation
float

# static hair(characterNameopt, numopt, forceLinkopt)

Creates a new hair strand.
Parameters:
Name Type Attributes Default Description
characterName string <optional>
The name of the character
num int <optional>
3 Number of hair bones
forceLink boolean <optional>
false whether link the selected layers/properties to the new armature

View Source api3.jsxinc, line 4155

# static hasEnvelop(layeropt) → {bool}

Checks if the bone layer has a visible envelop
Parameters:
Name Type Attributes Default Description
layer Layer <optional>
DuAEComp.getActiveLayer The layer. If omitted, will check the first selected bone of the current comp

View Source api3.jsxinc, line 5320

bool

# static isRigged(bone) → {bool}

Checks if the bone has already been rigged
Parameters:
Name Type Description
bone Layer The bone to check

View Source api3.jsxinc, line 5057

true if it's been rigged
bool

# static leg(characterNameopt, typeopt, sideopt, thighopt, calfopt, footopt, clawsopt, locationopt, forceLinkopt)

Creates a new arm.
Parameters:
Name Type Attributes Default Description
characterName string <optional>
The name of the character
type OCO.LimbType <optional>
OCO.LimbType.HOMINOID The type of limb
side OCO.Side <optional>
OCO.Side.LEFT The side
thigh Boolean <optional>
true Whether to create a thigh
calf Boolean <optional>
true Whether to create a calf
foot Boolean <optional>
true Whether to create a foot
claws Boolean <optional>
false Whether to add claws
location Boolean <optional>
OCO.Location.BACK The location of the leg
forceLink boolean <optional>
false whether link the selected layers/properties to the new armature

View Source api3.jsxinc, line 4041

# static linkLayers(layers, boneLayers)

Parents the given layers to the given bones.
The two lists do not need to have the same number of layers, additionnal/missing layers will be ignored.
Parameters:
Name Type Description
layers Array.<Layer> | LayerCollection | DuList
boneLayers Array.<Layer> | LayerCollection | DuList

View Source api3.jsxinc, line 4337

# static noodleColor(layeropt) → {DuColor}

Checks the color of the noodle of the bone layer
Parameters:
Name Type Attributes Default Description
layer Layer <optional>
DuAEComp.getActiveLayer The layer. If omitted, will check the first selected bone of the current comp

View Source api3.jsxinc, line 5783

DuColor

# static opacity(layeropt) → {DuColor}

Checks the opacity of the bone layer
Parameters:
Name Type Attributes Default Description
layer Layer <optional>
DuAEComp.getActiveLayer The layer. If omitted, will check the first selected bone of the current comp

View Source api3.jsxinc, line 5903

DuColor

# static resetTransform(layer)

Resets the transformations (rotation and scale) of the bone to 0 and 100%
Parameters:
Name Type Description
layer Layer

View Source api3.jsxinc, line 5971

# static select(compopt)

Selects all the bones in the comp (and deselects any other layer)
Parameters:
Name Type Attributes Default Description
comp CompItem <optional>
DuAEProject.getActiveComp() The comp

View Source api3.jsxinc, line 4356

# static setCharacterName(characterName, layeropt)

Sets the character name of the bone layer
Parameters:
Name Type Attributes Default Description
characterName string The character name.
layer Layer <optional>
DuAEComp.getSelectedLayers() The layers. If omitted, will use all selected layers in the comp

View Source api3.jsxinc, line 5950

# static setColor(coloropt, layersopt)

Sets the color of the bone layers
Parameters:
Name Type Attributes Default Description
color DuColor | null <optional>
The color. If omitted or null, will assign a random color for each bone.
layers Layer | LayerCollection | Array.<Layer> | DuList.<Layer> <optional>
DuAEComp.getSelectedLayers() The layers. If omitted, will use all selected layers in the comp

View Source api3.jsxinc, line 5249

# static setEnvelopColor(color, layersopt)

Sets the color of the envelop of the bone layer
Parameters:
Name Type Attributes Default Description
color DuColor The color.
layers Layer | LayerCollection | Array.<Layer> | DuList.<Layer> <optional>
DuAEComp.getSelectedLayers() The layers. If omitted, will use all selected layers in the comp

View Source api3.jsxinc, line 5599

# static setEnvelopEnabled(enabledopt, layersopt)

Toggles the envelop
Parameters:
Name Type Attributes Default Description
enabled bool <optional>
true
layers Layer | LayerCollection | Array.<Layer> | DuList.<Layer> <optional>
DuAEComp.getSelectedLayers() The layers. If omitted, will use all selected layers in the comp

View Source api3.jsxinc, line 5344

# static setEnvelopOffset(offset, layersopt)

Sets the offset of the envelop of the bone layer
Parameters:
Name Type Attributes Default Description
offset float The offset
layers Layer | LayerCollection | Array.<Layer> | DuList.<Layer> <optional>
DuAEComp.getSelectedLayers() The layers. If omitted, will use all selected layers in the comp

View Source api3.jsxinc, line 5470

# static setEnvelopOpacity(opacity, layersopt)

Sets the opacity of the envelop of the bone layer
Parameters:
Name Type Attributes Default Description
opacity float The opacity
layers Layer | LayerCollection | Array.<Layer> | DuList.<Layer> <optional>
DuAEComp.getSelectedLayers() The layers. If omitted, will use all selected layers in the comp

View Source api3.jsxinc, line 5535

# static setEnvelopSize(size, layersopt)

Sets the size of the envelop of the bone layer
Parameters:
Name Type Attributes Default Description
size float The new size
layers Layer | LayerCollection | Array.<Layer> | DuList.<Layer> <optional>
DuAEComp.getSelectedLayers() The layers. If omitted, will use all selected layers in the comp

View Source api3.jsxinc, line 5407

# static setEnvelopStrokeColor(color, layersopt)

Sets the stroke color of the envelop of the bone layer
Parameters:
Name Type Attributes Default Description
color DuColor The color.
layers Layer | LayerCollection | Array.<Layer> | DuList.<Layer> <optional>
DuAEComp.getSelectedLayers() The layers. If omitted, will use all selected layers in the comp

View Source api3.jsxinc, line 5729

# static setEnvelopStrokeSize(color, layersopt)

Sets the stroke size of the envelop of the bone layer
Parameters:
Name Type Attributes Default Description
color float The color
layers Layer | LayerCollection | Array.<Layer> | DuList.<Layer> <optional>
DuAEComp.getSelectedLayers() The layers. If omitted, will use all selected layers in the comp

View Source api3.jsxinc, line 5664

# static setLimbName(limbName, layeropt)

Sets the limb name of the bone layer
Parameters:
Name Type Attributes Default Description
limbName string The limb name.
layer Layer <optional>
DuAEComp.getSelectedLayers() The layers. If omitted, will use all selected layers in the comp

View Source api3.jsxinc, line 5961

# static setLocation(side, layersopt)

Sets the location of the layer
Parameters:
Name Type Attributes Default Description
side OCO.Side The side
layers Array.<Layer> <optional>
DuAEComp.getSelectedLayers() The layers. If omitted, will use all selected layers in the comp

View Source api3.jsxinc, line 5211

# static setNoodleColor(color, layersopt)

Sets the stroke color of the envelop of the bone layer
Parameters:
Name Type Attributes Default Description
color DuColor The color.
layers Layer | LayerCollection | Array.<Layer> | DuList.<Layer> <optional>
DuAEComp.getSelectedLayers() The layers. If omitted, will use all selected layers in the comp

View Source api3.jsxinc, line 5813

# static setNoodleEnabled(enabledopt, layersopt)

Toggles the noodle
Parameters:
Name Type Attributes Default Description
enabled bool <optional>
true
layers Layer <optional>
The layers. If omitted, will use all selected bones

View Source api3.jsxinc, line 5848

# static setOpacity(opacity, layeropt)

Sets the opacity of the bone layer
Parameters:
Name Type Attributes Default Description
opacity float The opacity in %.
layer Layer <optional>
DuAEComp.getSelectedLayers() The layers. If omitted, will use all selected layers in the comp

View Source api3.jsxinc, line 5925

# static setRigged(bones, riggedopt)

Tags the layers as rigged
Parameters:
Name Type Attributes Default Description
bones Array.<Layer> | DuList.<Layer> | Layer The bones to set
rigged bool <optional>
true The value

View Source api3.jsxinc, line 5043

# static setSide(side, layersopt)

Sets the side of the layer
Parameters:
Name Type Attributes Default Description
side OCO.Side The side
layers Array.<Layer> <optional>
Duik.Bone.get() The layer. If omitted, will use all selected layers in the comp

View Source api3.jsxinc, line 5200

# static setSize(size, layeropt)

Sets the size of the bone layer
Parameters:
Name Type Attributes Default Description
size float The size in %.
layer Layer <optional>
DuAEComp.getSelectedLayers() The layers. If omitted, will use all selected layers in the comp

View Source api3.jsxinc, line 5880

# static size(layeropt) → {float}

Checks the size of the bone layer
Parameters:
Name Type Attributes Default Description
layer Layer <optional>
DuAEComp.getActiveLayer The layer. If omitted, will check the first selected bone of the current comp

View Source api3.jsxinc, line 5285

float

# static snakeSpine(characterNameopt, headopt, spineopt, forceLinkopt)

Creates a new snake / worm spine.
Parameters:
Name Type Attributes Default Description
characterName string <optional>
The name of the character
head Boolean <optional>
true Whether to create a head
spine int <optional>
5 Number of spine bones
forceLink boolean <optional>
false whether link the selected layers/properties to the new armature

View Source api3.jsxinc, line 4232

# static spine(characterNameopt, headopt, neckopt, spineopt, hipsopt, forceLinkopt)

Creates a new spine.
Parameters:
Name Type Attributes Default Description
characterName string <optional>
The name of the character
head Boolean <optional>
true Whether to create a head
neck int <optional>
1 Number of neck bones
spine int <optional>
2 Number of spine bones
hips Boolean <optional>
true Whether to create hips
forceLink boolean <optional>
false whether link the selected layers/properties to the new armature

View Source api3.jsxinc, line 4084

# static tail(characterNameopt, numopt, forceLinkopt)

Creates a new tail.
Parameters:
Name Type Attributes Default Description
characterName string <optional>
The name of the character
num int <optional>
3 Number of tail bones
forceLink boolean <optional>
false whether link the selected layers/properties to the new armature

View Source api3.jsxinc, line 4121

# static toggleVisibility(compopt, notSelectedOnlyopt)

Show/hides all the bones
Parameters:
Name Type Attributes Default Description
comp CompItem <optional>
DuAEProject.getActiveComp() The comp
notSelectedOnly bool <optional>
false Hides only the bones which are not selected

View Source api3.jsxinc, line 4367

# static type(layeropt) → {OCO.Bone}

Gets the type of bone
Parameters:
Name Type Attributes Default Description
layer Layer <optional>
DuAEComp.getActiveLayer The layer. If omitted, will check the first selected bone of the current comp

View Source api3.jsxinc, line 5305

The type
OCO.Bone
Toggles the edit mode on selected bones
Parameters:
Name Type Attributes Default Description
comp CompItem <optional>
DuAEProject.getActiveComp() The comp

View Source api3.jsxinc, line 4510

# static wing(characterNameopt, sideopt, armopt, forearmopt, handopt, feathersopt, forceLinkopt)

Creates a new wing.
Parameters:
Name Type Attributes Default Description
characterName string <optional>
The name of the character
side OCO.Side <optional>
OCO.Side.LEFT The side
arm Boolean <optional>
true Whether to create an arm / humerus
forearm Boolean <optional>
true Whether to create a forearm
hand Boolean <optional>
true Whether to create a hand
feathers int <optional>
5 Number of feathers
forceLink boolean <optional>
false whether link the selected layers/properties to the new armature

View Source api3.jsxinc, line 4193