New Character Animation/Rigging In SWBF2 (A Gogie Guide)

How to create models in XSI and other 3D applications and make them work in Battlefront 1 & 2. Post models, tips for application usage and share anything XSI, 3DMax, SketchUp, etc.

Moderator: Moderators

Post Reply
User avatar
Gogie
Modeling Master
Modeling Master
Posts: 708
Joined: Fri Mar 31, 2006 11:02 pm
Projects :: Tinkering away with LEGO
Location: alberta, canada

New Character Animation/Rigging In SWBF2 (A Gogie Guide)

Post by Gogie »

This Tutorial series will be long, and will cover a lot of ground but hopefully by the end of this all, you will have everything you need to easily create new character animations in SWBF2.

Section 1: Biped / Trooper Animation.

1.1.0 Introduction
Hidden/Spoiler:
First, I'd like to say: If you are struggling to animate or finding yourself getting frustrated, don't worry. This is a lot of complex learning, character rigging and animation in itself is quite literally it's own career path. There are dedicated artists who animate in video games that well... typically don't actually do anything else. With that being said this is an easy enough concept to learn and practice, just be aware that nobody gets good at animation overnight. I am hoping through a series of examples I can give you a pretty good idea of how to animate your characters and establish an acceptable workflow to make this adventure easier.


1.1.1 Setting Up A New Scene For An Animation Rig


FOR SOFTIMAGE 2015 USERS:
Hidden/Spoiler:
All of your setup is already done and you can download my prefab scene here: https://drive.google.com/file/d/1tk5tNq ... sp=sharing

This includes Layers already being set up as well as all controllers already bound and in place. You can actually at this point Completely skip to Section 1.2.0 if you wish.

FOR SOFTIMAGE 7.5 MOD TOOL OR LOWER USERS:

Unfortunately unless you are using the full version of 2015, there will be a little bit of leg work here to set up your scene to use an animation rig.

1.1.2: Import Your Skeleton
Hidden/Spoiler:
Your very first step in all of this is to grab the Rig Pieces from this link: https://drive.google.com/file/d/1IFxHIs ... sp=sharing
This is going to include all of the pieces you need to import into XSI in order to create the rig for animation.

Second, if you dont already have it: you will need a copy of the Unit Template Beta emdl for the skeleton, this is the basic skeleton used on MOST models in SWBF2.
You can download Unit Template Beta here: http://www.secretsociety.com/forum/down ... e_Beta.zip

Now, when you first open up you are going to want to import the Unit Template Beta emdl into your scene, This can simply be done by going File > Import > Model.
Image

1.1.3: Create Your Layers
Hidden/Spoiler:
So layers, are basically a quick way that we can control different items in are scene that are visible and selectable, and can help us quickly and easily access or not access things we want to. A example of this is, typically while animating, we will want to see our model and how it deforms, but we don't want to accidentally click the model instead of our controllers, so we make its layer visible but not selectable.

To set up your layers first hit the "6" key in XSI, this will bring up a new Scene Layer Manager window. First, rename "Layer_Default" to "Scene". At the top of this new window click Layers > New Layer to create a new Layer. You will want to have a total of 7 layers and name them as follows:
Image

A little detail of what these will be for:
Bones: This will hold all of the bones for our unit, we want this to be hidden and unselectable while animating so we don't accidentally click them. YOU SHOULD NEVER MODIFY A BONE ITSELF DURING ANIMATING. If you have been doing this, your doing it wrong, don't worry we will show you a more proper method.

Mesh: This layer will hold our Model and will be visible but not selectable so we can see how our geometry is deforming during animation.

ShadowVolume: This layer will hold our shadow mesh, and will be hidden and not selectable, for the purpose of animation we really don't even need it.

Effectors: This layer will hold our IK end chain effectors, we will want this visible and selectable while we set up our rig, but hidden and not selectable when we are animating.

Roots: These are the roots of our bone chains, we have to be careful NOT to modify anything in this layer at all, it will be made unselectable and hidden at all times.

Scene: This will hold all of the objects for our scene, such as the GroundDummy Actor/Root, a light and our camera. This will be unselectable and hidden at all times.

Controllers: Everything in this layer will be used to animate, this entire layer will be visible and selectable through the entire animation process, it is for our purpose the single most important layer.

1.1.4: Set Up Your Layers
Hidden/Spoiler:
First, begin by bringing up the XSI explorer window (you can do this by pressing the "8" key) while inside the explorer window press "L" to put the explorer into Layer Mode, you can return to Scene Mode at anytime by pressing the "S" key while in the explorer window.

while in layer mode in the explorer you can drag and drop items from one layer to another. Start by dragging all your bones into one layer, For all purposes we consider HP_WEAPONS and BONE_ROOT to be bones. Everything else can be easily identified by the name GroundDummy.bone_[name].

When complete your bone Layer should look like this:
Image

IMPORTANT NOTE: notice the small "H" beside the icon of bone_r_hand, bone_l_hand and hp_weapons. This means the objects are hidden, we want them visible for when we set up our rig, so click all 3 of those objects and press the "H" key to unhide them.

Next select everything with the name GroundDummy.root_[name], and make sure you select GroundDummy.Dummyroot as well and drag them into the "roots" layer, your layer should look like this:
Image

Next drag everything with the name GroundDummy.eff_[name] into the Effectors layer. Your layer should look like this:
Image

Finally drag your GroundDummy.override_texture into the Mesh Layer, and Drag the GroundDummy.sv_jettrooper into the ShadowVolume layer. The remaining objects can stay in the Scene Layer. This is how all 3 of those layers should now look:

Image

After all items are dragged into the proper layer, Open the Scene Layer Manager again with the "6" key. The Bones, Controllers and Effectors layer should be both visible and selectable at this point. The Mesh Layer should be visible but not selectable, and the Roots, Scene and Shadow Volumes layers should be not visible or selectable. Here is a screenshot of my scene with all the appropriate boxes checked:
Image

1.1.5: Import The Controller Objects.
Hidden/Spoiler:
These Objects were shipped as .msh pieces so in order to import you will need XSIZETOOLS installed (information on that can be found here: viewtopic.php?f=36&t=26664

Before you import make sure you press the "6" key and click the little grey square to the left of the "Controllers" layer to change your current active layer to the Controllers Layer, this will make it so all your control objects automatically import to this layer.
Image

To import a .msh at the top of XSI simply go XSIZETOOLS > Import .MSH as seen here:
Image

Incase you didn't already download the pieces you need to download can be found here: https://drive.google.com/file/d/1IFxHIs ... sp=sharing

After you import to the proper Layer your Scene should look like this:
Image

1.1.6: Setting Up Your Legs IK
Hidden/Spoiler:
First when we set up our chains, press "8" to open up your explorer window, then Press "L" to turn it into Layer Mode, go to your effector layer and select all of the objects in this layer, (that is select everything with the name GroundDummy.eff_[name] and then press "Enter" to bring up their properties. With your properties open change your primary display icon the "Rings" and the size to 0.05. this will make it easier for us to select our effs. You can see the Effs new appearance below:
Image

Next so that we can find our constraint tab easier make sure you change XSI to 1024x768 Mode By going View > Layouts > 1024x768
Image

Now we will start with the left foot, Select GroundDummy.bone_l_toe and at the bottom right of the screen click the tab that says MAT (Green Box in Image below) to swap to the Material tab, at the bottom of the properties here you will see the constraint button click it (Red Box In Image Below).
Image

With the constraint tab open, click on "Pose" to constrain the pose of the toe Bone, This will bring up a pick session, simply click the Controller_Left_Toe to constrain its pose. (I highlighted both the toe bone and the controller in the image below)

Image

Next click GroundDummy.eff_l_calf and click Constrain > Pose and click on Controller_Left_Foot. I highlighted both objects below:
Image

Now Click on GroundDummy.bone_l_foot but with this bone click Constrain > Orientation and then click Controller_Left_Foot.

Here is an image of where to find constrain orientation:
Image

Here is an image of both GroundDummy.bone_l_foot and Controller_Left_Foot highlighted
Image

Now we just need to parent out controllers, Select Controller_Left_Toe_Rotation and click the button right underneath the constraint tab (highlighted in a green box) and then click Controller_Left_Foot. This will make the Toe rotation controller the parent of the Left Foot controller.

here is an image of the toe rotation controller and the parent button highlighted.
Image

here is an image of both Controller_Left_Toe_Rotation and Controller_Left_Foot highlighted.
Image

Now click Controller_Left_Toe and click the Parent button again, and then click Controller_Left_Toe_Rotation to make the Toe controller the parent of the rotator. I highlighted both below:
Image

Next we need to enable Inverse Kinematics on the Leg chain in order to see some results. So click GroundDummy.bone_l_calf then press "CTRL + R" to bring up the Inspect Chain Properties window. Under this window change FK/IK Blend to 1, and then click the box that says "force IK" your window should now look like this:
Image

Now click GroundDummy.bone_l_thigh and then click Constrain > Chain Up Vector (I highlighted the bone and the proper constraint below)
Image

Now when promted to, pick UpVector_Left_Knee I highlighted the bone_l_thigh and the proper controller below
Image

Now if we look at our leg suddenly our leg is all backwards, this is because the resolution plane of our bone is actually rotated the wrong direction (I will never understand why Pandemic did this but... they did)
Image

This is very easy to fix, first click the GroundDummy.bone_l_thigh and press enter to open it's properties, then click the Kinematic Join Tab (Green Box), Then Click the Resolution Plane Tab (Red Box) and make sure Res. Plane is set to Up Vector and your Roll is set to 180 (Blue Box) and your leg should now be facing forward.
Image

Now everything is done for the left leg, if you grab your toe Controller and Translate it you can now move your leg (you will want to swap back to the MCP tab at the bottom right of the screen if you are still in mat mode)
IMPORTANT: If you move anything right now make sure you undo it or you will lose your resting pose. Only move at this phase to test.
Image

If now rotate the Toe Rotation controller youll notice it will raise the heel upwards:
Image

And if you grab the UpVector_Left_Knee you can change the direction your knee faces:
Image

AND AGAIN: IF YOU MADE ANY MOVEMENTS TO TEST MAKE SURE YOU UNDO OR YOU WILL HAVE TO REDO ALL OF THIS AGAIN TO GET A RESTING POSE.

Side note for moving the feet: you should never actually have to move the Controller_Left_Foot, Its mostly there to help guide your foot bone, you don't need to keep it visible but I like it visible so i can easily see if my foot is flat.

Now repeat all of these steps for the opposite leg, using the other legs controllers and your Leg rigging is Done.

1.1.7: Setting Up Your Hip Rig
Hidden/Spoiler:
The hip rig is honestly one of the fastest and simplest to set up, first select GroundDummy.bone_pelvis, then choose Constrain > Pose and click Controller_Pelvis Below is an image of both the bone and the controller selected.
Image

Next select GroundDummy.bone_root and choose Constraint > Pose, and constrain this as well to the Controller_Pelvis. Below is an Image of both of these selected.
Image

Now if you translate your pelvis controller and move it around you'll notice your unit moves nicely with it, and at the same time the knees bend and the feet stay in place.
Image

Again remember if you move the pelvis controller to test it out to UNDO all your transforms otherwise you will screw up your static pose.

1.1.8 Setting Up Your Spine
Hidden/Spoiler:
Now typically when you create a spine curve in XSI you add a depth node for your hips and your chest, the problem here, is this ADDS things to the skeleton, and we actually CAN'T add things to the skeleton or we won't have a working unit template. So we need to do a little bit of clever work arounds to get this to work properly, This is why I included 2 controllers, one for the lower spine and one for the ribcage.

So first we need to create a new spine: at the top of your XSI window click Animate > Skeleton > Create Spine
Image

This will enter you into a pick session where you will have to pick a hip object and then pick a chest object. So when the pick Session begins click Controller_Lower_Spine (Highlighted in the image below)
Image

next you will click on your chest object, so click Controller_Rib_Cage (highlighted in the image below)
Image

Now when the new popup window comes up be sure to change the number of vertebra to 2, Remember your hips are not technically a vertebra, so you always want to go one number lower than what the number of bones in your spine chain is. (this is part of that clever working around I was talking about)
Image

You should now see 3 newly create boxes along your spine bones (I highlighted them here)
Image

Now Select GroundDummy.bone_a_spine and go Constrain > Pose, and select vertebra1 (this will be the lowest box on your newly created Spine, I highlighted both in the picture below)
Image

Next select GroundDummy.bone_b_spine and go Constrain > Pose and select vertebra2 (this will be the middle box on your spine, highlighted below)
Image

Finally Select GroundDummy.bone_ribcage and go Constrain > Pose and select Vertebra (this will be the top most largest box in your spine highlighted below)
Image

Now at this point your spine may be a little sideways, this is because IK is not turned on for the Spine by default.
Image

To fix this simple click GroundDummy.bone_ribcage and hit "CTRL+R" to bring up the inspect chain properties menu, change FK/IK Blend to 1 and click the box to Force IK.
Image

now open explorer view with the "8" key and find your newly created spine (default name is spineCurve) and branch select it by clicking with the middle mouse button then press the "H" key to hide it and all its children, we want this hidden because we actually wont be using this directly to animate, we will only animate using the rib controller and the lower spine controllers i provided in the msh file. (I personally find it easiest to find this in explorer layer mode which is "8" key to open explorer and "L" key to change to layer mode)
Image

now either select the two green nulls on your screen or look for chestdepth and hipdepth and hide those as well with the "H" key.
Image

Finally, select Controller_Pelvis and click the Parent button (found right below the Constrain Button) and then click Controller_Lower_Spine (I selected both in the screen shot)
Image

Then Select Controller_Lower_Spine and click Parent again and this time click Controller_Rib_Cage (both are highlighted below)
Image

Now if you move around and rotate the Controller_Rib_Cage and the Controller_Lower_Spine you should be able to see your spine curve operate nicely.
Image

AND AGAIN (and I will keep repeating this until we have a nuetral pose set) If you do move anything around while testing be sure to UNDO your steps of you will screw up your static pose.

1.1.8 Setting Up Your Arms And Shoulders
Hidden/Spoiler:
So first for this i'm going to start with the left side on the shoulder, select GroundDummy.eff_l_clavicle and go Constrain > Pose and then select Controller_Left_Shoulder. (I have both selected in the screen shot below)
Image

Next select GroundDummy.bone_l_clavicle and open its chain properties by going "Ctrl+R" make sure to check the box that says "Force IK"
Image

Now click GroundDummy.bone_l_upperarm and inspect its chain properties (Ctrl+R) and make sure to turn FK/IK blend to 1 and check the box that says "force IK"
Image

Now select GroundDummy.eff_l_forearm and go Constrain > Pose and then click the Controller_Left_Arm (I highlighted both below)
Image

Now Select GroundDummy.bone_l_hand and go Constrain > Pose and then click Controller_Left_Hand (I highlighted both below)
Image

Now click on GroundDummy.bone_l_upperarm and go Constrain > Chain Up Vector and click UpVector_Left_Elbow (both highlighted below)
Image

Now click Controller_Left_Hand and click Parent (button just below the Constrain button) and click Controller_Left_Arm (both highlighted below) (and yes this is not backwards you want the HAND to be the PARENT of the ARM so the ARM FOLLOWS THE HAND)
Image

Now click Controller_Left_Shoulder and then click Parent and choose Controller_Left_Hand (this is so when we rotate the Shoulder controller the whole arm moves with it)
Image

Finally click Controller_Rib_Cage and then click Parent and choose Controller_Left_Shoulder so our shoulders move with the ribcage when we move it.
Image

Thats it, you can now rotate and translate the shoulder controller, or move the hand controller and the elbow controller to see how it all moves. You can at this point actually hide the Controller_Left_Arm if you wish, its purpose is to have the eff of the forearm follow the hand it does not need to be visible.

Image

remember if you move things to test to UNDO your steps. When you are ready simply repeat all these steps for the right side of the body.

1.1.9 Setting Up The Head / Neck / Main Direction
Hidden/Spoiler:
Now that the rest of the controllers are assembled we just need to add the finishing touches. Staring with the neck, click GroundDummy.bone_neck and click Constrain > Pose and then click Controller_Neck.
Image

Next click GroundDummy.bone_head and click Constrain > Pose then click Controller_Head
Image

Now click Controller_Neck and click Parent, then click Controller_Head
Image

now click Controller_Rib_Cage and click Parent, then click Controller_Neck.
Image

Now we want to create a control object for our whole unit so we can change directions, so at the top of the screen go Model > Primitive > Polygon Mesh > Cone, adjust its settings however you want for size I prefer mine to be around this size
Image

Rotate it 90 degrees along the X axis using the property editor on the left of your screen then click Transform > Freeze All Transforms
Image

Finally rename it, I usually like to rename this "Controller_Main_Direction" or something like that. Then Open up your explorer with the "8" key and make sure you are in scene mode by pressing the "S" key, click both the spineCurve and the Controllers Null and drag and drop them under your newly created arrow.
Image

you can now use this object to move the entire Rig or rotate the entire rigs direction.

now go into the explorer again and go into Layer mode ("8" key followed by "L" key) find the controllers layer, left click and click select members, this will select all your controllers.
Image

with all of the controllers selected go to Transform > Set Neutral Pose
Image

NOW YOUR CAN MOVE ANYTHING YOU WANT. Literally, with the neutral pose set, if you ever want to restore the default pose, all you have to do is Press 8 to open the explorer, Press L to enter Layer Mode, Right click the controllers layer, Select all members, then hit CTRL+SHIFT+R to reset all transforms and your model will snap back to the static pose.

1.2.0 Using The Rig
Hidden/Spoiler:
So if you followed construction of the rig you probably at least know the basics of how it works, but i'm going to run people through it here so you all know exactly how to pose.

1.2.1 Using The Main Direction
Hidden/Spoiler:
Controller_Main_Direction can be Rotated to adjust the entire rigs direction.
Image

It can also we translated to change the entire position of the model (Remember though, BF2 will only use your bones local rotations, so translation is mostly for your visualization in XSI, it will not affect your ingame animation)
Image

1.2.2 Using The Rigs Legs
Hidden/Spoiler:
Typically you will want to position the legs by moving the Controller_Toe into position this can be translated to move the entire leg.
Image

You can also rotate the Controller_Toe to rotate the entire foot uniformly
Image

You can rotate Controller_Toe_Rotate to raise the heel and create a bend in the foot, IT IS NOT RECCOMENDED TO TRANSLATE THIS CONTROLLER ONLY ROTATE
Image

You can translate the Controller_Knee to adjust the knee's facing direction, the knee will usually follow this Controller and face towards it
Image

1.2.3 Using The Rigs Body
Hidden/Spoiler:
Controller_Pelvis can be translated into position and the leg bones should bed naturally to suite its new position.
Image

It can also be rotated and again most things should follow it accordingly
Image

Controller_Lower_Spine Can be translated (although it is reccomended to only slightly translate as to not create an unnatural looking curve)
Image

Controller_Lower_Spine can also be rotated again lower spine should be slight adjustments as to not look unnatural
Image

Controller_Rib_Cage as well can be Translated
Image

And as well can be rotated to give the spine some nice movement, you will notice that moving either Controller_Lower_Spine or Controller_Rib_Cage will automatically move the entire spine nicely because of the spine curve we have set up
Image

1.2.4 Using The Rigs Arms

Hidden/Spoiler:
The Controller_Shoulder can be translated to move the Clavicle bones
Image

You can also rotate the Controller_Shoulder to change the direction of the entire arm chain
Image

The Controller_Hand can be translated to move the arm chain into a new position following the Hand
Image

It can also be rotated to adjust the orientation of the hand
Image

You can translate the UpVector_Elbow to change the direction the elbow is facing at anytime, the elbow will always face towards the controller
Image

It is recommended that you do NOT rotate the Controller_Arm and instead position the arm chain using only the Shoulder Controller, The Elbow Controller and the Hand Controller, the entire purpose of the Arm Controller is just to ensure a smooth IK movement. (again you can hide this controller if the temptation is too large to move it)

1.2.5 Using The Rigs Neck And Head
Hidden/Spoiler:
The Neck actually follows a basic FK rig, The controller should only be ROTATED and not translated.
Image

The Head as well should only be ROTATED and not translated as it is a simple FK chain
Image

1.2.6 Resetting The Rigs Position
Hidden/Spoiler:
If at any point you need to return the Rig to its resting position First open the XSI explorer by pressing the "8" key, then press the "L" key to enter Layer Mode, find the Controllers Layer and Left click it then click Select Members.

Image

This will automaticall select all your controllers, then simply click Transform > Reset All Transforms (or just use the keyboard shortcut CTRL+SHIFT+R, if you have followed the guide to this point or are using my .scn rig this will automatically snap all controllers to the resting position.

Image

1.2.7 KeyFraming And Basic Animation
Hidden/Spoiler:
Basically until you animation is done you will only be animating your Controllers, DO NOT KEY YOUR BONES UNTIL YOUR ANIMATION IS READY TO EXPORT.

Here I have started at frame one moved the hand controller forward and pressed the key button to add a new key to the controller.
Image

Now I moved to frame 30, moved the arm back and put another key. If I press play now i will see the arm move front to back.
Image

Now for the sake of example we will say thats the animation I want, to get the rig ready for export, press "8" to open the explorer, then press "L" to change to Layer mode, then right click the "Bones" Layer and click "Select Members" to select all your bones
Image

Now on the left side of your screen make sure you are in Rotation mode and the small button that says "Local" is highlighted.
Image

Now simply use the Arrow keys to go back and forth between frames and use the "K" key to apply a keyframe to all frames (IMPORTANT: ONLY KEY LOCAL ROTATIONS, DO NOT KEY TRANSLATIONS OR YOUR RIG WILL GO WONKY. Remember translation DOES not matter in swbf2 anyways, you should only need to key local rotation)
Image

When you are done with your keyframes, simply select GroundDummy.dummyroot and export with the animation box check
Image

1.3.0 Examples
Hidden/Spoiler:
So here I will be making a series of examples to help you get an idea of how to Animate with the Rig, the goal here is to teach you some common animation techniques and also to help you understand how easy this can be with a proper rig. Hopefully this will encourage the community to make more custom animations.

1.3.1 Custom Walk Cycle: The Leg Work (Theory)
Hidden/Spoiler:
So first, A little bit of theory here, so a walk cycle is actually very simple, for most walk cycles you actually just use the same concept over and over, but slightly move different bone one the legs to make the cycle a little bit different, or maybe smooth out certain frames between. All you are basically going to do is use the same 4 poses over and over. I will go into detail of each pose below.

CONTACT POSE
Image
Contact pose is usually the pose you start a repeatable walk cycle in, in this pose the hips are slightly lower than they are in the static pose of the model, both feet are touching the ground. One foot is in front of the body, and one foot is behind the body. The leg towards the front of the body should be placed almost as far as possible with just a slight bend in the knee, the foot at the front of the body should be rotated to pointed diagonally, roughly 30-45 degrees. The back leg should be placed almost as far as possible backwards with again a very slight bend in the knee, the back toe should be flat to the ground, but the back heel should be raised roughly 30-45 degrees.

DOWN POSE
Image
This is also called the "Low Pose" or the "Recoil Pose", in this pose the hips are slightly lower than they would be in the contact pose, the foot at the front of the body should now be completely flat to the ground, and the front calf should be roughly 90 degrees to the ground, that is the calf should be pointing mostly if not directly upwards. The back heel should now be rotated so the foot is almost flat, the toe should only be slightly curled upwards, the back leg thigh should be 90 degrees to the ground.

PASSING POSE
Image
At this phase the back leg and front leg pass eachother, and the back leg will now be placed slightly towards the front of the body, and the front leg will be placed towards the back of the body. The hips should be slightly higher if not equal to the height they would be at in Contact Pose, the front leg will be brought backwards with the foot still flat on the ground, it should be brought back almost as far as it can go, with only a slight bend at the knee. The back foot will be rotated so the foot points directly downwards towards the ground, the foot will then be brought forward so that is aligns roughly in line with the characters butt, there should be a relatively significant bend in the knee.

UP POSE
Image
This is also called the "High Pose" or the "High Point" (i've heard it referred to as the Stretch Pose once or twice, don't ever call it that, just don't). At this point the leg that is now at the back of the body will have its heel raised about 30-45 degrees while its toe is still flat to the ground, the leg should be positions back as far as it can go with little to or no bend at the knee. The hips in this pose should be slightly higher than they are in the Passing Pose. The Leg that is now at the front of the body should have its foot rotated so it is pointing towards the ground at an angle of about 30-45 degrees, the leg should then be brought forward and the calf bone should be made to run roughly parallel to the back calf bone.

And finally, we now return to Contact Pose, except this time the feet and legs are now in the mirrored position from what they were in at the start of our animation, at this point all we have to do is repeat all of the poses again, but mirrored so the legs swap.
Image

Typically when you make these poses you want to space each keyframe 2 frames apart. For a total of 25 frames, you would then move your frame range back to 24 to hide the last contact pose to make the animation repeatable. Here is a list of frames and the poses I used.

Frame 1: Contact Pose (Right Foot In Front, Left Foot in Back)
Frame 4: Down Pose (Right Foot In Front, Left Foot in Back)
Frame 7: Passing Pose (Right Foot Passing To Back, Left Foot Passing To Front)
Frame 10: Up Pose (Right Foot Now In Back, Left Foot Now In Front)
Frame 13: Contact Pose (Right Foot in Back, Left Foot in Front)
Frame 16: Down Pose (Right foor in Back, Left Foot in Front)
Frame 19: Passing Pose (Right Foor Passing to Front, Left Foot Passing to Back)
Frame 22: Up Pose (Right Foot Now in Front, Left Foot now In Back)
Frame 25: Contact Pose (Right Foot in Front, Left Foot in Back)

When all played together and the animation for our walk can now be seen in this GIF. (note: for this I had realtime playback turned to 75% to slow the animation so you can see whats happening)

Image

1.3.2 Custom Walk Cycle: The Leg Work (Animating)
Hidden/Spoiler:
So before we begin, because we will be using automatic Keys, I strongly reccomend you key all of your controllers at the first frame, you can do this by clicking on the timeline at the bottom of the screen and bringing it all the way to frame one, then press "8" to open the XSI explorer, press "L" to change to layer mode, and right click the controllers layer, and select members.
Image

Next with all the controllers selected click the little "R" under the transforms section to change it into rotation mode and simple press the "K" key to set a new keyframe.
Image

Now press the little "T" to put it into translation mode and again press the "K" key to apply a keyframe to all controllers.
Image

so now that we understand our poses its time to start animating, first click on the little grey box at the bottom right of your screen, and change your framerange to 25 (since we know we will only need 25 frames.) I highlighted this area in the Blue box in the image below.
Image

Now we want to turn on Auto Keying, this will make it so any changes we make to our controller will automatically be keyed to our timeline. When auto Keying is turned on the button will be Red, I highlighted this area in the blue box below.
Image

now we can move our bones, move your timeline all the way back to frame one by clicking on the timeline, now because our default pose has the legs spread a bit, grab the Toe controllers and translate them along the X axis to bring both legs closer together, they should not be touching but should be a little closer together.
Image

Now grab the knee controllers and bring them closer together so both of your knees face perfectly forward (controller_left_knee & controller_right_knee)
Image

Now we are going to start with extending the right leg forward, remeber in our reference pose though the foot has to be rotated so the heel is pointing upwards between 30-45 degrees, so first grab the toe controller and rotate it into position like so:
Image

Now move the Toe Controller forward along the Z axis and upwards along the Y axis until the leg is fully extended and the heel of the foot controller is just touching the ground like so:
Image

Now for the left leg, we want to start by grabbing the toe rotation controller to raise the heel upwards approximately 30-45 degrees, so grab the toe rotator and rotate it like this:
Image

Now grab the left toe controller and move it back all the way until the leg is fully extended (be careful not to move it so far that the controller detaches from the foot, we only want it to be as far as it can extend naturally but still have the foot touching the ground)
Image

Now click the Controller_Pelvis and move it slightly downwards on the Y axis, it doesnt need to be far down, just enough to bend both the knees very very slightly
Image

Now our first pose is done, if we look above though we notice that frame 25 is the same pose as frame 1 in our list of poses from the theory section, so we are going to quickly copy over our keys. Start by pressing "8" to go into explorer mode, then "L" to go into layer mode, select the controllers layer and right click, then click select members.
Image

Now press "0" to bring up the animation manager. First go to the top and Click Edit > Select All Curves.
Image

Now press CTRL+A to select all Keys. Your window should now have all points highlighted red like so.
Image

Now Press CTRL+C to copy all frames, move the red verticle line marking your current frame to frame 25, then press CTRL+V to paste all the keys. It is worth noting that if you need to zoom out to see more of your timeline in the animation manager, you can do so by pressing "Z" key, then using the right mouse button to zoom out and the middle mouse button to zoom in, you screen should now look like this
Image

Now that we have our contact pose, move to frame 4 and we are going to start on making our down pose, start by grabbing the right toe controller and rotating it so the foot is flat with where the ground is.
Image

Now bring translate the toe controller downwards so it meets the ground and move it back along the Z axis until the calf bone is almost entirely upright.
Image

Now grab the left toe rotator and rotate it until the toe is mostly aligned with the foot controller, it should have just a slight curl on the toe.
Image

Now grab the Toe controller and rotate it so the entire foot is pointing downwards around 30-45 degrees
Image

Now translate the foot upwards so the toe is just slightly off the ground, and move it forward along the z axis until the thigh bone is roughly 90 degrees pointing downwards.
Image

Now finally grab the controller_pelvis and move it slightly downwards so the calf bone on the front foot moves just slightly forward and we are done with the Down Pose
Image

Now we need to do our Passing Pose, First move to frame 7 so we animate in the right fram, start by grabbing your right foot and moving it back so the tip of the toe lines up with the characters groin.
Image

Now grab the left toe rotation controller and rotate it so the toe and the foot are totally flat
Image

Now grab the left Toe controller and rotate it so the entire foot faces downwards
Image

Now move the toe controller slightly upwards so that the point of the toe is slightly above the other foot, and the back of the left foot is lined up with the characters butt.
Image

finally move the Controller Pelvis upward until your leg is perfectly straight, then move it just slightly down to bend the knee very slightly. Our passing pose is now done.
Image

Now onto our Up Pose, first move to frame 10 so we make sure we key in the right frame. Start by grabbing the right toe rotator and rotating the heel upwards to be roughly 30-45 degrees.
Image

Now move the foot backwards until the tip of the toe is in line with the characters butt
Image

Now grab the left toe controller and rotate it so the entire foot faces downwards towards the ground at about a 30-45 degree angle.
Image

Now translate the toe controller slightly down and forward until the calf bones are roughly parallel to one another, and the foot should be just slightly infront of the pelvis's centre
Image

finally grab the pelvis controller and translate it directly upwards until the back oriented leg is completely straight and now our up pose is complete.
Image

Now we need to create the complete reverse of our original Contact Pose, start by moving to frame 13, and grab the left toe controller, rotate it so the toe faces upwards by about 30-45 degrees.
Image

now translate the toe controller all the way forward until the leg is straight.
Image

grab the back toe's controller and move it all the way back until the leg is straight
Image

and finally, move the pelvis controller down until the legs both have a slight bend to them
Image

Now with your second contact pose complete, simply use the steps above for the other poses to recreate your poses again for the other side of the body

here is the frame list for your incase you forgot:

Frame 1: Contact Pose (Right Foot In Front, Left Foot in Back)
Frame 4: Down Pose (Right Foot In Front, Left Foot in Back)
Frame 7: Passing Pose (Right Foot Passing To Back, Left Foot Passing To Front)
Frame 10: Up Pose (Right Foot Now In Back, Left Foot Now In Front)
Frame 13: Contact Pose (Right Foot in Back, Left Foot in Front)
Frame 16: Down Pose (Right foor in Back, Left Foot in Front)
Frame 19: Passing Pose (Right Foor Passing to Front, Left Foot Passing to Back)
Frame 22: Up Pose (Right Foot Now in Front, Left Foot now In Back)
Frame 25: Contact Pose (Right Foot in Front, Left Foot in Back)

once you are complete you will have the leg movement finished on your walking animation
Image

1.3.3 Exporting / Testing Your New Animation In-Game

Under Construction
Last edited by Gogie on Sat Jul 11, 2020 4:25 pm, edited 5 times in total.
User avatar
Gogie
Modeling Master
Modeling Master
Posts: 708
Joined: Fri Mar 31, 2006 11:02 pm
Projects :: Tinkering away with LEGO
Location: alberta, canada

Re: New Character Animation/Rigging In SWBF2 (A Gogie Guide)

Post by Gogie »

Section 2: Character Rigging For NEW Biped Meshes

Section 2.1 Setting Up Your Scene.
Hidden/Spoiler:
In this section I will be running through a very clean and organized scene, organization is 100% optional but highly recommended, it will speed up everything for us in the long run.

for the entirety of this guide i'm going to be using [GT]Teancum's converted Serra Keto assets from the Xbox game Star Wars Episode III which you can download here: https://drive.google.com/file/d/1ObMgBs ... sp=sharing.

This can be used to follow along with this guide step by step to learn. This guide will also assume you are using the free XSI 7.5 Mod Tool, however the steps should work in most forms of XSI.


Section 2.1.1 Importing your mesh and skeleton
Hidden/Spoiler:
So first, using XSIZETOOLS import the msh file included with the download (or use your own mesh if thats what your doing)

But when you import I highly recommend disabling welding boundary edges, the weld range is too close and many times you will notice small points like eyes become deformed, so to import this mesh first open the importer window, and click on the settings tab, I highlighted it in red here

Image

Next simply make sure you uncheck Weld Boundary Edges. I highlighted this again in red.

Image

finally simply click import and your model should be in your scene.

Image

Now if we look at our model imported, you may notice several small blue boundary edges, for the sake of reducing out overall vert count we want to manually weld these.

Image

To fix this simple click on Model > Poly. Mesh > Weld Boundary Points / Edges

Image

When the popup shows up simply reduce the distance to something very small (I almost always use .001 as my distance for characters)

Image

Next with your characters mesh selected we want to freeze the operator stack to apply the weld to our geometry so click Edit > Operator > Freeze Operator Stack

Image

That should be all we need for this part of the mesh. Now we want to import the .emdl of the unit template beta skeleton (if you do not have this template you can grab a copy of it here: http://www.secretsociety.com/forum/down ... e_Beta.zip) You can import this by simply going File > Import > Model and navigating to the unit template file.

So now with our unit skeleton imported we need to set up our scene here. First of all open the XSI explorer window (the default key for this is 8 or you can use the menu View > General > Explorer)

Image

Now inside the explorer, expand the heirarchies by clicking the little plus signs down the GroundDummy Tree until you find bone_root.

Image

now drag and drop bone_root to dummyroot, we do this so the bone_root is no longer a child of our mesh, this way when we rig or animate we can quickly seperate the mesh if we need it. Your explorer should now look like mine below.

Image

next select both overrride_texture and sv_jettrooper (you can select multiple objects in the explorer window by holding down the "CTRL" key and clicking)

Image

Press the delete key to delete these objects as we will no longer need them. After, click and drag rep_inf_serra to Dummyroot, your scene should now look like so:
Image

Now with both our unit bones and our mesh in the scene we are ready to move onto organizing out our layers.


2.1.2 Setting Up Your Layers.
Hidden/Spoiler:
So first, this section and layers are completely optional, I recommend doing this anyways because it makes what we can see and select easier to manage in our scene.

Start by pressing the 6 key to bring up the layer manager window (or you can access this through the menu's by going View > General > Scene Layer Manager. With the Scene Layer Manager open , go to the top and click Layers > New Layer

Image

Create until you have a total of 6 Layers, your layer manager should now look like so.

Image

You can double click the names of any of the Layers to rename them.

You will want to rename them as so:

Mesh: where we place all the models/meshes for our player.
Bones: where we place all the bones for our model
Effectors: Where we will keep all our bone chains end effectors.
Roots: Where we will keep the beginning roots of all our bone chains
Shadowvolume: where we keep shadow geometries (in this example I didn't include a shadow mesh but its always nice to have this incase you add one)
Scene: This is where we will hold all our scene objects that will be used primarily within XSI only, or to hold things we simply do not need.

After you have renamed your layers it should look like so:
Image

Now we need to drag our objects into their layers, start by opening the explorer (default 8 key) and switching the explorer to layer mode (once explorer is opened this can be done with the "L" key) you should see something similar to this:

Image

first start by selecting any object that says GroundDummy.root_ and drag all of these under the roots layer. For a list of objects that belong in this layer see the image below:

Image

next select all your objects that say the word "bone" in the name and drag them under the bones layer, (Note: for the all purposes we are considering hp_weapons and bone_root to be bones and place them in this layer) once done, your layer should have all the object listed in the picture below:

Image

Next select all objects with the "eff_" in their name and place them in the effectors layer. see below for a list of objects in this layer.

Image

next select any of your mesh objects and drag them into the mesh layer, my layer looks like so, if you have a shadow volume drag it into the shadow volume layer as well.

Image

Finally all remaining objects we haven't moved can be placed in the scene layer, below is a screenshot of everything i have in this layer.

Image

After all this has been placed our layer organization is complete, now using the Layer Manager (6 key) you can control which of these layers is visible or selectable.


2.1.3 Placing Your Bones Into Position
Hidden/Spoiler:
So first before we begin placing our bones, use the layer manager (6 key) to make only the layers we need visible/ selectable Here is a list of the layers we need:

Effectors : Visible & Selectable
Roots : Visible & Selectable
Bones: Visible & Selectable
Mesh: Visible & NotSelectable
ShadowVolume: NotVisible & NotSelectable
Scene: NotVisible & NotSelectable

here is a screenshot of my layer manager:
Image

This just makes it so anything we dont want to accidentally click is not clickable for now.

After that is done we want to be able to see our bones through the mesh so first click one the right of your viewport and then go to display options:

Image

under the menu with "shaded mode" simply click the box to enable Xray mode

Image

Now I am going to start unhiding the following bones that are hidden by default, we can unhide all our objects at this point since we use layers to control our visibility. Simply go to the top of the screen, go to Display > Unhide All Object

Image

Now before we begin, we want to remove ALL KEY FRAMES. This is because we only want to key certain nodes and we want to make sure we can rekey our basepose after we have our position.
start by pressing the 8 key and swapping it into scene mode (S key) then branch select sceneroot with the middle mouse button. your explorer should look like this:
Image

Next press 0 to open the animation manager.

Image

at the top of the animation manager click Edit > Select All Curves

Image

now with all your curves selected go to Edit > Select All Keys

Image

Finally with all keys selected simply press the "delete" key to delete all our keys, we can now place our bones without worrying about making or modifying keys.



Next select both bone_pelvis and bone_root (you may want to swap your viewport to wireframe mode to see them) with both of them selected translate both of them to be approximately at your middle of your meshes hips.

Image

make sure to turn your model to a side view so you can make sure it is at the centre of the mesh in all directions

Image

Next grab either of the thigh bones and rotate it to be relatively in line with your mesh (you can readjust this rotation if you need to later so approximate if you need to)

Image

Make sure to turn your model to the side to ensure the bone is rotate approximately to the middle of the mesh from the side as well

Image

Next we need to adjust the length of the bone to be roughly where the knee is. to do this simply press enter with the bone selected and set its length to whatever you need, in this case i chose .525 for the Serra Keto example.

Image

Now with one thigh bone figured out simply repeat the exact same process with the other thigh bones, if your character is symmetric you can simply copy your bone lengths as you go.

Image

repeat this same process for the calf bones, starting with aligning it to the middle of the mesh

Image

however make sure the calf bone is slightly placed more forward towards the shin of the mesh, basically we will want the end of this bone chain to light up with the centre of the start of the foot like so (red star marks roughly centre of where the foot starts)

Image

next adjust the bones length by hitting enter with the bone selected, until the end of the bone lines up with the start of the foot

Image

repeat the above steps for the other legs calf bone.

Now for the feet, start by rotating the foot along its local X axis until both the foot and the toe bone look relatively straight. below i took a picture with the right foot straightened and the left foot not so you can see the difference.

Image

now rotate the foot bone to be as close to the centre of the start of the meshes toes as possible. in the case of Serra Keto I don't feel its necessary to change her foots length, but it you need to make sure you do.

Image

and finally straighten out the toe bone, place it as close to the centre of the mesh as possible.

Image

with the foot and toe finished simply repeat the process for the other foot and toe until the legs are done.

Image

now for the spine bones, bone_spine_a should be rescaled to be just above where the belt (or just above where the belly button naturally would be) in the case of the Serra Keto model I changed her spine_a to be .15 in length.

Image

Remember to rotate your spine bone so it is roughly centre to the mesh

Image

next is spine b, this should be just long anough to be below the breast line. in the case of Serra Keto, this will be approximately .105 (it is worth noting this will usually be your shortest bone in your spine, and typically female characters will have this significantly shorter than male characters, this is actually not because of natural anatomy, this is because a male pectoral can deform in animation without much noticeto multiple bones, however, in the case of a female, if the breast deforms along any other bone the deformation will appear unnatural, breasts should typically be enveloped only to the ribcage)

Image

and again rotate this bone to be relatively centred, in the case of Serra Keto, her mesh has a naturally curved backwards spine so we need to adjust accordingly.

Image

finally for the ribcage, the ribcages length should be approximately just below of where the sides of the neck meet the clavicle pieces of the mesh I drew a line marking this area so you can see how far below that line the ribcage lands.

Image

and make sure the ribcage is rotated to have its end approximately in the middle of the necks mesh

Image

for the neck adjust the length until the end of the neck bone is about level with the bottom of the jaw, and make sure it is roughly centered to the mesh.

Image

finally for the head bone, the length doesnt really matter as its the end of the bone chain, as long as the necks end is aligned, however for its rotation: because this uses a directional tracking constraint in game you want to make sure it faces perfectly straight. A quick way to do this is to select global in your rotation (highlighted in the green box below) and setting the X&Z rotations to 90 degrees and the Y rotation to 0. (remember once your done in this bone to change your rotation back to local since we need local rotations for easy rotation of other bones) if you need to adjust your heads mesh you may need to to ensure it lines perfectly with the head bone.

Image

For the clavicle bone simple make its length to be just a small bit shorter of the first edge loop of the arm, i highlighted the edge loop in red below. (for this i set it to .17

Image

and then rotate it so its end is roughly in the centre of the begginging of the arm.

Image

for the upper arms, make sure the length stops just before the edge loop in the middle of the elbow area (highlighted in red here)

Image

and keep the arm rotated roughly in the centre of the mesh

for the fore arm bones adjust them so their length stop just after an edge loop at the end of the forearm and just before the first edge loop in the hand (since we use hard skinned topology this will drastically reduce the appearance of shearing polys near the wrist) and again make sure it is rotated to be in the centre of your geometry.

Image

now for the hand since it is a end bone, length doesnt really matter, just make sure it is lined up roughly with the middle of the mesh.

repeat all these steps for the other arm... and your skeleton is done (almost)

Image

there is still one more fancy detail to work out and that, is hp_weapon.... we need to align it to make sure our weapon sits just right in our hand. so first, import whatever weapon your unit will be using into our scene (we can delete this later) in this case im going to import a stock rep_weap_inf_lightsaber (note if you dont see it on import press 6 and make sure the layer it landed inside is visible)

Image

next, with the weapon selected press the ppg / mat tab at the bottom right of the screen (highlighted here in red)
Image

once there click constraint > pose and then click hp_weapons, this will make it so the weapon snaps to hp_weapons and follows along with it whenever it moves

Image

now simply translate hp_weapons til you feel like it is in just the right position

Image

now before anything else it is finally time to key, if you set up layers this is easy, first make all your layers visible and selectable by pressing 6 and checking all the boxes.

Image

next press 8 and then L to bring up the explorer in layer mode, find GroundDummy.Dummyroot and select it (this should be under your scene layer)

Image

on the right of your screen press the small "t" to enter translation mode, make sure XYZ are all selected and that you are in LOCAL translation (the local button will be highlighted) after you enter this mode simply press the "K" key to set a new keyframe, this will set a keyframe in local translation

Image

next press the little "r" on the right side of the screen and make sure XYZ and local are all highlighted then press the "K" key to set a local rotation key

Image

next go back into explorer (8 key) then layer mode (L key) and find your "bones layer" right click it and click "select members" to auto select all your bones.
Image

now select the little r again on the side of the screen and set a local rotation key to all bones.

Image

finally navigate back to your explorer in layer mode and find hp_weapon, and bone_root, select both and press the little t to enter translation mode, and make sure local is highlighted, set a local translation key to both bone_root and hp_weapons (and no other bones should have a translation key ever) once all this is done, your skeleton is officially in position, and you are almost ready to weight.

Image

2.1.4 Enveloping Your Mesh UNDER CONSTRUCTION
Hidden/Spoiler:
First before we envelope the Serra Keto mesh we want to remove the pieces we will be using for cloth, to do this press the U key (make sure first to select the Serra Keto mesh and make sure the layer is selectable in your layer manager) to enter raycast poly select mode, then on the top right of your screen click little arrow i highlighted in red to select an additional filter

Image

once the menu for that tab opens up set the additional filter to "polygon island"
Image

now press ctrl and left click each strip of cloth til all 4 around Serra Keto are selected.

Image

now with all the cloth selected click Model > poly. mesh > extract polygons (delete) to delete the cloth from the main mesh, and extract it to a new mesh, at this point i like to rename my mesh so i will name it rep_inf_serra_cloth. after it is extracted select both the cloth and the main mesh and go Edit > operator > freeze operator stack

Image
Last edited by Gogie on Fri Aug 21, 2020 2:42 am, edited 15 times in total.
User avatar
Gogie
Modeling Master
Modeling Master
Posts: 708
Joined: Fri Mar 31, 2006 11:02 pm
Projects :: Tinkering away with LEGO
Location: alberta, canada

Re: New Character Animation/Rigging In SWBF2 (A Gogie Guide)

Post by Gogie »

*Reserved Post*
Marth8880
Resistance Leader
Posts: 5042
Joined: Tue Feb 09, 2010 8:43 pm
Projects :: DI2 + Psychosis
Games I'm Playing :: Silent Hill 2
xbox live or psn: Marth8880
Location: Edinburgh, UK
Contact:

Re: New Character Animation/Rigging In SWBF2 (A Gogie Guide)

Post by Marth8880 »

ok this is epic

no really thanks for this
MileHighGuy
Jedi
Jedi
Posts: 1194
Joined: Fri Dec 19, 2008 7:58 pm

Re: New Character Animation/Rigging In SWBF2 (A Gogie Guide)

Post by MileHighGuy »

Awesome! Thank you!
User avatar
giftheck
Droid Pilot Assassin
Droid Pilot Assassin
Posts: 2218
Joined: Mon Jan 19, 2009 5:58 pm
Projects :: Star Wars Battlefront Legacy

Re: New Character Animation/Rigging In SWBF2 (A Gogie Guide)

Post by giftheck »

Highly useful info! Thanks for sharing!
CaptCole
Posts: 1
Joined: Mon Mar 29, 2021 4:40 am
Projects :: No Mod project currently.
Games I'm Playing :: Dawn of war swbf2
xbox live or psn: No gamertag set

Re: New Character Animation/Rigging In SWBF2 (A Gogie Guide)

Post by CaptCole »

Should I use mod tool 7.5 or soft image 2015? Which is better?
MileHighGuy
Jedi
Jedi
Posts: 1194
Joined: Fri Dec 19, 2008 7:58 pm

Re: New Character Animation/Rigging In SWBF2 (A Gogie Guide)

Post by MileHighGuy »

Can you give some advice about animating with both hands constrained to a gun or sword? Would we constrain the weapon to the rig controllers?
Dave: regarding the question you posted to gt the easiest way I’ve found to do it is to position your hands onto the weapon where you want them, then create 2 new controllers (one for each hand), match the position and rotation of those new controllers to the position of the old hand controllers, then make those controllers a parent of the weapon, and then constrain the original hand controllers pose to the new controllers for reference look at my lego animation source files I do that with my rig quite a bit
Also is there any way to import animations onto this?
Tothestars
Posts: 3
Joined: Thu Aug 25, 2022 6:32 pm
Projects :: No Mod project currently.
Games I'm Playing :: Star Wars BF 2
xbox live or psn: No gamertag set

Re: New Character Animation/Rigging In SWBF2 (A Gogie Guide)

Post by Tothestars »

How to export?
Post Reply