Cinema 4D’s multiple undo enables you to undo up to as many changes as RAM permits. The maximum number of undos is defined by the Undo Depth on the Document page of the preferences — the default value is 10.
Cinema 4D differentiates between memory-intensive actions and non-memory-intensive actions. Examples of memory-intensive actions include deleting an object and moving an object’s points. Non-memory-intensive actions include selecting and renaming objects. Non-memory-intensive actions can be recalled 10 times more than the Undo Depth value in the preferences. For example, with Undo Depth set to 12, you can undo 12 delete object actions or 120 select object actions. You can also mix both types of action, e.g., you can undo 6 delete object actions and 60 select object actions.
When you perform an action in Cinema 4D, information about that action is written to an area of memory called the undo buffer. The Undo and Redo functions use the information in the undo buffer to undo changes.
You create an object and change its scale to (400/400/400) units. You move the object to coordinates (100/-300/0).
At this point, the undo buffer contain the following action history:
- 1. Create object at position (0/0/0).
- 2. Scale object to (400/400/400) units.
- 3. Move object to position (100/-300/0).
The buffer’s current state is step 3, the move action. If you use the Undo function, Cinema 4D undoes the current state (move) then sets the current state to step 2 (scale).
If you use the Undo function again, the scale action is undone and the current state is set to step 1 (create).
Throughout the process, the buffer content itself is not altered — nothing is deleted. This enables you to restore the changes with the Redo command. Use Undo to move backwards through the undo buffer (i.e. the changes) and Redo to advance through the buffer.
Although nothing is deleted from the buffer, the buffer’s size must be prevented from taking up too much memory. This is the purpose of Undo Depth in the preferences — it specifies the maximum number of actions that can be undone.
Undoes the last change, restoring the scene to its previous state. For example, if you accidentally move an object, choose Undo to restore the object to its correct position. Choose Undo repeatedly to undo the previous changes one by one. By default, you can undo a maximum of 10 changes. The maximum number of changes that can be undone is defined by Undo Depth in the preferences (Document page). Note that the Undo command from the menu of a viewport undoes changes to the editor camera. You can undo a maximum of 500 editor camera changes.
Redo redoes a change. Select Redo repeatedly to continue restoring the changes. You can traverse the recent development stages of your scene by using Undo to move backwards and Redo to move forwards. Naturally, the number of steps you can redo cannot be greater than the number of actions you have undone. Therefore, there is no separate setting for the redo depth in the preferences. In a viewport, Redo View redoes changes to the editor camera only. You can redo a maximum of 500 editor camera changes.
This function differs from the conventional Undo command in that it ignores selection actions. Undo (Action) undoes the last change that did not involve selection. This function only affects normal, undoable actions (such as moving). Selections are no longer affected by undo actions.
Why does the command ignore selection actions? Suppose you have scaled an object and used ten selection actions to select points in various locations. You then decide that the object is too large and want to restore it to its original size. This would require you to call the conventional Undo command 11 times, to undo the 10 selection actions and then finally the scale action. However, if you use Undo (Action), it skips over the selection actions and undoes the scale action immediately.
Let’s explore a couple of examples; in these example, A stands for a normal action such as moving an object and S stands for a selection action such as selecting edges.
You have been editing for a while. The undo buffer contains the following track: