Creating an Avatar Using Immediate Editing
Because making an avatar using NurbsPatches now seems an easier, more
versitile way to make an avatar, I now recomend the Nurbs
Patch Avatar tutorial over this tutorial. However this
tutorial documents some of seamless3d's lesser used features in greater detail than
any where else and shows some techniques such as using a background guide that can
be used for nurbs modeling.
This tutorial is written to accompany the robot demo
immediate avatar demo
This demo requires first that the contents of the
files_for_demos.zip file be manually unzipped and put in the folder:
My Documents\Seamless3d\Application Data For Seamless3d\For Robot Demos Only
To see this demo, move the mouse to the top left corner of the 3d window and select:
The demo shows all the actions needed to make the model ready to be animated.
Immediate Editing
Immediate editing is the seamless specific term to clarify you are not using seamless
build nodes to construct your shapes.
Seamless build nodes generate shapes using mathematical formulas where
as with immediate editing you create shapes by tugging at the vertices directly
using the mouse. Because Immediate editing uses a minimum of computer magic it is generally click
intensive, however immediate editing allows one to work on a more intuitive level and because
immediate editing is less intellectually
taxing, it is much easier to be able to get work done while enjoying listening to music.
Technically there is very little to immediate editing, all you have to do is start with a pre-made shape and tug the vertices to change it. Coloring vertices is on par with this
too for being dead simple. One can also take baby steps from here, deleting triangles
and joining vertices using immediate editing. As simple as immediate editing is,
there are few limits as to what can be done. It is much like painting or drawing
in that it requires lots of time and practice to develop skills to do it well rather
than lots of technical knowledge.
To be an immediate editing purist we can start with a single triangle and split it up to make a complete avatar, however this tutorial will begin by using
RingBuild nodes just to get the triangles sketched out because RingBuild nodes are
simple and intuitive to use much like immediate editing is and they and will save
us a lot of time in getting started. After the build nodes have served their purpose
they will be deleted leaving the triangles in the parts (converted to blue parts
to be exact) ready for immediate editing.
The Basic Idea
A pre-made empty skeleton of parts is imported that is already set up with mirror
edit nodes referencing the parts so that the left side of the avatar can be created
from the right side.
The triangles for the torso, head, arms and legs are initially made using RingBuild
nodes. The mouse is used to drag the control points for each ring and a background
image is used as a guide to sketch out the model.
After the triangles have been created by the build nodes the white parts are converted to blue parts so that immediate editing can be
used to join and paint the vertices and
add detail to the shape.
The pivot points are moved into place for the joints allowing for the model to be
animated.
Accessories such as the hair is imported.
How Long Does it Take?
The robot takes about 3 hours and 20 minutes to complete making the avatar. This may seem
like a long time. However the robot does everything slowly to show what it is doing
and it does not utilize short cut keys and so many of the operations can actually
be done significantly faster by a human. Having said this though you should not expect
to work faster than a robot over all due to the
fact that a robot is much less indecisive
in what it does following it's carefully scripted sequence of operations. The goal of this tutorial is to provide something
more on par with painting or drawing, offering the same amount of creative freedom. I can not think of a good argument that suggests to me that immediate editing
is any more difficult than using crayons or a paint brush, it requires the same
sort of time spent practising and developing artistic skills. If you can already
paint or draw you will have a big head start as much of the skills are being able
to judge proportions well.
Many belive creating 3d art has to be more work than creating 2d art but I question much this assumption. Consider how long it would take to
be able to paint an image
like this robot creates (think of all that shading the computer does effortlessly
for us for each frame) and then consider how with 3d
you can take an unlimited number of photos from different angles and with different lighting effects without
needing to paint the whole thing again from scratch. Also consider how easy it is
to change the clothing or some accesory. You never have to make a new avatar from scratch
ever again after you have made just one because no matter how simple it is it can be improved. With
immediate editing we can gradually keep changing an avatar until it is a compleatly
new avatar with it's own unique look and we can of course swap different cloths
or even body parts from different avatars we have made and/or from a shared open
library.
Begin
Start the robot demo:
immediate avatar demo
All of the titles for the robot demo operations will be shown here in bold beginning
with the operation number followed by the title itself. Any comments for the
operation will be explained under the title.
0. Create a new Seamless file
1. Import mirrored empty skeleton
Begin with a pre-made skeleton of empty parts.
Part names that begin with l_ are the left parts and names that begin with r_ are
the right parts. To avoid using double names for a part, the part for the upper
arm for example is referred to by it's joint (shoulder) that attaches it to it's
ancestor part.
Part |
Includes |
shoulder |
upper arm |
elbow |
forearm |
wrist |
palm |
hip |
thigh |
knee |
shin & calf |
ankle |
foot |
The empty skeleton for this demo contains a MirrorGroup node populated with MirrorEdit
nodes which are set up with references to the part nodes. MirrorEdit nodes specify
which parts will mirror vertex tugging in the X dimension.
If a MirrorEdit node references 2 parts such as the l_shoulder and r_shoulder for example, when ever
a vertex is tugged on one of these parts the corresponding vertex
in the opposite part will be tugged in mirror form too.
If a MirrorEdit node references only one part such as the head, when ever a vertex
is tugged on one side of the part, the corresponding vertex in the opposite side within
the same part will tug in mirror form too.
Besides mirroring vertex tugs, MirrorEdit nodes have influence over RingBuild nodes,
the moving of pivot points, the coloring of vertices and triangles and a number
of other functions.
2. Import background guide
It can be helpful to put a photo or drawing inside
the 3d window to guide us when tugging vertices into shape. Here we import 6 photos, each contained in a Seamless
node and each with it's own unique orientation and each positioned to form the inside
of a cube. The Seamless nodes used for containing the background guides have their
ignoreWireFrame
fields checked so that the guides will appear solid in wireframe
mode. The Seamless nodes are all contained in a NoOutputGroup node so that they
will not be output with the avatar.
So that the background image will not distort in size with the distance it is from
the triangles we wish to edit, perspective must be off
3. Make edge verticies bright red
While light colored vertices are typically best viewed with a black background in
wireframe mode, we can most clearly see the edge vertices for our model with a white
background. Because of this seamless is designed to easily toggle the background
color between white and black. Because we can't shape the background of a image
like this when a background guide is used the ambianetIntensisty field is set to
1 0 0 (red) so that the edge vertices always appear bright red in contrast
to the dark shading on the edges of the background image.
4. Build leg rings
This operation takes about 10 minutes to complete. Most of it is much the same however,
tugging rings.
To add a RingBuild node for the leg the l_hip part is selected and
is clicked
from the main tool bar. This causes a RingBuild node to be added
to the Seamless node with it referencing the part l_hip.
The RingBuild node is set
up initially with 2 rings of vertices forming a cylinder. We orientate this cylinder
upside down using the RingBuild's rotation field
(while holding down control)
so that all of the rings will increment in index order (each ring is indexed from
0 to the number of rings - 1) from the upper end of the leg to the lower end. This will be important for a later stage when rings close to the joints are specified
to rotate at fractions of the amount of the part's full rotation in order to form
smoother animated joint bends.
For the last ring (the tip of the foot), the scaleX
and scaleZ fields are directly written with
0 to
to make them both equal 0, 0 which results in the last ring being a single vertex
rather than a ring of vertices.
Before we add all of the rings for the leg we first mark out key rings such as those
for the knee and hip and then insert rings between these points. This has the advantage
of letting the computer work out many of the distances for the rings so that they
are evenly spaced.
All of the rings are being built for the whole leg including the foot yet they have
all been specified for the left hip. At a later stage the rings for the lower leg
will be transferred to the appropriate parts. It is important to note at this stage we are
building a leg with the intention of animating it so there must be an adequate
number
of rings for the joints so that they bend smoothly. This is why a noticeable
amount
of extra rings of vertices have been inserted for the knee.
See RinbBuild for more information on this
node.
5. Build torso, neck & head rings
This operation takes about 8 minutes to complete.
Here we will see how the MirrorEdit nodes influence the RingBuild nodes. That is
tugging the left control points causes the right control points to move in sympathy.
In this operation the locationXZ field is kept unchecked except for when dragging the torso and head rings with the side on view.
More rings for the pelvis will be inserted in a later operation when aligning the
pelvis rings to the hip rings.
When building the rings for the torso, neck and head we have to bear in mind what
rings will be owned by what parts so that we can get an idea in our mind how the
parts will animate.
6. Set leg staves to 14
Although we want smooth legs for our model, 16 staves is a little more than we really
want considering our torso only has 16 staves and it is a much wider object than
the legs. The legs are changed from 16 to 14 at this stage because we needed 4 to
fit into the number of staves so that we could see where the RingBuild's control
points were located for the non selected rings (by looking at the vertices generated
for the part while in wireframe mode). Because changing from 16 to 14 makes the
leg slightly thinner from a front on view the leg's scale field's X and Z components
are slightly increased to compensate.
7. Align pelvis rings to hip
Five rings are inserted into the pelvis and are dragged so that they are aligned
with the leg
vertices where they are to join to the pelvis.
8. Round pelvis base
Here we have to guess a little because the background guide does not show the exact
shape of our imaginary pelvis base shape for the legs to join onto. Most of the
triangles on the side of the pelvis will be deleted because this is where the hips
will join however we still have to form a shape for the side of the pelvis because
this will help form the shape for the front and back of the pelvis and we want to
form a shape that the hips will join onto smoothly.
9. Match hip tangent to pelvis
An appropriate side on view is found to tug the hip's rings side on so that the
hip joins tangently match to the torso.
10. Build arm rings
11. Widen arm base rings
We can not match the arm base to the torso quite so nicely at this stage like we did
for the hip to the pelvis but we will use a different technique in a latter
operation
to make a smooth join. This technique will involve projecting the arm's base ring
vertices onto the torso's polygon surface. For this purpose
the arms base rings are widened at this stage while the parts remain as white
parts (before the RingBuild nodes get deleted).
12. Build index finger rings
13. Build middle finger rings
Rather than begin from scratch with a brand new RingBuild node for the middle finger,
the previous Ringbuild node used for the index finger is copied to begin with. This
saves a lot of time. Copying a node is the same as
when copying a file in windows Explorer, we hold down the control key when dragging
the node to a new location so that a "copy of" is performed instead of a "move".
14. Build ring finger rings
O dear the word "ring" pops up to mean the ring finger (the finger the wedding ring
is put on) so can be a little confusing that all of the fingers use a RingBuild
node.
15. Build pinky finger rings
16. Build thumb rings
17. Build breast rings
We have a ring very close to the base ring for the breast because when you have
a feature like this where the joining triangles will dramatically change in orientation
from one triangle to the next, undesirable shading can result for the joining triangles.
This is because a vertex can not shade 2 triangles well if the 2 triangles that
share the vertex are set to very different orientations. This problem is decreased
by increasing the density of the vertices in these specific areas so that there
is a more gradual change in the orientation from one triangle to the next.
18. Build mouth rings
Because it may be getting to slow to drag the control points for the RingBuild node
with this many rings, an ExitBuild node is inserted temporarily in front of the
existing RingBuild nodes. No building is performed after an ExitBuild and so this
frees up a lot of CPU power for the new RingBuild nodes that will be added for the
face. (its the equivalent of turning off all RingBuild nodes after the ExitBuild
node). This is only to speed up editing and so on a fast computer this may be unnecessary.
19. Build nose rings
20. Build eye crater rings
21. Remove background guide
The background guide is removed because it has served it's purpose and because it
can get in the way. We could keep it for a longer period of time if we like and
we can import it back later at any time. A guide can be very useful for getting
proportions right but it can also restrict our freedom in being artistic if we get
too dependent on it.
22. Specify ownership for torso, neck & head
RingBuild nodes can specify which parts shall own what rings by referencing a list
of parts and setting the
ownership field to
a list of corresponding values to specify
the number of rings for each part. For the RingBuild node that builds the torso,
neck and head rings, the following
ownership values are specified for the list of
parts it is set to reference
index |
ownership |
part |
0 |
7 |
pelvis |
1 |
1 |
tummy0 |
2 |
1 |
tummy1 |
3 |
1 |
tummy2 |
4 |
5 |
thorax |
5 |
1 |
neck0 |
6 |
1 |
neck1 |
|
|
head |
Note: The last part referenced by the RingBuild node takes ownership of the remaining rings not specified and so there is no need to set a value for
the ownership field for the last part.
23. Specify ownership for leg
index |
ownership |
part |
0 |
1 |
pelvis |
1 |
7 |
l_hip |
2 |
9 |
l_knee |
|
|
l_ankle |
24. Specify ownership for arm
index |
ownership |
part |
0 |
4 |
l_thorax |
1 |
8 |
l_shoulder |
2 |
7 |
l_elbow |
|
|
l_wrist |
25. Specify Ownership For Index Finger
index |
ownership |
part |
0 |
2 |
l_index1 |
1 |
1 |
l_index2 |
|
|
l_index3 |
26. Specify ownership for middle finger
index |
ownership |
part |
0 |
2 |
l_middle1 |
1 |
1 |
l_middle2 |
|
|
l_middle3 |
27. Specify ownership for ring finger
index |
ownership |
part |
0 |
2 |
l_ring1 |
1 |
1 |
l_ring2 |
|
|
l_ring3 |
28. Specify Ownership For Pinky Finger
index |
ownership |
part |
0 |
2 |
l_pinky1 |
1 |
1 |
l_pinky2 |
|
|
l_pinky3 |
29. Specify ownership for thumb
index |
ownership |
part |
0 |
1 |
l_thumb1 |
1 |
2 |
l_thumb2 |
|
|
l_thumb3 |
30. Convert white parts to blue
Build nodes such as RingBuild nodes can only build triangles for white parts. To
be able to perform immediate editing we must convert them to blue (ImmediatePart)
parts. The command that converts the parts also deletes all of the build nodes.
31. Delete pelvis triangles for hip
32. Join vertex
A vertex is joined to another by first selecting the vertex whose position we want
to keep and copying
it. The other vertex is then selected and the join vertex button
is clicked to join the 2 vertices together. Using the short cut keys
R to copy and J to join can speed up joining vertices significantly. A vertex is selected by clicking on any vertex. Holding down the control key while doing this
prevents the user from accidently dragging the vertex.
33. Continue to join hip to pelvis
34. Quick triangle
A triangle is created from the copied
vertex and the selected edge of a triangle
(the red and green points of the selected triangle is the selected edge) when
is clicked or when the short cut key Q is pressed.
See
Selecting a Triangle/Triangle Edge
35. Continue to join hip to pelvis
36. Split triangle
A triangle is split by selecting a triangle and clicking the split triangle button
(or the key S).
The triangle is split in the middle of the selected edge (between the red and green dots).
If the selected edge is also the edge of a neighboring triangle it too will
be split in the middle of this edge.
37. Continue to join hip to pelvis
38. Delete left half of pelvis
39. Create bikini bottom
40. Swap traingle divide
The slected edge that divides the 2 triangles is swapped for the alternative edge
by clicking
For more information on swapping the dividing edge between two triangles see: Changing the dividing edge between
two triangles
41. Paint bikini bottom
A single vertex is made the color of the bikini using the toolbar's color buttons
. Then this vertex is copied
and used for pasting in the color
for each triangle.
42. Add extra triangle row for bottom
This operation shows how an extra row of triangles can be inserted by splitting
up a row of triangles along the horizontal edges and then swapping the diagonal
edges
for the newly formed triangles.
43. Continue to create bikini bottom
44. Refine leg join
45. Mould breast to thorax surface
The base ring vertices for the breast are made to lay exactly on the thorax's polygon
surface by projecting the base ring vertices onto the thorax's triangles. The project
selected vertex command simply makes the selected vertex hit at the point where
you see it over (or under) the polygon. Therefore the view orientation must first
be set so that you see the vertices over the polygon surface as desired before
projecting them. This command may look tedious for the robot to do because it is projecting
them one at a time using the toolbar but if the short cut keys for the
same commands are used instead (F4 = Next Vertex, P = Project) the 12 vertices can
be projected comfortably in less than 5 seconds.
46. Delete thorax triangles for breast
Notice how this can be done in non wireframe mode by first deleting 4 points around
the breast and then hiding the breast.
47. Join breast to thorax
48. Mould shoulder to thorax
49. Delete thorax triangles for shoulder join
50. Join shoulder to thorax
51. Create bikini top
52. Check & fix ownership strays
Vertices owned by the wrong part can be created when splitting triangles on the border
of 2 parts. Because of this vertices should be checked and transferred to
being owned to the rightful owner. To change the ownership for a simple vertex,
the targeted ownership is first copied. This can be done by first clicking on the part in the
scene tree you wish to specify and then copying the part and then selecting
the vertex you wish to transfer and then selecting paste ownership
. Instead of selecting the part in the scene tree to select the part so that its ownership can be copied, the
robot selects a vertex owned by the part to select
the part. This can make pasting
the ownership from a part to a vertex faster especially
if the short cut keys are
used (R = copy, Alt o = Transfer single vertex) as well as making the possibility
of being able to perform the operation without having the scene tree window open.
Note that the part only has to be copied once for any number of vertices that are
to be transferred to that part.
53. Smooth out breast join
54. Color skin for all parts
The paste copied color to all parts that match the selected color command
is used to change the white colored triangles to skin color.
55. Copy left side to right side
The copy and paste mirrored part command
is used to create the right side in mirror
form to the left side for the legs arms, pelvis and thorax.
The MirrorEdit node contained in the MirrorGroup that references the selected part specifies how this task will be done. If the MirrorEdit node contains 2 parts it will copy all of the triangles from the other part
it references (that is not selected).
If the MirrorEdit node contains only one part the left side of the part is copied
and pasted to the right side. The right side's
triangles are deleted automatically prior to the mirrored triangles being added
to the single part.
56. Join broken vertices
The join close vertices for all shown parts command
is used to
join all of the vertices that got broken at the borders in the process of creating
the right side from the left.
The mouth part is hidden to prevent the upper lip being joined to the lower lip
for the operation.
57. Remove unwanted creases
Although the vertices in the middle of the pelvis are all joined from the previous
operation, a crease in the crotch can be noticed. Because we are dealing with polygons
that approximate a smooth surface, some unwanted shading has to be allowed for
but here is an example where the shading can be improved significantly. This is
done by tugging the vertices a little to make the curve simpler and more continuous. However
this is a bit of a black art I find in that I have to do a bit of trial and error
to get results that improve it. Experimenting with the swap triangle divide can
also improve how the triangles are shaded in these complex areas.
58. Move the pivot points
The pivot points are moved for the parts to specify point where the parts hinge
onto they ancestors (for animation). This hinge or pivot point for the selected
part is represented by a little yellow in the 3d window. The robot uses the
button for each part to begin with, to move the pivot point to the location that
is the average of all the vertices contained in the part. Then it uses the
buttons to move the pivot point to it's final location.
Same as with most other non rotation buttons, they increment and decrement in 1
centimeter amounts and 1 millimeter amounts when the control key is held down.
The MirrorEdit nodes affect this command.
59. Set vertex weights
A ring of vertices can be specified to rotate at a fraction of the part's rotation
field. This makes it possible to make the rings in a joint like the arm bend smoother
than would be possible if all of the rings rotated the full amount.
The amount a ring (or group of vertices) rotates for a part is specified using the
Part's weight field. 1 equals a full rotation
where as .5 equals half the amount.
The coordGroup field specifies how many vertices
are contained in the ring so this matches the number of staves specified by the
RingBuild node that built the limb.
The RingBuild node is guaranteed to generate the order of the vertices consistently.
For example, the first 10 vertices that make up the shoulder will be indexed from
0 to 9, the next ring will be indexed from 10 to 19, and the next ring will be indexed
from 20 to 29 and so on (incrementing in 10s because 10 staves were specified for
the ring build node that made the arm)
There is no need to specify 1 for any of the rings because if a vertex is not specified
it will rotate the full amount and therefore for the shoulder for example, we will
specify only the first 3 rings of vertices for the 4 different groups. The first
ring will rotate one quarter the full rotation (weight set to .25) the next ring 2
quarters (weight set to .5) the next 3 quarters (weight set to .75) leaving the
rest to rotate the full amount (4 quarters)
Shoulder
index |
weight |
coordGroup |
0 |
.25 |
10 |
1 |
.5 |
10 |
2 |
.75 |
10 |
|
Hip
index |
weight |
coordGroup |
0 |
.33333 |
14 |
1 |
.66666 |
14 |
|
Elbow
index |
weight |
coordGroup |
0 |
.33333 |
10 |
1 |
.66666 |
10 |
|
Knee
index |
weight |
coordGroup |
0 |
.33333 |
14 |
1 |
.66666 |
14 |
|
Wrist
index |
weight |
coordGroup |
0 |
.5 |
10 |
|
Ankle
index |
weight |
coordGroup |
0 |
.5 |
14 |
|
Note: A MirrorEdit node that references 2 parts will match
it's corresponding part's
weight and coordGroup
fields if any of these fields are
modified.
60. Square head
Before projecting any of the facial features onto the polygon surface of the head
the head shape is squared up a little for the upper region to make it a little
more like a realistic head is shaped.
61. Colour lips
62. Soften lip border
In the previous operation, whole triangles were pasted with the color using
For the most outer ring of triangles, only vertices within the triangles that
border the lip color are pasted in using
so that a softer more natural edge for the lips is achived.
63. Project mouth on to head surface
64. Project nose on to head surface
65. Project eye crater on to head surface
66. Trim & join face
67. Tug mouth, front view
68. Refine triangle structure for face
This includes increasing the density of the triangles for the chin by splitting
the
existing triangle rows.
69. Insert eyebrow
70. Mirror right side of head
Because we don't want all of the vertices joined that are close to each other in
the mouth the mouth part is hidden before clicking the join close vertices button
for all parts.
71. Join head
After this operation is complete we have all of the triangles needed for the head.
From now on we will only tug the vertices to modify the shape of the face. The vertices
can be tugged to create a wide range of different faces without needing to change
the way the triangles are structured.
72. Join mid mouth vertices
Because the mid vertices could not be joined using the join close vertices command
the mid moth vertices must be joined one at a time.
Note how the robot takes care not to join the upper lip to the lower lip where the
upper and lower lips meet by first selecting the triangle before selecting the vertex.
73. Sink in eye craters
It would be good if possible when sinking in the eye craters,if the tugging
is done at a side on view because this would only need to affect the Z components for the vertices which is all we wish to change at this stage but because
this is not an easy view to work from, the eye crater is sunk in using a different
view to this that lets us easily see all of the eye crater vertices and which lets
us also change the Z components. Tugging in this easier orientation however comes
at the price of also changing the X and Y components but this damage will be fixed
in the next operation.
74. Repair eye crater, front view
This operation not only fixes the damage done to the x and y components from the
previous operation but also gets the eye crater shape ready for the next operation.
75. Project inner most ring on to eyeball
76. Tug mouth, side view
77. Tug mouth, near front view
When tugging a vertex for maximum efficiency, we would only tug the vertex at a
view orientation where we can tug it also from a orientation that is at a right angle
offset to this orientation. This lets us tug a vertex in full 3 dimensions
using only 2 orientations. From here on we will refer to the other orientation as the "complementary
view".
All of the vertices for the mouth are easy to see from a front on view but this
is not the case when tugging the vertices from the side (which would be the complementary
view).
Because of this the robot will tug all of the vertices for the mouth (except for
the middle vertices, which don't need to be tugged from any other angle than the
side) at a near front on view so that the same vertices can be easily accessed at
the complimentary view to this view.
78. Tug mouth, near side view
The same vertices are tugged after setting the view to the complementary view for the previous
operation. The complementary view is set using the
buttons.
79. Work more on eye craters
80. Tug upper head, near side view
81. Tug upper head, near front view
Complementary view for the previous operation
82. Tug upper head, front view
83. Tug upper head, side view
Complementary view for the previous operation.
84. Tug chin
85. Tug chin, complementary view
This operation completes the
shaping for the head. A human should not expect to get the head shaped with this
few number of tugs. It is necessary to keep looking
at the head from different orientations
and from different distances to be able to get a sense of proportions and how everything
relates to each other though out
the process of shaping the head.
86. Add eye liner
87. Prevent eyeballs popping out of head
When we show the eyes we will likely see the eyeball not being covered by the eye
crater as desired. This is because the inner most ring of the crater is at the exact
same height as the eyeball, which is how we left things after the inner ring was
projected onto the eyeball. If we move the eyeball in a bit, say 2 or 3 mm like
the robot shows in this operation, it will look fine except when we zoom out some
distance we will start to see the eyeballs popping back out of the head again. By
what amount we zoom out we start to see this happen will vary on the type of video
card and the internal hardware settings for the card. For non real time rendering
such as Pov-Ray this wont be a problem at all but for real time graphics unless we
always want to see the head up close we will have to do something else. One simple
remedy is to push the eyeballs back far enough (way more than just 2 mm) but this
causes another problem where it will look like the eyes are to far back into the
head at times and it may not prevent the eyes popping out from the sides of the head.
A better solution perhaps is to trim the eyes so that there is no overlapping of
the eyeball behind the eye crater but this will result in us not being able to animate
the eyes. How much this is a problem will depend on how much there is a need to
animate the eyes for real time rendering. In existing Virtual Reality often no one
notices the eyes animate and so this is the solutions that will be used for now
by importing a eyeball that's already been trimmed and tugged to fit this avatar.
The eyes are also translated forward 2mm so that the eyeballs meet right up
with the crater.
With this compromise we still have the option of being able to
animate the eyes for close up movie scenes by importing the original non trimmed
eyeballs and translating them back into the head 2 mm as before.
By using a VRML/X3D LOD node it should be possible to have 2 sets of eyes for real
time rendering that switch automatically from one set to the other depending on
how close the eyes are to the screen but I have never tested this idea out.
88. Add blush to cheeks
Before pasting in blush to the cheek's vertices, the join matching colors for all
joined vertices button
is clicked.
This is done to avoid the problem we see in the following image to the left when
we change a vertex's color.
We want all of the triangles in the cheeks to share the same color component for
each vertex so that when we change a vertex's color, we see the result shown in
the right image.
For more information on the subject of breaking and joining a vertex's color component
see: breaking
and joining vertices
89. Import hair
90. Import shoe
91. Paint shoe straps
92. Attach strap to sole
93. Copy left foot to right
94. Build belly button rings
This operation is left to this late stage because it is not necessarily wanted. For
example if vertices are tugged from the torso to create cloths that do not
show a belly button, we wont need a belly button to begin with. This operation also
demonstrates how it is possible to add extra rings of vertices via a build node
after the avatar is complete. If we were to add the new part for the belly button
rings as a child of a tummy part, the 3d control points for the RingBuild node will
not be positioned where they would make any sense to us. We could use the fields
instead to control the rings, however we will add the new part as a sibling of the
pelvis (so that the part is not translated by a translation field in the part hierarchy)
and transfer the vertices at a later stage to a part that is dynamically
translated
(a part that is a descendent of the pelvis) so that we can use the 3d control points
for the RingBuild node.
95. Paste tummy0 ownership into belly button
Since most of the vertices
for the new rings will be owned by tummy0, the vertices are transferred to this part
first using the command for a whole part transferal. This leaves part "a" empty
and so it could be deleted after this operation. To delete this part however the
MirrorEddit node must be deleted first.
96. Paste pelvis ownership into lower vertices
97. Paste tummy1 ownership into higher vertices
98. Mirror right side of tummy
[3d Modelling Software]
[Tutorials]
[Forum]
[Features]
[Download]
[Gallery]
[FAQ]
[Worlds]
[Avatars]
[Links]
[Thyme]