diff --git a/Docs/img/RecorderFrameLayout.png b/Docs/img/RecorderFrameLayout.png new file mode 100644 index 000000000..4a94d9842 Binary files /dev/null and b/Docs/img/RecorderFrameLayout.png differ diff --git a/Docs/img/RecorderLayout.png b/Docs/img/RecorderLayout.png index 8047e22ec..2ac49c2d1 100644 Binary files a/Docs/img/RecorderLayout.png and b/Docs/img/RecorderLayout.png differ diff --git a/Docs/img/RecorderLayoutSample.png b/Docs/img/RecorderLayoutSample.png index bd4a2fcdc..0bed79aea 100644 Binary files a/Docs/img/RecorderLayoutSample.png and b/Docs/img/RecorderLayoutSample.png differ diff --git a/Docs/recorder_and_playback.md b/Docs/recorder_and_playback.md index 07c43e718..1aaef4d6d 100644 --- a/Docs/recorder_and_playback.md +++ b/Docs/recorder_and_playback.md @@ -50,6 +50,8 @@ client.set_replayer_time_factor(2.0) A value greater than 1.0 will play in fast motion, and a value below 1.0 will play in slow motion, being 1.0 the default value for normal playback. As a performance trick, with values over 2.0 the interpolation of positions is disabled. +Also the animations can remain at normal speed, because they don't replicate the state of the animation at that exact frame. So animations are not accurate right now. + The call of this API will not stop the replayer in course, it will change just the speed, so you can change that several times while the replayer is running. #### Info about the recorded file diff --git a/Docs/recorder_binary_file_format.md b/Docs/recorder_binary_file_format.md index 480af33e2..40ede89b4 100644 --- a/Docs/recorder_binary_file_format.md +++ b/Docs/recorder_binary_file_format.md @@ -49,6 +49,7 @@ The types of packets are: I suggest to use **id** over 100 for user custom packets, because this list will grow in the future in sequence. + #### 3.1 Packet 0: Frame Start This packet marks the start of a new frame, so it will need to be the first one to start each frame. All packets need to be placed between a **Frame Start** and a **Frame End**. @@ -145,9 +146,21 @@ This packet records the animation for the walker. It just saves the **speed** of ![state](img/RecorderWalker.png) -### 4. File Layout +### 4. Frame Layout -The layout of the file starts with the **info header** and then follows a collection of packets in groups. The first in each group is the **Frame Start** packet, and the last in the group is the **Frame End** packet. In the middle can go all other packets, some of them are optional. +A frame consist on several packets, all of them optional, unless the packets that **start** and **end** the frame, that must be there always. + +![layout](img/RecorderFrameLayout.png) + +**Event** packets exist only in the frame where happens. + +**Position** and **traffic light** packets should exist in all frames, because they are required to move all actors and set the traffic lights to its state. They are optional but if they are not present then the replayer will not be able to move or set the state of traffic lights. + +The **animation** packets are also optional, but by default they are recorded. That way the walkers are animated and also the wheels follow the direction of the vehicles. + +### 5. File Layout + +The layout of the file starts with the **info header** and then follows a collection of packets in groups. The first in each group is the **Frame Start** packet, and the last in the group is the **Frame End** packet. In the middle can go all other packets. ![layout](img/RecorderLayout.png)