XSI for Game Development with OGRE

From EQUIS Lab Wiki

Revision as of 14:48, 15 April 2011 by Graham (Talk | contribs)
(diff) ← Older revision | Current revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Compiled by Irina Skvortsova

irina.JPG

Contents

Resources/Tutorials

Overview of new features in XSI 5.1 Video examples. [1]


The following are links to sites that describe XSI and/or offer many useful tutorials.

Softimage,

XSIbase,

Ed Harriss, more

Softimage Foundation

XSI to OGRE

Exporting models from XSI to OGRE

What to watch out for when exporting models into OGRE.

  • Texture files must have no spaces or periods in their name
  • A texture must have only one texture support. Having multiple texture supports and texture projections on one object will not work in OGRE. OGRE will use only one of them.
  • OGRE accepts only RealTime shaders (eg., OGL 1-pass), XSI shaders such as Phong, etc, will not allow the model to be exported
  • The number of materials should be kept down as well, as too many materials overload the file. Instead of going to Material picking the material and then Texture for each group of objects, you can just set the material for one object and use Material>Assign Material for the rest of the objects in the group(select the object with no material, go Material>Assign Material, pick the object with a material, open the render tree(7) and select a texture projection for it).


  • Animation must be skeletal
  • NOTE: If you use bones in the object, you must envelope the entire mesh. Enveloping specific objects does not allow the model to be exported into Ogre.
  • When a very simple non-character animation needs to be done(like an opening door) then you can avoid using bones to animate that part, and simply export the parts separately and move the mesh in code inside OGRE
  • When exporting object with animation make sure that the Mixer belonging to that model has animations in it. Open Mixer (Alt0), select object, click update button. If there are no animations in the Tracks then right click on an animation track and load and animation From Source. The animations that you pick to be in this mixer will be exported.
  • Remember to check your model in OpenGL View mode, to make sure the lighting is correct.


OGRE Great site with a good forum.

Visibility

What shows up in XSI does not always show up in OGRE. To avoid these discrepancies makes sure to check the following.

Local Subdivision Refinement:

When smoothing out polygons instead of using the + and - Hotkeys add subdivisions. To add a subdivision select the object itself, hold the ALT key (PC) and right click. This brings up a menu that , click on local subdivision refinement and through the new menu choose your subdivision refinement value. Also it is a good idea to apply this as you're constructing your model. If you apply this later in the process the texture map and other properties may change. If you do not do this step Ogre will display the models in their most basic form. They will appear boxy.

Textures:

A texture might appear in xsi but not ogre. Always check the uv maps in Texture Editor(Atl+7). If it's not mapped over the texture, select it and translate it(v) to the image. To edit the way the texture looks edit the texture projection not the image. Playing with w coordinates is helpfull. It's better to edit the texture image before using it in xsi. One of the encountered problems - the cropped image in xsi texture editor was not cropped in ogre.

Animation:

Sometimes the animation doesn't play when you scratch the timeline. To view the animation look under Mixer (in the explorer(8)). If there's no clip right click on an empty track and get clip from Source. The clip has to be saved previously. Always save the animation under Animate>Store Actions.

XSI

Screenshots from summer 2006


Modelling

There are many free comprehensive tutorials on modelling online. I found that it is also worth looking at how objects get modelled using software other than XSI, such as Maya, as the techniques often overlap. Another good and simple resource is a book - Experience XSI 4 The Official Softimage XSI 4 Guide to Character Creation by Aaron Sims and Michael Isner.

Websites with good extensive tutorials: Ed Harriss, Maya


Importance of Sketches/2d visual aid

If you're modelling something with recongnisable structure such as a face, body, building, car, ect., have good schematic sketches or pictures of whatever you're modelling. Not only will you become better acqainted with your subject but you can actually use these sketches and pictures in xsi as your guides to the objects structure.

  • Sketches

The sketches that will be helpful in xsi should be views of the character that exhibit symmetry. In preparation for a character construction you might want to have a front, side, back and top view of your character. It would be best to draw these sketches on grid paper, to compensate for the inevitable errors that you'll have if the sketch is done freehand, so that your object is as close to being as symmetrical as possible. This is important, as at a level of detail construction you will be zooming in onto the sketch pretty close and discrepancies, such as uneven distance between the eyes and the nose on a face, for example, will make it more difficult to keep your model clean.

  • Pictures

Same goes for pictures. With pictures make sure your object is as staight as possible and as parallel as possible to the camera. While is it good to have views of your object from many different angles, these won't be as useful as straight on frontal and side views, once you load them in xsi.

  • Rotoscope

You can load sketches and pictures into xsi to be used as guides for the model. Every viewport in xsi has its individual display menu(top right corner). To arrange the rotoscope images first decide which view of the model is going into which viewport. Make sure that the viewport is set to the type of view that you want for you rotoscope there. For example: viewport A will be set to Front and you will load the front view in the rotoscope, and viewport B will be side and have the side view sketch. Once the views are chosen load the rotoscope images. Go to the view display(top right of every viewport) and select Rotoscopy Options at the bottom of the list. Click on New to get your image. Then go the display menu again and select Rotoscope. Your image will appear under the grid. Scale of the image in relation to the grid is very important and should be exactly the same in every viewport that you use. The size of your image will remain the same and the only thing you can change is the size of the the grid. So when you zoom in or out or move(z), it will be the grid that will move(and the model if there's one). The little magnifying glass icon at the top of the viewport will allow you to either fix the size of the grid or change it. When it is not activated it allows you to scale and move the grid in relation to the image. To fix it, press the icon. Now if you want to zoom in or out, the image and grid are flattened and will move together.


The rotoscope dislay helps orient polygons and points when buidling models. For example: drawing the outline of a face using curves. In Right viewport trace the outline of the image under the grid. To create another curve on the face near it, duplicate it (ctrl+d) and translate it this time using your Front or Top viewport.

tip make sure your rotoscope image is not on white paper and isn't generally light. If its light your mesh will dissolve against the white background once it's selected.

Modelling a head

Head construction can be done in different ways. Unless you're creating something very simple, expect to spend some hours on it as you'll need to be very careful getting the proportions right and then tweeking cetain points and areas once it's at a more detailed stage. Ways to approach head modelling:


  • polygon subdivision modelling - manipulating a solid polygon form, by pulling and pushing, think working with Clay.
  • working with patches - working with individual polygon facets/patches to create a surface
  • using nurbs/curves - working with curves


Before any construction can be done though it is highly advisable to have many visual head references. Unless you're creating a simple cartoon character right on the spot, you need to have several views of your character so get the anatomy right. If you have pictures or drawings of the head you can just load them into the rotoscope view (go to rotoscopy options under the xsi viewport display menu) and it will appear in any xsi window of choice under the grid. This is a good guide for your model.


Polygon Modelling

One can work starting with a solid polygon shape, like a sphere or a cube, and create a head by using extrusion, duplication and translation commands. If one is to picture construction as working with clay this method is a combination of the subtractive and additive methods, where you cut away chunks from one area and pull out others from another.


For example: head out of a sphere - get sphere, deform its geometry using scaling(x), so that it's a bit more oval. If you want select the polygons(u) or edges(i) at the bottom of the sphere, for the chin, and scale those as a group. Then you can select polygons in the region where you want the eyes to be and translate them into the face(towards the centre) to create a hollowed out area for the eyes, the sockets. For detail duplicate the edges and position them where needed using transform commands(scale, translate, rotate). Most heads are modelled with slits in the place of the eyes and the eye balls are then modelled separetely and placed behind the slits. To create slits you can select the polygons in the place of the eye and use the Extrude Polygons Delete command(right click on selected polygons) or just Delete them. Model the eyelids using edge duplication and translation. Similarly, you can model the nose by selecting the polygons and pulling them outwards away from the face, and the same for lips. Don't worry about the initial roughness of the shape, as you can refine the shape later using Local Subdivison Refinement command (select polygons, right click>Local Subdivision Refinement). Again it's useful to think about this method as modelling from clay. Cut out/get the basic shapes first and once you have the proportions and the main features right, then you can go in and start getting detailed. It's always easier to manipulate large main areas in the beginning than try to make up for mistakes at the detailed stage. At that point you'll have more points that will be dependent on each other. Here's a tutorial on this type of head modelling. The wording might not be comprehensible to everyone since it's in spanish, but the pictures are a pretty good guide. [2]. This tutorial can also be found through Ed Harris' site Ed Harriss


Once you've reached a level where you need to go further into detail you might be confronted with the time consuming need to adjust individual points or clusters on the face(to move around points select the object and use the m hot key, to create clusters press t, tag the points and press ctrl+l). The problem might also arise of the fact that you need to perform the same function on parts that are found on both sides of the face. Working on the area inside the eye, near the nose is a good example of you needing to set exactly the same position for two sets of points (to the left and to the right of the nose). The command Instantiate Model allows you to work on one side of the face and have the changes be mirrored onto the other. This works with objects that have symmetry and saves a lot of time!


To instantiate half of the face, select half of the head and delete it. Select the other half now and instantiate it by going to Create>Model>New model, ctrl+I). Translate and rotate the new model so that it completes your object(enter negative values in scaling). Instances don't have any geometry, so you won't be able to make changes to that part of the face by clicking on it. However, any change you do to the 'real' side of the face will be reflected in the instance. Work on one side. When it's done, select and delete the instance model. Select the real model, go Modify>Polymesh>Symmetrize polygons. This command recreates your mesh but in reverse scaling. It's also useful because it will fix the distance between the two parts and if you enter 0 under offset it will practically weld the two parts together, which means that these two objects will become one and will have no gaps.


Patches

This type of modelling relies heavily on having some sort of visual reference in xsi. Get two grids(Get>Primitive>Polygon Mesh>Grid) and place them perpendicular to each other, crossing at the centre. These act as planes into with you project your visual guide. Project a side view of the face onto one grid and then project a frontal view of the face on the other grid. To do the projection: press 3, then select the grid, then go Material, chose a material, then go Texture, then go Image, load your image by clicking on the button New, load your picture from file or source, select Texture Projection by clicking New near the Texture Projection tab).


These two grids now give you the boundaries of the head. You need to visualise the head that you're creating as existing in space where the grids are. The two grids are your two cross-sectons of the head. The grids give you two outlines of the face - the front and the side. It is like having two rotoscope views in one window.


Get another grid - this will be your patch that you'll start working with. This way of working can be called additive, and you're only working with the surface here. Reduce the uvs on the new grid to 1. Or you can draw your own polygon side using n hot key on the keyboard. Position the patch in space in such a way that it fits both images. If you've started from the nose, orient the position of the patch from the frontal view and adjust its angle from the side view. Build the face by duplicating (ctrl+d) the edges and scaling and translating them. For this kind of modelling it is perhaps better to see it done. Read this tutorial on patch modelling, it's short, comprehensive and has good illustration. [3]


Nurbs/Curves

A fairly easy way to construct a head is by using curves/nurbs. Again, having a front and side view of the head you're trying to create will be of great help to you. In xsi you can draw curves by going under Create>Curve. You can draw a curve in 4 different ways and all work for shape construction. Or you can get nurbs such as an arc, circle, etc by going to Get>Primitive>Curve. The great thing about using curves to build shapes is that it gives you the smoothness of form that is hard to achieve with polygon modelling. It is possible to get the same result with polygon manipulation, but it will take more time and more skill than using curves(this could depend on the individual). What curves allows you to do is to create contours for the face/head, adjust the points on the curve to make the curve fit your drawing perfectly and then stretch polygons over them. It's like wrapping cloth around a wire form. The curve group that you assemble will be like an armature for your polygons.


To build a head using curves pick one of the ways to draw a curve. Draw Cubic by CVs works pretty well. With your images as guides draw a curve that is a contour of the head, contour of the profile for example. Create more curves either by drawing new ones in a new position, or by duplicating the one you've just drawn(ctrl+d) and rotating and translating it. To alter the curve use the move point tool - m - to move the points on the curve that control it.


Curves can converge in different ways. They can all come together to a point at the top of the head, leaving the neck open, or curves can start and run outwards from the mouth. Using the mouth as the opening in the head, an area from which the curves stem, is a fairly popular modelling technique. When the curves run outward from the mouth the topography of the face will be conveyed in a better way. It also allows for easier face animation later where you don't have to cut into the face to open the mouth. You can work on creating the curves for one side of the face only and then just duplicate and mirror the curves for the other side of the face. If you have many points on your curve you can go into a lot of detail getting your anatomy right.


Once all the curves are in place they need to be converted into polygons. Select the curves, go to Create>Poly.Mesh>Loft. A polygon mesh is created and points on the curves are now points on the polygon mesh. Play around with different options on the Loft property editor. Delete(Freezes Op) will fix the polygons to the structure of the curves and get rid of the curves. A different way of getting polygons from curves is to select the curves, go to Surf.Mesh>Loft, and then Poly.Mesh>Nurbs to Mesh. Another advantage to curves/nurbs is that if your curves had few points and the resulting mesh looks angular, you can always fix the smoothness by increasing the uvs in the Loft property editor. This is similar to Local Subdivision Refinement command with polygon modelling, except that using curves you have more immediate control of the smoothness.

Here are some links to useful tutorials. These illustrate what has been described above. [4] and [5]


A slightly different but interesting tutorial on face modelling and texturing can be found here [6]

Modelling a body

As with modelling anything with structure, have a couple of images for your rotoscope views.

Things to have in mind when creating a complex object such as a body:


  • try to make a seamless model, so that you have a continuous mesh with no gaps
  • if you need to have gaps/opennings in your mesh plan them carefully


these are conciderations that will affect your workflow once you start enveloping and animating your character.


My initial approach to modelling the body was piecemeal. I modelled the body and the legs seperately which cost me a lot of time later when I envelopped the character and tried to make it bend over. The lack of continuity in the mesh between the body and legs created gaps whenever the character bent over with the body deforming one way and the legs another. And because you can't Weld different meshes together I ended up using nulls as binding agents between the body and the legs. I had to move individual points on the legs to the nulls, constrain the nulls to the body control and assign a new individual envelope to the new points with the nulls being the deformers (a way around this to Stich, or Assemble the meshes by selecting their boundaries). If you have a 'gapless' model though you wouldn't have to do all this additional stuff.


Useful commands in body construction: Extrusion Along Axis, Extrusion Along Curve, Revolution Around Axis, Revolution Around Curve, pretty much the commands under the menus of Create>Poly.Mesh and Modify>Poly.Mesh and Modify>Deform.


Body from Curves

I would suggest trying out modelling using curves because it gives greater control over smoothness.


With your 2d references loaded into the scene draw the outlines of your character from many angles, with the curves running vertically along the body. Work on creating the outlines for one side of the body and then just duplicate them and position them symmetrically to the other half(rotate, translate or negative scaling). Once you have created a satisfactory wire mesh out of curves, select them all, Create>Poly.Mesh>Loft. Experiment with the options. For smoothness adjust Subdivision Type and the U and V spans. You can Close the uvs. Click the Delete(Freezes Op) to fix the geometry, if you don't freeze the curves to the mesh deleting a single curve will delete a part of your mesh.

Another way to get a mesh from curves: select curves, Create>Surf.Mesh>Loft> adjust the settings, then go Create>Poly.Mesh>Nurbs to Mesh. You can also use curves such as arc, square, etc(under Get>Primitive>Curve) and build from these using commands such as Revolution, Extrusion and Curves to Mesh commands.


Similar to head modelling instantiate half of the body (Create>Model>New Model>ctrl+i. Work on one side fixing areas by moving points(m), or altering polygons(u, select polys, right click to get options)). Use Extrusion commands. Then delete the instance, select the model, Modify>Poly.Mesh>Symmetrize Polygons, enter 0 as offset.

XSI is currently promoting polygon modelling over nurbs. Here's some info on nurbs in XSI [7]


Polygon Subdivision Modelling

With polygon subdivision modelling you create by extruding polygons from a mesh. Get a cube, elongate it, subdivide it(either by pressing u, right click>Subdivide Polygons, or by adding points on the mesh, i, middle click on the mesh). Select polygons and pull them out using translation or using Extrude commands. Building a torso, for example: get cylinder, select the edges(i) at the level where you want the arm to be, duplicate them(ctrl+d) and translate them out. Repeat as much as needed. Scale the edges for widening or narrowing of the the form. Also can select the polygons and modify these using such commands as Bevel, Slice, Dice, Extrude Along Curve(make sure your curve is 'snapped onto the polygon) etc...


Tutorials on polygon subdivision modelling: detailed from Maya [8], detailed from XSI [9](you need an account to view this one, but it's easy to register).

Tips for Character Building

  • sketches

have sketches/images of the character inside XSI, either in rotoscope or projected on a grid to help you get the proportions right


  • mesh

the fewer meshes the better, try to build the character from one continuous mesh (start with a cylinder extrude arms, legs, neck, head from neck polygons, fingers from arm polygons, etc, keep extruding, subdividing and deforming)


  • geometry

when you're happy with the general shape of character check your Subdivision Refinement and Geometry Approximation settings


  • operator stack

for faster work flow and faster updates, disable, or better Freeze the operator stack. This will get rid of the history of actions done to the character and the model will require less memory (select model, under Edit in the lower right hand corner press Freeze, or go into the explorer(8) open the object node, open polymesh node, select the actions, right click, choose Freeze)


  • material

when assigning material try to limit it to one material. If you have only one mesh you'll have one material, if you have many meshes limit it to a few, you can have one material per many meshes if you give your meshes material through Assign Material command, (the UV mapping stays with the object even if you change materials)


  • textures and uv maps

for mapping textures onto individual parts such as arms, legs, head, etc, create clusters of those areas for easier selection. Select the points (t), go Edit, Create Cluster (or Ctrl+L), press enter, give the cluster a name. You can then select the arms, legs, etc, by going under Explore, opening the clusters node and picking if from there. This way you can adjust the uv map for those areas specifically, the uv maps will come up as distinct and they will never be lost in the general uv map.


  • skeleton and rigging

XSI comes with useful skeleton and rig models, so you don't have to draw the bones yourself. Unless you're creating a creature that is very unique in its structure you can always use XSI's models. Go under Get>Primitive>Model to get a general human skeleton, animal skelton, or a rig.


  • enveloping

before applying the envelope check that the skeleton is bending the right way and that the joints are bending in the right direction (if joints aren't, select the bone press enter, go under Bone Kinematics>Resolution Plane>Roll and change it by 180 degrees). Right after you've assigned the envelope with your character still in the position with raised open arms make sure to save that pose so that you can always reset the character to it whenever you get lost adjusting the envelope. To save the pose, select the whole skeleton with other deformers, go Animate>Actions>Store> Transformation - Current Values, give it a name. If you're texturing the character after enveloping bring it back to this initial pose, for easier uv mapping. If you want to change something in the character's geometry after enveloping> bring it back to the initial pose>go under Explore>Envelope Operator and mark MUTE. This way the changes you make to the model will affect the geometty only and not the envelope, if you don't mute the envelope and move points on the mesh, those areas will deform unpredictably.

That's really thinking out of the box. Thakns!

Motion Capture/Animation

The data obtained from motion capture needs to be processed in other programs before it can be used in XSI.

Alias FBX SDK and Motion Builder

If you're using MoCap or Motion Builder to apply the data to a skeleton, the files will have to be in fbx format. You can download a free FBX Converter Plug-in for XSI.

Alias FBX Converter allows to import and export models to/from MotionBuilder and back into XSI Alias FBX


-How to work with FBX and XSI Alias MotionBuilder Knowledge Base

-Using the FBX plug-in forum discussion

-Christian Perry's tips on using FBX converter and MotionBuilder with XSI Christian Perry

Using Motion Capture Data

To do the animations for our project so far we have used the facilities of the Bio Motion Lab, here at Queen's University. The way motion capture data transfer works is by matching the position of the censors(that were attached to the body) to various bones on the skeleton imported from XSI. To get the motion from the raw motion capture format onto the character the data had to go through a number of steps:


  • Vicon

- censors have to be labelled in Vikon and a relationship between the censors is established so that other programs can read the data. For more detail on Vikon read below.


  • XSI

- a skeleton should be prepared in XSI to import into MoCap/MotionBuilder. The FBX plug-in comes with skeleton templates where the skeleton bones are labelled in the way that MoCap and MotionBuilder understands. It's important to have the skeleton bones labelled with names that MoCAp and MoBuilder understands because when the motion capture data gets mapped onto bones it responds to specific bone names. Christian Perry Export skeleton in FBX format by going under File>Export>FBX File.


note Be carefull about scaling parts of the skeleton because non-uniform scaling will affect the envelope once it's exported. If you scale the bones indivudually, there'll be an 'Animation Warning' upon Export warning that the envelope might act in unpredicatable ways once the animation is applied. Even if you can't see the deformations in XSI it will show up once you import it into a rendering program. My animations looked fine in XSI but the mesh deformed dramatically once we imported the model in OGRE, because of ununiform scaling. A way around that is to create your own skelton in XSI and rename the bones. As you're drawing the skeleton, have the Alias Skeleton Template(that comes with the FBX plug-in) open as a guide for hierarchies and bone names.


  • MoCap(or MotionBuilder)

- the motion capture data prepared in Vicon can be applied to a skeleton in MoCap/Builder. This program allows you to 'attach' the motion capture animations to the XSI skeleton. For more details on MoCap/Builder read below.


  • Back into XSI

- open the scene with the prepared skeleton(the one used for export). Import the skeleton with applied motion capture data(from MoCap/Builder) by going unde file>Import>FBX file. Import a skeleton and check Merge or Exclusive Merge on the import window that comes up. Because the skeletons have the same bone names they will be merged into one skeleton containing animation. Once the import is complete check the Dopesheet(under Playback, button bellow the timeline) for animation keys, or srub the timeline. Select the whole skeleton and save the animation by going under Animation>Actions-Store>Animated Parameters-FCurves.

tip it helps if your animations start with a Tpose, because that way it will be easier to envelope the skeleton.

Vicon

You can use ViconI.Q2 or ViconWorkstation to capture and process motion capture data. ViconWorkstation

ViconI.Q


Calibration

Before starting the capture session the system might have to be calibrated. If the cameras have been moved or apertures adjusted from the last session then it's better to do the calibration. Calibrating basicly tells the computer how the cameras are positioned relative to each other.


Open ViconI.Q or Workstation. Go to SetUp in the top panel and press the connect button so that the computer is connected to the data station. Begin the calibration.


For calibration use a 'wand'(t-shaped stick with censors) and an L-Frame to establish a relationship between the cameras. As you move or place these items in the 'volume'(the area, like a stage, where the cameras can pick up data) marks will appear in the viewport in Vicon in realtime. For ViconWorkstation start calibrating with the L-Frame and for I.Q start with the wand.


I.Q2. Go to >Camera View, you'll have as many windows as you have cameras. Go>Calibrate>Start Wand Wave>Track LFrame. At this stage someone needs to take the wand, go into the volume and start moving it around in all possible directions. (For Workstation the wand needs to always stay within the bondaries of the volume.) As the wand moves around in the volume, in the camera view it leaves traces of its position in the form of multicoloured blurs. Keep moving the wand around until all the camera views are filled in with colour.


Now set the LFrame. Place the frame in the centre of the volume to establish where the axes will be. Go>Live 3D View and then>Set Value Origin And Axes>Set Origin.


The system is now calibrated and ready for capture.


Capture

In the top panel switch to Capture. Select file for the session. Better to start with a simple T-pose. Go>Provide TrialInfo and enter the name of the pose. Then press>Capture>Start and the recording starts. Let it run for 5 seconds. After the first take a window opens asking for a filename.


For each new take enter a new name for the motion/pose and press Capture>Start, when you need to stop just press Stop.


Capture the Range of Motion(ROM). ROM is a set of all the movements, or all the complex and most extreme movements, that you plan to do in the session. It is helpfull to do the range of motion because later at the processing stage instead of labelling each takes' censors individually you can just label them in the ROM and Autolabel all the other takes based on it.


Data Management

The data captured in the session needs to be reconstructed from a 2d to a 3d format. Select a file/take. Go>Data Management>Recontruction>Run. Save the file. Export it to a c3d file. Reconstruct, save and export each take. You can create a Pipeline for easier workflow. For your pipeline you might want to also select Load Subject, Trajectory Labeller, Kinematic Fit and Fill Gaps Using Kinematic Model. Go>Pipeline Control and select the operations that you need to do.


Post Processing

Go to the top panel and switch into Post Processing. Now that the data is in 3d format the censors need to be labelled with labels that correspond to the correct body parts, so that this data can be mapped onto skeletons later.


Label the ROM(range of motion) first. Open that file. To label the censors you need to get a skeleton template. Go>Subject>Create>Vicon Skeleton Template. Select the BML template. Click on the Labelling tab on the right hand side of the screen, the labels for the censors should be listed. Under Modes select Sequence and under Rules select Whole. As you go down the labels list, click on the corresponding censors in the viewport. If markers have been missed they will be highlighted on the list. Press F10 to look for an unlabelled trajectory. If you have too many unlabelled trajectories click on several unlabelled markers and then go>Trajectory Labeller(in your Pipeline)>Run Selected Operation. Check to see if the trajectories are correct by scrubing the timeline.


Sometimes things can go wrong at the Recontruction stage and then markers will get repeatedely mixed up and flipped throughout the animation. In this case it's better to go back to the 2d file and recontruct again with different settings.


Labelling in Workstation

Labelling can be easier in ViconWorkstation. If you have both I.Q2 and Workstation, do the labelling part in Workstation and everything else in I.Q2.


In I.Q2 run the Reconstruction, save and then exports files as c3d. Open Workstation. Open the T-pose. In the top panel go>Trial>Create Autolevel Calibration. Label all the markers in the same way as in I.Q2. Then click on Autolabel. Save.


Open Range of Motion, label a few markers and select Autolabel again. The markers should get assigned to the right spots automatically.


Back in I.Q2

Open the T-pose. Go to Subject Tab>VST(Vicon Skeleton Template) or Create Vicon Skeleton Template. In the lower panel press the bottons with the capital G and with T(which means general event T-pose). Go>Calibrate Subject. Export this file as VSK file. Save it as a trial file.


For the rest of the motions open a new trial and just go down the pipeline. Load Subject(imports your prepared vicon skeleton), then go>Trajectory Labelling>Autolabelling>Run, then Kinematic Fit>Run and Fill Gaps Using Kinematic Model>Run. Save Trial, Export as a c3d file. Do it for each file. Make sure to check the mapping by scrubing the timeline.


more info

MoCap/MotionBuilder

MoCap/Builder allows to apply motion capture data onto skeletons from other, modelling software.


The process can be broken up into 3 basic stages:

1)Applying the data to the 'Actor'-which makes it possible to transfer animation to the skeleton later


2)'Characterizing' the skeleton and adjusting animation-which allows you to correct mistakes and create offsets


3)'Ploting' the animation to the skeleton-which makes it ready for import into a modelling program like XSI


Applying data to the Actor

Open a new file in MoCap. Under Asset Browser click on Characters, select the Actor icon and drag it into the viewer window.


Import a file with motion capture data, by going>File>Import and select a T-pose take or a take that starts with a T-pose, because it will be easier to do the mapping with the both the Actor and the data in T-pose.


Or you can Open the T-pose take and then drag the Actor icon into the viewer window.

Make both the Actor and the markers occupy the same space. Move, scale and rotate all or parts of the Actor, so that the censors are lying on the corresponding body parts.


Now create a Marker Set. A marker set basicly establishes constraints between the censors and Actor's body parts as it 'ties' those markers to the body.


At the bottom of the screen is a Marker Set windown that opens with the loading of the Actor. Click the Marker Set tab in the upper right hand corner of the window and then>Create. Select the markers in the viewer window and alt+drag them onto corresponding areas on the Actor in the Marker Set window(to toggle press space and click). The marker's name/label is shown in the lower right hand corner of the viewer window.


Check Active and scrub the timeline to see if the censors were alotted to the proper parts on the Actor. If the Actor is deforming, go to the marker set table again, deselect Active, click on the area from which you want to remove markers and on the right side where the markers are listed select them and just press delete. Remap them to a different area on the body. Sometimes it helps to remap them back. To rotate the body parts with mapped censors activate Oriented collumn. Make sure to deactivate this later or Lock it.


When the Actor is finally moving with the censors without deformations save the file as an fbx file. You can now use this actor with correct markers mapping to transfer all other animations onto the skeleton. Save the file with a name like ActorTpose.


Characterizing + Importing the Skeleton


Open the ActorTpose file. Go>File>Import and select a different Trial/different motion capture file. A window opens, select Merge. The Actor should now follow the new animation. Scrub the time line to see if it has imported properly.


Import the skeleton(the one already prepared in XSI with the proper bone names) into the scene, by going under File>Merge. A skeleton should appear in the viewer window(the skeleton can be imported with a mesh, as it is possible to get the whole model into MoCap).


In order to transfer to the skeleton the animation that is attached to the Actor, you need to 'Characterize' the skeleton/model and create a Control Rig. The Character acts as a conductor between the Actor and the skeleton. Under Asset Browser, click on Characters, select the Character icon and drag it into the viewer window on top of the skeleton/model. When prompted click Characterize. Or just go to the lower left hand panel on the screen, select Characters and check the Characterize box under the Character Definition tab. Under Control Rig click Create and select IK/FK. Click the Character Settings tab and under Input Type select Actor and check Active. The Actor is now driving the skelton. Scrub the timeline to see if the skeleton is moving with the Actor.


If you want to edit the animation and create offsets you can do that with the Control Rig. Under Character Settings click on Plot Character, and select >Plot animation from Actor to >Control Rig. Make sure that the Input Type is now the Control Rig and that it's Active. On the top panel select Window>Character Controls. To select parts of the control rig click on circles in the Character Representation window. These allow you to move, scale, and rotate parts of the control rig. If you make changes to the animation make sure you save keys, or offsets for it.


Once you're happy with the animation on the skeleton/model, go>Plot Character>Plot animation from Control Rig to> Skeleton. The skeleton is now ready for importing into XSI. Save the file as an fbx file.


In XSI open the scene with that specific skeleton/model. Go>File Import>Merge. The animation should come in with all the keys.