Namespace

Bone

Duik.Bone

Bone and armatures related tools.

View Source api3.jsxinc, line 3795

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 5095

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 OCO.Location <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 3817

# 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 4789

# 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 4611

# 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 4563

# 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 5250

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 4022

# 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 4407

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 5597

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 5468

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 5531

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 5403

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 5727

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 5663

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 4294

# 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 4330

# 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 5139

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 5149

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 5125

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 4183

# 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 5348

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 5085

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 4069

# 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 4365

# 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 5811

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 5931

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 5999

# 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 4384

# 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 5978

# 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 5277

# 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 5627

# 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 5372

# 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 5498

# 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 5563

# 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 5435

# 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 5757

# 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 5692

# 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 5989

# 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 5239

# 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 5841

# 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 5876

# 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 5953

# 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 5071

# 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 5228

# 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 5908

# 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 5313

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 4260

# 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 4112

# 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 4149

# 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 4395

# 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 5333

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 4538

# 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 4221