OCA

The Open Cel Animation format

OCA is an open format to ease the exchange of traditionnal/frame-by-frame/cel animation between different applications.

Principles

  • OCA has to be open and simple: it must be easy to implement an exporter or importer in any application providing a scripting API.

  • As it relies on existing and standard file formats (images and json/text files) stored in a simple folder, the OCA format can be imported in any application manually, even if the application does not directly support it.

  • OCA stores the most common features used by drawing/animation software: layers, groups, blending modes, animation exposure (x-sheet), etc.

YOUTUBE

Implementation

We’re providing some implementations of OCA as add-ons for a few applications. If the application you need is not listed, you can politely ask for it in a feature request and we’ll consider it.

Application Add-on name Exporter Importer Comments
Krita OCA for Krita icon icon
Adobe Photoshop OCA for Photoshop icon icon
TVPaint OCA for TVPaint icon icon
Adobe After Effects DuIO icon icon
Blender OCA for Blender icon icon

Legend:
icon | Available
icon | In development
icon | Planned
icon | Not supported

Tip

The OCA format is made to be simple to export/import in any application and it should not be difficult to implement it/write your own script for your application.

Features

OCA supports the most common features of all drawing/animation software:

  • Layers
  • Layer Groups (and pass through mode if any)
  • Layer Labels
  • Layer Visibility
  • Layer Blending Modes
  • Layer Alpha options (inherit alpha)
  • Keyframes and their duration (animation exposure)
  • Opacity Keyframes
  • Layer Sizes and Coordinates
  • Document background color
  • Document color depth
  • Duration
  • Framerate

All these properties are stored in a simple JSON file, and the images are stored in standard image file formats: PNG, EXR, SVG

Everything is assembled in a folder which name ends with .oca. The JSON file is at the root, while the images are stored in subfolders corresponding to layers and groups.

Speficications

JSON Objects

Values

License

Software

Copyright (C) 2020 Nicolas Dufresne and Contributors.
This program is free software; you can redistribute them and/or modify them 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.

This program 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 DuBuilder. If not, see http://www.gnu.org/licenses/.

This Documentation

Copyright (C) 2020 Nicolas Dufresne and Contributors.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “Documentation License”.

GNU GFDL