opentoonz / opentoonz_docs

OpenToonz User Manual
http://opentoonz.readthedocs.io
28 stars 26 forks source link

Add Duik / Duik-like controls #153

Open 711GM opened 5 years ago

711GM commented 5 years ago

There is a project that is also open. It is developing rapidly and it is used in After Effects. Thus, there the animation was able to jump many times. We really need this project in OT. The program code is open. https://github.com/Rainbox-dev/Duik-15 image

The program works like a java script. https://rainboxprod.coop/en/tools/duik/

See a review on the program. https://www.youtube.com/watch?v=i63vPXJ00r0 How could I influence to add this to OT? I can offer money.

@Nico-Duduf @oktomus @eZioPan @mortenjust @manongjohn @turtletooth @msongz @shun-iwasawa @akdcl

711GM commented 5 years ago

What do you think about this? @RodneyBaker @gab3d @Orphanlast @artisteacher @DarrenTAnims @blurymind @openanim @beeheemooth

DarrenTAnims commented 5 years ago

I think it looks amazingly complicated and really useful. I've no idea how much work it would take to allow using this inside OT.

RodneyBaker commented 5 years ago

This likely isn't a topic for github but more for the OpenToonz forum (LINK). But since we are here let's consider @711GM the champion of this development effort for the moment and run this as far as development can reasonably proceed.

A few observations:

  1. The OpenToonz community does need a project like that described related to character animation based on rigs to:

    • Explore the various options for rigging characters that are currently available currently in OpenToonz.
    • Identify specific shortfalls lacking in OpenToonz that cannot be adequately addressed through use of other readily accessible software. Present these in a way that other developers will find them worthy of their time and attention.
    • Determine how best to move forward to maximize use of cut out animation and rigging in OpenToonz
  2. We need to be careful in downloading those assets from that link as they say the Duik project has been merged with a different project and those files are therefore outdated.

Beyond that I am hesitant to look too far into this because I understand the work involved in rigging characters and automating systems required to achieve that result. The difficulty can be overcome where the community is willing to incrementally move toward better understanding what OpenToonz can currently do, what it might be able to do some day and how to build bridges between the two.

That's what I think. ;)

RodneyBaker commented 5 years ago

For general discussion and exploration of this topic you might wish to take up residence in the #rigging channel of the OpenToonz discord:

Link: https://discord.gg/Kg3Dy3a

beeheemooth commented 5 years ago

@711GM I would advise you to talk on this topic with @Agnyy. He is also interested in adding features from AE to OpenToonz.

RodneyBaker commented 5 years ago

Something to target as a bridge from the DUIK set of tools, After Effects, Krita, TVpaint, Audition, etc would be the JSON format that this rigging uses (and the elements it will use in the future). Especially as that would seem to be very compatible with OpenToonz.

Nico-Duduf commented 5 years ago

Hi,

I'm the lead developper of Duik for After Effects; I've tried OpenToonz a few times but I don't know it very well.

Duik actually brings very standard rigging tools used in 3D softwares to after effects (IK, "bones", etc). Trying to work from Duik to add rigging tools in OT might not be a good idea; You'd better have a look at Blender, especially for some of the algorithms like IK, which will be better, as you can implement them natively in OT.

Duik is a workaround to add missing features in After Effects and relies on their javascript API, which is not the best and most performant way to develop this kind of stuff. I'm actually thinking about porting what I can to the C++ API, but I'm not sure this API has what I need to manipulate the timeline in Ae.

On quite another matter: Duik already includes a Krita Importer (via the CSV export of Krita), and already exports animations to JSON. It will be soon able to export rig descriptions to JSON too, which could provide a bridge between other apps, if these other apps have the same very standard rigging features (animation controllers, parenting & constraints, IK....)

Nico-Duduf commented 5 years ago

There's also another free & open source tool called Bodymovin which exports After Effects animations to Html5+Javascript, and it works well with rigs built and animated with Duik.

RodneyBaker commented 5 years ago

Hi Nicolas, Thanks for dropping in here and giving us your insight.

Your effort reminds me a lot of Raf Anzovin's (then cutting edge work) that led to The Setup Machine for Animation:Master (which later went on to much usage in Maya). Some of your examples remind me very much of that and even add some very interesting new approaches. Often it's the little things that stick out and things like the Parenting constraint and 'Structures' stood out as being particularly useful in Duik.

If I was currently using AE I'd no doubt be diving deeply into Duik. Keep up the great work.

jpturcotte commented 5 years ago

You can support Nicolas' work on Patreon: https://www.patreon.com/duduf.

phillycheese007 commented 5 years ago

hahah @nico-duduf ...Opentoonz is way cooler than After effects...come on board! just saw duik 16 video...we need ur skills!

ghost commented 5 years ago

I am a big fan of all improvements that go in the direction of controllers. I have never used those described here. But I am used to using those of moho. And it's clear that OT would benefit from developing its own controllers If @Nico-Duduf you want to study this perspective

jpturcotte commented 5 years ago

I think it would be better to wait for mature JSON support, and then try to interface with that. I do not know how rigs are represented in OT. Maybe @shun-iwasawa or @morevnaproject know? Anyway, I saw on his Patreon that Blender was supported somehow, so @Nico-Duduf might be interested if we do the legwork.

artisteacher commented 5 years ago

At minimum, I think we’d really benefit from having constraints added to the skeleton tool. The functionality is already there in the plastic tool, I wonder how difficult it would be to add?

Orphanlast commented 5 years ago

I really think this is cool. And yes, it would be equally cool to see it in Opentoonz exactly as it is. BUT what is more likely is that over a long duration of time, such as years, Opentoonz may be inspired by what's seen here but what would ACTUALLY wind up in Opentoonz would be distinctly different.

Automatic systems for getting a character rigged up where you can just adjust a template to fit your rig sounds cool. Unfortunately I never have the time to watch an entire 35 minute long video about a piece of software I'll probably never use, but I skimmed over bits and pieces and I was very impressed by what I saw.

But let's take the image that you posted, as an example. where it appears to be little sprites of the character on the viewer. These sprites are for her left and right eyebrow, left and right eyes, and the full alphabet worth of mouth positions and such -- that's really cool. But we currently have something that resembles these little sprites.... kinda...

That would be the Level Strip. Currently the level strip can be a nightmare. Newbies try to animate on it, all the time, and try to click and drag levels around to easily flip through their animation and that feature isn't available and you have to, instead, bring up a popup window and mess around with numbers, and seeing as animators are rarely mathematicians most of us wind up just animating with the xsheet/timeline. So, long story short, the level strip could use a bit of improvement. The idea of having multiple level strips on the viewer with multiple levels open at the same time on each one sounds cool, but I doubt that'd ever happen. It'd take a major overhaul of the program just to get something LIKE THIS into the level strip alone. But of course I'm not a developer, but just getting the assistants tool into Opentoonz... I guess I didn't realize just how much would be involved in just developing THAT. And though it's kinda promised to be released to the public soon, I had no idea how much I was asking for. Nor did I have any idea how much of a big head I had.

But I think that what you're suggesting is a series of welcome ideas that get the developers thinking.

A long time ago I complained just about interpolation and just now, I read a story where we might actually be getting not just improved interpolation with the Animate tool's animation process, but MAYBE we might not just have keyframes with a generic keyframe icon but a keyframe that displays what type of interpolation is being used at that particular moment on the timeline which makes me as giddy as a little girl with pigtails. It's another incremental change/improvement

So...I suggest going to that discord server that Rodney linked to. Talk to the developers. I suggest you get a piece of editing software and cut that video you linked all to bits. And share the best features from it incrementally with the developers, asking what can be done to get something inspired by this idea? Once they're able to give you an answer, create another issue for THAT SPECIFIC THING. Copy the Github issue's URL. Then go to bountrysource.com click on "create new bounty" paste the URL there. At that point, you've created a bounty. But you won't be done just yet. You'll need to copy your BOUNTY'S URL, go back to your Github issue and paste your bountry's URL into one of the comments, that way developers know it's a bounty and the issue shouldn't be closed.

Now... Bounties are tough. And I'd be willing to continue to report on the continued progress of that bounty, But people won't be willing to donate if you're not willing to be the primary donor. If you don't believe in the feature, other's won't care.

If being the primary donor for that doesn't seem practical, after talking to the developers, maybe think of something like Kickstarter... but my audience, as is, is rather small. Actually Noblefrugal Studio has a bigger audience than I do, and we're still rather small. So for us to market to such a large audience to fund a larger kickstarter project... ... ... You'd need more help than what DarrenT, Noblefrugal Studio, Simon, and I have to offer... unfortunately.

I hope you're not discouraged. Because all of us seem interested in what you've brought here. I would love to help where I can... but it's not gonna help you much. I have... limitations. I'd be willing to donate, but... I'm so dirt poor... I haven't been in a position to donate for a while now. But I'd find a way.

Keep me up to date. I'm in that same Discord server Rodney Linked.

RodneyBaker commented 5 years ago

@711GM As feature requests are not generally posted to OpenToonz github without a developer attached, recommend closing this issue. Call it Feature Request #20181028A. Developmental discussion of this and related features can continue here even though the issue itself is closed or a topic can be opened in the OpenToonz Feature Request category (LINK).

If someone would be interested in developing a rigged character or set of characters for community testing purposes that would make a great issue to open here on github as whomever posted the issue would be the primary developer. Champions/developers might then be inclined to join in and support that initial character rigging effort and know that there is a specific target identified to hit in the development effort.

corbeeresearch commented 5 years ago

@RodneyBaker @gab3d @Orphanlast @artisteacher @DarrenTAnims @blurymind @openanim @beeheemooth @711GM @Nico-Duduf I'd like to share this link, since they are of the same family https://www.youtube.com/watch?v=_j_v0RLQa8k

The program is Adobe Character Animator. I think they've been inspired by DUIK and rubberhose and decided improve upon it in the way they believe would be more productive.

RodneyBaker commented 1 year ago

This is a closed issue but still of much interest to the Opentoonz community. As has been mentioned by th author of DUIK itself... being intricately connected to After Effects likely isn't going to be a reasonable solution.

A general goal would be to:

"...provide a bridge between other apps, if these other apps have the same very standard rigging features (animation controllers, parenting & constraints, IK....)"

I am a big fan of OCA* and DuMe**. I like their developmental approach as well.

*I'm looking forward to the format being adopted and leveraged even more in the future. ** I use it mostly for LUT conversion

Nico-Duduf commented 1 year ago

I got pinged because the issue was re-opened ;)

Just to let you know, we're working on another format similar to OCA (Open Cel Animation) which is called OCO (Open Cut-Out): the goal is to store (2D) rigging information linked to a character (what limbs and their coordinates, how they should be rigged, etc), and we're implementing it it (for now) in Krita + Blender + After Effects

The idea is that in the drawing software (Krita, PS, Ai, Inkscape....) the designer creates/exports the OCO file, which contains all info about the joints (what are the limbs and joints and where they're located) so that it can be imported easily in the animation software (e.g. Blender, Ae, Open Toonz if it's implemented) and rigged accordingly, automatically. Ideally, OCO will be exported from the animation software too as an interchange format for the rigging; it would not contain actual rigging data, but would describe how the character should be rigged (which constraint, which IK on which limb) and could then be imported in another animation software.

The goal: Example: A character designed in Krita can be imported both in After Effects or in Blender (or...) with a similar rig (automatically made) And a character rigged in Ae could be exported to be animated in Blender etc etc.

The format defines a set of known limbs (arms, legs, fins, wings, hair...) And a set of known constraints (IK, FK, position constraint, orientation constraint...) The implementation in each application reads this information and re-creates the rig with the features available in the application. It's an abstraction layer for 2D cut-out rigging

This may be interesting for openToonz; We're developping it, and have some metarig examples here (what we call metarigs is an OCO file containing just the armature of a character, the bones and joints, and how they're parented) You can have a look at the simple human. It's not documented yet though, and still a work in progress

RodneyBaker commented 1 year ago

Transferring this request to Opentoonz-docs repo for general purpose roadmapping...