# View and movements

First, it's important to learn how to move around the scene you are building in order to better manage perspective and evaluate space and placement.

You can use the mouse (or trackpad) and keyboard simultaneously for optimal editing.

The keyboard alone does not allow an unlimited number of movements, whereas the mouse does. The difference, however, is that the mouse by its very nature has spatial limitations related to the size of its support surface in relation to the amplitude of the movement you perform, while the keyboard can allow continuous movements of unlimited amplitude (just holding down a key is enough to extend a command). At the end of this section, we will outline some best practices for using them together to achieve smooth movements and precise positioning.

If we consider an absolute condition for the positioning of objects, with spatial coordinates that converge to the 0 point in the upper left corner of our scene (or of the global map in the open world), the movement in space assumes a relative condition, referring to the orientation of our point of view (**POV**) for each and every instant in which the movement itself takes place, thus considering a horizontal axis for **x**, a vertical one for **y**, and one perpendicular to us for **z**, always concordant to our POV. This imaginary, fixed Cartesian system, of which **z** traces an invisible line between us and the object we are observing, does not correspond to the references relating to the movement of the objects themselves, except in a specific mode of [translation on the orthogonal plane](https://docs-en.coderblock.com/coderblock-studio/builder-tool-advanced-guide/working-environment/design-tools/gizmo-and-assets-manipulation/position/movement-on-the-orthogonal-plane). Later, when we deal with manipulating and editing objects in the scene, we will assign <mark style="color:red;">**red**</mark>, <mark style="color:green;">**green**</mark>, and <mark style="color:blue;">**blue**</mark> reference colors to these axes.

The POV cannot rotate around itself, but always relative to a **focus** that affects it, as if walking along a circumference or on the surface of a sphere, always looking at the center. Rotation of the POV on axes is only possible for **panning** (y-axis) and **tilting** (x-axis).

{% hint style="info" %}
Imagining the camera at a fixed point, the main movements are derived directly from film jargon and practice. In this specific context, we count three, one for each axis of rotation: <mark style="color:red;">**tilting (x)**</mark>, <mark style="color:green;">**panning (y)**</mark> and <mark style="color:blue;">**rolling (z)**</mark>. \
However, since there are no directorial/cinematic needs, but only practical and architectural ones, the rolling movement is excluded from the possibilities. This may seem like a limitation, but it is actually an advantage because it allows for faster execution in the construction phases. The absence of rolling will be most noticeable when describing the [orthogonal plane positioning](https://docs-en.coderblock.com/coderblock-studio/builder-tool-advanced-guide/working-environment/design-tools/gizmo-and-assets-manipulation/position/movement-on-the-orthogonal-plane) tool.

**To make it easier to distinguish between the axes of the workspace and those of the POV, we will refer to the former by the letters&#x20;**<mark style="color:red;">**x**</mark>**,&#x20;**<mark style="color:green;">**y**</mark>**,&#x20;**<mark style="color:blue;">**z**</mark>**, according to the spatial coordinate system, and to the latter by the terms&#x20;**<mark style="color:red;">**tilting**</mark>**,&#x20;**<mark style="color:green;">**panning**</mark>**&#x20;and&#x20;**<mark style="color:blue;">**rolling**</mark>**.**
{% endhint %}

### Focus

When you enter a scene, whether it is new or loading a previous work, the focus is placed on a predefined point in space. Your movements in the environment and the manipulation of objects will affect the focus. Its centering can be restored by clicking on the [**Focus Camera**](https://docs-en.coderblock.com/coderblock-studio/builder-tool-advanced-guide/design-tools/control-panel#focus-camera) button to reinitialize it, or by pressing the **F key** after selecting an object to reset the focus on that object. The latter operation is very useful when you are working in large environments, where moving your POV can cause rotations over very large radii for the selected object.

### Using the mouse/trackpad

The combined use of the three buttons (two side buttons and the center wheel) with the mouse movement allows a comprehensive use of the space, with no limits in the selection and movement of objects and PDV. If you wanted, you could use only this device for integral processing, without ever using the keyboard (except for customizations).

* The <mark style="color:green;">**left button**</mark> of the mouse retains its primary function of **selecting, dragging,** and **dropping**, and is therefore associated with **placing** and **manipulating** **objects** from the [Asset Pack](https://docs-en.coderblock.com/coderblock-studio/builder-tool-advanced-guide/working-environment/design-tools/asset-packs) or already in the scene. Left-clicking on a point in the scene where there are no objects will therefore produce no results.
* The <mark style="color:green;">**right button**</mark> of the mouse allows you to **rotate around the** <mark style="color:green;">**panning axis (y)**</mark>, which is vertical to our focus, and **around the** <mark style="color:red;">**tilting axis (x)**</mark>, which is horizontal. The distance of our POV from the focus determines the rotation radius of the POV itself.
* The <mark style="color:green;">**middle button**</mark> of the mouse, corresponding to the cogwheel, is the one that suffers most from the mechanical limitations of the work surface, but it allows total control of the **linear movements**. Clicking on the cogwheel produces a **shifting**, where the horizontal movement of the mouse allows **lateral movement along the** <mark style="color:red;">**tilting axis (x)**</mark> and the vertical movement, on the other hand, results in **elevation along the** <mark style="color:green;">**panning axis (y)**</mark>. Finally, rotating the wheel allows you to **zoom** forward and backward, so **in depth along the** <mark style="color:blue;">**rolling axis (z)**</mark>.

<mark style="color:red;">**Please note**</mark>: the use of a **trackpad** is not explored in depth because the gestures that correspond to mouse movements are specific to the hardware in use and may vary.

### Using the Keyboard

As anticipated, the keyboard allows a limited number of movements, and they are only related to the **zoom** and **shifting** functions, i.e. those associated with the middle mouse button. The advantage of using the keyboard, however, is related to the **persistence of the command**, which allows large movements with extreme fluidity. In fact, if the mouse has the mechanical limitation of its usable surface, and the movement in space is related to the movement of the mouse, the movement performed by the keyboard is related to the duration of the key presses.

The keys associated with such moves are the first 6 on the left side of the keyboard, distributed as follows:

* <mark style="color:green;">**A**</mark>**/**<mark style="color:green;">**D**</mark>, respectively the left or right lateral shift, corresponds to the movement on the <mark style="color:red;">**tilting axis (x)**</mark>;
* <mark style="color:green;">**Q**</mark>**/**<mark style="color:green;">**E**</mark>, allow movement in the vertical plane, lowering and raising the POV along the <mark style="color:green;">**panning axis (y)**</mark>;
* <mark style="color:green;">**W**</mark>**/**<mark style="color:green;">**S**</mark>, to move forward and backward along the <mark style="color:blue;">**rolling axis (z)**</mark>.

<figure><img src="https://1025404586-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvALqBsUIqL1aZ2BmaieV%2Fuploads%2FVUrKdueHX8iXv2jn0rjG%2Fimage.png?alt=media&#x26;token=f5f77fea-7325-4ce7-840e-d75182be5818" alt="" width="563"><figcaption></figcaption></figure>

Constant button presses move the POV along the axes, but what if we want to move in one plane? It's easy: just give the commands for the directions involved at the same time. The same goes for moving in three-dimensional space: press three buttons, one for each axis.\ <mark style="background-color:yellow;">Ex: I want to move along on the horizontal plane while moving forward and to the right at the same time, so I will press W and D, dosing them to get to the desired point.</mark>

Note: as mentioned at the beginning of the chapter, the translation axes are relative. Therefore, if we were looking at our environment from above, and had therefore applied a downward tilt to frame the scene (as in the image above), a forward movement along the <mark style="color:blue;">**rolling (z) axis**</mark> (<mark style="color:green;">**W**</mark> key pressed) will not be parallel to the horizontal plane of the scene itself, but diagonal to it, and insisting on the movement will intercept it.

<mark style="color:red;">**Best practice**</mark>: motion management is best done with a combination of keyboard and mouse, where we leave 100% of the linear movement, zooming and panning to the keyboard, and use the mouse for tilting and panning, using only the right button and not the middle button.
