Crocotile 3D

Crocotile 3D

Not enough ratings
Constructing Curves in Crocotile 3D
By Luke Puke
Learn to construct various curves in Crocotile 3D!
2
   
Award
Favorite
Favorited
Unfavorite
About curves
While designing a curve in Crocotile 3D, there is no one-size-fits-all approach. To help you generate curves that meet your specific needs and precision requirements, I will demonstrate three different methods: quick and easy Gizmo curve, reference-based Reference curve, and extra smooth, but requiring time to set up, Curve tool.
[Gizmo Curve]
When "good enough" is good enough, you can use Crocotile's Gizmo tool to create curves quickly by dragging vertices along the axis:






To enable Gizmo, find boxes located at the top-right of the Crocotile's 3D editor screen. Make sure boxes marked in red, Enable Gizmo and Gizmo mode, look just like on the screenshot below (That is, Gizmo is enabled and in the "move" mode):


Well, that's it! Your eyes are the judge, your hands are the executioner. The more subdivisions you have, the more control you got over the look of your curve. There are no special techniques or principles, only your personal judgements. Here are some examples of curves I created using Gizmo:







These are not the smoothest, but they took less than a minute each to create. With more polish and a clear vision much better results can be achieved.

If you wish to learn more about Gizmo, please refer to the Crocotile's 3D official documentation. I do recommend getting comfortable with Gizmo, it is a powerful tool.
[Unit Circle Method]
Here's a Gif image that visualizes the sine function using a unit circle


Take a look how the heights (red lines) from various angles in the circle produced a curve over distance:

This phenomenon can be replicated in Crocotile 3D.

Place a disk (using the Primitive tool) and a corresponding number of tiles along the same invisible plane:


Tile’s heights have to be adjusted to the corresponding disk’s vertices:


This can be achieved using the align functions. If you are not familiar with the align functions, check this guide: https://cs2bus.com/sharedfiles/filedetails/?id=2883486583



Connecting the tiles will produce a perfect curve.


Such curves can be iterated indefinitely.


By using Gizmo in "Scale" mode, you can manipulate the look of the curve:


Cool tip: you can place tiles along any distance; they can be as close or as far as you desire. So, you can construct such curves between any given points!


It's also possible to build such curves on an incline:
[Reference Curve]
In some cases, it is desirable to capture the appearance of a specific curve. The Reference curve technique can be used to get as close as possible! A reference curve is made by arranging tiles on a reference image and then connecting them together. Here's a glimpse:














I believe most people have done one of those "connect the dots" pictures at some point in their lives. Reference curve operates on the exact same principle: you connect dotes together to form lines. In Crocotile 3D case, you connect vertices together so edges form a desired curve.




The only difference is that you are the one to place the dots. Don't worry to much about it: draw a curve using either Crocotile's internal drawing toolset or a third-party program and then trace it.



The following section will not be a step-by-step instruction, but rather a collection of useful tips and tricks for efficiently referencing curves within Crocotile 3D.
ㅤ│Reference Curve: Tips and Tricks
■ Use "Input-Output" rule to avoid confusion.

In Crocotile 3D, you can't place just one vertex: you have to place four; a tile. For every reference point you place, you create three additional ones. It can get quiet confusing. Consider the following:



You have four tiles. You know the order they should be interconnected. However, which vertices would you connect together? Connecting different set of vertices will produce drastically different results. It helps to have a consistent rule which concerns itself with set of vertices to be connected. I propose "Input-Output" rule.

This rule states, that one point must be appointed as Input and one other should be appointed as Output. Input is a static point. It is the point which you place to define a curve. Output is a dynamic point. It is used to create a straight line between two output points; it draws the curve defined by Input points.

You can assign any two points to be Output and Input, but they must be the same for every tile! I personally assign down-right point to be Input and up-right point to be Output. Here's a visualization (Red = Input, Blue = Output):




Applying this rule, let's take a look at the four tiles from the beginning:




Less confusing, isn't it? Connect blue to red and you get the curve you defined!



What about the other two points? Connected them with corresponding vertices!




Again: consistency is the key. If you connect an up-left vertex with an up-right vertex, do so with every other tile. It is essential for giving your curve width! Beware: first connect an Input vertex with an Output vertex and only then connect their corresponding vertices!


■ To add width to your curve, select and move its edges

Let's assume you have created a curve. It looks great, but there is a problem: it has no width


There is a solution: choose every edge of the curve and move them (using WASD keys)!





!!!There are very important nuances!!!:

1. You have to select each edge manually, with a left mouse click. Why not "Edges -> Select Edge Loop" to select everything instantaneously? Because it will select EVERY edge and MOVE the whole shape. Instead, we want to select only CERTAIN edges and EXTRUDE them.

2. Double-sided tile mode MUST be activated. Otherwise, you won't be able to select edges.

To activate the double sided mode, either press "9" on your keyboard or find the dedicated button in the Tileset window (it is one of the middle ones).

3. Vertices have to be connected to their corresponding vertices. Corresponding vertices were discussed above. What happens if vertices are not connected to their correspondences?

Holes:


These have to be deleted and the gaps have to be filled manually:



You want to have as few of them as possible. Be extra careful. The next advice will help you in extra difficult situations, where it is hard to tell which vertex belongs to which tile.


■ If you are not sure which vertex belongs to which tile, select relevant tiles.

Consider the following situation:


Tiles are packed together and it is a nightmare for the eyes to identify belonging of vertices. What you can do is select the tile which contains relevant vertices:


In especially hard cases, you can select multiple tiles:



Next question arises: how do you identify relevant tiles in such situations? The following advice regarding reference images shall answer this question.


Import your reference image as a Tileset.

In case you have wondered how to add a reference image to Crocotile 3D.


Subdivide your reference image into a grid.

A grid will help you to better judge distance when placing vertices. I personally find 20x20 grid to be efficient:







Turn your reference image into an object.

First of all, it will disable unnecessary vertices created by a subdivision grid.

Second of all, it will give your reference image a unique property: you will be able to turn its visibility on and off at will:




To turn your reference into an object, select all of its tiles, right mouse click -> Faces -> Create Object. You will find your reference listen in the Scene tab. Click the eye icon to change its visibility.

Being able to change reference visibility comes handy at situations, where it is hard to distinguish relevant tiles:





If you delete a Tileset, tiles associated with this Tileset will be deleted as well.

If you delete a Tileset, every tile associated with this Tileset will be deleted as well. When you are done with your reference image, simply delete its Tileset. Apply disposable tilesets to tiles you intend to delete after your constructions are done.

For this reason, DO NOT CONSTRUCT YOUR CURVE WITH TILES TAKEN FROM THE REFERENCE IMAGE. If you did, for some reason, select a different tileset, select every curve tile, right mouse click - UV's -> Apply Tileset to the selected Faces.


■ You can use Gizmo to adjust the look of your curve.

Do you feel like some points stick out? Use Gizmo Curve techniques to fix them! But do so before adding width to your curve.
ㅤ│Reference Curve: Round Symmetrical Objects
Reference curve can be used to turn this:



Into this:



With relative ease!






Step 1: Place a line of symmetry on your reference image

This means divide the object on your reference image in half. This will provide you with symmetry points you will use to spin your tiles around.

If you are proficient with a photo editor software and can crop your image, you can subdivide your reference image into two columns and one row:





If cropping is not an option, you can place a line wherever you believe the object can be divided into two equal parts. Don't worry, it won't affect the roundness of your object if you are a little off!




After placing the line, it's a good time to subdive your reference image into a grid and turn it into an object. These are optional. But if you do turn your reference image into an object, turn only the side you trace. The other side will contain symmetry points.


Step 2: Trace the curve of the object
Use a reference curve to define the curve of the object you wish to model. Since the object is symmetrical by definition, you only have to trace one side. Keep the "Input-Output" rule in mind, it will come useful!






Step 3: Select the tiles you've placed to trace the curve, copy them and place the crosshair on one of the symmetry line vertices.




Step 4: Turn the tiles by a desirable angle



Your desirable angle has to add up to 360 in the end. For example, if you want the circumference of your round object to consist of 36 tiles, then the desirable angle is 10 (360/36 = 10). Same principles as with constructing a circle apply.

Step 5: Apply a tileset you will delete to the copied tiles



This step is there to enable you to delete unnecessary tiles quickly after you are done with constructing. It is best to do apply this step straight after you have copied the tiles, since they are still selected. To apply a different tileset, choose the tileset you wish to apply in the Tileset tab, click right mouse button -> UVs -> Apply Tileset to the selected Faces. If copied tiles are not selected, first select them. Make sure you don't select tiles you do not wish to delete later.

A tileset you will delete can be either the reference image tileset or you can create a blank tileset.

Step 6: Fill the gaps between tiles.

You can create new tiles if you wish, but it is faster t connect already placed tiles using "Input-Output" rule.












Step 7: Delete construction tiles

You can delete the tileset applied in Step 5. If you are using the reference image tileset, place the crosshair on one of the vertices on symmetry line.




Step 8: Select the tiles you placed to form the curve, copy them and place the crosshair on one of the symmetry line vertices.


Step 9: Turn the tiles by the desirable angle, copy and repeat until the object is formed







Note: people experienced with other 3D modelling programs may ask why haven't I used the "extrude and scale" method instead. The reason is I find it very clunky and relatively time consuming to the method presented in this guide when working with symmetrical round objects in Crocotile 3D. Want to know why? Try yourself.

However, there are cases where extrude and scale is unnavoidable. Such is the case with asymmetrical round objects.
ㅤ│Reference Curve: Round Asymmetrical Objects I: Extrude and Scale
An example of a round asymmetrical object is a spout of a tea pot:


Note: "spout" is the part from which tea is being spilled.


Notice that roundness of a spout is contained within two different curves; thus, making it a round asymmetrical object:


Reference curve can be used to make construction of such objects considerably easier and more intuitive. However, the main method of construction in such cases is the extrude and scale method.

Extrude and cale method demonstration:

Let's assume we want to turn this image into a round 3D form:



First, we would have to construct a circle:


[If you are not sure how to construct a circle, check "Round Primitives of Any Complexity" Guide]


Then, place this circle at the base of the object we wish to construct:



From there on, we would begin to extrude:


And then scale, so the new circle fits object's outlines:




To scale objects, we would use Gizmo in the Scale mode. When scaling, make sure you hold down one of the white squares which appears with Gizmo axis. Holding down a white square allows to scale equally along every axis:





Well, that's the method!


Sometimes, you will have to rotate points as well. For this, you can use Gizmo in the Rotate mode:




Besides extruding and scaling, you sometimes will have to adjust points to fit in. Here, I rotate the circle so it fits the outline of the object:


And again, scale until it fits.




As you may see, I did not utilize reference curves at all. That's because reference curves are not essential for such constructions. Simple asymmetrical (and symmetrical too) objects can be done 'freehand'.

However, reference curves are very handy when it comes to constructing complex objects, such as a spout of a teapot. Reference curves may assist the extrude and scale method by:

1. Creating a general outline of an object. This will allow you to approximate the final look you will achieve. The general outline will have vertices which you can use as a guide to achieve the look.

2. Allowing precise placement of construction circles. By subdividing the general outline, you will create points which are at equal distance from object's curves. This will make scaling much easier, since if your construction circle fits one curve, it will automatically fit the other.
ㅤ│Reference Curve: Round Asymmetrical Objects II: Construction
Step 1: Place vertices on ends of curves which form the object and connect them:

Remember this picture?



The "curves" I am referring to would be the red and the blue one. And their "ends" would be the black points:



There may be objects which require more points. The rule is, if it makes your life easier, then it does require more points. If it overcomplicates it, then it doesn't and a simple rectangle is enough. In this case, only end points of curves are sufficient to "box" the general shape of the object:






You won't need those reference points again, so you can delete them:






Step 2: Subdivide the general outline tile

This subdivision will decide the look of your object. The more you subdivide, the closer your outline will follow reference object curves. But keep in mind, the more you subdivide, the more complex your object will be. I would recommend subdividing 'less than desirable' rather than 'more than desirable', since you can subdivide further later:





Step 3: Adjust vertices of the outline to better resemble the reference image

In this step, I recommend adjusting your vertices along the same axis. Meaning, you can move your vertices up and down or left and right, but not both at the same time. This is not a rule, but a recommendation. In this demonstration, I will move vertices along y-axis; up and down.








As was mentioned before, there might be cases where you may want to subdivide further, so the outline better fits the reference. Here's an example:


I would like for my outline to better fit the reference. I will subdivide the closest tile in half and adjust its vertex:





This outline gives me a visualization of how my object will look like:



Step 4: Subdivide the outline in half

This step will allow you to position centre points of circles in a way which will make scaling easier.






Step 5 (optional): If you are not using a tileset you will delete, change the tileset of the outline to a tileset you will delete

That is so you can delete unnecessary tiles easily, after you are done with them:




Step 6: Construct a circle you will use for extruding and scaling

In this demonstration, I will use a 36 edged circle. My personal favourite!



Make sure you are using a tileset which you will not delete.


Step 7: Position the circle for extrusion and scaling.

Select the circle with Gizmo turned on and in the Move mode. Then, you have to snap the circle by the white Gizmo square to the first middle point of the outline:





You want to do it with EVERY circle you extrude. Every circle's centre point has to have the same coordinates as a middle point of the outline. This will make positioning, scaling and rotating circles much easier. Make sure the white square is always positioned on a cricle's centre point. If it is not, you can press "Alt+x", with your mouse cursor positioned close to a centre point, in order to reposition the white square.

Scale and rotate the circle so it fits the outline, if necessary:






[Word Limit Has Been Reached Here]



ㅤ⤓Continued:
Step 8: Extrude and scale

Extrude and scale method was discussed in the previous section. However, when using this method together with a reference curve, it is important to know the following hotkeys and their uses (unless you want to spend 10 times longer):

Taken from the official Crocotile 3D documentation:
1. Crtl+A - select all vertices (once for highlighted face/edge vertsices, again to select overlapping vertices).
2. Ctrl+D - deselect vertices/faces (press key once for vertices, second press for faces)
3. Shift+X - change Gizmo mode (move/rotate/scale)
4. Alt+X - position the Gizmo (the white square) to the nearest vertex, object or any other entity that the mouse is hovering over, or to the 3d crosshair.

These four will save you an enormous amount of time and allow for a certain workflow. Here are the steps of this workflow:

1. Extrude a circle

You have to extrude it only so far as it comfortably allows you to take the next steps. You are not positioning it yet. Use the Transform tab to extrude, otherwise there will be extra tiles on the inside of the object.





2. Press Ctrl+D once.

Important: ONCE. This will deselect old vertices which we want to stay at their current position. If you press the hotkey twice, you will deselect circle's faces as well. If you do, select circle's faces again, before proceeding with the next step.



Note: Skip this step at the first extrusion. There won't be vertices to deselect initially.

3. Press Ctrl+A twice.

Important: TWICE. This will select a new set of vertices. When you press it the first time, you select circle's vertices. When you press it the second time, you select vertices of faces which are connected to the circle.


3. Position Gizmo (the white square) on the circle's centre point.

Use Alt+X hotkey. Your mouse cursor HAS TO BE next to the centre point when you press the hotkey combination.



4. Drag the circle by its Gizmo (the white square) to the next middle point of the general outline



5. Rotate the circle so it matches the general outline and resize it by its y-value.

This is an iterative step. It is important to only adjust circle's y-value (the Green arrow in Gizmo in the Scale mode). That is to maintain the other axis equal (otherwise, the object will be a disfigured mess). When you adjust a y-value of a circle, it may rotate. When it does, you have to re-adjust it, so it fits the general outline again. You will have to scale, rotate, scale, rotate and so on until the circle is acceptably adjusted to the general outline. It is not difficult, but takes time.Do not adjust using anything, but the Green arrow, since anything but will either adjust wrong axis or adjust two or three axis simultaneously.

Sometimes, it's pretty simple:



Sometimes, it can take a few tries:





It is also important to rotate circles by the same axis.[/quote]

5. Repeat steps 1-4 until the construction corresponds with the general outline.


6. Adjust other axis, if necessary

Use Gizmo in the Scale mode to adjust the other two axis, if necessary.





If you need extra help with the step, check out this video-demonstration:


Note: from 1:50, you can see me struggling with Step 4.


Step 9: Delete unnecessary tiles.

Delete unnecessary tilesets and any other extra tiles. You are done!

[Curve Tool] (OUTDATED)
Construction methods in [Curve Tool] sections are outdated and are there only for showcasing an obscure way a quadratic curve can be constructed in Crocotile 3D. There is a much easier method for constructing such curves! Check [Unit Circle Method], it produces the same results but better and faster!


There are situations where it is desirable to have a curve so smooth its smoothness can be expressed by an elegant mathematical equation. To avoid actually using math while constructing such curves, one may resort to using a curve tool.

This section will teach you how to create your very own Crocotile 3D curve tool, utilizing quadratic Bézier curve. Let's take a look at the concept of the tool:




Straight lines intertwine with each other and form a curve! Black dots are the curve we want to construct. Simple, math-free construction. Although, this construction looks pretty rigid... Can it produce any other curve? Absolutely!





We can manipulate the way a curve will look like by manipulating the angle and length of axis! And by combining multiple curves, you can create any curvature you desire. The end result will be a mathematically correct (approximation of a) curve.

Why not to use it all the time? Because it takes time to position axis and extract a curve from the tool. Take a look at sections below to learn how such tool is build, how we can manipulate the look of a curve, how can we adjust the tool and how we can extract curves from it. Then, you will be wise to make decisions regarding its utility.

ㅤ│Curve Tool: Construction
To construct a curve out of straight lines, we have to divide two lines at equal intervals. Then, we have to connect those intervals in a specific order. In a sense, just like with Reference Curve, all you have to do is connect points in an appropriate order. The order is always the same:


You can do more than 10 points per axis. The order won't change. The more points you use, the smoother your curve will appear.


Let's see how we can replicate this method in Crocotile 3D:


Step 1: Place axes




I recommend placing a rectangle, then copy-pasting, and rotating it by 90 degrees. This way you will ensure equality of axes.

Copied axis will come handy in Step 3.


Step 2: Subdivide axis by any desirable number







The more you subdivide, the smoother, and more complex, your curve will be. Make sure you check the "All Selected Tiles" box for your convenience.

Step 3: Connect subdivided intervals in the appropriate order



To speed up the process, I personally paste the vertical axis I have copied in Step 1. You can create new tiles, but then you will have to connect twice as much vertices and things can get messy real quick.








The end result should look something like this:





ㅤ│Curve Tool: Manipulation
After you have build a curve tool, you can manipulate the look of a curve in various ways!




You can:

1. Change axes angle:

Select every vertex of the axis you wish to manipulate and place Gizmo at the origin point of axes (the point where axes meet). To place at the origin point, hover your mouse over the point and press Alt+x, with Gizmo activated. From there on, you can rotate the axis using Gizmo in the Rotate mode as you wish!

Vertical axis:










Horizontal axis:








Check out this video-demonstration to see how easy it is to do and how flexible the results can be:




2. Change axes length:

Select every vertex of the axis you wish to manipulate and place Gizmo at the origin point of axes. From there on, you can manipulate the axis using Gizmo in the Scale mode.






You can change length and angle at the same time!




3. You can combine two or more set of axes together to get more complex curves:


ㅤ│Curve Tool: Curve Extraction
Step 1: Select the lines and subdivide them by the same subdivision value as with the axes

If you subdivided each axis by 10, then subdivide the lines forming a curve by 10 as well.

DO NOT SUBDIVIDE AXES! Subdividing axis will produce produce a huge number of unnecessary tiles which are likely to slow down the program.





Step 2: Select tiles on top and move them sideways.

We only need the tiles which form the curve.





Step 3: Delete axes and remaining tiles

You won't need those anymore.





Step 4: Connect tiles

After you have extracted the curve, some of its tiles may not be connected to another tiles:




Which tiles connect to which? Use tiles which form the look of the curve as guides! When you look at your curve from frontal view, which tile is visible fully visible and which has some of its vertices hidden? The hidden vertices have to be connected to the fully visible tile:

Front view:



The tile which is fully visible (marked in red):



Proper tile connection:





The smoother your curve is, the less likely you will have to connect tiles together.




ㅤ│Curve Tool: Reconstruction
It is desirable for the tool to be flexible. It's not optimal to construct a new tool each time a new task comes. Instead, you may save a curve tool as an object file and modify it to suit your projects when needed.

Flexibility is introduced from the very beginning of its construction: it is essential that you construct axes using dimensions, which will produce a whole number (1, 2, 3, on contrary of 1.25, 2.365, 0.985 and so on) when subdivided. So, if you were to construct axes 10 pixels long and subdivide them 10 times, it would allow for flexibility (10/10 = 1). However, dividing axes 8 pixels long by 10 would produce a curve tool to which is hard to modify.

Why? Take a look:

Here's the order related to interval connections:




How would this order look like if we were to add more intervals? Like this:





Notice the additional points on each of axis. There is a peculiar difference: on one axis, points are simply added atop. The other axis, however, appears to have been moved by the additional points. This movement is precisely the reason for the 'whole number' requirement. When each interval's length is a whole number, you can easily type this number as a Grid Rounding value and move the axis, allowing to copy-paste additional intervals without calculations.



Let's assume we want to add three more lines to this curve tool.



To one axis, we can simply copy paste intervals:










Another axis has to be moved:

To move the axis, select every of its vertices, except for the origin point (shared axes point) and select the closest tile to the origin point. Then, you have to move the axis by the Grid Rounding equal to the length of an interval. In case of this demonstration, axis length equals to 10 pixels. The axis has been subdivided by 10. So, length of one interval is 1 (10/10 = 1). Therefore, the Grid Rounding value I will move the axis is 1.





Note: adjust the Grid Rounding value by 3D scale values if necessary.


Additional intervals can fill the gap perfectly:









After extending axes, all is left is to add the additional lines:




ㅤ⤓Curve Tool: Optimization
While extracting extra smooth curves, you may create an amount of tiles which will considerably slow down the program. In such cases, you may manually delete unnecessary tiles before extracting the curve:











You only have to delete so much as for the speed of performance to return to an acceptable rate.
Special Thanks
Special thanks to:

Alex Hanson-White, aka Ninja Sprout, for creating my favourite 3D modelling program. You are awesome! Thank you for the continuous effort and development!

pixelartchemist from Discord, for suggesting "ScreenToGif" program to crop my thumbnail gif. Thanks to you, I was able to crop it perfectly!

Auz from Discord, for showing interest in the guide and ensuring me curves is a topic worth spending time discussing.


And many others from Crocotile 3D Discord who showed appreciation for my work! You are all awesome and your positivity is the reason I was able to finish this work.