OCA tools for Krita by RXLaboratory

RXLaboratory have been doing great work on making the OCA (Open Cell Animation) interchange work.

They have been working on bridging the interchange gap for OCA; and recently a lot of work has been done to increase the ability for people to get their compositions out of Krita and into other paid and free animation software.

Go here for a list of software that is compatible with OCA according to RX:

You can get complex animations and compositions from Krita to Blender, even After effects, and so many others. The compatibility is getting to be quite good.

That’s not all! RX offer all maner of incredible free addons and solutions to all maner of production issues. My personal favourite is BLUIK; the blender version of DUIK that is currently being worked on.

So please go and check them out and consider donating.

-S

18 Likes

I’ve been using this for a couple of years now and I can definitely recommend it! The exporter script is a bit rough on the edges UI-wise (but they told me they are going to improve this in the near future), but works well and I really like the the fact that it also has an option to reduce the image size to the actual opaque pixels in the layer/group. It also has options to ignore and flatten anything in the file.

On the AE side things are pretty mature, the Blender importer also needs some more work, but it’s still a huge time saver compared to having to import and position all the files individually. But again, they are working on it hard so we’ll see a lot of improvement in the future I’m sure!
I just did an animation using this and Bluik (among other things). Defintiely recommend checking out everything they do as well! Among other things, they also make a media encoder application (Dume) – with a new version coming soon – and pipeline / project management system (Ramses).

2 Likes

So this is doing what the ORA file format should be doing. But at least Krita to Blender I never thought a plugin was necessary maybe into After Effects I will probably be checking this out sooner or later.

1 Like

Never heard about ORA.

A better solution would probably be the ability in Blender to open a layered Krita file, with animation and all, and use that. Maybe dynamically, so if you update the Krita file the changes propagate automatically to the Blender file.

1 Like

Krita has KRA and KRZ ( kra for compression ) and then it has ORA ( for intercommunication between apps ). Sadly it has not become popular yet even though it has all the requirements to exist everywhere but I am not sure if it supports animation though.

Ora : https://www.openraster.org/

1 Like

I’m actually surprised that KRA does not have animation support when it’s a feature of Krita itself… Perhaps OCA can be studied for the sake of understanding what kind of missing components are required?

I still use ORA format to interchange comps between Krita and Gimp when one has a feature that the other does not. But I’m increasingly finding I can get everything done in Krita and Inkscape and the right set of Addons.

I’m sure all these interchanges can inform each other to make the kinds of waves that USD and GLTF have made.

-S

I was referring ORA when saying that. I never tested ORA for animation. KRA has animation of course.

2 Likes

The way OCA works is a bit different. Basically the exporter script generates one PNG file for each layer (and frame if it’s an animation) or for each group that has been tagged with _merge_ and then creates a text file with position coordinates, layer order, frame numbers etc.
The importer then just reads that in.
The good thing about it is that it’s just a bunch of PNGs and a text file, so very basic and can be edited by basically any software without trying to establish yet another file format. You can manually edit them if you need and it’s easy to just replace one PNG if you have to change something, without having to edit the source file.
Now, of course there is pros and cons to this and the way this works is due to it initially being a way to get Krita files into After Effects, which will likely never support Krita files or ORA natively.

1 Like

Anyone used spine or the blender equivalent; COA tools?

I feel like this company is trying to offer a similar but more open and more comprehensive solution involving pre-existing animation tools; apart from the game runtime export ofc.

Though I’d need to dig down more to confirm. Thoughts Papernoise?

-S

That is basically a new ā€œfile formatā€ or ā€œproject formatā€ , you have to deal with things like versioning and retro compatibility and have to write importers/exporters for the apps that want to support it.

But yeah, it’s a good thing to have of course. There is also OpenTimelineIO that could be used for interchange, but it looks more complex. GitHub - AcademySoftwareFoundation/OpenTimelineIO: Open Source API and interchange format for editorial timeline information.

2 Likes

As I said, there’s pros and cons.
The way I use OCA right now is less to get animation from Krita into Blender, but to get layered characters and background created in Krita (or Photoshop) into Blender, without the need to manually move all the elements into place. Since the OCA exporter stores the positions of layers (and also automatically crops the layers) this saves me a lot of time.

But isn’t that more focused on NLE projects? Not sure how that would be used for Krita files.

1 Like

My thought was that it would be useful if you can export the frames as pngs and then in the file set those as a sequence/clip, stablishing how much frames each drawing takes or is held for (avoiding duplicated images), and then import that into the video editing app. But I didn’t dig into detail yet, so i’m not sure if it is possible.

Hey guys I have some good news. I have personally got my hands dirty in improving key issues that are present in the workflow between OCA exporter and BLUIK tools which is used to import the OCA into blender.

The following is fixed in my version:

:check_mark: Rasterised Vector Layers Now Supported

  • Blender imports vector layers the same as paint layers, ensuring they are visible.

:check_mark: File Layer Fixes & Shader Optimization

  • File layers now correctly generate objects in Blender.
  • Shared images:
    • Each file layer shares images instead of duplicating them, reducing memory use.

I plan on adding more functionality as I require it for my own projects.

-S

4 Likes

That’s great! Thanks a lot!
it’s a pity Rainbox is not really working on the Blender stuff anymore (at least that’s what it looks like) and all the promised improvements to the OCA exporter have also never materialized.
The latter would really need a proper UI.
But it does the job and still makes life a bit easier than doing it all by hand.
But I guess what I want to say is that it’s great to see you steppin in!

1 Like

It’s been picked up recently under another branch:

I have the idea of taking parts of this code and adapting this so it’s compatible with OCA contents imported into Blender.

Could be cool to have a COA name tag to generate the behavior in specific parts of a project wide export…

-S

I think COA Tools existed before Bluik, and it’s definitely a different thing.
COA Tools hasn’t been updated in a long time, so great to see this new branch!

What COA2 definitel misses is a Krita exporter (apparently it only has a Photoshop one)

Maybe more than adapting COA, it’s more about contributing the Krita exporter?

Confirming that COA came well first. :slight_smile:

COA export exists in two working versions. One in the repo I linked to COA 2, and my favorite one is there if you activate the batch exportor addon. Yes that COMES with Krita.

If you look at my branch you’ll notice that not only is Bluik there with fixes, so is the OCA Krita exportor.

The OCA exportor is ideal because it allows far better management and generation of project directory structures which can be used to store additional files and meta data to allow more flexible exporting too and from game engines. You have to get it to blender to rig it unless you’re coming from DUIK. Even if we don’t cater to Duik users in interpreting OCO as COA or converting OCA layers to COA - I still want this kind of flexibility with OCA to COA.

That’s why I’d rather allow users to convert parts of it into COA while in Blender, because I need one aspect of the tool to create entire projects and the other to generate more complicated features within the project.

Keep in mind… Even within the RXlab list of things they also have the OCO format which is basically COA but without game optimisations. It would be a shame not to consider people who have imported an OCO character rig from Duik. It would be powerful if both OCO and OCA users had an output to COA for real time games.

It’s something I have already thought about.

Yes, I guess we were talking about two different repos. Yours is the first one isn’t it? I was talking about the second one you posted (the one on github).

yes, that’s exactly the thing I like about the OCA exporter!
Rainbox also made a OCA addon for Blender btw. which does import the OCA export into Blender (with some minor caveats).
But yes, having a seamless workflow between Krita and Blender using the OCA format to store the elements of a rig, and COA to augment the rigging and animation workflow that is what I have been waiting for for a long time…

1 Like

Nice.

The blender build of DUIK is the one I’m building off.
The one now called ā€˜Bluik’. I believe it has that same .OCA importer.
Probably we’re talking about a project based on the same build.

And are you referring to this rainbox?

I think I know what you mean, the forum seems to have died but perhaps it’s not so bad because the community lives on through discord:

-S