Quick Reply
Search this Thread
Alchemist
Original Poster
#1 Old 8th Jul 2007 at 8:40 PM Last edited by wes_h : 8th Feb 2008 at 5:48 AM.
Default [TESTERS WANTED] AniMesh Exporter V1.0.1 for MilkShape (1.80 up) Update 18-sep-2007
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.

<* Wes *>

V1.0.1 Update: 18-Sep-2007 - Added improved default rotations to exporter. fixed bug in CRES SkelTool importer

07-Feb-2008: Added AniMaxV031.rar and msRawAnimPluginsV02.zip. These are advanced animation tools, and consist of an ANIM file Disassembler/reassembler (Win XP .exe files) and a set of raw ANIM file tool plugins for MilkShape. More details are in readmes in the archives.
Screenshots
Attached files:
File Type: zip  AniMeshPlugins.zip (169.5 KB, 19130 downloads) - View custom content
File Type: rar  AniMaxV031.rar (148.4 KB, 12329 downloads) - View custom content
File Type: zip  msRawANIMPluginsV02.zip (90.2 KB, 11339 downloads) - View custom content

If you like to say what you think, be sure you know which to do first.
223 users say thanks for this. (Who?)
Advertisement
Alchemist
Original Poster
#2 Old 8th Jul 2007 at 8:41 PM Last edited by wes_h : 10th Jul 2007 at 5:06 PM.
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).

<* Wes *>

If you like to say what you think, be sure you know which to do first.
Alchemist
Original Poster
#3 Old 8th Jul 2007 at 8:42 PM Last edited by wes_h : 9th Jul 2007 at 6:43 PM.
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.

<* Wes *>

If you like to say what you think, be sure you know which to do first.
Instructor
#4 Old 11th Jul 2007 at 5:19 AM
Thank you so much Wes!
This is awesome!
I don't have enough knowledge and experience to use this just yet, but I look forward to a time when I am good enough with objects and such to try it out. This gives me inspiration to try. :-)
Forum Resident
#5 Old 11th Jul 2007 at 9:27 AM
Well this definately seems to surpass the previous tool I was using. The new features sound great, especially the sound one. Thank you Wes for making such an amazing tool!
The ModFather
retired moderator
#6 Old 11th Jul 2007 at 9:44 AM
Thanks a million! I've never used Miche's converter (too complicated for me), but this is much more intuitive and powerful! I couldn't believe to my eyes when my very first object animation worked in game!

Wonderful job!

I've finally started my Journal. Information only, no questions.

My latest activity: CEP 9.2.0! - AnyGameStarter 2.1.1 (UPD) - Scriptorium v.2.2f - Photo & Plaques hide with walls - Magazine Rack (UPD) - Animated Windows Hack (UPD) - Custom Instrument Hack (UPD) - Drivable Cars Without Nightlife (UPD) - Courtesy Lights (FIX) - Custom Fence-Arches - Painting-TV - Smarter Lights (UPD)


I *DON'T* accept requests, sorry.
Instructor
#7 Old 11th Jul 2007 at 12:54 PM
Wow! this is great wes! will give it a try! :D
Forum Resident
#8 Old 11th Jul 2007 at 3:17 PM
Wes, you're a genius (but that is stating the obvious...)

happy simming,
Xanathon


Xanathon's Laboratory :: WishList

.: Do not harass me with requests via PM, you will only get ignored :.
.: Don't post my objects or objects derived from them on paysites or the exchange! :.
Lab Assistant
#9 Old 12th Jul 2007 at 7:53 AM
thanks so much Wes! i cant wait to get my hands on this!

Andrew Shields My personal portfolio

Andrew Shields Facebook Page
Space Pony
#10 Old 12th Jul 2007 at 2:15 PM
Now we know why you've been so busy! Thank you, once again, for providing us useful tools for MilkShape!

Morague
Instructor
#11 Old 14th Jul 2007 at 7:32 AM
Oh my god! A new toy to play with. Thank you and I cannot wait to mess around with this.

Cogito ergo nupta non sum.
#12 Old 14th Jul 2007 at 8:05 PM
I'm in utter awe!!!!!!! :O

AbstractSIMmer187 Has Retired From Sims 2 Creating
All Of My Creations Are Found Here
Banned Asshat
#13 Old 24th Jul 2007 at 2:52 AM
o my, sounds very promising!!
Congrats Wes
Cant wait to see some results, think its too complicated for me, for now..
Scholar
#14 Old 26th Jul 2007 at 5:56 PM
Amazing!!! *applauds*

Please visit WickedNoukFamily Forum for my creations.
Can't take requests, I'm completely swamped with unfinished projects! :O
Gone Fishin'
#15 Old 30th Jul 2007 at 8:00 PM
You. Are. Awesome!!! :D
Alchemist
Original Poster
#16 Old 30th Jul 2007 at 10:42 PM
I appreciate the nice words.
I need no more flattery, as my head is already too big for my own good.

I would rather help some of you get some new stuff in the game using new and modified animations. Besides animating Sims, the plugins will animate objects. From simple things like a yard windmill with a turning blade, a clock with a moving second hand, cabinets that open and close, drawers that open and close, all sorts of simple animations can be made that we have never had because the animations are missing from the game package.

<* Wes *>

If you like to say what you think, be sure you know which to do first.
Lab Assistant
#17 Old 3rd Aug 2007 at 2:52 AM
Holy crap. you might not need the flattery, but I feel compelled to say it anyway -
You.Are.Awesome.

I doubt I will ever be skilled enoguh to use it, as I still can't even do a decent recolor, but I know genius when I see it!

Save the earth, its the only planet with chocolate.
Field Researcher
#18 Old 15th Aug 2007 at 4:32 PM
i´m trying on this
thanks you so much :D
Instructor
#19 Old 28th Aug 2007 at 8:08 AM
wes_h, first of all, thanks for the exporter, it's definitely worth playing with :D
Then, would you mind to clarify one thing? I resolved it myself, but wonder where it came from :-<
I'm using Milkshape 1.8.1b, UniMesh Import v4.09, AniMesh CRES Import v1.0.0 - seems to be all the latest versions?
I imported GMDC (from the fridge), the CRES, then moved some vertices. When exported and got 'No quaternion values stored'.
I read some threads checked the joint comments and found that they start from "PRelQuatDat:", not from "ImpQuatDat:". So I changed it, and export succeeded, and mesh appeared in the game
The comments were changed after CRES Import. I just wondering what it was - me using some wrong version of an importer, something special about the fridge (for example, it has no 'trans' type bones - wonder if it matters) or something else?

Thank you for these tools again, now I can do a lot of things I wanted to do
Retired Duck
retired moderator
#20 Old 28th Aug 2007 at 8:46 AM
If you intend to change the mesh itself, then you generally need to make those changes before you import the cres. The cres importer changes the joints into a format which can work with the animesh, but which makes them incompatible with the unimesh. It is, as I understand it, quite intentional.
Instructor
#21 Old 28th Aug 2007 at 12:04 PM
Echo, actually, I intended to change number of joints for which I know no other solution than to rebuild the GMDC by wes_h plugins It worked, by the way. So now I can have objects with any number of joints, arranged any way - I really appreciate that, it makes my imagination go wild
I'd prefer to change mesh in Max as usual, I consider it more convenient. Or I wouldn't be able to animate it after that, and I have to create animations first, then new mesh?
Quote: Originally posted by Echo
The cres importer changes the joints into a format which can work with the animesh, but which makes them incompatible with the unimesh.

Ah, I see, it makes sense. It's to avoid people messing up different formats?
Alchemist
Original Poster
#22 Old 28th Aug 2007 at 6:06 PM
The intentional has to do with Maxis' design. The joints layout in the GMDC is an absolute position/rotation, with no joint heirarchy. The joints, as laid out in the CRES, have a parent-child heirarchy, and each child's position and rotation is relative to the parent.

If only to make our life harder, in a few cases the actual absolute positions in the GMDC are not the same as the positions in the CRES (generally by small amounts).

So I had to develop something that allowed my to save the joint positions for animation. Being parent relative, they are unusable in the algorithms that export the GMDC. Thus they have a different name.

The good news is that you do not need the mesh part for the animations. Just the joints. The mesh is there so you can see when one part touches another, but the ANIM exporter itself does not care. So, you can make a working ANIM-production copy and save it. If you later change the actual mesh details, they do not have to be updated in your ANIM working copy, unless the change is material and requires the animation to be adjusted because of it.

This also means you can import other objects (without joints) for use as props. If you posed a sim, and used the OBJ format to import it, you could experiment with animating your item in the sim's hand, for example, and you may export the animation even with all the extra mesh faces and groups still loaded.

You could leave the joints in the imported props and put "NoAnim:" in the comments, too, so that the posing work could be done. But here you have to be careful, because you should have only one root_rot and one root_trans joint. And you cannot exceed 128 total joints.

<* Wes *>

If you like to say what you think, be sure you know which to do first.
Instructor
#23 Old 28th Aug 2007 at 9:08 PM
Thanks for detailed explanation, Wes, it's much clearer now
Quote: Originally posted by wes_h
This also means you can import other objects (without joints) for use as props.
That's good news too - especially that those reference objects don't need to be deleted
Lab Assistant
#24 Old 29th Aug 2007 at 11:51 AM
Thanks for the FANTASTIC work on this plugin. I am currently updating JohnBrehaut1's sim animation tutorial to use AniMesh rather than Miche's Animation Converter.

Interested in doing a later tutorial that covers some of the more advanced features... as soon as I figure out how to use them. LOL
Alchemist
Original Poster
#25 Old 30th Aug 2007 at 2:46 AM
well, thank you.

A revised, AniMesh specific body meshing tutorial would be a welcome addition.

<* Wes *>

p.s. didn't you used to live in florida? (FL)

If you like to say what you think, be sure you know which to do first.
Page 1 of 6
Back to top