In this portion of the
tutorial you learn to improve the skinning by adjusting the Weight
setting for vertices with respect to rig bones, thus determining
how the rig animation affects the character mesh. You start with
the lower half of the character, beginning with the feet.
Set up the lesson:
Start skinning the character:
NoteMuch of the information
in this procedure and the following one provides background information
on how Skin works. We recommend you read over it now, but don’t
worry if it’s not fully comprehensible. Continue working through
the tutorial, following the steps and reading the explanations,
and after you’ve gained some hands-on experience with adjusting
Skin, return here and read these explanatory sections again. They’ll
probably make a lot more sense the second time around.
- Scrub the time slider or play the animation and check
for problem areas. For example, around frame 70 the knees become narrower,
and thus look unnatural. Even more blatant is the distortion of the
shoulder around frame 210.
ImportantLoss of volume, such
as the narrowing of the knees when bent, is the main thing to correct
for when adjusting character skinning. A potential second issue
is the interpenetration of the mesh around bent body joints, but
that tends to be less noticeable in the final animation, and can
be accounted for to an extent by attributing it to folds in the
character’s clothing. This tutorial focuses on correcting for volume
issues.
- Return to frame 0.
- Make sure (Select Object) is active
. Select the Emma object and go to the Modify
panel. On the Parameters rollout, click Edit Envelopes.
The character mesh turns
gray except for a color gradient around the pelvis region. The gradient
shows the weighting of the skin vertices
assigned to the pelvis. By default, EmmaRigPelvis is
the first entry in the Bones list on the Parameters rollout,
so its values are the first to be displayed when you turn on Edit
Envelopes.
The term “weighting”
will be explained shortly.
TipThe Skin modifier
has quite a few parameters spread out among several rollouts. In
some cases you might want to see more settings than can fit comfortably
in a single column. To expand the command panel, position the mouse
cursor over the left edge so it becomes a horizontal, two-headed arrow,
and drag leftward until you see two columns.
- Try clicking some of the other entries
in the list to see the weighting of vertices in other parts of the
skin mesh. Alternatively, click the bone representations in the
viewport; each is displayed as a straight line with a (non-mesh)
vertex at either end. As you do so, the highlighting in the list
on the Parameters rollout switches to that bone.
ImportantA bit of background
info on how the Skin modifier works is in order here. When you add
bones to Skin, the modifier looks at the mesh to which it’s applied
and automatically assigns each vertex to one or more bones based
on proximity. It also calculates a Weight value for each bone assigned
to a vertex to specify the degree to which moving the bone affects
the vertex; again, this is based on proximity. If a vertex is close
to one bone but relatively distant from any others, it’s assigned
to that bone with a weight value of 1.0, which means 100%. In other
words, the vertex responds to movement of that bone only, and moves
in exactly the same direction and distance as the bone.
If, however, a vertex
is, say, equidistant from two bones but far from any others, Skin
assigns both bones to the vertex and gives each a Weight value of
0.5, or 50%, for that vertex. In such a case, the motion of both
bones contributes equally to that of the vertex. If only one of
the bones moves, the vertex moves half that distance. This is how
the Skin modifier accommodates for the motion of a character mesh
around bending joints such as knees and shoulders.
The Weight values for
a highlighted bone appear by default on the mesh as a gradient,
with red representing higher weights, decreasing to orange, yellow,
green, and then blue for the lowest values. Vertices use the same
color scheme, and since you’ll be adjusting weights at the vertex
level, it’s usually best to have the viewport set to Smooth + Highlights
+ Edged Faces display mode (toggle with F4)
or Wireframe mode (toggle with F3).
Incidentally, the Skin
modifier determines which vertices are affected by a bone or bones
by creating an “envelope” around each bone, which is a capsule-shaped
3D volume that you can edit interactively to adjust the vertex weighting
at a high level. However, you have better control by adjusting Weight
values for individual vertices and groups of vertices. This is a
more-common practice in professional environments such as game-development
studios, so it’s the one this tutorial focuses on. This method is
a bit more painstaking, but can produce optimal results reasonably quickly.
Make no mistake, however:
Skinning a character is a detail-oriented task, and requires lots
of experimentation and trial-and-error, so it benefits from a liberal
supply of patience. This aim of this tutorial is to demonstrate the
overall process, but it’s impractical to describe every step in
detail in such a context. In other words, we can’t show you exactly
what to do every step of the way, but instead provide guidance and
examples; the rest is up to you.
- Save your work under a different filename,
such as MyEmma3.max.
We won’t keep reminding
you, but it’s important to remember when going through a complex
method such as skinning a character to save your work incrementally
as you go so you can easily return to a previous version if things
start to go wrong.
Examine some Skin modifier options:
You edit a vertex’s weight
by changing its Weight value with respect to a particular bone.
In order to do that, the vertex must be assigned to two or more
bones, because Weight is a relative value. For a given vertex, if
its Weight value with respect to bone A is, for example, 0.6, and
its Weight value with respect to bone B is 0.4, then bone A’s motion
has half again as much influence over the vertex’s motion than does
that of bone B. The total of Weight values for each vertex must
always equal 1.0. So, when skinning a character using this method,
you need to know which bone or bones a vertex is assigned to and
the Weight values for all vertex-bone assignments.
NoteBest practice when
skinning a character, which this tutorial follows, is to focus on
one body part at a time. When you're done with that part, mirror
the changes to the other side, as appropriate. To be more specific,
you select a bone, make sure most of the surrounding vertices are
set to a Weight value of 1.0, and then adjust the weights in the
bending areas. You can think of this as “blocking out” the weighting,
much as you block out an animation by working on isolated segments
of the character’s movement before integrating the overall motion.
For example, in this
tutorial you’ll start with the left leg, working upward from the
foot bone, and then mirror (copy and flip) the vertices’ settings
to their counterparts on the right leg. You can always go back later
and tweak the weights anywhere, but you work most efficiently by
concentrating on a specific area at any given time.
- Even though you won’t be editing envelopes
directly in this tutorial, it might help you better understand how
Skin works by taking a quick look at this feature of the modifier.
By default the envelopes are set not to display in this scene, but
you can enable them by going to the Display rollout and turning
off Show No Envelopes.
As a very brief explanation,
each envelope comprises two concentric capsule-shaped volumes; vertices
within the inner volume are fully affected by that bone, and then
the weighting falls off increasingly for vertices that lie outside
the inner volume and inside the outer volume. Select some of the
different bones to see their envelopes, and then turn Show No Envelopes
back on again.
Using envelopes is a
fairly crude, high-level method of setting vertex weights in Skin,
and is suitable mainly for saving time when skinning fairly simple
bone-and-mesh setups.
- Turn Show No Envelopes back on, as you
won’t be using envelopes in this tutorial.
- While you have the Display rollout open,
take a look at the other options here.
Show Colored Faces is
on; you’ve already seen its effects.
- If you turn on Color All Weights, you
can see the vertex weighting throughout the character mesh, not
just for the current bone.
That’s not what we want
for this tutorial, so turn it back off.
- If you turn off Draw On Top Envelopes, you can no
longer see the bone representations superimposed on the mesh, so
keep that one on.
- Try the other options if you like, but
when you’re done be sure to restore them to their previous settings,
as shown here:
Begin adjusting vertex weights:
- Back on the Parameters rollout, turn
on Select Vertices.
This setting is off by
default, but it needs to be on for adjusting vertex weights, so
always turn it on before starting a skinning session using the method
described in this tutorial.
The “stretching” animation
begins with the feet and moves up the body, so you’ll follow the
same progression in adjusting the skinning.
- Zoom in on the calves and
feet, and make sure the display is set to Smooth + Highlights +
Edged Faces, as shown in the following illustration.
- Scrub back and forth through the first
50 frames or so of the animation. Notice how the bending of the
feet also affects the bottom portion of the calves. This is not
realistic; it happens because the default envelope assigned by Skin
to this bone is a bit too large.
- Select each of the foot bones in turn: EmmaRigLCalf, EmmaRigLAnkle,
and EmmaRigLToe.
End with EmmaRigLAnkle selected. The
shading (orange, yellow, and blue) indicates that most of the vertices’ weights
for this bone are less than 0.5, which is undesirable.
- On the main toolbar, from the Selection
Region flyout, choose the Lasso Selection Region tool.
This is the best tool
for region-selecting a contiguous group of vertices with an arbitrary
outline.
- Drag a region around the foot and ankle
vertices, as shown:
Because the Backface
Cull Vertices switch is off, this also selects most of the vertices
facing away from you. Depending on the view angle and where you
drag the region, a few vertices might not be selected. To make sure
all foot and ankle vertices are selected, orbit around the model to
double-check. Add any vertices you missed to the selection, and
remove any vertices that shouldn’t be selected.
To undo the orbit, press Shift+Z.
TipTo add vertices to
a selection, Ctrl+select
them, and to remove vertices from a selection, Alt+select them.
- On the Parameters rollout, in the Weight
Properties group, set Abs. Effect to 1.0.
Absolute Effect is the
absolute weight setting.
The entire foot turns
red, as a visual result of the weight setting change. This way you
know that no other bones can influence these vertices.
You can confirm that
the toe animation no longer affects the foot mesh by scrubbing the
animation. You’ll fix that next.
- Select the toe bone (EmmaRigLToe).
The foot is gray, indicating
no weighting for this bone, but some blue coloring is evident in
the shin, indicating influence that the toe should not have over
this area.
- Drag a region around the blue vertices
(it doesn’t hurt to select too large an area), and then set Abs.
Effect to 0.0.
This removes any remaining
leg vertices from the influence of the toe bone.
Next you’re restore the
vertices at the front of the foot to the influence of the toe bone.
- Drag a region around the front of the
foot, just above the third lace (raised portion at the top of the
shoe). Again, orbit around the model to
make sure the selection is correct. To undo the orbit after the selection
is correct, press Shift+Z.
TipA good way to check
quickly whether your selection is correct is to use
(Zoom Extents Selected).
For example, if you inadvertently selected vertices on the other
side of the character, the resulting view will be wider than expected.
- Set Abs. Effect to 1.0.
The selected vertices
and surrounding mesh turn red. Now, when you scrub the animation,
the break between the weighted and unweighted vertices for the toe
bone is readily apparent, as compared to the right foot. At the
greatest amount of bend, around frame 10, the fourth lace (unweighted)
sits directly below the third lace. If you select the ankle bone,
you can see that there’s no transition between the weighting at
the front and the rear of the foot.
The way to resolve this
is to create a transition mid-foot by weighting those vertices between
the two bones.
- Return to frame 0 and then
select the vertices for the two uppermost laces.
- Drag upward slowly on the Abs. Effect
spinner so you can see the color change as the vertex weighting
increases. Stop when you see a yellow-orange color, around 0.4.
When you scrub now, the
transition looks better. However, the uppermost lace is too low.
- Select the vertices of the uppermost
lace, select the ankle bone, EmmaRigLAnkle,
and drag the Abs. Effect spinner gradually upward.
As you do, you see the
lace move upward due to the increasing influence from the ankle
bone. Stop around 0.6 or 0.7.
TipFor a useful guide
while adjusting clothing vertices, keep in mind the material of
the clothing. For example, the sneakers might be made of canvas,
which is a fairly stiff fabric, so creasing that might not occur
with a softer fabric might be permissible for canvas. Also, with
medium-resolution models like this one, there might not be enough
vertices for a fully natural look, so a certain amount of compromise
is necessary.
- Continue adjusting the lace vertices
around the bend until you get a reasonable-looking effect.
NoteAdjusting the laces
is a good example of the back-and-forth type of adjustments required
for good skinning. First you make the gross settings for the front
and rear portions of the foot, then you go in and select one lace
at a time and adjust it so it looks good with the rest of the laces
in the bend.
- Next, looking at the bottom of the foot,
you might notice a fairly wide gap between the set of vertices at
the bend and those immediately behind them. Again, select the offending
vertices and raise the Abs. Effect spinner value gradually until
the shoe looks more realistic.
TipIn general, when
adjusting vertex weights for a skinned character, try to keep polygon
sizes consistent; this allows for minimal distortion when the character
is animated.
- Advance to animation to frame 20, where
the foot is bent the furthest in the opposite direction.
There’s a fairly sharp
bend at the bottom of the foot, but there’s not much you can do
about it because of the relatively low resolution of the character
mesh. Even if the budget allowed for more polygons in the mesh,
they would probably go into the face, which has higher priority,
so this type of distortion is usually tolerated in commercial applications
such as games.
Weight the rest of the leg:
- Zoom out and select the
ankle bone, EmmaRigLAnkle. Check the animation
that it affects, approximately from frame 30 to 50.
It looks all right, but
the ankle influence goes fairly far up the calf, which is incorrect.
- Select all of the affected calf vertices.
It doesn’t matter if you go too high, but be sure not to select
any of the ankle vertices.
- Select the calf bone, EmmaRigLCalf, and
set Abs. Effect to 1.0.
This removes the calf
vertices from the ankle bone’s influence.
- Select the loop of vertices at the top
of the ankle and set them to 1.0 for the
calf bone as well.
TipThis is a good place
to take advantage of the Skin modifier’s loop-selection tool. Select
two adjacent vertices on the loop of edges around the ankle and
then, near the top of the Parameters rollout, click the Loop button.
This automatically selects all the vertices in the same edge loop
as the two vertices you selected.
Lower than this is where
the ankle bends, so you need to weight the vertices between the
ankle and calf bones.
- Select the next loop down and set the
calf weight to 0.5.
This loop is now weighted
half for the calf bone and half for the ankle bone.
- Next, zoom out, if necessary, so you
can see both legs.
Some vertices on the
right leg are influenced by the left calf bone, which you can easily
correct for.
- Drag a region around the affected vertices
in the right leg. Toggle wireframe display mode and orbit around
the model to make sure you get all of them.
- Set Abs. Effect for the selected vertices
to 0.0.
Similarly, the calf has
a bit too much influence over the thigh vertices of the left leg,
which is part of the cause of the loss of volume in the knee when
it bends. You’ll deal with this in a bit, but first take a look
at the thigh.
- Select the thigh bone: EmmaRigLThigh.
Again, the default volume
of influence is too large.
- Go to frame 0 and select all the vertices
on the right side of the mesh (your left side) and set their weights
to 0.0.
Great precision isn’t
necessary here; the main thing is to remove the right-side vertices
from the influence of the left-side bone.
Start using the Weight Tool:
In this section you’ll
continue to block out the leg weighting, using the convenient, powerful
Weight Tool dialog.
Given a selection of
vertices with the same bone and weight assignments, Weight Tool
lists all bones that affect the vertices along with the corresponding
Weight values. It also lets you edit the Weight value for the current
vertex selection and bone assignment, setting either an absolute Weight
value or adjusting the weights of the vertices relative to
their current values. In addition, Weight Tool provides controls
for copying and pasting Weight values and controls such as Ring
and Loop for modifying the vertex selection.
NoteIf you select multiple
vertices with different Weight values and bone assignments, the
Weight Tool dialog shows the settings for the vertex with the lowest
sub-object ID. To see settings for more than one vertex at a time,
use the spreadsheet-like Weight Table.
- Near the bottom of the Parameters rollout,
click (Weight Tool).
The Weight Tool dialog
opens. Drag it to a convenient, out-of-the-way location. You can
keep it open as you work.
- Select different vertices while keeping
on eye on the list at the bottom of the Weight Tool dialog.
The list shows the selected
vertex’s bone assignments and the Weight value for each assignment.
Note that the Weight values always add up to 1.0. If, for example,
you change the Weight value for a particular bone for a vertex that’s
influenced by three different bones, 3ds Max changes the values
for the other two bones in the opposite direction, in proportion
to their current values.
Note also that the Set
Weight value doesn’t change; this is a write-only field.
- Select all the vertices in the lower
half of the knee area, down to the bottom of the Capri pants.
- Make sure the calf bone is highlighted
in the Weight Tool list, and then click the 1 button on the Weight
Tool dialog.
This sets the Weight
value for all selected vertices to 1.0 with respect to the calf
bone. Note that the weights for the other two bones in the list
are now 0. You can get rid of 0 weights in the entire mesh by clicking
Advanced Parameters rollout Remove
Zero Weights, but thats not necessary at the moment.
- Select the thigh vertices above the knee,
select the thigh bone, and click the 1 button on the Weight Tools
dialog.
- Just to clean things up, select the calf
bone in the right leg and any vertices in the left leg that it influences
and set their weights to 0. Do the same thing for the right thigh
bone.
NoteAfter you select
the right-leg calf or thigh bone and then region-select the affected
left-leg vertices, it’s possible that the bone doesn’t show up in
the Weight Tools dialog list because the selected vertex with the lowest
ID isn’t influenced by that bone, but that’s okay. Just go ahead
and click the 0 button on the dialog; 3ds Max still recognizes
that you’re setting the weights for the selected bone.
This goes toward the
general philosophy that you work more efficiently by keeping things
as clean as possible as you go, rather than going back and trying
to optimize them later. It’s analogous to the modeling practices
of paying attention to edge flow and making as many polygons as
possible quadrilateral, avoiding triangles or n-gons.
Fix the knee:
- Go to frame 40 and adjust the view so
you can see both knees.
This is a good before-and-after
view. The right knee is “before,” showing marked volume distortion,
while the left knee, after blocking out the thigh and calf weights,
looks more realistic.
However, if you look
closely at the back of the left knee when the leg is bent, it’s
apparent that a good deal of fine-tuning remains to be done. This
requires a lot of tweaking, experimentation, and examining the results,
and, again, it’s not practical to give every detail of the process here.
We will, however, give you an example to start you off.
- Start by selecting the calf bone, if
necessary, and then select the uppermost loops of vertices around
the top of the knee. These aren’t technically loops (they merge
and split off), so select them manually, combining region selection
and clicking, rather than with the Loop tool described preceding.
- Go to frame 40, where the leg is bent
the most at the knee, and reduce the weighting gradually until the
vertices are better positioned.
TipOne good way to do
this is to repeatedly click the – button all the way to the right
of the Set Weight button. Each click subtracts 0.05 from the current
Weight value of each selected vertex. Likewise, each click of the
+ button next to it adds 0.05 to the weights.
If you’d like to take
a look at the completed, fully skinned model, open the included
file configuring_skin_finished.max.
In that file you can example the weighting for all vertices that
we came up with through extended trial and error.
In general, what we ended
up doing was weighting the vertices in the lower half of the knee
mainly to the calf, and, starting halfway up the knee, giving gradually
more weight to the thigh. Some manual tweaking was required to accommodate
for the “wrinkle” vertices at the back of the knee.
- As you’re going through and adjusting
vertex weights, you’ll probably encounter bones for which the selected
vertex has a 0 weight. To keep things simple, if you’re not planning
to influence that vertex with the bone, make a practice of clicking
the Remove Zero Weights button on the Advanced Parameters rollout.
This affects the entire mesh, and helps keep things as simple as
possible.
Weight the pelvis:
After you finish skinning
the left leg, it’s time to move up to the pelvis.
- Select the pelvis bone: EmmaRigPelvis.
Following the practice
of blocking out the weighting, the fact that no red is visible is
not a good sign.
- For the reason why, select the thigh
bone and note that it has an inordinate amount of influence over
the pelvic vertices.
- With the thigh bone still selected, select
all vertices between the bottom of the pelvis (including the top
of the side pouch on the pants) to the top of the belt, inclusive.
- Select the pelvis bone and set the Weight
value to 1.0.
- Scrub the animation and stop around frame
67.
The schism between the
weighting of the pelvis and thigh is glaringly obvious. Fortunately,
fixing this is relatively easy.
- Go to frame 0 and select the vertices
at the crease between the leg and pelvis, at the front of the body
only. Make sure not to select any vertices on the rear end.
- Go back to frame 67 or so and then reduce
the weighting so the vertices move up and out of the deep crevasse
they were in, giving a more natural look to the bend.
Complete the leg and mirror the weights:
In this section you’ll
correct the weighting on the vertices in the character’s rear end,
and then quickly fix the weighting on the right side by mirroring
the vertex weights from the left side.
The first thing to fix
is some unwanted influence of the first spine bone on some pelvic
vertices.
- Select the EmmaRigSpine1 bone
and note that several vertices in the front of the pelvis area,
on the left side, are highlighted.
The bone also influences
vertices on the right side, but because you’ll mirror all the vertex
weights from the left side to the right, that’s not a concern.
- Select the highlighted vertices on the
left side (don’t worry about selecting too many) and then click
the 0 button on the Weight Tool dialog.
- Next, select the nine vertices in the
lower crease, near the bottom of the rear end, as shown in the following
illustration.
TipYou can select the
vertices by clicking each in turn, holding down Ctrl after the first one. Another,
slightly easier way, is to turn on Backface Cull Vertices in the
Select group on the Parameters rollout, and then region-select the
vertices. Make sure the Weight Tool dialog shows “9 Vertices Selected”
and be sure to turn off Backface Cull Vertices after making the
selection.
Currently these vertices
are weighted only for the pelvis bone, so you need to add weighting
for the thigh bone.
- Select the thigh bone, set the vertex
weights to 0.5, and adjust from there. For example, the lowest three
vertices on this crease stick out too much, so you need to increase
the thigh-bone weighting for them compared to the other six vertices.
- Continue working on the vertices in the
rear end, adjusting them so you get a realistic, rounded effect,
like this:
As before, when in doubt,
refer to the finished scene, configuring_skin_finished.max,
for specific guidance.
- Also adjust the vertices in front, at
the crease between the thigh and pelvis. And while you’re at it,
set weights to 0 for any torso vertices influenced by the thigh
bone.
- When you’ve finished weighting the pelvis
vertices, go to the Mirror Parameters and turn on Mirror Mode.
The bones and vertices
now use color coding: blue for the left side and green for the right.
Centered items, which cannot be mirrored, are colored red.
A few notes about the
Mirror Mode settings:
- Mirror PlaneThe
axis normal of the plane about which the vertex weights are mirrored.
The default setting, which you’ll use for this tutorial, is X, which
means the YZ plane. The plane appears as an orange wireframe in
the viewport.
- Mirror OffsetThe
distance along the X axis to move the mirror plane. The default
value, 0, centers the plane to the character, so for this tutorial
it’s the desired setting.
- Mirror Thresh(old)The
amount of leeway for the detection of symmetry. If this is too high,
mirrored weights might go to the wrong vertices, but if it’s too
low, the Skin modifier won’t be able to detect symmetrical bones
and vertices. You’ll experiment with this setting in the next step.
- Right-click the Mirror Thresh. spinner
to set it to 0, so that all the bones turn red, and then increase
it until all the leg bones and arm bones turn blue and green.
The default value is
0’0.5”, but in our scene we were able to reduce this to 0’0.19”,
which potentially allows for greater accuracy in mirroring weights.
Your results might vary slightly.
To do the actual mirroring,
you use the five buttons under the Mirror Mode button. From left
to right, they mirror selected vertices only, all bones from either
side to the other, and all vertices from either side to the other.
For this tutorial, you’ll use Paste Blue To Green Verts, the button outlined
in red in the following illustration:
- On the Mirror Parameters rollout, click (Paste Blue To Green Verts).
All of the weighting
you’ve done for each vertex on the left side of the character has
now been copied to the vertices’ counterparts on the right side,
instantly correcting the skinning throughout that side. The left-side
vertices, previously blue, are now yellow to indicate that they’ve
been mirrored:
- Exit Mirror Mode by clicking the Mirror
Mode button, and then scrub the animation through the first 100
or so frames.
The animation looks mostly
good on both sides of the character’s lower half. However, there’s
a slight problem around frame 80, when the leg bends back, where
the crease between the leg and buttock is a bit too deep.
- Select the crease vertices and increase
their weights gradually with respect to the thigh bone until the
folding looks better.
TipA tool that can potentially
help in a situation like this is Blend, which evens out, or averages,
the weighting of selected vertices. First save your work as a backup,
then select the vertices in and around the area of the crease and
then, at a frame where the crease is in effect, click Blend on the Weight
Tool dialog a few times. If it looks better, great. If not, load
the saved file and weight the vertices manually.
When you’re satisfied
with the results, mirror the vertices to the other side.
Another important consideration
is the center line of vertices around the pelvis, which are currently
weighted 100% for the pelvis. In reality, these areas would be pulled
around by the movement of the legs, so they need to be weighted
accordingly.
- Select the three center vertices at the
bottom-front of the pelvis, select the right thigh bone, and click
the 1 button on the Weight Tool dialog. Then select the left thigh
bone and click the .5 button. Finally select the pelvis and gradually
increase its weight for the vertices, checking the animation as
you go, until it looks right.
That way you give equal
weight to both thigh bones, maintaining that balance as you then
bring the pelvis into the equation.
- Similarly, weight the vertices on the
character’s left side of those center vertices slightly toward the
left thigh bone, and the ones next to those a little bit further
toward the left bone. When everything looks good, mirror the vertices
to the right side.
Save your work:
- Click (application button), choose
Save As, and save the scene as MyEmma4.max.