What is this? An independent Unity package to load and render Quill projects in their native format or in IMM format (we recommend using native Quill during development to avoid conversion/exports, and IMM for final delivery).

The plugin works in Windows DX11 and Windows OpenGL 4.5. Unity developers can load the DLL into their Unity project and interact only with the Quill C# code to playback Quill projects, no need for shaders or intermediate FBX/Alembic asset files.

The plugin can load and play multiple quill documents at the same time.

How to install the plugin?

Import QuillPlayerUnity package in to your Unity project, choose “All” when asked.

This will install: UseRenderingPlugin.cs : example C# code that shows how to use the plugin and call its different API method.

QuillPlayerUnity.dll, Audio360.dll: native binaries that contain the actual Quill player

QuillPlayer.cs: internal C# to C++ bridge functions. In principle, user's don't need to modify it

QuillProjects/quill_unity_sample: a sample Quill project, that's hardcoded in UseRenderingPlugin.cs for demo purpose.

Requirements “Edit→Project Settings→ Quality→ Anti Aliasing” is set to “8x Multi Sampling”. “Edit→Project Settings→ Player→ XR Settings→ Virtual Reality Supported is checked if want to launch VR. “Edit→Project Settings→ Player → XR Settings→ Stereo Rendering Method: “Single Pass” if possible, others will work but slower.

How to the example script Create a Cube (or an empty game object), keep the name “Cube”

Drag “UseRenderingPlugin” script under /Assets onto “Cube”

Press Play

Press 'M' to load some pretty mushrooms

Move the “Cube” game object and the mushrooms painting will move with it

Other available key shortcuts in the example script (UseRenderingPlugin.cs) N - Unload Z - Play previous story chapter X - Play next story chapter P - Resume/Pause story J - Jump through animation Basic functionality Loading/Unloading: int QuillPlayer.Instance.Load(file) : loads a Quill document and returns a handle. Use this handle to operate on this document (unload, transforming, querying viewpoints, pause, resume, etc) QuillPlayer.Instance.Unload( int h ) : unloads the quill document specified by the handle h Playback QuillPlayer.Instance.Pause( int h ) / QuillPlayer.Instance.Resume( int h) QuillPlayer.Instance.Show( int h ) / QuillPlayer.Instance.Hide( int h) QuillPlayer.Instance.Previous( int h ) / QuillPlayer.Instance.Next( int h ) : move to the previous/next chapter Control of the document QuillPlayer.Instance.SetDocumentToWorld( int h, matrix location ) QuillPlayer.Instance.SetSound( int h, float volume ) / QuillPlayer.Instance.GetSound( int h ) Spawn Areas / Viewpoints Spawn areas are artist driven locations where viewers will be spawn when they are watching a Quill document. The span areas are defined by a position, orientation and scale values. You can query the available span areas and their information using