Unity-Technologies / GenericFrameRecorder

This GitHub package is DEPRECATED. Please get the new Unity Recorder from the Asset Store (https://assetstore.unity.com/packages/essentials/unity-recorder-94079) Use the editor builtin Bug Reporter to report issues. You can track and vote for issues on the Issue Tracker (https://issuetracker.unity3d.com)
MIT License
534 stars 67 forks source link

DEPRECATED

This GitHub package is obsolete. Please install the new Unity Recorder from the Unity Package Manager inside the Unity Editor. Use the Editor's built-in Bug Reporter to report issues. You can track and vote for issues on the Issue Tracker (https://issuetracker.unity3d.com)


Unity Recorder

Brief

The Recorder is a project that facilitates recording of Unity artifacts from Unity. The framework does not define what can be recorded, but defines a standard way of how to implement and setup a recorder and takes care of aspects common to all recorders (time managenent, Timeline integration, record windows, etc).

Extensibility is a prim concideration and since not all use cases can be thought of in advance, whenever relevant, the framework's base classes strive to offer an easy way to override the default beahviour of the system.

Recorder types are detected at run time and made available to the recording framework dynamically.

A key consideration is providing a uniform UX. By defining a standard pattern and basic classes, the framework can treat all recorders equally and display them consistently. This allows for a generic “recorder window” that is provided and takes care of configuring and starting a “recording session” from edit mode.

Code reusability and easy of use for developers is also a prime consideration. As much as possible, modularization in a Lego mentality is promoted so that work done for one specific recorder, say MP4 recording, can be reused by an other type of recorder, say PNG or WAV recorders.

Found a bug? Let us know and post an issue.

Current limitations

Triggering a Recording

Through the Editor's Record window

  1. Select a type of recording and open the recorder window

  1. Edit the recorders settings

  1. Click "Start Recording" to lauch recording.

Note that this can be done from edit mode and from game mode...

From a timeline track

  1. Create a timeline asset and add it to the scene.

  2. Add a "Recorder track" to the timeline.

  3. Add a "Recorder clip" to the track.

  4. Select the newly added slip

  5. Edit the clip's settings

  6. Enter play mode and trigger the timeline through behaviours...

Design

Conceptual breakdown

The Recording framework is composed of three conceptual groups:

Recorders and their Inputs

Here are the classes that make up recorders and their inputs.

Recorder:

Game mode classes

RecordingSession

Timeline integration

Example Recorder : PNG sequence