Serious Sam Fusion 2017 (beta) Guide

How to redeem '3rd Echelon' map - [DEPRECATED; GAMESPOT REMOVED THE PAGE] for Tom Clancy's Splinter Cell: Conviction

Adding dynamic eyes to your player model

Overview

This guide will teach you how to set up your model so that Dynamic Eyes script will move its eyes according to where you currently look at.

What do I need?

First, you should have Dynamic Eyes Script mod installed and enabled.
Second, you should have your own player model, preferably weighted and with proper eyes.
Here, by proper eyes I mean spherical or half-spherical eyes, which can be rotated in place to imitate eye moving of the character. Here is what I got:


This is good enough.
I assume you have basic SED skills, since you are able to create a player model.
Also keep in mind that you can always check models from LiS Character Pack as reference if you are having issues setting this up.
Let’s start!

Creating eye bones

First, you need to create bones which will rotate eyes.

Resave skeleton of your model into separate file.
Go to skeleton editor and select the bone which your eyes are currently weighted to (if you have a regular humanoid model with default skeleton, it is “Head” bone).
Press Shift+X to create a new bone, and name it “R_DynamicEye_Root”.
Now, position this bone so that it is directed perfectly forward – to do this, go to “Tools” tab and set “H”,”P”,”B” angles to 0.

Now you have to rotate this bone so that it looks at the same direction as the right eye of your model does. If you’re lucky and your model has eyes facing directly forward, you don’t need to adjust anything, you can proceed to the next bone.
If you are less lucky, and eyes of your model don’t face directly forward, carefully rotate the bone a bit until it’s direction coincides with eye looking direction. Alternatively, you can keep the bone facing straightly forward and rotate the eye instead.
Size and X,Y,Z position of the “R_DynamicEye_Root” bone does not matter, only rotation.
So you can freely move it around to check how well it is aligned with eye direction. In my case, Max’s right eye is looking something like 3 degrees to the right from the center, so I had to rotate “R_DynamicEye_Root” bone by 3 degrees.


Now do the same for the left eye. Create “L_DynamicEye_Root” bone (don’t forget to select “Head” bone, so that “L_DynamicEye_Root” is the child of “Head”), and rotate it so that its looking direction coincides with such of the left eye.

Root bones are finished. Now we create the actual eye rotating bones.

Select “R_DynamicEye_Root” bone and create “R_DynamicEye” bone as it’s child.
After you created “R_DynamicEye”, it should have the same direction as its parent, “R_DynamicEye_Root”, and it should always stay like this! You can rotate “R_DynamicEye_Root” later, but not “R_DynamicEye”.
Now place “R_DynamicEye” bone (changing only X,Y,Z values, no rotating!) so that it is positioned in the center of the right eyeball. You can do it not very accurate for now, we will return to adjusting it later.

Do the same for the left eye. Create “L_DynamicEye” as the child of “L_DynamicEye_Root”, place it in the center of the left eyeball without rotating it.

Important stuff once again:
Size and X,Y,Z position of the “*_DynamicEye_Root” bones does not matter, only direction. These bones should be children of “Head” (or whatever bone your eyes are attached to now).
“*_DynamicEye” bones should be children of corresponding root bones, should have same direction as root and be placed in the center of corresonding eyeballs.

Here’s what I got in the end for Chloe:

Weighting eyes

Now we need to weight eyes mesh to freshly created bones. You probably know how to do this, but I will go through it anyway.

Go to mesh editor, select all vertices of right eye – since eyeball is likely detached from the rest of the mesh, you can do this by double-clicking on any place of the eye – and create “R_DynamicEye” weight map. Repeat for left eye, creating “L_DynamicEye” weight map.

Now, if your model was already weighted, eyes already belong to the “Head” weight map as well. You should delete them from it. Select “Head” weight map, press Ctrl-Shift-Numpad+ to select all vertices from the map. Select “R_DynamicEye” weight map and press Ctrl-Shift-Numpad- to deselect vertices of the right eye, then select “L_DynamicEye” weight map and press Ctrl-Shift-Numpad- to deselect vertices of the left eye. Now you should have all vertices of the head selected without eyes. Delete “Head” weight map and create new one with all vertices you have selected.

Adjusting eye bones

Technically, you already have everything set up, but you will likely need to adjust bones position.

Go to Animation editor, create empty animation, press M and add “R_DynamicEye” and “L_DynamicEye” envelopes.

Now rotate these bones in animation editor to see if everything is positioned correctly: eyes rotate with the bone and rotate naturally inside the eyesocket.

Most likely this won’t be the case from the first try. Example of bad positioning: eye “sticks out” when rotated to one side (right) and “goes inside” whe rotated to the other (left).


To fix this, go back to Skeleton editor and adjust “*_DynamicEye” bones positions. Don’t forget that you can only move these bones, but not rotate! Upon returning to Animation editor to test the changes, delete envelopes and create them again to see the changes.

Repeat this for both eyes until bones are placed well enough so that their rotation leads to natural rotation of eyes. Here’s what I got:


That’s all we need! If you are making dynamic eyes for a humanoid model, you can stop there, go test it and release. But if you have some non-standard character, you may want to read about eye rotation limits and how to change them.

Changing eye rotation limits

Scripts have built-in limits on angles at which eyes can rotate from the base. Why they exist? Because if you don’t put any limits, stuff like this will happen when you look directly upwards:


This happens because player model can only put up its head at ~45 degrees angle, and if you look directly upwards, so will dynamic eyes, which results in such weird picture.

To avoid this, I included limits to eye rotation. By default, they are 30 degrees in each direction (up, down, left, right). For humanoid models this is usually enough to cover most scenarios, and eyes at 30 degrees up/down don’t look so creepy as in the above picture.

If, however, you want to make these limits bigger or smaller, you need to add couple utility bones to your model’s skeleton.

If you want to change MAX limits (how far to the right/up can the eye rotate), create the “DynamicEyes_Max” bone in the skeleton. Make sure it’s not parented to any other bone – deselect all bones before creating it. Then move it a bit upwards (doesn’t matter by how much, just so that it has nonzero Y coordinate). Now through the “Tools” tab, set this bone’s H and P angles to the MAX limits you want to have.

For MIN limits (left/down), do the same, but the bone should be named “DynamicEyes_Min”, and have negative H/P angles.

So, say I want to extend eye rotation limits to 40 degrees in all directions. Then I put 40 to H and P angles of “DynamicEyes_Max”, and -40 to H and P angles of “DynamicEyes_Min”. Looks like this in my case:

Conclusion

Despite the seeming length of the guide, setting up the eyes is very simple. You just need to create 4 bones, place them properly and weight eyes to them. Good luck, and if you have any questions, ask them in the comments!

SteamSolo.com