You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+18-6Lines changed: 18 additions & 6 deletions
Original file line number
Diff line number
Diff line change
@@ -6,23 +6,22 @@ Extensibility is a prim concideration and since not all use cases can be thought
6
6
7
7
Recorder types are detected at run time and made available to the recording framework dynamically.
8
8
9
-
A key consideration is peoviding 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.
9
+
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.
10
10
11
11
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.
12
12
13
13
### Current limitations
14
14
* Recorders are Player standalone friendly, but not the editors.
15
15
* Framerate is set at the Recorder level which makes for potential conflict when multiple recorders are active simultaneously.
16
16
17
-
18
-
19
17
## Triggering a Recording
20
18
21
19
### Through the Editor's Record window
22
20
23
21
1. Select a type of recording and open the recorder window
24
22
25
23

24
+
26
25
2. Edit the recorders settings
27
26
28
27

@@ -37,21 +36,23 @@ Note that this can be done from edit mode and from game mode...
37
36
3. Add a "Frame Recorder clip" to the track.
38
37
4. Select the newly added slip
39
38

39
+
40
40
5. Edit the clip's settings
41
41

42
+
42
43
6. Enter play mode and trigger the timeline through behaviours...
43
44
44
45
## Design
45
46
46
-
### Conceptual blocks breakdown
47
+
### Conceptual breakdown
47
48
The Recording framework is composed of three conceptual groups:
48
49
49
50

50
51
***Recorders**: the part that takes data feeds (Inputs) and transform them into whatever format they want (Image input -> mp4 file). They do NOT deal with gathering the data from Unity: that is the Inputs task. Every recorder is broken down into three pieces: Recorder, Settings and Settings Editor.
51
-
***Inputs**: specialized classes that know how to gather a given type of data from unity and how to pre-package that data in a way that is ready from consumption by the Recorders. Like recorders, Inputs are borken down into three parts: Input, Setttings and Settings Editor.
52
+
***Inputs**: specialized classes that know how to gather a given type of data from unity and how to pre-package that data in a way that is ready for consumption by the Recorders. Like recorders, Inputs are borken down into three parts: Input, Setttings and Settings Editor.
52
53
***Support**: holds the FrameRecorder's logic, UI, timeline integration and services.
53
54
54
-
### Recorders and there Inputs
55
+
### Recorders and their Inputs
55
56
Here are the classes that make up recorders and their inputs.
56
57
57
58

@@ -97,6 +98,17 @@ Here are the classes that make up recorders and their inputs.
97
98
### Game mode classes
98
99

99
100
101
+
#### RecordingSession
102
+
* This is a helper class that is used to hold and carry around the contextual state of a recording session.
103
+
* Is the time reference used by the recorders: Recorders should, as a general rule, never access the unity Time class.
104
+
* Is responsible for informing the recorder of events (begin recording, new frame, etc.)
105
+
* Contains:
106
+
* Owns the recorder instance
107
+
* Reference to the GameoObject that hosts the recorder
108
+
* Current frame count (rendered, not recorded)
109
+
* Current frame’s start time stamp relative to the start of the recording session.
110
+
* Timestamp of when the recording session started.
0 commit comments