- Site Map >
- Modding and Creation >
- Sims 3 Creation >
- Meshing >
- General/Other - TESTERS WANTED: AnimTool, updated V05 (03/07/2011)
- Site Map >
- Modding and Creation >
- Sims 3 Creation >
- Meshing >
- General/Other - TESTERS WANTED: AnimTool, updated V05 (03/07/2011)
Posts: 491
Thanks: 8597 in 169 Posts
This space intentionally left blank...
Posts: 491
Thanks: 8597 in 169 Posts
I tested it out myself and the legs and arms seem to animate perfectly fine in game. Even the hopping legs and stuff.
This space intentionally left blank...
Posts: 2,932
Thanks: 15566 in 28 Posts
eta: the avi I posted is in the last post of Mesher's thread.
Posts: 491
Thanks: 8597 in 169 Posts
I then whipped up a test animation of my own with arms and legs and that test animation in the game looked exactly like it did in my 3D software. Maybe Mesher sneakily updated that rig? Or I'm not looking hard enough :D
Anyways, are custom animations now theoretically possible? Could you like make a new animation, insert it in an existing animation. Then in S3PE give that new animation a unique instance number. Then make a JAZZ script and a custom object with a script that calls your animation?
I am kind of sad that so few people are working on animations. Although I do understand the rig setup is far from ideal. I work as an animator and the rigs we work with are more user friendly I was thinking of rigging up something in Puppetshop, just so animating wouldn't be so hard to do. Using that rig it feels like I'm animating with technology of ten years ago :D
But I don't know nor understand enough on how the rigfile.txt is created to attempt that...
This space intentionally left blank...
Posts: 1,068
Thanks: 13444 in 34 Posts
Nukael, if this is the same rig I linked to in post 96 of this thread, I tested that one and posted in-game footage of it in Mesher's thread. I had arm issues with it using an EA clip although the legs worked fine. |
Looks like you made a Global (instead of Local) rotation on the elbow joint...
Anyways, are custom animations now theoretically possible? Could you like make a new animation, insert it in an existing animation. Then in S3PE give that new animation a unique instance number. Then make a JAZZ script and a custom object with a script that calls your animation? |
Same exact thing I've been wondering. Up until now, I've only been making default replacements for movie-making purposes, but would love to make some truly custom animations as new game interactions.
Posts: 2,932
Thanks: 15566 in 28 Posts
Jasumi, I just copied one EA clip and turned it into an smd. Overwrote that with another EA clip that I had done the same thing to. I think I did essentially what Nukael describes having done. Where in that process does the altering rotation part come in and is there some way of knowing when I'm making the mistake that's causing the global rotation? Thank you for any help
Nukael, if this rig is working, and it sounds like it is, then custom animations are theoretically possible I think. I'm interested to know if you were able to suppress the head motion, that "look at" kind of motion the game has which was described by Wes and CM earlier in this thread, when you put animations into your game.
Posts: 491
Thanks: 8597 in 169 Posts
Hmm, I find it strange you keep having that issue. It makes me question my own attention span Maybe I just missed seeing the issue. I'll test it again later on. Now I'm off to go swimming!!
This space intentionally left blank...
Posts: 2,932
Thanks: 15566 in 28 Posts
I'm not sure why I keep having this happen either. I'm going to re-download the rig on the off-chance I don't have the most current version of it and try again. Rather than questioning your attention span it's probably more reasonable to question my animating abilities...lol. I'm sure I must be doing something wrong. While I'm thinking Wes checked my work on the clip I made using the first rig is it at all possible the issues I had with it were the same as the issues I'm having with Mesher's...that the leg/foot thing was due to global vs local rotation or some other mistake I made?
Lol...I wish I was going swimming...instead I'm off to work.
Posts: 1,068
Thanks: 13444 in 34 Posts
CM posted a little bit of his findings regarding the "look at" motion in post 68 of this thread. He seemed to feel it's gonna require a mod to suppress this thing. I'm not sure why I keep having this happen either. I'm going to re-download the rig on the off-chance I don't have the most current version of it and try again. Rather than questioning your attention span it's probably more reasonable to question my animating abilities...lol. I'm sure I must be doing something wrong. While I'm thinking Wes checked my work on the clip I made using the first rig is it at all possible the issues I had with it were the same as the issues I'm having with Mesher's...that the leg/foot thing was due to global vs local rotation or some other mistake I made? Lol...I wish I was going swimming...instead I'm off to work. |
That seems to be the only explanation I can think of, as the tool is working properly on my end. Also, did you check to see if the rigfiles were mixed up?
Wes (if you're still around ), how could we go about making custom animation overlays? Are they yet a possibility?
Posts: 2,932
Thanks: 15566 in 28 Posts
Is there some setting in Milkshape that could cause the problem I'm having? Something that you and Nukael have clicked correctly and I have wrong?
Posts: 2,832
Thanks: 6613 in 20 Posts
I am kind of sad that so few people are working on animations. Although I do understand the rig setup is far from ideal. |
It took a long time for much interest to develop in Sims 2 animation. Much of what was done there was done by a few people that created various pose animations, and put them in packages that were used a lot by movie makers and for still shots. The main issue with that in Sims 3 would be driving the animation, and I did not solve that personally, it was ChaosMageX that made that painting that leverages JAZZ to call the animations. I expect that object, modified to point to CLIP files with unique names/TGI pairs, would enable non-replacement animations to be used. Pose animations are just single frame animations.
The text rigfile concept was a hack to get around the lack of ability to interface directly to the RIG chunks themselves. I made it by manually noting joint positions in the Granny Viewer from the aurig RIG file (you have to chop the leading chunk off these to get Granny Viewer to recognize them). Since all of the adults, children and toddlers are based on just three respective basic rigs, it is less of an issue than objects, which each have their own unique rigging. Although most objects have just a few joints that would need to be managed, and usually much simpler motions.
<* Wes *>
If you like to say what you think, be sure you know which to do first.
Posts: 491
Thanks: 8597 in 169 Posts
I think since those rigfiles are different from each other, this could mess up something.
Jasumi: from what I gather from the AnimTool documentation is that custom overlays are possible by editing the rigfile to only export the bones that you want for your overlay. If the game then loads this animation, it will "blend" your animation with the one that's already active (in theory!).
Wes: wow, thanks for the info! Every time I feel like I'm learning new stuff! So I have a question, I'm wanting to make my own rig based on the skeleton used in aurig. What I mean is make my own custom skeleton rig from scratch, matching all the bone positions but having a better underlying rig so it's easier to animate.
To convert the animation I would then have to make a rigfile.txt for my new skeleton, yes? Would I just note the positions then of the bones in my skeleton and write those out in that text file?
Would you like to give me your copy of the aurig file that can be loaded into Granny viewer? I tried chopping off the bit myself with a hex editor, but Granny Viewer keeps saying it failed its CRC check.
If I want to make an animation unique, is it enough to give it a different name and instance number, or is there more to it?
This space intentionally left blank...
Posts: 2,832
Thanks: 6613 in 20 Posts
Only for the body rigs, there is a block of data on the head of the file, and if I remember correctly it has one longword that is some sort of a magic identifier, and the next longword is, I think, the offset value of the .gr2 data, you can determine this, if no other way, by matching the data values from the head of an object rig file. Select that header, delete, save and rename and there you go.
But I saved you the trouble and attached the three I had (au, cu and pu).
I tried to make the converter code very flexible. It imports anything from a clip file that is in the rigfile, and only exports what is in the rigfile. These do not need to be the same number of elements... for example making an overlay would mean just exporting a few of the joints from the animation.
I patterned the layout after the skeleton section of SMD files, except I used a string for the parent name instead of an integer, so you can just delete a child joint without having to renumber every joint as you would using integers.
The joint position/rotation values are more important... if those change, then the rotations specified in the animation are all going to be off.
I was surprised to read that the engine handles IK joint movements. From the looks of the files, I had presumed that all the animations were made with some IK, and then baked (and they appear to be that way) and that the IK joint movements were just being systematically exported with the rest of the joints. You should be able to import all the IK handles, although MilkShape will be unable to use them for IK purposes. But to the converter, they are just another joint. If it moves, it will generate a translation, if it turns, a rotation.
Have fun, show me what you learn.
<* Wes *>
cupuaurigs.rar (22.0 KB, 20 downloads) - View custom content | ||
Size Packed Ratio Date Time Attr CRC Meth Ver ------------------------------------------------------------------------------- puRig.gr2 11886 7587 63% 03-11-09 13:47 .....A. 119A3EC8 m3b 2.9 aurig.gr2 11857 7331 61% 03-11-09 11:25 .....A. 460A65C6 m3b 2.9 cuRig.gr2 11975 7446 62% 03-11-09 13:43 .....A. 1CEBDEC1 m3b 2.9 ------------------------------------------------------------------------------- 3 35718 22364 62% |
If you like to say what you think, be sure you know which to do first.
Posts: 1,740
Thanks: 107791 in 53 Posts
Do you think it makes a difference when I change the instance number? Like, before I make the clip or after (I did the latter)?
| (• ◡•)| (❍ᴥ❍ʋ) [◕ ‿ ◕]
Posts: 2,832
Thanks: 6613 in 20 Posts
These resources do not always hash from the animation name to the resource key. Any age specifiers (a2p, t2o, etc) are converted to only reference adult or objects (a or o) respectively to generate the hash, and the high bit is stripped off. This becomes the "default" animation if no age specific override is provided. Age overrides are found by XORing an age mask with the high byte (Or the second high byte for the second actor in an animation). |
So the issue may just be that the naming/hashing needs to be done a little differently.
If you like to say what you think, be sure you know which to do first.
Posts: 1,740
Thanks: 107791 in 53 Posts
In your rigfile.txt the first two lines are:
;"b__ROOT_bind__" "unparented" 0.000000 0.000000 1.012200 1.570796 0.000000 0.000000 "b__ROOT_bind__" "unparented" 0.000000 1.012200 0.000000 0.000000 0.000000 0.000000
Why are the values different?
ETA: I opened the animation in a hex editor and changed the name in there, too. Still didn't work.
| (• ◡•)| (❍ᴥ❍ʋ) [◕ ‿ ◕]
Posts: 2,832
Thanks: 6613 in 20 Posts
As for the rig file question, the commented first line is a remnant from development that was never removed. The difference is that the first line (';' in position 0 causes the line to be ignored) has Z up and a 90 degree X rotation. This is now done in the converter itself, on all world-based (unparented) joints. It is a remnant of the SMD format, where all the files were Z up (from 3DS MAX) versus all the OpenGL Y-up applications. MilkShape expects that it is reading a Z up file when it imports an SMD. So I made the converter change the Y up game files to a Z up model, which then gets read in properly into MilkShape (or fragmotion). But the rigfile matches the game layout, the conversion is done when reading the or writing the SMD file.
The export conversion does the opposite. If I was to leave out the rotation, when the skeleton gets into MilkShape, it is lying on its back with the feet toward you. Thus, rotating it 90 positive brings the whole model up to standing facing you. In these programs, as is most common, when you are looking down an axis toward the origin, counter-clockwise is a positive rotation. All this is difficult to learn; who would think that swapping Y and Z would be fixed by rotating X, but if you draw it out, that is what happens.
If you like to say what you think, be sure you know which to do first.
Posts: 1,740
Thanks: 107791 in 53 Posts
| (• ◡•)| (❍ᴥ❍ʋ) [◕ ‿ ◕]
Posts: 491
Thanks: 8597 in 169 Posts
You can also try Snaitf's app found here.
This space intentionally left blank...
Posts: 3
I use Animtool to make an action with tool : ms3d , TigerM: Smooth Jazz, by follow the procedures that should be like this.
I use a CLIP from Fullbuild01 and export to AnimTool then export CLIP->SMD.
in ms3d
- Import .SMD file from Animtool to ms3d and clear all keyframes except 1st keyframe.
- Begin the step with simple original post in 1st frame and adjust desired posting in middle of frames, and copy keyframe of 1st frame
to the last frame.
-Then Export .SMD file .
Back to AnimTool
- rename AnimName and Source Name
- convert .smd back to .animation .
s3pe: Get hashcode of .animation CLIP ("Anim Name") in FNVhash tool, just for case.
- i wrote simple Jazz script in TigerM 's Smooth Jazz Studio (thanks).
( I m not sure how the script works, because lack of understanding how the Finite State Machine .
I think it use for control data from one node of data to other data node ,each node call "State" .The Data flows through transition
's link drives with some conditions ,or something like that. It use for make a decision to do somethings ,do i'm right?!)
minor Jazz script :
State Machine "TestAnimSMCName"
{
Properties Default
Actor "x"
Assign Actor "test_desired_action.ma"."x" as "x"
//Assign Actor 0x55628013."x" as "x"
State "Enter"
{
Properties Public, Entry, Explicit
Transitions to "action_state"
}
State "action_state"
{
Transitions to "Exit"
Play "test_desired_action" for "x"
}
State "Exit"
{
Properties Public, Exit, Explicit
}
}
End up with code for animation calling in C# I m so confuse about Get , Set State,,... and the group of code that call just like same result.
minor C# code in Run method section :
protected override bool Run() { base.EnterStateMachine("TestAnimSMCName", "Enter", "x"); base.EnterState("x", "action_state"); return true; }
After that : I put all together in a painting portrait package.
I tested in difference place, si(m)tuation in the game.. no errors found . good to me!! ^ ^ !!
but, before these good . I found some errors when i choose "a2o_bathtub_clean_pose_sponge" CLIP :
the bones laid down on the ground and
in ms3d :
and same result in game.
maybe that because of code isn't correct, i just wondered.
So, I decided to modify another CLIP like "a2o_dance_body_rolled_" ( sorry! i did not remember the exact name because i changed it in S3PE exporting process.)
Finally , I made this up .it worked very well. thank you Wes. thank you so much. :lovestruc
This is not perfect action yet .it still need some leg adjustment.I go for that step but the lower of body goes Bulk, in game.
I know ,In order to fix problems for good result that is something about "Rigging" .i have to chang some infomation in rigfile ,right?
but after, i saw anumber of digits, name of joint . i said "oh my.. what are these! ".
I tried to understand the ChaosMageX 's RIG Maker Tool , that s hard for me. I'm afraid that i can not go that further, (sigh) .
EDIT POST :=========================
Oh! ,i'm sorry for unclear questions. please accept my apology.
Actually, I just wannted to report , the tool is pretty awesome .
There 's a lot of thing in the world to do ,to discover ,and get some relax right?
And i would like to say thank you. You've done the great works,Wes.
That 's all .
Posts: 2,932
Thanks: 15566 in 28 Posts
But the issue with the bathtub clip probably has to do with what Wes said earlier in this thread, "Mostly, you can edit an animation. Not all of them import smoothly, some require special rigging because they depend on extra joints and objects, like getting in a car or on a barstool."
My guess is, that since the clip you first worked with is a bathtub animation that something to do with the rigging makes this not work since an object (the bathtub) is involved with the animation.
Which rig are you using? There are two. There's one that comes with the AnimTool and that one does have some issues with the lower limbs in-game. There's another which is linked to in this thread that some people have been able to get working well in-game without the leg issues.
Also, what is it exactly that you're trying to do? If you can be more explanatory about that I think it might help people to help you.
Posts: 2,832
Thanks: 6613 in 20 Posts
So what you have is a compromise default file. I did a lot of extra work to try to make it simpler than the SMD format... note that you specify a parent by name, not an index number, so to insert another joint, you do not need to renumber all of the rest of the lines (tedious and error-prone). The rig file is larger because all the names for the each joint's parent are longer than a couple of digits would be, but it is more flexible, although it was harder to code it that way.
I cannot spend all my time making custom rig files for every animation, but there is no reason others that have (the few, the proud...) cannot share their work with the community.
If you like to say what you think, be sure you know which to do first.
Posts: 65
Thanks: 88 in 1 Posts
Posts: 38
Posts: 1,740
Thanks: 107791 in 53 Posts
So is there any code yet for incorporating Clips into custom objects? I'm trying to figure out how to apply a clip to a static mesh. |
Yes, it's basically the code in VenysJava's post (#120).
| (• ◡•)| (❍ᴥ❍ʋ) [◕ ‿ ◕]
Who Posted
|