Git Product home page Git Product logo

rxlaboratory / duik Goto Github PK

View Code? Open in Web Editor NEW
335.0 23.0 66.0 379.26 MB

Duik Ángela | Rigging and animation tools for After Effects

Home Page: https://rxlaboratory.org/tools/duik/

License: GNU General Public License v3.0

JavaScript 92.99% Batchfile 0.21% CSS 3.43% Python 2.14% HTML 1.23%
after-effects framework library extendscript duik animation rigging character-rigging character-animation

duik's Introduction

Duik

Rigging and Animation tool set for After Effects

After Effects GitHub

Status:
GitHub release (latest SemVer) GitHub Release Date GitHub tag (latest SemVer pre-release)

What's this?

Duik is a comprehensive animation and rigging toolset for Adobe After Effects.

It provides the main rigging tools, found in any 3D software, like IK, controllers, and bones, but adapts them to 2D animation in After Effects. With Duik you can rig complex characters and use advanced animation techniques usually found in 3D softwares. If you do not know what rigging means, it may be because it is a bit too soon for you to use those tools.

Duik has plenty of animation tools too - managing keyframes and interpolations, traditional animation, animation exposure, etc. - and automations too, like wiggle, spring, swing, wheel, etc. which allow you to animate more quickly and easily.

Duik also has some other useful tools, such as camera controls, that are not solely tied to animation but can be really useful for both animators and riggers.

Duik’s comprehensiveness and ease of use have made it a script used in numerous movies across the world.

Documentation:
Website Doc API Tuts Guide

Join the community

Join us if you need any help, if you want to contribute (we're always in need for translations, writing the doc, fixing bugs, making tutorials, developing new features...) or just want to show what you're doing with our tools!

We need your support to release our free tools. You can donate or join the development fund to get an early access to the tools.

Funding:
Donate Now! Income Sponsors

Community:
Discord Contributor Covenant GitHub contributors
Discord Facebook Instagram Twitter Follow LinkedIn YouTube Channel Views Github

Current status

Statistics:
GitHub all releases GitHub release (latest by SemVer) GitHub issues GitHub closed issues GitHub commit activity
(Download count from 15 April 2022)

Progress:
GitHub milestone GitHub milestone GitHub milestone GitHub commits since latest release (by date) Crowdin

Contribution and development

We're always in need for translations, code, documentation, examples, tutorials, quick tips, bug fixes...

Discord Contributing Contributor Covenant GitHub contributors

You can easily use Duik in your own tools (if you release them under a license compatible with the GNU-GPLv3) by including the Duik API.

API

== We're Using GitHub Under Protest ==

This project is currently hosted on GitHub. This is not ideal; GitHub is a proprietary, trade-secret system that is not Free and Open Souce Software (FOSS). We are deeply concerned about using a proprietary system like GitHub to develop our FOSS project. We're actively preparing to move away. We urge you to read about the Give up GitHub campaign from the Software Freedom Conservancy to understand some of the reasons why GitHub is not a good place to host FOSS projects.

Any use of this project's code by GitHub Copilot, past or present, is done without our permission. We do not consent to GitHub's use of this project's code in Copilot.

Logo of the GiveUpGitHub campaign

duik's People

Contributors

anamabruja avatar eziopan avatar jeanbaa avatar kant avatar mortenjust avatar msongz avatar nico-duduf avatar octokas avatar oktomus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

duik's Issues

Animation and rig library

Issue by Nico-Duduf
Monday Aug 31, 2015 at 14:13 GMT
Originally opened as https://github.com/Rainbox-dev/Duik-15/issues/168


Add an animation library in the animation panel
which could be exported/imported

In the I/O Panel:

  • save anim to JSON or XML
  • load anim from JSON or XML

In the library Panel:

  • save anim
  • load anim
  • export anim
  • import anim

Store the library in a Duik directory, each anim a separated file

add DuAEF.DuAE.Property.Shape.exportToJsxinc(prop,name,file)

a method to export a shape to a jsxinc
which creates a new shape identical (maybe with an "offset to center" option), stored in a variable called "name" in the file

The jsxinc can then be included (or evaled) and used in any script.
(can be used for custon controllers in Duik in a near future)

New autorig using the new bones system

Issue by Nico-Duduf
Thursday Sep 01, 2016 at 15:06 GMT
Originally opened as https://github.com/Rainbox-dev/Duik-15/issues/229


First create bones (with tags to identify them in the commentaries)

Then rig the structure

Option to export rig from existing structure (detecting IK, and.other tools, and saving unrecognised expressions) and be able to import it on any other structure, using name tags.
Maybe even save structure too, saving positions and rotations after having disabled all expressions.

new tool: DuBinary_scan_script

Create a new tool following the examples already available which:

  • Scan an existing script for any string containing a path to a file
    on win, a string beggining with:
    "E:\" or "E:/" or "/E/" or "~/" or "~\"or the same in lower case
    on mac, a string beginning with:
    "/something" or "~/something"

  • List all those in a table, where the user can select some of them, or all of them, and validates the selection. take care of duplicates, list only once

  • Use DuAEF.DuBinary.convertToIncludeFile() to convert all files to jsxinc

  • move all those jsxinc to a folder (ask the user with Folder.selectDialog() )

  • Include all those new jsxinc at the very beginning of a new copy of the original script

  • Replace all strings corresponding to converted files with:
    if name ends with '.png' (case insensitive): convertedName.binAsString
    else: DuAEF.DuBinary.toFile(convertedName)

data exportation from Duik

Issue by Nico-Duduf
Saturday Feb 14, 2015 at 16:33 GMT
Originally opened as https://github.com/Rainbox-dev/Duik-15/issues/63


export animation and rig data from After Effects, to be reused in games engines, AS3...

  • animation
  • sprites
  • controllers
  • rig (IK and other expressions from Duik)
  • option to automatically convert all expressions or all but supported rig to keyframes
  • option to automatically delete all rig (including parenting, or not), replaced by one keyframe per frame

ANIMATION (15.5)

Rig (16 with the new bone structures)

Interactive controllers

Issue by Nico-Duduf
Sunday Aug 23, 2015 at 20:26 GMT
Originally opened as https://github.com/Rainbox-dev/Duik-15/issues/163


Use color and shapes to have visual assistance with tools

  • Changing the color of a controller when the IK is straight
  • Displaying an icon when a controller have a keyframe at current time
  • Displaying a locker if it is locked
  • Displaying if the controller has a zero, a parent, if it is scaled...
  • Displaying if FK or IK
    Many possibilities!

Add an effect to configure controller :

  • size
  • shape (the controller contains all shapes, use opacities and checkboxes)

Time Remap: Combine loopIn && loopOut

Issue by Nico-Duduf
Saturday Dec 12, 2015 at 15:07 GMT
Originally opened as https://github.com/Rainbox-dev/Duik-15/issues/192


Une expression super utile et peu connue qui permet de loopin et loopout en même temps serait je pense une belle feature pour une prochaine upgrade, avec une option pour changer en continue, cycle ou pingpong :

if (time = key(1).time && time key(numKeys).time) loopOut(type = "continue");

Pourquoi pas un bouton loopout et un loopin pour n'importe quelle propriété ? capable de combiner, et option pour le type de loop

Updating imported instance from original rigging changes (workaround)

Issue by JuanGarces
Thursday Mar 10, 2016 at 01:48 GMT
Originally opened as https://github.com/Rainbox-dev/Duik-15/issues/204


Hi, I'm new and I didn't find a better solution when I make changes in the original rigging and I want my animation to be updated with them (like adding a new layer or modifying the puppet mesh). Please, tell me if there is a easier way instead of what I did:

  1. Deleted the duplicated rigging.
  2. Imported again the original rigging with the exact name of the old instance.
  3. Deleted all the new duplicated controllers.

Is there a better way to do it? Thanks in advance.

Implement a nez apply preset for some AE workarounds

  • throw something if there are some selected layers in the comp
  • select layer before
  • unselect after
  • "prop to keep" parameter: if it's an effect, it is retrieved again and resetted
    workaround for AE unable to retrieve effects when other effects have been added
    check if prop.parentProperty.isEffect (or the property itself)
    store prop.propertyIndex and prop.parentProperty.name
    retrieve using effect(parentName)(index)

On-layer-IK soft limit

Issue by Nico-Duduf
Saturday Mar 12, 2016 at 12:18 GMT
Originally opened as https://github.com/Rainbox-dev/Duik-15/issues/208


I'm doing an animation with a Z-Shaped IK Chain, and I want to put limits on the upper member's rotation - this has the one-layer-IK expression applied. To stop the IK chain from snapping when it hits the limit I made a 'soft' limit expression, that exponentially slows down the rotation as it approaches the limit.

I apply an expression control slider effect to the controller layer and then I swap the last line of the one-layer-IK expression for this:

limit = thisComp.layer(CName).effect("Thigh_IK_Limit")("Slider"); if (R ==1){ //Reverse var limitSoftness= 5; (result>limit) ? limit + limitSoftness - limitSoftness/(1 + (result-limit)/limitSoftness): result; }else{ var limitSoftness= -5; (result<limit) ? limit + limitSoftness - limitSoftness/(1 + (result - limit)/limitSoftness): result; }

I've hard-coded the softness into the expression, the range is 5 degrees, meaning that the effect starts at the limit and slows the rotation down over the next five degrees, so that it approaches but never quite reaches the angle limit+5. This could be controlled by another slider, or changed in the code.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.