Content: Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Background: Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Pattern: Blank Waves Notes Sharp Wood Rockface Leather Honey Vertical Triangles
Welcome to Xbox Chaos: Modding Evolved

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

Sign in to follow this  
Followers 0
Wil

.MAP
Animation Inheriting

2 posts in this topic

All credit goes to Lord Zedd for his research on this subject. I just made the tutorial. I also haven't went over this in a while, since leaving a few years ago so if there's something wrong please let me know and I will fix!

[HALO 3] I’ll be having the grunt animation inherit MC’s animation’s.

(parent) MC = inherited animation

(child) Grunt = Local animation

In the animation you want to have Inherit some other animation, expand the “Inheritance List” block. Now, you’ll see a tagref “Inherited Graph,” add the reference to the animation you want to Inherit (MC in my case). Open that animation. Navigate to the “Skeleton Nodes” block and note the count size and go back to the local animation and expand the “Node Map” with the same count. For example, the count size for MC, is 51 so I’ll be adding 51 chunks to the “Node Map” block.

 

Go back to the animation you want to Inherit (MC in my case) and go through each “Skeleton Nodes” chunk and note the “Name” StringID for each chunk as well as the chunk. Now, go back to the local animation, (in my case the Grunt) and go through its “Skeleton Nodes” block and note each “Name” StringID for each chunk and the chunk number itself.

 

Each chunk in the “Node Map” block corresponds to a chunk in the inherited animations “Skeleton Nodes” block.

 

Go through the local animation’s “Skeleton Nodes” and note the indexes of the strings that show up in the inherited animations “Skeleton Nodes” block.

 

So for instance, the first chunk (0) in the inherited animations “Skeleton Nodes” block is “pelvis,” and the first chunk (0) in the local animation’s “Skeleton Nodes” block is also “pelvis.”  (remember, the chunks in the “Node Map” match up with the chunks of the inherited animation’s “Skeleton Nodes” block, so chunk 0 in “Node Map” corresponds with chunk 0 in the inherited animation’s “Skeleton Nodes” block) so for the first chunk of the “Node Map” block make the “Local Node” control the index of the corresponding “Skeleton Nodes” index. So for me index 0 of the “Node Map” block is 0 as that is local animation’s corresponding node value:

rsshK5i.png

If the StringID appears on a different index in the local animation’s “Skeleton Nodes” but appears on some other index in the inherited animation’s “Skeleton Nodes” block, then in the corresponding chunk in the “Node Map” (remember, the chunks in the “Node Map” match up with the chunks of the inherited animation’s “Skeleton Nodes” block, so chunk 0 in “Node Map” corresponds with chunk 0 in the inherited animation’s “Skeleton Nodes” block) give the “Local Node” control the index of where that StringID shows up in the local animation. For example, in the inherited animation’s “Skeleton Nodes” block chunk 2 is “r_thigh” but in local animation’s “Skeleton Nodes” block “r_thigh” appears on chunk 3. So for the “Node Map” block I gave the “Local Node” control 3 as that is local animation’s corresponding node value.

2.PNG

If there is a chunk in the inherited animations “Skeleton Nodes” block that doesn’t appear in local animation’s “Skeleton Nodes” block, make it  -1.

 

Now, in the local animation expand the “Node Map Flags” block inside the “Inheritance List” block. The “Node Map Flags” reflect which nodes in the “Node Map” block are used, meaning a bit should be unchecked if you made the “Local Node” control -1. Each chunk corresponds to the first set of numbers in the series.

 

Node 0, 32, 64, 96, 128, 160, 192, 224

Node 1, 33, 65, 97, 129, 161, 193, 225

Node 2, 34, 66, 98, 130, 162, 194, 226

Etc…

 

The first chunk (0) of “Node Map Flags” corresponds to 0 – 31. Second chunk (1) of “Node Map Flags” corresponds to 32 – 63. Etc.…

So add the proper number of chunks to “Node Map Flags” to encompass the total number of chunks in “Node Map,” since MC has 51 chunks you’ll need to add 2 chunks, 0 – 63.

Duplicate the inherited animations [jmad] and steal its “Modes” block address and count and replace the “Modes” address and count in the local animation. Now go through every block and sub block in “Modes” and replace “Graph Index” with a reference to the “Inheritance List” index where you made all the edits, so for me it’s 0.

 

You can sorta speed up the graph index process by:

- hex replace a good pattern that includes the -1

 

This process is a bit different for halo reach. You use the “NEW Inheritance List” instead of the normal “.” From there you duplicate the Parent/animation you’re inheriting, rip out its animation block, plug it into the child (the animation you want to have inherited the child), and remove the inner block, set each blocks tagref to the original parent.

 

Hex > line it up to a block a line > notepad++ then you can hold alt and select the tagref of everything and type it in once to fill it all

To increment from 0 by 1:

Edit>column editor

 

What you are essentially doing is keeping the Spartan animation ordering and self-referencing to the original Spartan jmad, which is why you can then get away with notepad++ counting because everything is now going line up 1:1

 

the inner animation block holds like the raw index and stuff so that’s why you remove that

 

the tagref says "get your raw info from this jmad and this index"

 

 

 

If you animation breaks while you perform certain animations go to that specific animation in the parent animation go to the “Animations” block go to “Object-Space Parent Nodes” and either fix it or null it for that animation, or you can just null all of them for each animation to fix them all.

 

TFK, Gamecheat13, Akarias and 1 other like this

Share this post


Link to post
Share on other sites

Posted (edited)

AWESOME

im definitely goin to be releasing some fun stuff with this, probably after MCC on PC comes out

Edited by blackdimund

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0