Skip to content

Commit d577229

Browse files
committed
adding documentation
1 parent 07fb9d2 commit d577229

File tree

11 files changed

+20
-5
lines changed

11 files changed

+20
-5
lines changed

README.md

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,17 @@
1-
# GenericFrameRecorder
2-
Generic framework/pattern that allows recording anything in unity.
1+
# Frame Recorder
2+
### Brief
3+
The *Frame Recorder* is a project that facilitates recording of Unity artifacts. The framework does not define what can be recorded, but defines a standard way of how to record any artifact and takes care of aspects common to all recorders (time managenent, Timeline integration, record windows, etc).
4+
5+
An important aspect is extendibility, where recorder types are detected at run time and made available to the recording framework dynamically. This is accomplished through inheritance and class attributes.
6+
7+
Another key consideration is UX, by defining a standard pattern and basic classes, lets the framework 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.
8+
9+
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.
10+
11+
Of note is the control of flow of time: is variable frame rate requested or fixed? This impacts all recorders that record more than one frame’s worth of data and so is taken care of by the framework.
12+
And last but not least, is the ensuring that at any point a custom recorder can override any standard behaviour of the service to allow full flexibility and not constrain what can be recorded or how.
13+
14+
### Main limitations of current state
15+
..* Recorders are Player standalone friendly, but not the editors.
16+
..* Framerate is set at the Recorder level which makes for potential conflict when multiple recorders are active simultaneously.
17+

docs/Design preview.docx

206 KB
Binary file not shown.

docs/Overview.vsdx

125 KB
Binary file not shown.

docs/images/RecorderClip.png

26.9 KB
Loading

docs/images/RecorderWindow.png

22.1 KB
Loading

docs/images/TimelineTrack.png

11.2 KB
Loading

docs/images/recorder-menu.png

30 KB
Loading

source/Core/FrameRecorder/Core/Engine/Timeline/FrameRecorderClip.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public ClipCaps clipCaps
2121

2222
public override Playable CreatePlayable(PlayableGraph graph, GameObject owner)
2323
{
24-
var playable = ScriptPlayable<FrameRecorderPlayable>.Create( graph );
24+
var playable = ScriptPlayable<RecorderPlayableBehaviour>.Create( graph );
2525
var behaviour = playable.GetBehaviour();
2626
if (recorderType != null && UnityHelpers.IsPlaying())
2727
{

source/Core/FrameRecorder/Core/Engine/Timeline/FrameRecorderPlayable.cs renamed to source/Core/FrameRecorder/Core/Engine/Timeline/RecorderPlayableBehaviour.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ namespace UnityEngine.FrameRecorder.Timeline
55
/// <summary>
66
/// Note: Totally ignores the time info comming from the playable infrastructure. Only conciders scaled time.
77
/// </summary>
8-
public class FrameRecorderPlayable : PlayableBehaviour
8+
public class RecorderPlayableBehaviour : PlayableBehaviour
99
{
1010
PlayState m_PlayState = PlayState.Paused;
1111
public RecordingSession session { get; set; }

source/Core/FrameRecorder/Core/Engine/Timeline/WaitForEndOfFrameComponent.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace UnityEngine.FrameRecorder.Timeline
88
class WaitForEndOfFrameComponent : MonoBehaviour
99
{
1010
[NonSerialized]
11-
public FrameRecorderPlayable m_playable;
11+
public RecorderPlayableBehaviour m_playable;
1212

1313
public IEnumerator WaitForEndOfFrame()
1414
{

0 commit comments

Comments
 (0)