Modding Rundown: Animations

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

Previous topic - Next topic
Quote from: Mr. Law^^ on October 24, 2009, 11:25AM
EDIT: Tommy, you forgot the Database thing in your theory. What you specify in the "Animation:" box of the exporter is the animationdatabase. And the animations have to be linked to the database (otherwise it wouldn't be one, t'doh).

No I assume (or hope, more accurately) that the animation database includes the notetrack info, so one big long animation somehow gets broken into the separate anims we want. But how to achieve this? I currently haven't a clue.
I should get some time to experiment today though...

Another idea which doesnt work: creating actors from actors.
I thought if I had an actor linked to the biped, then brought up the menu_idle frames and created a new actor from the existing one, and put in menu_idle as its animation name, it might work, letting me set up a "chain" of actors, each one created during its own animation. Doesnt seem to work, though. Max crashes on export.

Damn.
From the alchemy artist pack's documentation on the actor editor:
"You can export characters animated with 3ds max tools into the native Alchemy animation system by using the Actor Editor. 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." (italics are mine).
I read that to mean that we might never be able to export more than one animation with it, as it stands. Again, I could be wrong, but it certainly fits with our experience so far.

Perhaps the feature of combining animations was included in version 3.x and higher.

Quote from: Mr. Law^^ on October 25, 2009, 04:08AM
Perhaps the feature of combining animations was included in version 3.x and higher.

Maybe.
And maybe I'm just misinterpreting it. I mean, we dont actually want to combine animations into each other, we want to include more than one named animation into an export, so I'm not sure if its saying we cant do that, or if its saying that we cant combine menu_idle and menu_action into a new anim called menu_waving.
Certainly looking at this part of the alchemy docs, (on animation playback) suggests you can have many different animations:
"When a scene is exported into IGB format, the animation is interpolated between a list of keyframes. When the animation time extends past the keyframe for your scene, you can choose how to transition to the next sequence of animations by choosing one of the options listed under the Animation Type heading".
The interesting part for me is the phrase "list of keyframes". Of course it doesnt say where that list is, or how you make it, or anything useful to us, but it does suggest a sequence of separate animations controlled by a list. Well, it suggests it to me, at the moment...

That's why there's something called "igAnimationList". In that list are all the animations, defined by the line:

"igAnimation: <name of anim>".

I've tried values like "igAnimationList = true" and "igAnimation = true" and "igAnimation = <name>" but no success. I didn't try "actorAnimationList = true" but I don't think it'll help.

OK my latest straw to clutch onto is the possibility of exporting separate animation DBs to a subdirectory and having the "main" animation file somehow reference them. I've done the easy bit and created a dir with enough animDBs for the basic skeleton file (menu_stuff, walk run and idle). Now I have to find a way to make the exporter export a file which "sets up references to the animation databases without producing an external animation file", and hope that the game somehow uses it.
If this doesnt work, the multi-biped/group theory starts to look like our best hope, as so far, all efforts to implement a NoteTrack based system have failed.

Well the box "Extract Anims" have to be disabled. That's all I know that could help with the NoteTrack theory. I haven't been researching animations for the last 2 days because it began to annoy me XD

I am thinking about the line "igGroup", which is in every animation, though named once.

I've been playing with the multi-biped idea, without huge success. I can still only get one animation of the three I make bipeds for to work in game. Whats a bit odd is that one time it was menu_idle which worked, and not run or menu_goodbye. Then when I re-exported run worked but not menu idle or goodbye.

I'm starting to think that what we may need to do for this to work is:
create the bipeds (lets call em biped1, 2 and 3 for now, even though we know all are actually bip01 etc)
biped1 we create an actor for when menu_idle is playing, and name the animation accordingly.
we then hide biped1, and still in the same timeframe in Max unhide and animate biped2 to be menu_action, create its own actor and name the animation in the actor.
we then hide biped2, and still in the same timeframe unhide and animate biped3 to menu_goodbye, create its actor and name the animation.
So now, if all 3 bipeds are unhidden, and we play the timeframe of menu_idle's animation, each biped plays its own unique animation, different from the other two. Each actor should have an animation associated with it that a valid biped is performing.
Maybe then all three will work.
This is what i'll try to do today.

Using groupss & NoteTrack with that idea?

October 27, 2009, 11:41AM #70 Last Edit: October 27, 2009, 12:08PM by thetommyboy2002
I dont believe either is necessary. As ever, I could be wrong.

Heres what I have "achieved":
I have two bipeds in the scene, both are called bip01 etc. One I've coloured red, the other orange, so I can tell which is which, so that's what we'll call em.
Red Biped has the "run" animation, and its own actor, called run, with "run" entered as the  name of the animation. Red bip01 is linked to the run actor.
Orange Biped has the "menu_idle" animation, and its own actor, called menu_idle, with "menu_idle" entered as the name of the animation. Orange bip01 is linked to the menu_idle actor.
Both animations play at the same time, from keyframe 0 to keyframe 43, so if I press play in Max, I see red run, and orange just stand there, vaguely waving one arm.
Neither Biped is in a Group, for now, because it seems unnecessary. More on why shortly.
I export the scene.
In-game, menu_idle does not work, it defaults to the built in one, but run does work, showing my custom run anim at the right time.
If I go back to Max and rename run to menu_idle, and menu_idle to run in the "animation name" field in their respective actors, then re-export, now menu_idle works in game (showing my custom run anim on the hero select screen), but run no longer plays a custom anim, and defaults back to the built in run anim.
So far then, red Biped works as either run or menu_idle. OK, so maybe theres something wrong with orange Biped, as it wont work as either animation. I delete it, and its actor. I clone red Biped, rename the clone to bip01 etc, change its colour to orange, create a new actor, link orange bip01 to the new actor, name the animation to menu_idle, and re-export. Still only the run anim works. I "Group" the orange Biped, re-export. Still doesn't work. So I un-Group it again (since red is not Grouped and it works).
So, next I clone red and its actor again(making a third, yellow, biped in the scene), but name the animation "walk" this time(even though its the run keyframes cloned from red Biped). Export, and of course walk doesn't work.
Then I delete the red biped and export. This time my menu_idle anim works, but the walk still doesn't. It's seems now that only one biped works, the first one created. Red was the original biped, so whilst it existed, no orange one could work. Nor the yellow one. Deleting the red makes the orange the "primary" biped, so its anim now plays on export as menu_idle, and yellows Walk still doesnt work.
Deleting the orange biped makes the yellow biped the "primary", oldest biped, and its animation now works as "walk" in-game. This clinches it for me.
Although subsequent bipeds seem to be exported OK, (showing up the right animation name in a hex editor), only one, the oldest, "primary" biped, ever works in-game.

As ever, its possible I've missed something, done something wrong, or made some mistake. But, if neither of us can get more than one anim working in-game using the multi-biped method (Group or no Group), it suggests to me that although its a good theory, it isn't what we need.

Okay, new theory (just thought of it, 10 seconds ago)

1 biped in a group called nr_character linked to ig_actor01. Defining the animation in the properties as "actorAnimation = nr_character". Alchemy Animation modifier on the group, as many times as you have animations in the track. Name each modifier to an animation name, and let each start at their own frames (alchemy animation can define where an animation starts and how many intervals it has). So:

1 group, named nr_character
multiple anims on a single biped.
Numerous alchemy animation modifiers on the group, naming each to the animation you've created.
Adjust the settings of the alchemy modifier.

Meh, it probably won't work, but sometimes even crazy ideas work.

An interesting idea.
We could equally apply the animation modifiers to the actor though, couldn't we? Not convinced by the whole Group-ing thing.
Will try this on a max file though. Then I need a rest, my eyes are bleeding and my soul has been destroyed by exporting the same file 80 bajillion times, and running the game 80 bajillion times.

Quote from: Mr. Law^^ on October 27, 2009, 01:18PM
Okay, new theory (just thought of it, 10 seconds ago)

1 biped in a group called nr_character linked to ig_actor01. Defining the animation in the properties as "actorAnimation = nr_character". Alchemy Animation modifier on the group, as many times as you have animations in the track. Name each modifier to an animation name, and let each start at their own frames (alchemy animation can define where an animation starts and how many intervals it has). So:

1 group, named nr_character
multiple anims on a single biped.
Numerous alchemy animation modifiers on the group, naming each to the animation you've created.
Adjust the settings of the alchemy modifier.

Meh, it probably won't work, but sometimes even crazy ideas work.

Tried it, but it didn't work (and I did Group the biped).
I think thats it for me today.
Gotta say, you been coming up with some good ideas. If creative thinking were rewarded, it would already be working...

Thanks. Wouldn't been doing it without you btw^^. Well, like I said, SOMETIMES crazy ideas work. Sometimes they don't :<

I'll try some stuff out if other ideas jump up in my head. Wish I started using max years ago. Anyway, gives me time to explore more functions of max and apply those.