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.
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 | ![]() |
![]() |
|
Adobe Photoshop | OCA for Photoshop | ![]() |
![]() |
|
TVPaint | OCA for TVPaint | ![]() |
![]() |
|
Adobe After Effects | DuIO | ![]() |
![]() |
|
Blender | OCA for Blender | ![]() |
![]() |
Legend:
| Available
| In development
| Planned
| 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”.