An open API service indexing awesome lists of open source software.

https://github.com/joancharmant/quill-blender

Blender addon to read and write Quill scene files
https://github.com/joancharmant/quill-blender

art quill virtual-reality

Last synced: 4 months ago
JSON representation

Blender addon to read and write Quill scene files

Awesome Lists containing this project

README

          

# Blender Quill scenes import/export add-on

[Quill](https://quill.art/) scenes import and export add-on for [Blender](https://www.blender.org).

Philosophy: some things are easier to do in VR and other things are easier to do on a computer. This add-on aims at minimizing the friction of moving from one technology to the other and enabling you to create workflows that best suits the strength of each.

## Installation

1. Download io_scene_quill.zip file from the Releases section.
2. Open Blender, Go to Edit > Preferences… > Add-ons.
3. Click the Install… button, navigate to and select the downloaded zip.
4. Tick the check mark next to Import-Export: Quill to activate the add-on.

## Usage

To import or export Quill scenes go to **File > Import > Quill scene** and **File > Export > Quill scene**.

For import, select a file inside the Quill scene folder, for example `Quill.json`. The import process may take a while for large scenes.

For export, it will use the file name to create the scene folder.

The import/export dialogs have options on the right hand side.

## Features

The add-on reads and writes native Quill file format.

### Import (Quill → Blender)

- Import Quill layer hierarchy to Blender objects.
- Quill groups become "Empties" with transform and children.
- Quill paint layers become Mesh or Grease Pencil objects.
- Quill cameras become Camera objects.
- Quill image layers become Image objects.
- Quill sound layers become sound strips in the sequencer.
- Import frame by frame animation as Mesh sequences or Grease Pencil frames.
- Import transform keyframes.

[Detailed status of supported Quill features during import](docs/import.md)

### Export (Blender → Quill)

- Export the Blender scene to Quill layers
- Grease Pencil objects to paint layers.
- Mesh objects to painted wireframes.
- Armature objects to painted stick figures.
- Cameras to cameras.
- Image references to image layers.
- Empty objects to Quill groups.
- Export transform keyframes on groups and objects to Quill keyframes.
- Export Grease Pencil frame by frame animation to Quill drawings.

[Detailed status of supported Blender features during export](docs/export.md)

### Round trip (Quill → Blender → Quill)

When importing paint layers as Mesh the created Blender objects keep track of the Quill scene they were imported from. During export the add-on detects this and tries to swap back the original Quill drawings in the output. This link is preserved even when you copy the objects around or import them into other scenes.

This enables workflows to animate or re-organize paint layers or use them as libraries of building blocks. Some limitations apply.

### Keymesh integration

It is not required but if you also have the [Keymesh add-on](https://extensions.blender.org/add-ons/keymesh/) installed it will detect it and use it.

In this case paint layers will be converted to Keymesh objects and the frame-by-frame animation imported. This is a more natural fit than having the drawings as children of an Empty.

Using this we can manipulate the paint layer as a single object and use the Blender timeline as a proxy for the Quill timeline to move key frames around. This also enables "whole part replacement" workflows.

## Inherent limitations

Quill and Blender cannot always be converted correctly back and forth as the underlying models are not fully compatible. This impacts both [import](docs/import.md) and [export](docs/export.md).

Here are the main pain points.

⚠️ Paint strokes. Here is a Venn Diagram of the paint stroke representation between Quill and Blender's Grease Pencil.

![](docs/images/venn-paint-strokes.png)

⚠️ Quill sequence hierarchy with looping and clips. The resulting visibility for any given drawing is baked into the created mesh object.

⚠️ Opacity keyframes and layer-level opacity. This is not supported.

⚠️ Animation types on export. Aside from transform key frames and frame by frame animation Blender also supports armature based animation and shape keys. These will have to be baked on export (not currently supported).