Welcome to
Mod The Sims
Online: 4736
News:
Have an account? Sign in:
pass:
If you don't have an account, why not sign up now? It's free!
Other sites: SimsWiki
Reply  Replies: 67 (Who?), Viewed: 36330 times.
Search this Thread
Old 5th May 2010, 4:33 AM TESTERS WANTED: S3 RIG Maker (v1.0) #1
ChaosMageX
Original Poster

Lab Assistant

Join Date: Feb 2005
Posts: 134
Thanks: 3530 in 220 Posts
10 Achievements


BEHOLD! A RIG EDITOR! LET THE MODDING COMMUNITY REJOICE!

Seriously now, this is my first tool upload, so go easy on me. Personally, I think that this tool needs A LOT more testing, and some definite improvements where the euclidean math is concerned, but I just don't have the time to do that with college project deadlines and final exams fast approaching. Plus, I just can't bear keeping this from the community any longer.

What you see below is basically a copy of the Read Me file that's included in the archive, only spruced up a bit with some tags and emotes for the forum. And before anyone asks, NO, I DID NOT INCLUDE THE GRANNY2.DLL IN THE ARCHIVES. I'm too paranoid to do something that could lead to negative consequences with the DMCA.
As explained in the Read Me below, my tool uses the same version of the granny2.dll that the Expotron Plugin for 3DS Max uses, which, up until now, has been the only way of creating custom rigs for the game.

Table of Contents:
  • DISCLAIMER
  • ABOUT
  • REVISIONS
  • ARCHIVE CONTENTS
  • INSTALLATION
  • USE
  • TRANSFORM EDITOR DIALOG
  • KNOWN BUGS/ISSUES
  • ASSISTANCE WANTED

DISCLAIMER (READ OR ELSE!):
This tool is provided free of charge. By downloading it you are subject to this disclaimer. Except when otherwise stated in writing, the creators and distributors of this tool provide it 'as is' without warranty of any kind, either expressed or implied. The entire risk as to the performance of this tool is with you. In no event will the owners or distributors of this tool be liable to you for any damages caused by its use, including, but not limited to, any incidental or consequential damages to your computer, your copy of The Sims 3 or any of its expansion packs or stuff packs or other additions or modifications, third party or otherwise, or your computer bursting into a ball of flames visible from space.

about:
This is the S3 RIG Maker Tool by ChaosMageX
It uses the power of the granny2.dll to read grannyrig files (.gr2), which are used to store the data on the rigging for all objects in The Sims 3 and its expansion and stuff packs.
It then uses the power of Create-A-World's CSHostWrap.dll, which contains methods for writing grannyrig files.
This tool is still in the beta phase, so use at your own risk, as stated in the above disclaimer, WHICH YOU SHOULD HAVE READ BEFORE THIS!

REVISIONS:
  • 1.0 - Initial Release

ARCHIVE CONTENTS:
  • S3RIGMaker.exe - The main program that brings the power of the granny2.dll and CSHostWrap.dll together into a glorious Frankenstein combination with a lovely tree view UI for manually editing the rigs Mwahahahaha!

  • ChaosMageX.Granny2.dll - The main library. Contains the C# Wrapper for the granny2.dll, the classes for storing the managed grannyrig data, the transform editor dialog, structures for storing and computing the euclidean geometry

  • TransformEditorDialog.exe - A small program for opening up the Transform Editor dialog standalone, in order to debug its math functions.

INSTALLATION:
  1. Download the file S3RIGMaker.rar from this thread.
  2. Extract all files in S3RIGMaker.rar TO THE SAME FOLDER AS CAW.EXE
    For windows users, this most likely will be:
    C:\Program Files\Electronic Arts\The Sims 3 Create a World Tool\
  3. Download the Expotron Plugin for 3DS Max
    It can be found here at the following URL, among other places:
    Altervista Downloads
  4. Find the granny2.dll file inside the Expotron Plugin's zip archive
    Extract ONLY the granny2.dll to the SAME FOLDER you extracted the files in this archive
    In other words, extract the Expotron's granny2.dll file TO THE SAME FOLDER AS CAW.EXE
    I repeat, EXTRACT ONLY THE GRANNY2.DLL. DO NOT EXTRACT ANY OF THE OTHER FILES, AS THEY ARE USELESS
    See step 1 for the place that CAW.exe is most likely to be found
  5. Installation Complete. You should now be able to open and use the program without any problems.

USE:
  1. Extract the grannyrig file that you wish to clone/edit from its package using package editing program, such as S3PE.
  2. Change its file type suffix to .gr2 if it is not already, AS THIS IS THE ONLY FORMAT THAT THIS TOOL CAN CURRENTLY OPEN.
  3. Start the program, and either open the file you have extracted, or create a new one altogether,
    and it will appear in the tree view, ready for editing.
  4. Right click on the nodes of the tree.
    If a context menu pops up with options for editing the field that node represents,
    it means that the field can be edited.
    If one does not pop up, it means that you can't edit that field or node.
  5. Know the color codes used in the UI:
    --NORMAL BLACK/WHITE means that the fields are unedited and nothing is wrong with them
    --LIGHT BLUE means that the field is unsaved/uncommitted; its value is different from the original.
    --LIGHT RED means that there is problem.
    In the Transform Editor Dialog, it means that whatever's in the highlighted field
    cannot be parsed into a floating point number.
  6. When you are ready to save a rig, select its top-most node in the treeview
    (the one with the name of the file it was opened from or "newRig" followed by a number).
    This will enable the Save As button in the File Menu,
    which will open up the dialog for saving the grannyrig that allows you to choose the location and name of the file.
    NOTE: There is a check box in the upper right hand corner of the tool that controls a boolean value that is given to the CSHostWrap.dll functions that write the rig file. Make sure this value is what you want it to be (checked for true, unchecked for false), as this could effect the transforms that are written to the rig file. Basically, as its name implies, this boolean controls whether or not the Z ordinal is the upward facing one when writing the transforms to the rigs.
  7. Congradulations, you have just created your first custom rig file. Use it with your custom object and rejoice!

TRANSFORM EDITOR DIALOG:
By far the most complex portion of the program in terms of UI, this dialog is the key to editing the most important aspect of each bone: its position and rotations.
When you first open the dialog, you will notice three main sections: the Transform Matrix, the Scaling Matrix, and the Rotators, which consist of an interchangable Quaternion, Euler Angles, and Rotary Axis.
Every time you change a value in the one of the text boxes, it will either turn blue to show that it is different from the original value or red to indicate that its contents can't be successfully.
At the upper left corner of the Transform Matrix, and above the name of each Rotator, there is a button for applying/committing the values currently in the field boxes of that matrix/rotator will be applied to the rest of the values in the dialog, using complex mathematics under the program hoods to convert between them.
If a dialog pops up about an error, FIRST LOOK FOR ANY RED FIELDS, which will indicate that you left a non-numeric value that the program can't parse into a floating point number. If not, then report it to this tool's creators and distributors.
There are two combo boxes, one for switching between two different kinds of algorithms for converting between the transform matrix and the quaternion, and the other for units of the angles entered into the angle field boxes of the Euler Angles and Rotary Axis.
WARNING: Changing the angle units will reset all fields that contain angles, and you will lose any unapplied/uncommitted changes to the values.
NOTE: The Scaling Matrix currently serves no direct purpose. It only acts an additional multiplier when committing FROM THE ROTATORS TO THE TRANSFORM MATRIX. When someone eventually figures out how to directly use the granny2.dll to write grannyrig files, then it will become a whole lot more significant.
NOTE: The BOTTOM ROW of the TRANSFORM MATRIX contains the all important POSITION of the bone.
NOTE: Pay attention to the final value of the TRANSFORM MATRIX. Make sure all of its values are what you want them to be and that those values have been committed, either directly or indirectly, AS THE TRANSFORM MATRIX IS WHAT'S GIVEN TO THE CSHostWrap.dll FUNCTIONS THAT WRITE THE NEW RIG FILE.

KNOWN BUGS/ISSUES:
  1. The math for converting between Quaternions, Euler Angles, and the Transform doesn't seem to be correct.
    The exact methods that the CSHostWrap.dll functions use to convert the 4x4 transform matrix into the quarternions that the grannyrig files use is still largely unknown.
    FOR NOW, YOUR BEST BET FOR THE RIG COMING OUT RIGHT IS TO JUST SPECIFY THE POSITION AND LEAVE THE REST OF THE 4X4 TRANSFORM AS AN IDENTITY MATRIX.
    If you are creating a rig that actually depends on the transform's rotations and not just its position, then I wish you luck.
  2. This program does not protect against giving two bones in a rig the same name or out of range of parent indices, or other values that would possibly be invalid in the context of how the game utilizes RIG files. Again, as stated in the DISCLAIMER (WHICH YOU SHOULD HAVE READ BY NOW!), the creators and distributors of this tool can't be held liable for any damages caused by carelessness or deliberate ignorance of how the game uses RIG files.

ASSISTANCE WANTED:
Wherever this tool has been uploaded, its source code has also most likely been uploaded along with it.
If you are a programmer with experience in C#, euclidean geometry, and/or computer graphics, please feel free to assist the original creators in making this tool more efficient and reliable, and help to keep it maintained and up to date for the good of the modding community as a whole. You will be appreciated for it.
Screenshots
Click image for larger version

Name:  S3RIGMakerMain.jpg
Views: 0
Size:  113.2 KB   Click image for larger version

Name:  TransformDialog.jpg
Views: 0
Size:  79.9 KB  
Download - please read all instructions before downloading any files!
File Type: rar S3RIGMaker.rar (58.3 KB, 237 downloads) - View custom content
Description: The main program executable, the dll needed to run it, and an extra exe for debugging the transform dialog
File Type: rar S3RIGMaker_Source.rar (628.0 KB, 108 downloads) - View custom content
Description: The source code for the project, for all you out there who know their way around C# and want to help me make this tool better. It comes with complete with the Microsoft Visual Studio 2008 Solution and Project files needed to compile it.
Last edited by ChaosMageX : 11th May 2010 at 5:41 AM. Reason: Minor Build Update to prevent file info display in stack traces in error dialogs
Old 5th May 2010, 4:45 AM #2
cmomoney
˙uʍop ǝpᴉsdn ǝɹ,noʎ 'oN

Join Date: Dec 2008
Posts: 1,825
Thanks: 103534 in 83 Posts
28 Achievements


I'm all over this. Thanks!!!

"Part of being a mesher is being persistent through your own confusedness" - HystericalParoxysm
| ( ◡)| (❍ᴥ❍ʋ) [◕ ‿ ◕]
Old 6th May 2010, 12:54 AM #3
orangemittens
Alchemist

Join Date: Mar 2005
Posts: 2,934
Thanks: 15173 in 28 Posts
14 Achievements


Well I've got an inkling of how much is locked in the rig so I appreciate you making this...even if it's gonna take me awhile to figure it out...lol.

Thank you ...and good luck on exams too.
Old 7th May 2010, 8:03 PM #4
cmomoney
˙uʍop ǝpᴉsdn ǝɹ,noʎ 'oN

Join Date: Dec 2008
Posts: 1,825
Thanks: 103534 in 83 Posts
28 Achievements


As you may have noticed from the modding disasters thread, I've been testing. No issues to report, though in initial testing with deco slots I had the same problem with the slots not staying with the object, but I doubt that's a problem with the program.

Here is a more practical result of my testing with chairs:



She's sitting in a clone of the chair on the right. I lowered the seat, then lowered the IK butt bone in the rig. In other testing, I've raised the sit template bone to have her sitting about as high as the top of a refrigerator.

"Part of being a mesher is being persistent through your own confusedness" - HystericalParoxysm
| ( ◡)| (❍ᴥ❍ʋ) [◕ ‿ ◕]
Old 7th May 2010, 9:04 PM #5
ChaosMageX
Original Poster

Lab Assistant

Join Date: Feb 2005
Posts: 134
Thanks: 3530 in 220 Posts
10 Achievements


I'm glad that you've gotten IK slots to work, as they are important in future objects with custom animations.

However, if containment slots still aren't working properly, despite changing both the RIG and RSLT files to new coordinates, I'd like to know more about how it can be fixed.

Again, I think the MSIL game code may have a bigger hand in controlling slotting objects to other objects than we previously thought, but I have already brought that up in the main thread for that topic, and have been seemingly ignored.

But still, the first thing I'd like to ask is: Did you make sure the that transform matrix for both the bone in the RIG file and slot in RSLT matched up perfectly, with the same position and rotation? From what I've heard they need to match up perfectly in order to work properly.

I'm also beginning to suspect that what RavenShadow said about skeletons holding more data than we previously thought might be correct, as the ExtendedData pointer for the skeleton in the rig is not null. However, as I have said before, if the skeleton did hold extra data that would be useful to the game, then there would be methods for editing that data in CAW's CSHostWrap.dll, but there are none.

The second question I'd like to ask: Was the Z is Up Checkbox checked when you exported the working custom rig for the chair and whatever you tested for the containment slot change?

That may also make the difference in whether or not containment slots work, as I am still not entirely sure on the exact rotation matrix to quaternion conversion algorithm that the Sims3Common.dll uses to encode the grannyrig files, and therefore the transforms might not match up between the RIG and RSLT files.

Again, as I have stated before, at the position is properly translated, so for the most basic tests, start with a bone and slot that have absolutely no rotations whatsoever. This means making the rotation portion of the transform matrix in my tool and in the RSLT editor nothing more than an identity matrix:
--X Y Z
R 1 0 0
U 0 1 0
A 0 0 1

In this tool or the grannyviewer, it should look like this after being exported:
{7 {X, Y, Z} {0, 0, 0, 1} {1, 0, 0, 0, 1, 0, 0, 0, 1}}

That basically says that the bone has a custom position (X, Y, Z), but absolutely no rotations.
Last edited by ChaosMageX : 7th May 2010 at 9:23 PM.
Old 7th May 2010, 10:30 PM #6
cmomoney
˙uʍop ǝpᴉsdn ǝɹ,noʎ 'oN

Join Date: Dec 2008
Posts: 1,825
Thanks: 103534 in 83 Posts
28 Achievements


I'm sure your dissertation was not ignored, I read it and found it quite informative. I also proved you right because I've added a RIG and RSLT from one object to another, and the slots acted differently, and changing flags did little to nothing in some instances.

To answer your first question, the RIG and RLST did have all the same values. I had some other ideas of what to try, but I started messing with the chair.

As for the second question, the Z is up box was always unchecked. So I guess I could try that too.

eta: The containment slot problem was due to a conflict with duplicate objects. I renumbered and it worked as expected.

"Part of being a mesher is being persistent through your own confusedness" - HystericalParoxysm
| ( ◡)| (❍ᴥ❍ʋ) [◕ ‿ ◕]
Last edited by cmomoney : 8th May 2010 at 12:44 AM.
Old 8th May 2010, 12:47 AM #7
wondersueak
Test Subject

Join Date: Apr 2010
Posts: 56


wait... can this be used for making sliders for your sims? I wanna see if I can make a muscle slider that can give your sim more muscle than the game currently allows.
Old 8th May 2010, 6:54 PM #8
Raven Shadow
Lab Assistant

Join Date: Nov 2006
Posts: 212
Thanks: 1719 in 28 Posts
7 Achievements


Wel Done CMX
I'll let you know what luck I have with container slots,
I'm redoing my stackable shelves, which have 19 to 38 container slots each.

I've noticed that someone's thought of the bone name being tied to special object properties
is probably correct.
Several objects (fish bowl, b-day cake, computers, etc.) can only be placed on certain surfaces in
certain slots, they have no bones that seem to cause this behaviour,
but the surfaces they can be placed use specaillt named bones.
(_cntm_ is the 1st half of the bones name followed a number & compass reference for direction of approach)
I've also found bone names that are likely tied to food spoilage, fire damage / combustability.
and even built-in routing bones that have no defined slot in the rslt.

I'll let you know of any issues I have with containers
Old 9th May 2010, 4:28 AM #9
ChaosMageX
Original Poster

Lab Assistant

Join Date: Feb 2005
Posts: 134
Thanks: 3530 in 220 Posts
10 Achievements


I'm not sure who put fourth the idea originally, but I too had also theorized that names of the bones themselves could control certain properties of the slots and IK chains in animations in the game. After all, their name, parent index, and position/rotation are just about the only unique information you can give them. The only other significant thing you can specify is the name of the skeleton itself.

I haven't searched it hard enough yet, but there may even be MSIL game code to back this bone name slot behavior control.
If you discover unique behaviors associated with specific bone names or parts of bone names, by all means report them in this thread or the main thread discussing slot placement.
I would definitely be interested in your findings and others would as well.

Also, do try to experiment with controlling slot behavior through MSIL code more directly. I definitely will once I have the time.

I have some interesting ideas for some OMSPs, such as a hidden tray with two IK joints for a sim's hands that would allow them to carry one-tile objects like you would IRL.
Another idea I have is to try to create a hidden jig object that would allow sims to overturn furniture and give their house a wild party lived-in look.

Will I have time to get around to making these mods? Maybe, maybe not. It depends on how stable my life is (whether or not I have a job and a place to live) by the time the Ambitions Expansion Pack comes out.
Old 9th May 2010, 4:51 AM #10
cmomoney
˙uʍop ǝpᴉsdn ǝɹ,noʎ 'oN

Join Date: Dec 2008
Posts: 1,825
Thanks: 103534 in 83 Posts
28 Achievements


I'm having a lot of fun with this. It is a whole lot easier to use than I thought it would be when you were still working on it. I only wish I wasn't a FAIL at making my on class, and had more knowledge about the JAZZ files and how animation is handled in this game.

"Part of being a mesher is being persistent through your own confusedness" - HystericalParoxysm
| ( ◡)| (❍ᴥ❍ʋ) [◕ ‿ ◕]
Old 9th May 2010, 3:35 PM #11
Raven Shadow
Lab Assistant

Join Date: Nov 2006
Posts: 212
Thanks: 1719 in 28 Posts
7 Achievements


ChaosMageX,
I'm not a programmer so I can't follow you on the MSIL or the object script class, sorry.
But I amm reminded of something, I did a couple of simple experiments with a bed for someone a couple of weeks ago
and got some odd results.
They wanted to play with the slots that controlled where sims sat, layed on a bed,
and I couldn't find one.
I switched it's rig out with one from the pedastal cube and raised the Y position on several effect slots that were below the bed
and took the bed into the game.
The end result was that all animations applied to the bed, such as the mattress sinking when sat on, where ruined, as expected.
But the sim still layed & sat at exactly the same height as an unmodded bed.

After playing with all 3 slot related files (ftpt,rslt,rig) I could only tell them that the data was probably in the script code.
Old 9th May 2010, 7:41 PM #12
ChaosMageX
Original Poster

Lab Assistant

Join Date: Feb 2005
Posts: 134
Thanks: 3530 in 220 Posts
10 Achievements


In the case of beds and other lounging objects, the data for where a sim lays down is most likely stored in the bed's animations, within the CLIP files.

WesHowe did make a tool for editing the CLIP files for sims, but so far there hasn't been much interest in it, mostly because the leg animations don't seem to work right.
Old 9th May 2010, 7:51 PM #13
orangemittens
Alchemist

Join Date: Mar 2005
Posts: 2,934
Thanks: 15173 in 28 Posts
14 Achievements


The leg issues aren't because of the AnimTool itself...they're due to a problem in the rigging. Mesher made a rig also and that one had legs that worked fine although the arms were having issues. I'm not sure if your rig maker can help with the leg/arm problem animation is having...it would be really great if it could. Of course, we'd still have the overlays issue but that's another story.
Old 9th May 2010, 8:41 PM #14
Raven Shadow
Lab Assistant

Join Date: Nov 2006
Posts: 212
Thanks: 1719 in 28 Posts
7 Achievements


That's possible, but it doesn't sound quite right.
The starting Y-Coordinate must be stored somewhere,
the sim starts by moving next to the bed, then sits down,
based on how the sim i used in my experiments reacted when trying
to get out of the bed (he couldn't get out of it), the animation begins
after the sims has sat down on the bed.
When they get out, the animation ends with them in a sitting position.



Anywho .......
I wanted to make 2 requests .
When saving changes, the changed items are still listed in blue,
making it difficult to judge which changes are recent and which are old.

The 2nd one, is that I have noticed that the Model's bone list and the Skeleton's bone list are identical
and it's probably a safe gues that they need to be kept indentical.
Yet changing so many entries is very time consuming, and it would be nice
if the changes made to one list automatically be applied to the other list.
If done, I believe that you'd have to be careful of multiple skeleton/model entries,
so that Model #0 's entries should be made indentical to skeleton #0's list.

That would be greatly appreciated and a great time saver.
Old 10th May 2010, 1:11 AM #15
ChaosMageX
Original Poster

Lab Assistant

Join Date: Feb 2005
Posts: 134
Thanks: 3530 in 220 Posts
10 Achievements


I think I only set it to change back to Black after clicking Save.
It stays blue if you click Save As.

Due to the current incomplete understanding of the codes used to write the .gr2 files and the euclidean math for translating between the rotation matrices and quaternions, the Save button is currently disabled.

As for your second request, let's just say that it's easier said than done at the moment. Implementing the Tree View UI was already hard enough as it is, so I decided to just open up a chooser for all the skeletons in the selected FileInfo node, and let the user find the one they've modified through the chooser.

In order to implement this request, I am currently considering two options:
1) Finding matching instances of the Skeleton through Reflection and changing them accordingly. This is the easiest to implement, but it may be taxing on the user's processor and memory if they have many skeletons open at once.

2) Creating a second TreeNode class that would act as a reference facade for the other node that actually does store the values for the skeleton. This may be difficult, due to my lack of understanding of the tree view UI. It will be easier however, if TreeNodes can appear in more than one place in a TreeView, but I have not tested this yet.

All I know is that you DO NOT WANT to create a stack overflow in a Tree View, as it somehow creates a COM error that could disable all the network devices on the user's computer for some bizarre and probably asinine Windows related reason.

Eventually, I will enable the Save button, link the Skeletons in the Model nodes to those in the FileInfo node, and also add import/export for the following file formats, pending my understanding of them:
COLLADA 1.5 (.dae)
Steam/Valve (.sbx)
Autodesk 3D (.fbx)

If you know of any formats that are capable of storing rigs and possibly also animations and/or meshes that you'd like supported, please let me know and I'll try to add them once I understand how they work and how to read/write them using C# code or C# wrappers of their APIs.
Old 10th May 2010, 1:12 AM #16
WesHowe
Alchemist

Join Date: Nov 2004
Posts: 2,830
Thanks: 6357 in 20 Posts
15 Achievements


So far as I know, the CLIP files themselves are baked animations. That is, the motions are converted to fixed sets of joint rotation data, 30 frames-per-second, although rotations for joints which have not changed from the previous frame skipped. I saw no evidence of IK targeting in the CLIP files, so as far as I can see the entire process of steering the Sim to the side of the bed and rotating his position is done with slots and game logic... the rotation itself is a clip.

But I think you will find that the act of sitting down on the side of the bed and then laying on it are just baked animations. The bed heights are likely all the same, so that one animation fits all. Others have studied the JAZZ files, that is where the clips are sequenced from, but I profess my ignorance of those file details openly.

If you like to say what you think, be sure you know which to do first.
Old 10th May 2010, 1:33 AM #17
ChaosMageX
Original Poster

Lab Assistant

Join Date: Feb 2005
Posts: 134
Thanks: 3530 in 220 Posts
10 Achievements


Wes is correct. If you examine the code for transition interaction for entering the bed, EnterRelaxing or EnterSleeping, you'll see that the code finds an available Part of the bed, and tells the sim the route to the corresponding routing slot.

After that, it enters the appropriate state machine and calls the animations that repositions the sim into sleeping pose. Wes says that there's no evidence in the bed animations of IK chains, and currently I have found no evidence of slot use in the game code for the bed entry interactions. This means that the sims aren't actually attached to the bed in any slot, but rather they are just "floating" in the right position between the covers and mattress.

I'm willing to bet that if you tried repositioning the routing slots around the bed, then the sim will be offset the same amount as the slot when relaxing and sleeping, and they'll most likely clip through the covers and maybe even float in mid-air outside the bed if you offset it enough.

This is unfortunate news for anyone who wants to create something like a bunk bed or a just a bed with a different height. In order for the bed to work right, not only do you have to create custom animations to position the sim at the right height, but you also have to create a custom JAZZ file to play those animations and a custom script class with custom interactions for getting into and out of the bed and sleeping and relaxing in it that will aquire a state machine with that JAZZ file and enter and request its states to play the appropriate animations.

Unfortunately, my knowledge of JAZZ state machines is limited, and the expert on JAZZ files, TigerM, left the community.

The only other person I currently know of who may know more about making custom JAZZ files and using them in a custom script class is ani_. In fact, she also made a custom bed with custom script classes, so you may want to ask her for more on the subject.

It is unfortunate that beds do not work as chairs do. It is blatantly apparent that chairs do in fact use IK slots/joints in their animations, as demonstrated by cmomoney's experiments with my tool, so their heights can be easily adjusted.

I would like to look more into how the chair animations work and how they use IK slots/joints. cmomoney, if you're reading this, could you please tell us the string and/or 32-bit hash of names of the slot and/or joint you changed on the chair to change the height at which the sim sits down?
Old 10th May 2010, 3:08 AM #18
cmomoney
˙uʍop ǝpᴉsdn ǝɹ,noʎ 'oN

Join Date: Dec 2008
Posts: 1,825
Thanks: 103534 in 83 Posts
28 Achievements


To change the actual height (where the feet rest), I changed the sit_template. To change where the sim's butt ends up, I changed the _IKtarget_sitTemplate_butt. So to make the chair above I changed the IKtarget, and to make the kid chair I had to change the sit_template (to put the feet on the floor).

"Part of being a mesher is being persistent through your own confusedness" - HystericalParoxysm
| ( ◡)| (❍ᴥ❍ʋ) [◕ ‿ ◕]
Old 10th May 2010, 4:54 AM #19
ChaosMageX
Original Poster

Lab Assistant

Join Date: Feb 2005
Posts: 134
Thanks: 3530 in 220 Posts
10 Achievements


cmomoney, I forgot to ask what kind of chair you used for the tests.

If it was a living chair, it used the sit_template JAZZ file with
----Actor x = the sim sitting
----Actor sitTemplate = the chair
----Parameter sitTemplateSuffix = ""

If it was a dining chair, it used the ChairDining JAZZ file.

Either way, I found the clips that it would most play in either of those JAZZ files:
It most likely played the following CLIP files for the sim to get into the seat:
a2o_chairDining_getIn_E_x
a2o_chairDining_getIn_x
a2o_chairDining_getIn_NE_x

And then it most likely played the following CLIP files for the the sim to idle in the seat:
a2o_sitTemplate_sit_loopBreathe

However, since WesHowe's AnimTool does not export any of the events in the animation, I have no way of analyzing the IK chaining events outside of doing it manually in a hex editor.
Old 10th May 2010, 4:52 AM #20
orangemittens
Alchemist

Join Date: Mar 2005
Posts: 2,934
Thanks: 15173 in 28 Posts
14 Achievements


CM, I downloaded the Rig Maker, installed CAW, and got the granny dll. I wasn't sure which of the things in the zip you posted to place in the CAW file so I just put them all in as-is. I then used S3PE to take a rig out of an object and put that into a separate file. Then I went through your files I had put in CAW looking for an exe. I found one in the bin folder in S3RIGMaker. But when I used that to look at the rig nothing happened.

I really apologize for asking but could you tell me how to properly install the Rig Maker files and where the exe I need to use is?
Old 10th May 2010, 4:54 AM #21
cmomoney
˙uʍop ǝpᴉsdn ǝɹ,noʎ 'oN

Join Date: Dec 2008
Posts: 1,825
Thanks: 103534 in 83 Posts
28 Achievements


It's a dining chair.

"Part of being a mesher is being persistent through your own confusedness" - HystericalParoxysm
| ( ◡)| (❍ᴥ❍ʋ) [◕ ‿ ◕]
Old 10th May 2010, 5:18 AM #22
cmomoney
˙uʍop ǝpᴉsdn ǝɹ,noʎ 'oN

Join Date: Dec 2008
Posts: 1,825
Thanks: 103534 in 83 Posts
28 Achievements


Quote:
Originally Posted by orangemittens
CM, I downloaded the Rig Maker, installed CAW, and got the granny dll. I wasn't sure which of the things in the zip you posted to place in the CAW file so I just put them all in as-is. I then used S3PE to take a rig out of an object and put that into a separate file. Then I went through your files I had put in CAW looking for an exe. I found one in the bin folder in S3RIGMaker. But when I used that to look at the rig nothing happened.

I really apologize for asking but could you tell me how to properly install the Rig Maker files and where the exe I need to use is?


When you exported the rig, did you change it to a .gr2 file? (i.e. filename.gr2)

"Part of being a mesher is being persistent through your own confusedness" - HystericalParoxysm
| ( ◡)| (❍ᴥ❍ʋ) [◕ ‿ ◕]
Old 10th May 2010, 5:49 AM #23
cmomoney
˙uʍop ǝpᴉsdn ǝɹ,noʎ 'oN

Join Date: Dec 2008
Posts: 1,825
Thanks: 103534 in 83 Posts
28 Achievements


Quote:
Originally Posted by ChaosMageX
If it was a living chair, it used the sit_template JAZZ file with
----Actor x = the sim sitting
----Actor sitTemplate = the chair
----Parameter sitTemplateSuffix = ""

If it was a dining chair, it used the ChairDining JAZZ file.

Either way, I found the clips that it would most play in either of those JAZZ files:
It most likely played the following CLIP files for the sim to get into the seat:
a2o_chairDining_getIn_E_x
a2o_chairDining_getIn_x
a2o_chairDining_getIn_NE_x

And then it most likely played the following CLIP files for the the sim to idle in the seat:
a2o_sitTemplate_sit_loopBreathe

However, since WesHowe's AnimTool does not export any of the events in the animation, I have no way of analyzing the IK chaining events outside of doing it manually in a hex editor.


That makes sense, since there are _route_sitTemplates for N,NE,NW,W, and E. I haven't been able to get it to work at a table, though. It goes back the default height.

"Part of being a mesher is being persistent through your own confusedness" - HystericalParoxysm
| ( ◡)| (❍ᴥ❍ʋ) [◕ ‿ ◕]
Old 10th May 2010, 12:47 PM #24
orangemittens
Alchemist

Join Date: Mar 2005
Posts: 2,934
Thanks: 15173 in 28 Posts
14 Achievements


Thank you Cmo...I hadn't done that so it's no wonder I didn't see anything in the folder where my rig was. Now I have done that though and I'm getting an error message when I try to open the renamed rig:



the error message goes on to suggest it's looking for a path that doesn't exist on my computer and I don't know how to redirect it to the right place.

I do have the granny2.dll in the exact same folder as my CAW exe.
Last edited by orangemittens : 11th May 2010 at 1:48 AM.
Old 10th May 2010, 6:33 PM #25
ChaosMageX
Original Poster

Lab Assistant

Join Date: Feb 2005
Posts: 134
Thanks: 3530 in 220 Posts
10 Achievements


Well, orangemittens, you have to make sure that the files S3RIGMaker.exe and granny2.dll are in the same directory. If they are both in CAW.exe's directory, then did you download the correct version of the granny2.dll?

Remember, it's the granny2.dll in the Expotron plug-in, which can be downloaded from Altervista's downloads page, which is linked to in the first post.

If you have downloaded the correct version of the granny2.dll and extracted it to the correct directory, and it is still not working, then I have no idea what the hell is going on, sorry.

Also, cmomoney, if you are looking into the CLIP files, and are having trouble figuring out why it won't work when sitting at a table, here are the CLIP animations most likely played for a dining chair at a table:

If they get in from the West:

1st State (In_Table_W)
Chair: a2o_chairDining_getInTable45_W_chairDining
Sim: a2o_chairDining_getInTable45_W_x

2nd State: (chairW45pose)
Chair: o_chairDining_45_W_pose_chairDining

3rd State: (a2o_scootIn45_)
Child & Chess Table:
Chair: a2o_chairDining_scootIn45_W2_chairDining
Sim: a2o_chairDining_scootIn45_W2_x
All other ages/situations:
Chair: a2o_chairDining_scootIn45_W_chairDining
Sim: a2o_chairDining_scootIn45_W_x

If they get in from the East:

1st State: (In_Table_E)
Chair: a2o_chairDining_getInTable45_E_chairDining
Sim: a2o_chairDining_getInTable45_E_x

2nd State: (chairE45pose)
Chair: o_chairDining_45_E_pose_chairDining

3rd State: (a2o_scootIn45_)
Child & Chess Table:
Chair: a2o_chairDining_scootIn45_E2_chairDining
Sim: a2o_chairDining_scootIn45_E2_x
All other ages/situations:
Chair: a2o_chairDining_scootIn45_E_chairDining
Sim: a2o_chairDining_scootIn45_E_x


If you are looking manually at the hex for those CLIP files, then let me know what you find in terms of their actor/slot pairs and clip events. I still wish Wes's AnimTool would at least export the other sections of the clip as text based ASCII files like how his object mesh tool exports the Material data.
Reply


Section jump:


Powered by MariaDB Some icons by http://dryicons.com.