Bone and armatures related tools.
Methods
# static align(bones) → {Array.<float>}
Rotates the chain so that the bones form a straight line.
The bones must be parented together.
The bones must be parented together.
Parameters:
Name | Type | Description |
---|---|---|
bones |
Array.<ShapeLayer>
|
DuList.<ShapeLayer>
|
The bones to align |
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 |
# 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
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. |
# 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 |
# 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. |
# 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 |
# 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 |
# 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 |
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 |
# 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 |
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 |
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 |
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 |
# 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 |
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 |
# 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 |
# 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 |
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 |
the limbs
Array.<Array.<ShapeLayer>>
# static getOrientation(bone) → {float}
Gets the bone orientation value
Parameters:
Name | Type | Description |
---|---|---|
bone |
ShapeLayer
|
The bone |
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 |
# 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 |
bool
# static isRigged(bone) → {bool}
Checks if the bone has already been rigged
Parameters:
Name | Type | Description |
---|---|---|
bone |
Layer
|
The bone to check |
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 |
# 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.
The two lists do not need to have the same number of layers, additionnal/missing layers will be ignored.
Parameters:
# 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 |
# 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 |
# static resetTransform(layer)
Resets the transformations (rotation and scale) of the bone to 0 and 100%
Parameters:
Name | Type | Description |
---|---|---|
layer |
Layer
|
# 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 |
# 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 |
# 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 |
# static setEnvelopColor(color, layersopt)
Sets the color of the envelop of the bone layer
Parameters:
# 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 |
# 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 |
# 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 |
# 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 |
# static setEnvelopStrokeColor(color, layersopt)
Sets the stroke color of the envelop of the bone layer
Parameters:
# 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 |
# 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 |
# 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 |
# static setNoodleColor(color, layersopt)
Sets the stroke color of the envelop of the bone layer
Parameters:
# 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 |
# 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 |
# 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 |
# 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 |
# 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 |
# 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 |
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 |
# 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 |
# 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 |
# 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 |
# 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 |
The type
# static unlink(compopt)
Toggles the edit mode on selected bones
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
comp |
CompItem
|
<optional> |
DuAEProject.getActiveComp() | The comp |
# 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 |