Crocotile 3D

Crocotile 3D

Not enough ratings
Align: Valuable Toolset for Precision in Crocotile 3D
By Luke Puke
This guide will explain and demonstrate utilities of Align functions: Push, Center, Pull, Flatten, Point, Against. These are one of the most valuable one-click solutions for many problems everyone should be aware of!
   
Award
Favorite
Favorited
Unfavorite
[Introduction]
Align is located at the top of the Transform Tab, directly below Translate, Resize, and Rotate:



Despite its prominent position, Align is frequently neglected. Many people ignore its functionalities since they are unsure what these functionalities are for or how they work. This is unfortunate, since Align functions are very useful. Push, Center, Pull, Flatten, Point, and Against can save time time and boost efficiency significantly. Apart from saving time and boosting efficiency, these functions enable astounding results that otherwise would be deemed too impractical to be perused or would be considered unattainable within Crocotile 3D.

The purpose of Align functions will be explained and demonstrated in this guide. The guide will also include some case studies demonstrating various applications of Align functions, such as quick and efficient vertices alignment, connecting vertices to edges, cutting round holes in surfaces, and many others.
►[Align and its Functions]
ㅤ│Align Functions and Mesh Elements
Align functions can manipulate position of vertices, edges, faces, and bounding boxes. The guide assumes the reader is familiar with the previous three mesh elements, which are essential in 3D modelling. Bounding box, on the other hand, does not have the same prominence as these elements and is thus more prone to be overlooked. Because the concept of a bounding box is vital in aligning, it will be explored below:


Consider a basic plane that has all of its vertices selected:



There is nothing remarkable about it. However, if we were to move its adjacent vertices along the axis, a new element would become prominent:



Do you notice that the plane is enclosed in a transparent rectangle? This rectangle denotes a 'bounding box'. Bounding box represents the smallest possible rectangle which contains every vertex of the selected meshes. Consider the following examples:















Bounding boxes are used extensively in align calculations.


To make demonstrations clear, a rectengular mesh will be used to showcase functioning of align functions. Its bounding box is visually equal to its form.

ㅤ│Camera Position
Align functions, with the exception of Point, are sensitive to the camera position. In Crocotile 3D, tiles are placed against an invisible plane that always aligns with the 3D crosshair. Align functions move mesh elements in relation to the invisible plane which camera currently faces.


Throughout the guide, 'the invisible plane which camera currently faces' will be refered to as 'the crosshair plane'

References to relative positions of mesh elements, such as 'the furthest' and 'the closest', are relative to the camera, not the 3D crosshair or the crosshair plane, unless stated otherwise.
ㅤ│Push
Aligns the furthest plane of a bounding box to the crosshair plane. Default Hotkey: Shift+P

Before Push:


After Push:


Before Push:


After Push:



Before Push:


After Push:


Before Push:


After Push:


ㅤ│Pull
Aligns the nearest plane of a bounding box to the crosshair plane. Default Hotkey: Ctrl+P

Before Pull:


After Pull:

Before Pull


After Pull:

Before Pull:


After Pull:

Before Pull:


After Pull:
ㅤ│Center
Aligns a middle plane of a bounding box to the crosshair plane. Default Hotkey: P

Every bounding box has a centre point:


This point divides a bounding box into equal planes. Center function aligns corresponding middle and crosshair planes.


Before Center:


After Center:


Before Center:


After Center:
ㅤ│Flatten
Aligns every vertex of a bounding box on the crosshair plane. Default Hotkey: Alt+P

This function flattens the bounding box.

Before Flatten:


After Flatten:

Since Flatten aligns every vertex of a bounding box to the crosshair plane, selecting every vertex of an mesh will turn this mesh from 3D into 2D upon using this function:







More practically, Flatten can be used to connect meshes together without gaps, which will be explored in the Demonstration chapter of this guide. Flatten can also be used to align a set of vertices on the same plane:

Before Flatten:


After Flatten:

ㅤ│Push, Pull, Center, Flatten: 2D Bounding Box
When selecting a single mesh element or a set of mesh elements which are positioned on two axes only, a bounding box will be two dimensional. As such, there are no "furthest", "nearest", "middle" planes. This makes Push, Pull, Center, and Flatten to be functionally mostly the same when dealing with 2D bounding boxes. Upon using any of these functions with 2D bounding boxes, the chosen mesh elements will be aligned on the crosshair plane:





However, even when a bounding box is 2D, Flatten will align every vertex on the same plane and Center will align elements based on the center point of a bounding box:



After Flatten:


After Center:
ㅤ│Point
Moves the selected vertices to the crosshair position. Default Hotkey: . (dot)
Cannot move only edges or faces. It doesn't matter which invisible plane the camera faces.




Note: in this case, the transparent rectangle does not represent a bounding box, but a regular rectangular mesh. Transparency is used for clarity of demonstration.
ㅤ⤓Against
Moves the selected vertices along the cardinal direction of the 3D crosshair that the camera faces until they collide with another mesh element (excluding a bounding box). Default Hotkey: / (slash).

In a sense, this function pushes vertices away from the camera until they hit another mesh. Vertices are pushed along a straight line defined by the crosshair. If there is no mesh on a vertex's way, the vertex will not move. Consider the following demonstration:

When you place the crosshair on a vertex, you can see straight white lines going in cardinal directions, up and down.



When Against is used, vertices follow one of these lines away from the camera until they hit another mesh. You don't have to actually put the crosshair on a vertex to make it move, it's just for the demonstration.

All vertices are aligned with a mesh:










Some vertices are aligned with no mesh:











Vertices aligned to meshes at different distances:








Vertices aligned at tilted crosshair axes:









Note: this example is here to showcase that Against doesn't simply move vertices "straight", but along the crosshair axis.


Even if an edge or a face are chosen, Against will move those elements by their associated vertices. This includes objects. Just like meshes, objects are moved only if at least one of its vertices can be pushed against a mesh or another object. However, unlike mesh, when moved, object will not deform, doesn't matter what.
►[Demonstrations]
The purpose of this section is to showcase practical applications of Align functions. This section does not show every application, just some.
ㅤ│Aligning Vertices
Assume we want to align vertices colored in violet with vertices colored in white:




Let's first set the same width by aligning the vertices on the same plane:


In Crocotile, you can place the 3D crosshair without selecting a vertex by moving your mouse cursor over a vertex and pressing Ctrl+C:


Vertices can be Flattened after the crosshair plane has been set:




After that, we can use Push, Pull, Flatten, or Center to align the relevant vertices along the x- and z-axes. Personally, I favor Flatten.


Choose a vertex and align the crosshair:


Flatten:


Choose a vertex and align the crosshair:


Flatten:


Choose a vertex and align the crosshair:


Flatten:


And so on, until all corresponding vertices are aligned:

As you may see, some vertices need more work and be aligned on y-axis. We can use Flatten again:

Choose a vertex and align the crosshair:


Position the camera:


Flatten:


And so on:




Until every vertex is matched with its pair:


ㅤ│Snapping Vertices to Edges
Assume we want to align violet-colored vertices with violet-colored edges:




One of the edge's vertices is chosen to position the crosshair axis along the edge, :


Using Push, Pull, Center, or Flatten, verices are aligned along the crosshair plain:








ㅤ│Snapping Edges to Edges
Assume we want to connect two violet-colored edges:



One of the edge's vertices is chosen to position the crosshair axis along the edge:


Verices are aligned along the crosshair plain, using Push, Pull, Center, or Flatten:







ㅤ│Snapping Edges/Vertices with Inclined Edges
Assume we want to align violet-colored vertices with violet-colored edges:



One of the edge's vertices is chosen.


The crosshair axes must be tilted in order for the crosshair plane to lay along the edge. To tilt the crosshair axes, hover the mouse cursor over the edge, next to one of its vertices, and then press Shift+t:


The yellow axes shows that the crosshair axes can be titled along the edge:


Press T to tilt the crosshair axes:


Vertices can now be aligned:




Because the crosshair axes were tilted, the bounding box of vertices has also changed:


Flatten:




Push:






Flatten:

Vertices are now on the edge and are free to move along it:








Assume we want to place vertices at equal distances from edge vertices. To achieve this, first the crosshair has to be placed at the middle of the edge. To do this, the edge's vertices are selected and Shift+c is pressed:


The vertices to be adjusted are then selected and aligned with Center:


ㅤ│Connecting Meshes Together without Gaps
Assume we want to make a simple chair out of the meshes provided. Meshes are in their proper places. The only thing left to do is connect them:




Let's begin by connecting the chair's legs to its seat.


The crosshair plane is set:


Legs are aligned using Push:








Legs are connected! No gaps to be seen.


Let's connect the backrests next:


The crosshair plane is set:


The backrests are aligned using Push:










The backrests are connected.


Let's connect the final detail now. Same as before, the crosshair plane is set:


The detail is aligned using Push:


This may not be the most spectacular of chairs. However, it is well-constructed: there are no gaps in its geometry.
ㅤ│Connecting Inclined Meshes
Assume we want to connect the mesh rotated at 45° to the faces of the other two meshes:



One of the mesh's vertices is selected.


The crosshair axes must be tilted in order for the crosshair plane to lay along the edge. To tilt the crosshair axes, hover the mouse cursor over the edge, next to one of its vertices, and then press Shift+t:


The yellow axes shows that the crosshair axes can be titled along the edge:


Press T to tilt the crosshair axes. Mesh can now be aligned:




Against:




Against:



ㅤ│Making Perfect Cuts
Assume we want to cut a star shape in the given square:



Let's use Center to align shapes with respect to their center points:

The square is selected:


The hotkey Shift+C is used to move the crosshair to the center of the square:


Center is used to align the star shape with the crosshair's center:












The star shape provides vertices for perfect cuts.


Because Align functions allow vertices to be positioned along planes, cuts can be made anywhere as long as they "square" the shape to be cut:




Unneeded geometry is removed:




Flatten is used to align the vertices:










Ready geometry:


Because the star is a simple shape, no additional alignments are required. Tiles can be snapped to existing vertices:


Unneeded geometry is removed:


Perfect cut!


No gaps; ideal extruding potential:





What about more intricate shapes, which demand more alignments?
ㅤ⤓ Filing Complex Gaps left by Complex Cuts
The same process was followed as with the star shape. However, gaps cannot be filled using given vertices. New vertices can be aligned along a specified edge instead:



New vertices can be aligned along a specified edge instead:


Vertices selected, the crosshair axes are set:




Flatten:




Vertices are linked:




The projecting edge is aligned:




Flatten:


The remaining gaps are filled:




Geometry is copy-pasted and rotated until there are no gaps left:


Unneeded geometry is removed:




No gaps; ideal extruding potential:




Special Credits
Alex Hanson-White, aka Ninja Sprout. Some explanations were taken directly from Crocotile's official "How-To", written by Alex, and copy-pasted without any alterations. The How-To was consulted extensively throughout the writting of the guide. This guide is only possible because of Alex's efforts! Cheers!