## Duik

### Rigging and animation tool set for After Effects

Open Cut-Out format, auto-rigging, automation, animation tools, camera rigging tools...

Duik requires DuAEF, the Duduf After Effects Framework. Two builds of the Duik API are available:

- `Duik_api.jsxinc` does not include DuAEF, and can be used to compine multiple Duduf APIs with a single copy of DuAEF.
  Be careful to grab the right version of DuAEF in this case.
- `DuAEF_Duik_api.jsxinc` includes all dependencies, with DuAEF, and is easier to include in your scripts.

Version:
  - 17.0.0-Beta8
Author:
  - Nicolas Dufresne and contributors
Copyright:
  - 2008 - 2022 Nicolas Dufresne, RxLaboratory
License:
  - GPL-3.0
    DuGR is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
    DuGR is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.
    You should have received a copy of the GNU General Public License
    along with DuGR. If not, see http://www.gnu.org/licenses/.

View Source DuAEF_Duik_api.jsxinc, line 33966

### Examples

    // Encapsulate everything to avoid global variables!
    // The parameter is either undefined (stand alone script) or the panel containing the ui (ScriptUI)
    (function(thisObj)
    {
         // If you only need Duik, just include DuAEF_Duik_api
         #include "DuAEF_Duik_api.jsxinc";

         // Running the init() method of DuAEF is required to setup everything properly.
         DuAEF.init( "YourScriptName", "1.0.0", "YourCompanyName" );

         // These info can be used by the framework to improve UX, but they're optional
         DuESF.chatURL = 'http://chat.rxlab.info'; // A link to a live-chat server like Discord or Slack...
         DuESF.bugReportURL = 'https://github.com/RxLaboratory/DuAEF_Dugr/issues/new/choose'; // A link to a bug report form
         DuESF.featureRequestURL = 'https://github.com/RxLaboratory/DuAEF_Dugr/issues/new/choose'; // A link to a feature request form
         DuESF.aboutURL = 'http://rxlaboratory.org/tools/dugr'; // A link to the webpage about your script
         DuESF.docURL = 'http://dugr.rxlab.guide'; // A link to the documentation of the script
         DuESF.scriptAbout = 'Duduf Groups: group After Effects layers!'; // A short string describing your script
         DuESF.companyURL = 'https://rxlaboratory.org'; // A link to your company's website
         DuESF.rxVersionURL = 'http://version.rxlab.io' // A link to an RxVersion server to check for updates

         // Build your UI here, declare your methods, etc.

         // This will be our main panel
         var ui = DuScriptUI.scriptPanel( thisObj, true, true, new File($.fileName) );
         ui.addCommonSettings(); // Automatically adds the language settings, location of the settings file, etc

         DuScriptUI.staticText( ui.settingsGroup, "Hello world of settings!" ); // Adds a static text to the settings panel
         DuScriptUI.staticText( ui.mainGroup, "Hello worlds!" ); // Adds a static text to the main panel

         // When you're ready to display everything
         DuScriptUI.showUI(ui);

         // Note that if you don't have a UI or if you don't use DuScriptUI to show it,
         // you HAVE TO run this method before running any other function:
         // DuAEF.enterRunTime();

    })(this);

    // Encapsulate everything to avoid global variables!
    // The parameter is either undefined (stand alone script) or the panel containing the ui (ScriptUI)
    (function(thisObj)
    {
         // If you need to combine Duik and other APIs like DuIO or DuGR
         // Include DuAEF first, and then stand-alone APIs
         #include "DuAEF.jsxinc";
         #include "DuGR_api.jsxinc";
         #include "Duik_api.jsxinc";
         #include "DuIO_api.jsxinc";

         // Running the init() method of DuAEF is required to setup everything properly.
         DuAEF.init( "YourScriptName", "1.0.0", "YourCompanyName" );

         // These info can be used by the framework to improve UX, but they're optional
         DuESF.chatURL = 'http://chat.rxlab.info'; // A link to a live-chat server like Discord or Slack...
         DuESF.bugReportURL = 'https://github.com/RxLaboratory/DuAEF_Dugr/issues/new/choose'; // A link to a bug report form
         DuESF.featureRequestURL = 'https://github.com/RxLaboratory/DuAEF_Dugr/issues/new/choose'; // A link to a feature request form
         DuESF.aboutURL = 'http://rxlaboratory.org/tools/dugr'; // A link to the webpage about your script
         DuESF.docURL = 'http://dugr.rxlab.guide'; // A link to the documentation of the script
         DuESF.scriptAbout = 'Duduf Groups: group After Effects layers!'; // A short string describing your script
         DuESF.companyURL = 'https://rxlaboratory.org'; // A link to your company's website
         DuESF.rxVersionURL = 'http://version.rxlab.io' // A link to an RxVersion server to check for updates

         // Build your UI here, declare your methods, etc.

         // This will be our main panel
         var ui = DuScriptUI.scriptPanel( thisObj, true, true, new File($.fileName) );
         ui.addCommonSettings(); // Automatically adds the language settings, location of the settings file, etc

         DuScriptUI.staticText( ui.settingsGroup, "Hello world of settings!" ); // Adds a static text to the settings panel
         DuScriptUI.staticText( ui.mainGroup, "Hello worlds!" ); // Adds a static text to the main panel

         // When you're ready to display everything
         DuScriptUI.showUI(ui);

         // Note that if you don't have a UI or if you don't use DuScriptUI to show it,
         // you HAVE TO run this method before running any other function:
         // DuAEF.enterRunTime();

    })(this);

### Requires

- module:DuAEF>=1.0.0
- module:DuIO>=3.0.0
- module:DuGR>=4.0.0
- module:DuSan>=2.0.0

### Namespaces

Animation
Automation
Bone
Camera
CmdLib
Constraint
Controller
Layer
Pin
Rig
Tool

# Members

Type: `DuAEPseudoEffect`

#### # static PseudoEffect

The pseudo effects used by Duik.

##### Properties:

Name | Type | Description
--- | --- | ---
`BONE` | `DuAEPseudoEffect` |
`BONE_ENVELOP` | `DuAEPseudoEffect` |
`PIN` | `DuAEPseudoEffect` |
`PATH_PIN` | `DuAEPseudoEffect` |
`POS_PIN` | `DuAEPseudoEffect` |
`CONTROLLER` | `DuAEPseudoEffect` |
`CONTROLLER_SLIDER` | `DuAEPseudoEffect` |
`CONTROLLER_2DSLIDER` | `DuAEPseudoEffect` |
`CONTROLLER_ANGLE` | `DuAEPseudoEffect` |
`ONED_LIST` | `DuAEPseudoEffect` |
`TWOD_LIST` | `DuAEPseudoEffect` |
`THREED_LIST` | `DuAEPseudoEffect` |
`THREE_DIMENSIONS_SCALE` | `DuAEPseudoEffect` |
`THREE_DIMENSIONS_ANGLE` | `DuAEPseudoEffect` |
`THREE_DIMENSIONS` | `DuAEPseudoEffect` |
`TWO_DIMENSIONS_SCALE` | `DuAEPseudoEffect` |
`TWO_DIMENSIONS_ANGLE` | `DuAEPseudoEffect` |
`TWO_DIMENSIONS` | `DuAEPseudoEffect` |
`COLOR` | `DuAEPseudoEffect` |
`EXPOSE_TRANSFORM` | `DuAEPseudoEffect` |
`KEY_MORPH` | `DuAEPseudoEffect` |
`KEY_MORPH_K` | `DuAEPseudoEffect` |
`ONE_LAYER_IK` | `DuAEPseudoEffect` |
`TWO_LAYER_IK` | `DuAEPseudoEffect` |
`BEZIER_IK` | `DuAEPseudoEffect` |
`BEZIER_IK_CURVE` | `DuAEPseudoEffect` |
`BEZIER_IK_LAYER` | `DuAEPseudoEffect` |
`FK` | `DuAEPseudoEffect` |
`PARENT` | `DuAEPseudoEffect` |
`POSITION` | `DuAEPseudoEffect` |
`ORIENTATION` | `DuAEPseudoEffect` |
`PATH` | `DuAEPseudoEffect` |
`FOOT_ROLL` | `DuAEPseudoEffect` |
`DIGI_FOOT_ROLL` | `DuAEPseudoEffect` |
`SHOULDER` | `DuAEPseudoEffect` |
`FIN` | `DuAEPseudoEffect` |
`LOOPER` | `DuAEPseudoEffect` |
`INTERPOLATOR` | `DuAEPseudoEffect` |
`TWO_D_CAMERA` | `DuAEPseudoEffect` |
`CAMERA_BEHAVIOUR` | `DuAEPseudoEffect` |
`ONED_CONNECTOR` | `DuAEPseudoEffect` |
`TWOD_CONNECTOR` | `DuAEPseudoEffect` |
`THREED_CONNECTOR` | `DuAEPseudoEffect` |
`COLOR_CONNECTOR` | `DuAEPseudoEffect` |
`EFFECTOR` | `DuAEPseudoEffect` |
`EFFECTOR_MAP` | `DuAEPseudoEffect` |
`AUDIO_CONNECTOR` | `DuAEPseudoEffect` |
`QUICK_CONNECTOR` | `DuAEPseudoEffect` |
`KLEANER` | `DuAEPseudoEffect` |
`ONED_SWINK` | `DuAEPseudoEffect` |
`TWOD_SWINK` | `DuAEPseudoEffect` |
`THREED_SWINK` | `DuAEPseudoEffect` |
`COLOR_SWINK` | `DuAEPseudoEffect` |
`ONED_WIGGLE` | `DuAEPseudoEffect` |
`TWOD_WIGGLE` | `DuAEPseudoEffect` |
`THREED_WIGGLE` | `DuAEPseudoEffect` |
`MULTI_WIGGLE` | `DuAEPseudoEffect` |
`WHEEL` | `DuAEPseudoEffect` |
`ONED_RANDOM` | `DuAEPseudoEffect` |
`TWOD_RANDOM` | `DuAEPseudoEffect` |
`THREED_RANDOM` | `DuAEPseudoEffect` |
`MULTI_RANDOM` | `DuAEPseudoEffect` |
`MOTION_TRAIL` | `DuAEPseudoEffect` |
`PAINT_RIG` | `DuAEPseudoEffect` |
`X_SHEET` | `DuAEPseudoEffect` |
`WING` | `DuAEPseudoEffect` |
`FEATHER` | `DuAEPseudoEffect` |
`BONE_DATA` | `DuAEPseudoEffect` |
`BONE_NOODLE` | `DuAEPseudoEffect` |

View Source DuAEF_Duik_api.jsxinc, line 35362