Search:     Advanced search
Browse by category:
Glossary | Contact Us

Related Software: AniMesh Exporter V1.0.0 for MilkShape (1.80 up) by wes_h

Add comment
Views: 4348
Votes: 1
Comments: 0
Posted: 13 Jul, 2007
by: Duncan P.
Updated: 16 Jul, 2007
by: Duncan P.

New Sims2 AniMesh Animation plugins for MilkShape .

This is not a revolutionary new discovery, as Miche has already made an animation converter quite some time back. Nor is it a new discovery of capabilities, as Atavera, Quaxi and others worked on further deciphering the ANIM format. No, it is merely an evolutionary improvement of the tools available for Sims2 modding. This is an all new program. While Miche was kind enough to pass along the source code for his converter, and I learned a lot from how the ANIM files were constructed, I had to then apply that in a different fashion for this exporter.

What this set of tools does is allow FK (forward kinematic) animations for body meshes and object meshes to be transferred from MilkShape to the Sims2 ANIM (.5an) file format so that it can be inserted directly in a .package file (usually by SimPE). Sources of animations would include making them, or transferring them from something else to MilkShape (via a .SMD file, for example). I had some generally poor results from exporting animations from SimPE (via ASCII or .SMD) and into MilkShape . In theory it should work, but it never quite got transferred. Animations are indivisibly tied to the skeleton they were made for, and transfers from other games and such will take additional work to adapt to the game.

Oh, did I mention you can also add or retain sounds and other events in your new animation? Yes, although you need to use game sounds or follow other tutorials for new sounds... the exporter has a method you can use to specify what and when to play in your animation. Hexameter posted an animation on making sounds, and Numenor has hinted at wanting to do one.

Additional information on the plugin, it's use, and animation in general can be found in the program notes, included with the distribution package, the next message in this thread, and additional threads nearby containing demos and tutorials by well-known Sims2 creators like Dr. Pixel, Echo and Marvine.

Like all MilkShape plugin installations, exit MilkShape , place the .zip file in your MilkShape directory (normally C:\Program Files\MilkShape 3D 1.x.x, where the x characters are the version number). Then unzip the file in that directory, allowing older files to be overwritten. When you restart MilkShape , your new plugins should be available. The exporter will be found in File/Export menu, the SkelTool importer on the File/Import menu and the JointTool under Tools.

(I know that videos would better serve to illustrate animations, but these two screenshots will have to do).

Special Thank You: Besides the pioneers mentioned above, I wanted to thank Mete (MilkShape 's creator) for his technical advice on handling rotations, and special thanks to Marvine, Echo and Dr. Pixel for their willingness to try an unproven program, their careful observations and feedback on some of the bugs and issues uncovered and for their wonderfully creative demo ideas and tutorial writing.

If you want to make new, original animation stuff then be prepared for some work to do it. Animation may be easier or harder than meshing, I don't know, but it is definitely as difficult to get outstanding results. Now, in this message I will discuss some of the issues, but this will not be a tutorial, those will be posted elsewhere.

While the Sims2 has a standard skeleton for the Sims themselves, there are variables between SimPE export and the UniMesh Importer in the way the bones are ordered. Miche's Animation Converter used a starter file called "SimBody.SMD" with the bones in yet another order. This is not necessarily a problem, because the animation exporter uses the joint names, not their index, however the joints must be parented and commented with the game positioning values, as described in the program notes. But none of these are directly compatible with each other for being the starting point for your animation.

All the examples being released were built using AniMesh plugin tools, and thus are compatible. Skeletons from other sources must be converted to have the proper comments available. While this is not a trivial task, once done the result could be used as a template multiple times.

Object skeleton information must be obtained from the object CRES , there is not enough joint information in the GMDC alone to make the exporter work. While this can be a difficult task, there is a CRES SkelTool plugin included that will extract the needed data (bone name, parent name, parent-relative location and rotation) and add it to MilkShape .

A brief overview of how an animation works for TS2. In the mesh file (GMDC ) is a set of joint locations in a numbered order, with absolute positions. Every vertex in the (animated) mesh file is read into the game with the position information retained relative to the assigned joint (s). Once the object is set for display, the rendering software positions the vertices at the joint relative location, based on the current joint positions. The current joint positions start out as the CRES position, as modified by the animations.

This is an important point. Unless the GMDC joints and the CRES joints start out in the same location, the animation will be distorted or relocated from the very beginning. Joints added to a mesh that do not exist in the CRES will never animate. Similarly, joints defined in the CRES but not present in the mesh will do nothing if animated. If all the joints were moved by the same amount, then the animation would work, but the mesh would not be centered in the right spot. But, if just one is wrong then only the parts assigned to that joint will be in the wrong place. This could make parts of an object appear in the wrong place.

Now, this issue has existed all along, and most people have figured out when the bones get misplaced how to fix things. But a similar issue exists when the joint position loaded into MilkShape when the animation is created and either the CRES or GMDC position is not the same. Unless all three agree, some movement or placements will be wrong during the animation. This can have some other interesting side effects because generally the game starts an animation from the position the object was left in when the last frame played, and unless you build your animation to specify all the bones, it will be used as an overlay.

Overlay animations are where only part of the Sim or object is animated. An example might be making a hand wave animation. If the animation was made specifying all the bones, and the Sim was in a standing position, when the animation played the Sim would move to a standing position (even if that is on the floor inside the perimeter of a couch or bed) and make the wave. If, instead, the animation only specified the bones in one arm and hand, then if seated the sim would just stay put and wave just the arm. However, if they were laying down they would continue to lay down, but the arm movement would look like they were waving to the sky.

Also, many game animations are multi-part items, where the face parts, teeth and eyes are included with the body animations. This exporter does not support, at least at this time, the creation of these. While some research and testing may show how to make the face animations work, at this time there is not facility for putting multiple parts together. While I encourage the research being done, we need to get what we can do stable first.

So, please have fun. While I have a placed a lot of technical stuff above here, it is not really very hard to get started. Follow the steps in Echo's tutorial and you will know how to animate... make just a few new things and you will be a Sims2 animating expert (there aren't too many of those, yet).
There is no animation importer. Please do not ask for one, it is not coming because of the complexities and severe limitations involved. Importing an animation is like sending a roofer to an empty lot; until the foundation, walls and trusses have been installed, all you have are a bunch of shingles with no where to nail them to.

MilkShape does not support large parts of most of the game body animations, which have IK animation in them. IK animation requires both a program that supports it (among others, maya) and the proper configurations (rigging) both in the editor and matching code in the game engine.

I also have my doubts on the real utility of trying to change an animation from one thing to another. While it is easy enough to tweak a frame in an animation you made that you are unhappy with, tweaking every frame of some game animation will likely be no more productive than just making a new one.

As an additional incentive, everyone who fails to read this and asks for an importer will get christened with complimentary split of virtual champagne across their brow.

Otherwise, the rest of the forum is open for questions, bug reports and especially new findings... I have not been able to try all the possible animatable things out, and I hope that some of you will. I believe there is a lot of room for invention and discovery left here.

DOWNLOAD: AniMeshPlugins.zip


  CLICK HERE



Others in this Category
document ERROR: Direct3D Errors
document How to: "Help!" - Common mistakes and issues in animation
document How To: Copy Headshots (thumbnails) from SimPE to other software
document Related Software Tutorial: Making your first custom object animation with AniMesh Exporter written by ECHO
document What do I need to install/use SimPE? SimPE requirements for Installation/Use.
document Could not load file or assembly 'Microsoft.DirectX' or one of its dependencies.
document SimPE Tutorials: Basic Hacked Object Tutorial for the Beginning Hacked Object Creator
document Related Software Tutorial: New animation Train Set toy written by ECHO
document What is 7z and why do you use it?
document Related Software Tutorial: CEP (Color Enable Packages)
document Related Software Tutorial: New dance animation - and a little more :) written by Marvine
document SimPE Debugging Tools
» More articles



RSS