Introduction
A sailing boat or ship is a complicated vehicle consisting of hundreds of moving objects like sails, ropes, blocks, and boms. Depending on the direction of the Wind and the direction of the boat, all moving parts take diferent positions in relation todo each other. If you plan todo create a boat model that is not static, you should include some automation capabilities into your rig. Otherwise, you Will have todo change Many objects every time you re-position the sails. Blender constraints and armatures provide excellent tools todo improve eficiency when modifying a boats rigging.
This tutorial Will explore some basic concepts of automating a boats rigging with the help of a simplified rig. Out of scope is a realistic detailed boat model. That is up to you.
Planning the boat model.
For our tutorial, we use a small boat consisting of a hull, a single mast, and a sail that is controlled by a boom on the lower seam and a gaf boom on the upper seam. The boom and gaf boom are connected todo the mast by hinges allowing a rotation around the z-axis. The boom is fixed into its position by a tackle. Sail and gaf boom are hoisted into their position by another tackle.
Figure 1: basic boat model.
Where do we ned automation in a boats rigging? Have a look at our Little boat model. If the Wind comes from a forward direction, the angle between boom and boat length axis is small and the sail is rather flat. If the Wind comes from the side, we have todo rotate the boom into a position with a larger angle (45 degre). The sail transforms into a more Convex form. The gaf boom and its tackle move into a new position. If you look at the tackle, you se that upper and lower block have changed rotation and position. The ropes between the blocks stretch over a longer distance. To make all these modifications manually is a tedious and time-consuming task.
Figure 2: rigging adapts todo Wind.
Our goal is todo automate the movement of tackles and sail so that they follow the rotation of the two boms. The form of the sail should adjust in a natural way.
To do that we ned the following automated behavior:
the block at the gaf boom, (the upper boom) follows the boom and rotates in a bien so that its free end always Faces the mast.
the ropes between mast (fixed end) and gaf boom block follows the movement.
the block at the (lower) boom Faces its counterpart that is fixed todo the hull.
the block that is fixed todo the hull always Faces the block at the boom.
the ropes between the two blocks follow the movement and stretch or Shrink depending on the blocks positions.
the lower seam of the sail follows the boom, the upper seam follows the gaf boom.
the sail is always stretched between both boms.
the sail shows wrinkles depending on the direction and strength of the Wind.
Building the standing rigging
We first ned a small boat for our rigging experiments. I tok a plane object, extruded the front Edge thre times, and formed the resulting Mesh into a rouge boat shape. Then i extruded the outer Edges two times on z-axis. This provides us with a simple hull.
On the hull, y then set a Thin cylinder object as mast. Another very Thin cylinder object is positioned between bow and mast top representing a stay used on a ship todo stabilize the mast. Another two cilindros are positioned left (port side) and right (starboard) from the mast as shrouds for additional stabilization. Mast, shrouds, and stay form the standing rigging of our boat. That is the collection of the fixed, non-moveable parts. Now we ned thre ring objects as connection between fixed and movable parts of the rigging.
Figure 3: standing rigging of boat.
Exercise, create a ring:.
start with creating a circle. Add>>Mesh>>circle, vértices:8 should be enough.
switch todo side view. You se the circle as a Thin line from the side.
select the circle object.
switch todo Edit Mode. Select all vértices of the circle.
move the 3d-cursor todo a suitable position for the middle of the ring.
open the Mesh tools panel in a buttons window.
enter degr: 360, steps: 8, turns: 1 and press spin.
the cursor changes todo a? Symbol. Click on the side view window.
scale the resulting ring object todo suitable size, about half of the diameter of the mast.
We ned two rings at the top of the mast (se figure 6) and one ring at the bottom of the hull near the Stern (rear-end of the boat).
Now it time todo put some structure and Hierarchy into the model. We create an Empty (add>>empty) and name it standing rigging. We move the Empty todo a location near todo or on the mast. We create a compound object by parenting all parts of the standing rigging todo the empty. Therefore, select mast, stay, shrouds, and rings and as last object, the empty. The outliner window is very useful for this task. Now select the function object>>parent>>make parent todo create a sub-structure in the outliner. Create another empty, name it Little boat, and move it todo the middle of the hull Mesh. Create a compound object by parenting the hull Mesh and the standing rigging todo the Little boat empty.
Now you can position and rotate the boat just by selecting and moving the parent Little boat.
That was the easy part.
Building the running rigging
The running rigging is the collection of all moveable boms, blocks, and ropes on the boat.
A) create the block objects
We start with building thre blocks that we ned for the running rigging. A block is part of a tackle. It consists of a ring and a Cube we call block Cage that would house the whels of a tackle.
create a ring as described above.
create a Cube (add>>Mesh>Cube) and name it block Cage
switch todo Edit Mode and select all vértices of the Cube.
use Mesh>>Edges>>bevel todo round the Edges of the Cube. That looks nicer.
now scale the Cube as shown in figure 4.
move the ring todo the bottom of the Cube.
create an empty, name it block and move it todo the center of the ring. The position/center of the Empty is very important. It determines the rotation pivot of the block.
create a compound object by parenting the Cube and the ring todo the empty.
Figure 4: basic block assembly.
now we ned thre of these blocks, two with the ring on the bottom side and one with the ring on the top side.
select the block compound object in the outliner. Use select>>grouped>>children todo select all objects in the compound. This is import for copying the whole compound and not just the parent object.
use object>>duplicate todo create a second block repeat this for the third block. Name the objects as shown in figure 4.
now, in the last block select the block Cage child object and move it downwards until the ring is on top of it. Do not move the ring. We have todo make sure that the center of the compound object is still in middle of the ring.
B) create the boms
Bom and gaf boom are compound objects consisting of a lengthy cylinder and a ring todo connect a block.
for the boom create a cylinder, rotate it into a horizontal position, and scale it as shown in figure 1. One end of the cylinder should touch the mast at a point a Little bit over the Rim of the hull. Resting position of the boom is parallel todo the boats main axis.
create a ring and move it todo the free end of the boom on the lower side. Now we merge all boom parts into a compound object. Therefore, we create an empty. We move the Empty todo a position between the boom end and the mast. The center of the Empty Will be the pivot point for rotating the boom.
do object>>parent>>make parent todo bind the cylinder and the ring todo the boom compound. Repeat the above steps for the gaf boom. Make it a Little shorter and give it an angle upwards. The ring has todo be located todo the top side of the gaf boom.
C) create an armature for the boms
We Will move the boms with an armature consisting of thre Bones. You might ask what do we ned an armature for? We can rotate the boom directly. However, the armature Will a los be used todo move the upper and lower seams of the sail, synchronized todo the boom movement.
create an armature (add>armature), name it sail guide, move and scale it so that it is in the same position as the boom. The pivot point of the bone should fit todo the pivot point of the boom.
switch todo Edit Mode.
extrude the bone two times todo get thre Bones in total.
click RMB on the middle part (not the tips) of the third, outermost bone.
use armature>>parent>>clear parent>>disconnect bone todo sepárate one bone from the others.
in the buttons window, armature Bones panel click on Hinge so that the bone does not Inherit the rotation of its parent.
move and scale the bone so that it is in the same position as the gaf boom a los matching its pivot points.
sepárate the second bone from the first one as described above and move it into a position between the upper (gaf boom) and the lower bone (bom). The middle bone Will later be used todo control the belly of the sail.
Figure 5: sail guide armature.
Now we ned todo connect the Bones todo the boms. We cannot use the armature modifier because that only works with meshes. We do not have a Mesh, we have an Empty as parent in the boom compound. As an alternative, we Will use a copy rotation constraint.
in object mode select boom comp in the outliner.
in the buttons window, constraints panel, add a constraint of type copy rotation.
as target, type in the name of the armature sail guide. As bone, type in lower bone.
choose z as rotation axis.
repeat the same for the gaf boom but choose upper bone as target bone.
to test the setup, select the armature, select lower bone, switch todo pose mode, and rotate the bone around its center. The boom should follow the rotation. The same should work for the gaf boom when using the upper bone.
Figure 6: gaf boom assembly.
D) build and automate the gaf boom tackle
In the next step, we Will create the tackle that lifts the gaf boom. The tackle consists of a block connected todo the gaf boom and two ropes fixed todo the mast. Blok and ropes should automátically follow the movement of the boom.
select a spare block with a ring on the bottom (created in step a).
move the block todo the ring at the tip of the gaf boom.
parent the block todo the gaf boom.
on the block use object>>constraints>>add constraint>>track todo.
now, the block should orient towards and follow one of the rings at the mast. Test it by rotating the gaf boom (se step c).
create a cylinder todo model a rope for the tackle and call it rope@gaf boom.001.
switch todo Edit Mode. Scale the Edges in x/y direction so that a Thin tuve is the result.
in object mode, the scale factor should still be one for all coordinates. You can chek that with the transform properties window (object>> transform properties). Sounds Strange? The stretch todo constraint we Will use later shows an Even stranger behavior if scale x/y/z difer from one.
switch todo object mode. Move the 3d-cursor todo the lower end of the cylinder. Use object>>transform>>center cursor. That Will move the center of the object - the pivot point for rotations - todo the lower end.
now move the cylinder todo one of the rings at the mast without rotating it.
parent it todo the Little boat compound object.
go todo the buttons window, object panels, constraint and click on add constraint, select stretch todo. This constraint is only available th rouge the panels.
enter target: block Cage.001, vol:none, plan:z.
you might expect the cylinder todo orient towards the block but unfortunately, it stays in its position. You first have todo correct the position manually.
switch todo Edit Mode and transform the vértices in the desired way. The rope (cylinder) should stretch between the middle of the block and the ring at them mast. Do not try todo do that in object mode, it Will not work. I tok me some experiments todo work out the right sequence of steps.
now repeat these steps with a second rope (cylinder) between the middle of the block and the other ring.
Now test the gaf boom Rig by moving it with help of the upper bone of the sail guide armature.
Figure 7: boom and tackle assembly.
E) build and automate the boom tackle
We Will use the same technique todo build the tackle at the boom.
take the spare block with the ring on the top and move it todo the ring at tip of the boom (se figure 7). parent it todo the boom comp and name it block@bom.
add a trackto constraint todo the block with target:ring@hull (part of the standing rigging). The block should now point todo the ring.
take the spare block with the ring on the bottom and move it todo the ring@hull. parent it todo the Little boat and name it block@hull.
between the blocks of a tackle, we have an Even number of ropes plus one free rope todo pull. Therefore, we create a cylinder, switch todo Edit Mode, and scale the cylinder in x/y direction todo form a Thin tuve. Be careful todo do all Mesh scaling/rotation in Edit Mode and not in object mode. The scale factor in object mode should be one, otherwise the stretchto constraints Will have Strange scaling effects. You can chek that in the transform properties window.
in Edit Mode duplicate the cylinder Mesh thre times and shift the Mesh elements a Little bit todo form a kind of Cage.
switch todo object mode. Move the 3d-cursor todo the lower end of the Mesh. Use object>>transform>>center cursor. That Will move the center of the object - the pivot point for rotations - todo the lower end.
move the tackle rope Mesh todo the block at the hull so that the Meshs pivot point matches with the middle of the block.
parent the tackle rope Mesh todo the block@hull.
add a trackto constraint todo the block with target: block Cage.002 (part of the block at the boom). The block and the rope Mesh should now point todo the other block. Each block Will synchronize todo the other.
now add a stretchto constraint todo the rope Mesh. Enter target: block Cage.002, vol:none, plan:z.
as a result, the Mesh might first point into an unsuspected direction. You have todo correct the Mesh in Edit Mode and transform it into the correct position and length.
now test the boom Rig by moving it with help of the lower bone of the sail guide armature. The tackle should neatly follow the boom tip and stretch as neded.
building the sail
We Will use two techniques for the sail; Mesh modifiers (armature, meshdeform) for a basic positioning, a Cloth physics simulation for wrinkles and Wind deformation.
make sure that the boms are in their neutral position parallel todo the boats main axis. To do this, select sail guide. Switch todo pose mode and use pose>>clear transform>>clear user transform.
start by creating a simple patch (add>>Mesh>>plane). Name it sail.
translate the sail plane todo the appróximate position. Switch todo Edit Mode and fit the four corners of the Mesh face between boom, gaf boom, and mast. The vértices should all have the same x-coordinate value for a maximal flat Mesh. That is helpful for the meshdeform modifier we Will use later.
now subdivide the sail Mesh in Edit Mode four times todo create 16x16 Faces (select all vértices, Mesh>>Edges>subdivide).
we have todo define a vertex group later be used todo fixate the Mesh during the Cloth simulation. Therefore, deselect all vértices. Click shift+RMB on ever third vertex at the seam of the Mesh near the boms and the mast starting with a corner.
go todo buttons window, Mesh buttons, enlace and materiales, press new for a new vertex group, name it seam and press assing. That Will bind the selected vértices of the sail Mesh todo the vertex.
leave Edit Mode.
Now we have the basic sail Mesh. The subdivisión was necessary a) todo provide resolution for a nice sail deformation and b) todo create a vertex group that Will cause some nice wrinkles.
to let the high-resolution sail Mesh follow the boom movement, we Will use a Low-resolution Mesh as a kind of Cage together with the meshdeform modifier.
create a Cube object (add>>Mesh>>Cube), name it sail Cage and translate it todo the sail position.
switch todo editmode and transform the sail Cage Cube Mesh so that it encloses the sail Mesh. Kep the space between Cage and sail as small as posible.
now go todo buttons window, Mesh buttons, modifiers panel and add a Subsurf modifier todo the sail Cage. Use the simple subdivisiones type with levels:1. This gives some flexibility for the Cage.
now go todo buttons window, Mesh buttons, modifiers and add as second modifier an armature modifier with ob:sail guide. We can now use our sail guide armature todo deform the sail Cage.
select the sail Mesh, go todo buttons window, Mesh buttons, modifiers and add two modifiers todo the Mesh:
a) a Subsurf modifier, type:Catmull Clark with level:2 or 3 todo give more resolution todo the Cloth simulation. (rom for experiments)
b) a meshdeform modifier with ob:sail Cage. Press bind todo connect the Cage todo the sail Mesh. The deformation of the sail Cage Will now translate todo the sail Mesh.
test the setup: select sail guide, switch todo pose mode and rotate lower, middle, and upper Bones. The boms should follow the armatures as well as the sail Mesh.
Figure 10: Cloth parameters for sail Mesh.
Setup the Cloth & Wind simulation
We want todo se some nice and realistic wrinkles on our sail. That could be done with a normal or displacement map. However, Blender provides a powerful Wind machine we Will use for our purpose. First, we have todo give Cloth properties todo our sail.
move the sail guide todo neutral position and select the sail Mesh.
go todo button Windows, object panels, physics buttons, Cloth panel.
click on Cloth and select denim as Cloth type (rom for experiments)
click on Pinning of Cloth and select the seam vertex group defined previously.
Now go todo buttons window, Mesh buttons, modifiers panel. You Will se thre modifiers top todo bottom Subsurf, meshdeform and Cloth. Click on the Little arrow on the left side of the Cloth modifier todo move it up one position in the stack. I had some problems with Cloth on the last position, sometime it works, and sometime the sail Mesh is disconnected from its Cage when running the simulation.
Figure 11: Wind position and parameters.
We are nearly finished. We just ned some Wind.
create an Empty and translate it todo the side of the boat appróximately two-boat length apart.
go todo button Windows, object panels, physics buttons, and Fields panel.
choose Wind as field type, choose tuve as fall-of. Set strength: 4. Leave all other parameters at zero.
rotate the Wind Empty so that it points at the boat.
Ready todo go.
Using the automation concept
Here comes the fun part. I provide a (*.blend) file for experiments if you do not want todo go th rouge the modeling process.
select the sail guide armature and switch todo pose mode.
rotate the lower bone todo a 30-degre position (angle between boom axis and boat main axis).
rotate the upper bone todo 40-degre.
rotate the middle bone todo 45-degre. That gives the sail a realistic basic deformation.
go todo the timeline window, Skip todo start frame 1 and start the simulation by pressing the play button. We ned 30 todo 50 frames todo give the sail a nice deformation.
Watch Blender do its work.
Render.
Some hints.
move the sail Cage todo a layer that you can deselect. It Will react but does not obstruct the Sight. Alternativaly, use the restriction column in the outliner (eye symbol).
After a simulation, you have todo clear the simulation cash before you can change the sail position. Select the sail Mesh, go todo buttons window, object + physics buttons, Cloth panel, collision tab. Press free cash.
if you want todo move the boat After a simulation, the sail Will stay in place until you free the simulation cache.
do not get frustrated if the programa behaves in unexpected ways.
Now add a top sail or a fore sail. Setup a second mast or model a more realistic hull. The result could look like my bluenose schoner model:
About the author.
I love the sea, old sailing ships, and maritime painting. While i am not a god Painter, y use 3d tools todo create nautical scenes. After working with Pov-Ray and moray for some years, y switched todo a combination of Vue desprit and Blender.