Modding Rundown: Animations

Started by thetommyboy2002, March 10, 2007, 11:21AM

Previous topic - Next topic
Quote from: thetommyboy2002 on September 29, 2012, 06:23AM
Trying a parallel, slightly different approach to the actor editor script:


The other one I'm trying tries to add a second Actor to the rollout in the hopes that it too gets exported along with the original one. Somehow. But I'm not sure that approach makes much sense. We are already exporting other actors and their animations, but they just aren't "seen" by the game.

So I started thinking about maybe only one actor but it has multiple animations attached. Somehow.
Getting the extra fields for the other 2 anims is relatively easy, and as you can see above, you can enter animation names all you like, but only the top one gets exported, theres no sign of the other 2 in the export. So far.
More when I know more...
Edit: although the second and third animation names seen in the above pic make no appearance in the finalizer (that i've found so far), they ARE in the igb, visible in a hex editor. So that's something...


I should add that it does occur to me that it's maybe a limitation of the igb exporter DLL (or dlu or dle) rather than the scripts, but that's even more of a black box. I mean, I can disassemble it easily enough, but reading raw assembly code is a wee bit beyond me, I'm afraid..
]

I tried it already. Its a DLL limitation.

Quote from: BLaw on September 29, 2012, 07:52AM
]

I tried it already. Its a DLL limitation.

You seem very certain about that, and I'm curious as to where that certainty comes from.
Have you disassembled the dll and read it's contents?
Seems to me I'm exporting extra stuff via editing this script, not via altering the dll, so I'm going to pursue this for a while, unless you have some sort of proof to back up your assertion that it's definitely the dll which lacks the ability to export more than one animation.
And I really cannot see how you can possibly know that, no offence, since we dont even know what the set-up for exporting multiple animations is.
We dont know if it involves note-tracks, or stipulating a frame range, or multiple actors, or multiple bipeds.
All we know is that we have not done it yet, and do not know how it's done.
And that was the position on "how to export models" till we found out how to, and also the position on "how to export a single animation" till we found out how to.

I'm not saying that you are wrong, the documentations seems to be saying what you are saying ie "combining animations is beyond the scope of this plug-in".
But the documentation also tells us we can export bump-maps and gloss maps, and that hasn't actually worked in the game, so I'm thinking there may still be wriggle room. (Hoping, more accurately.)

Quote from: thetommyboy2002 on September 29, 2012, 08:19AM
You seem very certain about that, and I'm curious as to where that certainty comes from.
Have you disassembled the dll and read it's contents?
Seems to me I'm exporting extra stuff via editing this script, not via altering the dll, so I'm going to pursue this for a while, unless you have some sort of proof to back up your assertion that it's definitely the dll which lacks the ability to export more than one animation.
And I really cannot see how you can possibly know that, no offence, since we dont even know what the set-up for exporting multiple animations is.
We dont know if it involves note-tracks, or stipulating a frame range, or multiple actors, or multiple bipeds.
All we know is that we have not done it yet, and do not know how it's done.
And that was the position on "how to export models" till we found out how to, and also the position on "how to export a single animation" till we found out how to.

I'm not saying that you are wrong, the documentations seems to be saying what you are saying ie "combining animations is beyond the scope of this plug-in".
But the documentation also tells us we can export bump-maps and gloss maps, and that hasn't actually worked in the game, so I'm thinking there may still be wriggle room. (Hoping, more accurately.)


What else it could be? I've tried editting the scripts to make the exporter show what you tried in the screenshot I quoted before. Exact same stuff. You cannot define animations elsewhere, nor can you link animations to 1 database, because THAT is exactly what the exporter is missing. And the documents even state it.

Quote from: BLaw on September 29, 2012, 10:14AM
What else it could be? I've tried editting the scripts to make the exporter show what you tried in the screenshot I quoted before. Exact same stuff. You cannot define animations elsewhere, nor can you link animations to 1 database, because THAT is exactly what the exporter is missing. And the documents even state it.

Another idea I had, which could be a temporary solution, is to build animations IN skins. I believe we did that before and it did show up. Which will cause us to:

- Enter a skinswap code into the powerstyle file to swap out the current skin for the skin containing the animation
- Enter a fightmove code that will play the animation.

I haven't tried this out yet. But it might work..

September 29, 2012, 10:41AM #109 Last Edit: September 29, 2012, 10:47AM by thetommyboy2002
Quote from: BLaw on September 29, 2012, 10:14AM
What else it could be?
It could be the dll, but it could be whole bunch of other things too.
There are more ways to fail to export than there are to do so successfully.
And again, because we have no information on how to set up Max to export multiple animations in one file for igb it seems more than likely that we just aren't doing something right.
I'm certainly not ruling out that the dll is the stumbling block, and I can certainly understand not wanting to waste a lot of time and effort on what may be something we simply cannot do with the tools at our disposal.

Quote from: BLaw on September 29, 2012, 10:14AM
I've tried editing the scripts to make the exporter show what you tried in the screenshot I quoted before. Exact same stuff. You cannot define animations elsewhere, nor can you link animations to 1 database, because THAT is exactly what the exporter is missing. And the documents even state it.
The documents state:"Operations such as changing skins, combining animations, and other features of the Alchemy animation system are out of the scope of this plug-in: the actor editor simply creates one igActor from the scene."
Now, as I've said before, we don't know if "combining animations" in this context means "exporting multiple animations in one file", or if it means "add "idle" to "run" to create a third, larger animation containing both".
But "out of the scope of this plug-in" is also ambivalent. Does "plug-in" refer to the "IGMax42Exporter.dle", (which after all, goes in the "plugins" directory of 3ds Max), or does it refer to the "Alchemy Utility.ms" itself, (since scripts can go in a "plugin scripts" directory)?
I think it's referring to the script. Look at it again, with my italicized emphasis:
"Operations such as changing skins, combining animations, and other features of the Alchemy animation system are out of the scope of this plug-in: the actor editor simply creates one igActor from the scene."

I'm definitely no where near certain that you are wrong but to me it seems more likely that a company would issue a cut-down version of their scripts than have a cut-down version of the dll.

Meh, if I'm wrong, I'm wrong. I should be finding out at some point in the next few days...

EDIT: I also forgot to quibble about how the docs say "the actor editor simply creates one igActor from the scene" when in fact it can create multiple actors from the scene, and export them all in one file. Maybe it means "only one actor seen by a game"..



Quote from: BLaw on September 29, 2012, 10:16AM
Another idea I had, which could be a temporary solution, is to build animations IN skins. I believe we did that before and it did show up. Which will cause us to:

- Enter a skinswap code into the powerstyle file to swap out the current skin for the skin containing the animation
- Enter a fightmove code that will play the animation.

I haven't tried this out yet. But it might work..
Another cool idea that might work.
The only thing I can think against it is the built-in anims dont play in-game as a rule, they only play in the menu.
But hey, it's got to be worth a shot to try it out..

Here's a list, comparing the entries found in a small mua animation file with one of my single-anim, export-anim-only files:
In MUA file 32_kang.igb:       In my animation only exports:
 
InfoList                   InfoList
SkinList                  SkinList
AnimationDatabase            AnimationDatabase
SkeletonList                SkeletonList
AnimationList               AnimationList
AppearanceList               AppearanceList
AnimationCombinerList         AnimationCombinerList

Object                    Object
NamedObject                 NamedObject
DirEntry                   DirEntry
ObjectDirEntry                ObjectDirEntry
                        MemoryDirEntry
                        ExternalDirEntry
ExternalImageEntry             ExternalImageEntry
ExternalIndexedEntry          ExternalIndexedEntry
ExternalInfoEntry             ExternalInfoEntry
DataList                   DataList
ObjectList                   ObjectList
                        NodeList
                        Node
                        Group
                        ModelViewMatrixBoneSelect
SkeletonList                SkeletonList
Info                      Info    
AnimationDatabase             AnimationDatabase
AnimationList                AnimationList
SkinList                   SkinList
AppearanceList                AppearanceList
AnimationCombinerList          AnimationCombinerList
InfoList                  InfoList
                        Skin
                        SkeletonBoneInfo
                        AnimationHierachy
                        Skeleton
                        AnimationBinding
                        AnimationTrack
                        AnimationTRansitionDefinitionList
                        AnimationTracklist
                        AnimationBindingList
                        Animation
                        LongList
                        QuaternionfList
                        TransformSource
                        TransformSequence
                        TransformSequence1_5


As you can see, there is nothing in the mua file that is not also in my export, and a bunch of stuff in the export which is not in the mua file.
Some of the stuff in the mua file I'm starting to work out what it is, and what it does, and some is pretty self evident.
It should be mentioned that theres a lot I haven't transcribed, and though the mua stuff is in the order it appears, (including those that appear twice like SkeletonList), the ones from my export are not in the order in which they occur.
Since that order seems pretty much random, it may not mean much.
Also note all entries were originally prefixed by "ig" I just didn't bother writing it out.

So there are a mere 18 entries in the mua file, and we already know what some are or seem to do.
I may try to list and break down each in turn in the hope of getting a better understanding of what is in there..


A second and similar idea.

- Put animation inside skinfile
- Create an idle fightmove node
- Create custom playanim script containing the name of the custom anim
- runscript through the node

Fourth skeleton will not be accepted but, a skin is automaticly loaded by the game. So, it should be available of we run the acript.

September 30, 2012, 10:36AM #113 Last Edit: September 30, 2012, 11:14AM by thetommyboy2002
Quote from: Marvintage on September 30, 2012, 05:12AM
A second and similar idea.

- Put animation inside skinfile
- Create an idle fightmove node
- Create custom playanim script containing the name of the custom anim
- runscript through the node

Fourth skeleton will not be accepted but, a skin is automaticly loaded by the game. So, it should be available of we run the acript.

I really should be trying some of these ideas out, but I'm just neck deep in trying to get the probably-cant-be-made-to-work animations done.

I'm flitting between about four approaches:
1.rewrite the scripts- so far no joy
2.edit the export in finalizer/hex editor- no go as yet
3. decode the igb to understand whats what- some progress but quite slow going
4. trying every possible combination of things in 3ds max- not good, but am ruling out a lot of stuff.

As part of 4. I'm trying to link my 2 actors to a dummy, in the vain hope that they "somehow" get treated as equals, rather than being exported in an order which means only one works.
Now normally, Actor02 is the one that gets to work, and Actor01 is the bridesmaid.
But, if when I link them to the dummy I click Actor01 first, then Actor02 (holding down CTL to allow multiple selection) and then link to the dummy and export, now Actor01 is the dominant one whose animation is played.
Looking at the "tree view" in the finalizer, the Actor nearest the top is always the one whose anim gets played, and sure enough, my linking oddity swaps them around.
Now, one of the things I've been intrigued by is this arbitrary choosing of one Actor over another, so maybe this can point me towards understanding it a bit better..

EDIT: well, not much more understanding, but I can definitely control which Actor is the dominant, animation playing one in the export, simply determined by the order in which I link them to the dummy. Link Actor02 first, it's top dog. Link actor01 first, and it is the big cheese, the head honcho, numero uno, the grand poobah.
Bear in mind both get linked, so looking at either the schematic view in Max, or in Finalizer they appear to be equal under the dummy, but clearly the order of linking gets stored in the file and determines which Actor is exported as "active" as far as the game is concerned.
EDIT2: Indeed, you need not even link all the actors. If you have a 3 actor 3 biped scenario, and link only one of the Actors to the dummy, whichever one you link becomes the top Actor. It's probably no more complex or mysterious than whatever last gets changed gets written last, but I'm still intrigued by the possibility that there may be something here I can use...


Bump.

The day has finally come to say: custom animations are not limited.

My Director Fury mod has a nifty dummy in there which allows his van and buff effects to spawn in the correct spot without too much hassle. The van is animated. So I had an epiphany: what if I tried my animated mannequins in the dummy.

I already gave the spoiler alert in the first sentence, but yes, it works.

This basically means that you can have any and all self-made animation you want with the use of boltons and a dummy on a custom model.

There, said it. Should've been discovered years ago, but better late than never I guess.

Oh and one more idea I had which no doubt works:
With a custom model containing such a dummy, you can put in the herostat the codes to hide the body (provided it's a skinsegment) in the menuonly, and have an animation skin version attached to the dummy in the menu only. My point is: having a looping menu idle without having to use or sacrifice a third skeleton.

That's all for today.

Want proof? Alright.

Notice that Fury is standing in the same spot, but the Brood wolverine is not having the same pose.





Now it's possible to combine animations in one animation database after Alchemy 5 Kit was leaked.
Download and install Alchemy 5 kit from here

How to do that:
1. Export your actor in T-Pose as IGB file (for example actor.igb)
2. Animate your actor and export as IGB file (for example menu_action.igb)
3. Repeat Second step for all of your animations.
4. Open IGB file with animation in sgFinalizer and navigate to igAnimationDatabase->_animationList->igAnimation
5. Click RMB->Edit object fields and change Object name from "defaultAnimation" to something that MUA will understand (for example "menu_action")
6. Save file
7. Repeat 4-6 steps for every animation
8. Download Combiner scripts and unpack somewhere.
9. Change combine.txt file (i provided example in archive, too lazy to explain it right now, but you should pretty much understand how to edit it).
10. Run combine.bat file. You just created animation database that can be used in MUA.
Don't forget to change IGB version of this file via Hex Editor (Go to offset 2C, change from 09 to 08 and save).

Well done! Wish this worked in XML2 as well.

Amazing!
I'll try this when I have time.
The Alchemy 5 pack, for me here, works only in the max 8 version. I would like to use it in max 2010, however when I instal the alchemy 5, it only recognizes the max 8. Anyone have any idea how to solve this?

Quote from: Teancum on February 24, 2019, 12:18PM
Well done! Wish this worked in XML2 as well.
I can't test this right now, but i'm pretty sure if we change IGB Version via Hex Editor to the one that XML2 use, it will work.