Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411583 Posts in 69386 Topics- by 58445 Members - Latest Member: Mansreign

May 06, 2024, 04:39:09 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)Animating bosses made from multiple objects
Pages: [1] 2
Print
Author Topic: Animating bosses made from multiple objects  (Read 8148 times)
BenH
Level 2
**


Dirty boy, wash your hands!


View Profile WWW
« on: October 31, 2008, 06:01:59 AM »

Couldn't think of a decent name for this topic, but I guess this one is clear enough.

I'm talking about those large bosses you get in games like Gunstar heroes, Contra 4, Alien Soldier, even Noitu Love 2.

I'm guessing most of those games used in-house software to produce the animation sequences that are then played back within the game. I know that Wayforward use a piece of software called "2D Max" which they used for animating the large bosses in Contra 4 on the DS. Unfortunatly google doesn't return anything useful when I search for "2D max", so I'd say it's probably custom made. I'm not sure what Konjak did with Noitu Love 2 since it was made in MMF2, so I'd love to hear how he went about programming the more complex bosses

I was thinking of making my own 2D puppet animation system for this kind of thing, but I haven't fully decided how I'd go about it yet.

Does anyone else know much about this subject? I had a search around on the net, but I couldn't seem to find any software that deals with this kind of animation in a way that games can use it.

Any info is much appreciated, this is a topic that really interests me. Smiley
Logged

Saint
Level 3
***



View Profile WWW
« Reply #1 on: October 31, 2008, 06:11:14 AM »

I have actually *just* written such a system for a project I'm helping out on. Basically it works like a 3D skeleton would, with nodes that have children and keyframes, and can play either FK or IK animations.

Sadly, I didn't find any good applications for it either so I had to write my own - which took a lot of time. Hopefully, it'll save even more time for the artists.
Logged
BenH
Level 2
**


Dirty boy, wash your hands!


View Profile WWW
« Reply #2 on: October 31, 2008, 06:43:35 AM »

Nice :D That's pretty much the way I was thinking of doing it, although probably without the IK since I've not had much luck with that in the past..

Do you have one main timeline, or does each node have its own personal timeline?

Feel free to shed any extra info on the subject Wink
Logged

Saint
Level 3
***



View Profile WWW
« Reply #3 on: October 31, 2008, 06:59:01 AM »

Essentially, for FK animations I have a set of keyframes for each node and animation sequence, and these keyframes contain position, orientation, time, interpolation mode and things like that - I guess that each node has it's own personal timeline in a way, although I haven't made it so that different nodes can have timelines with different lengths. They are all in parent space and sorted in time order (per node), which means I have to work through the skeleton from root to leaves and do a binary search for every node when I evaluate the skeleton at a given time.

This is a slightly inefficient way of doing things, but it's very simple to work with and not very prone to transformation and interpolation errors. It also somewhat reduces the keyframe data needed compared to, say, storing everything in world-space.

I would post a demo of it, but it's not really my call to make so I'll talk to the other guys in the team and see if I can record a video or something.
Logged
BenH
Level 2
**


Dirty boy, wash your hands!


View Profile WWW
« Reply #4 on: October 31, 2008, 07:35:17 AM »

Thanks for the info, a video would be great! Smiley
Logged

Ivan
Owl Country
Level 10
*


alright, let's see what we can see


View Profile
« Reply #5 on: October 31, 2008, 10:49:00 AM »

You can try exporting animation curves from blender. It has a Python API and it's really easy to export the animation curves from it. It took me like one night to write a 3d skeletal animation exporter for it, so for specific 2d curves it should be really really easy.
Logged

http://polycode.org/ - Free, cross-platform, open-source engine.
Wilson Saunders
Level 5
*****


Nobody suspects the hamster


View Profile WWW
« Reply #6 on: October 31, 2008, 01:05:36 PM »

Doesn't flash do this kind of thing? I work more on ths sction script side of things so I wouldn't say I am a flash expert. However if you are just tring to make a FK puppet show, flash has a lot of tools to rotate and move sprites using keyframes and interpolation.
Logged

Play my games at http://monkeydev.com/
Annabelle Kennedy
Awesomesauce
Level 8
*


♥Android Love♥


View Profile
« Reply #7 on: October 31, 2008, 01:36:21 PM »

yeah.. but how do you *get* the data off flash... exporting the whole scene as a gif sequence or something will bloat your filesize and ram footprint through the roof!
Logged
JamesPopStar
Level 1
*


Agent California


View Profile WWW
« Reply #8 on: October 31, 2008, 01:55:57 PM »

I know that Wayforward use a piece of software called "2D Max" which they used for animating the large bosses in Contra 4 on the DS. Unfortunatly google doesn't return anything useful when I search for "2D max", so I'd say it's probably custom made.

Shocked !! Hey Ben, if you don't mind me asking... Where did you hear about 2DMax?

....... I, uh... didn't know that software was public knowledge.
Logged

BenH
Level 2
**


Dirty boy, wash your hands!


View Profile WWW
« Reply #9 on: October 31, 2008, 03:57:35 PM »

Doesn't flash do this kind of thing? I work more on ths sction script side of things so I wouldn't say I am a flash expert. However if you are just tring to make a FK puppet show, flash has a lot of tools to rotate and move sprites using keyframes and interpolation.

Flash can do some of the stuff I'm talking about, but only really for use within flash. I'm talking about software that can export the animation data like keyframe information etc which you can then use in a programming language of your choice.


Shocked !! Hey Ben, if you don't mind me asking... Where did you hear about 2DMax?

....... I, uh... didn't know that software was public knowledge.

I take it you work for Wayforward? I heard about it from someone who did some work on Contra 4. I'm sure it's not a big deal if the name of the software gets out. If the software itself got out, then that might be a problem :D
« Last Edit: October 31, 2008, 04:05:10 PM by BenH » Logged

JamesPopStar
Level 1
*


Agent California


View Profile WWW
« Reply #10 on: October 31, 2008, 04:19:47 PM »

Yep, I work for WayForward in Valencia, California.

I don't really go about telling that to such a specification, but since you called me on it... haha. Smiley

About 2DMax, it is indeed developed in-house, and it's purpose is exactly what you'd expect -- we can have massive characters or bosses made up of many smaller objects such as those seen in Contra 4. (It's usually for Nintendo DS games) Sadly, I can't speak for technical specifics on how it works... But this is the first time I've ever heard it mentioned on a non-internal level, so I was a little surprised. Wink
Logged

BenH
Level 2
**


Dirty boy, wash your hands!


View Profile WWW
« Reply #11 on: October 31, 2008, 04:39:40 PM »

It was interesting to learn such software existed. I really should have guessed that developers would use something like that to achieve the puppet animation thing. For some reason I always imagined them programming that stuff manually, which is quite mad really! WTF

I've definitely been inspired to work on my own animation system since learning of 2DMax's existence. Hopefully if anything comes of it I can release it publicly. Smiley
Logged

Tobasco Panda
Level 2
**



View Profile
« Reply #12 on: October 31, 2008, 06:26:41 PM »

Nintendo has their own sprite tools (Nitro Character) for the DS that do an amazing job of this in such a way that keeps file sizes way down. Basically you can have individual frames that you bring in on a sprite sheet as usual, but from there you can also make layered animation with multiple sprites going and control their offset for each frame. You can also do MULTI layered animation where you bring in different layered animations and control their position etc. Pretty awesome stuff.

KirbyPopStar: Hah! Then you probably know a friend of mine down there who was on the Contra 4 team. Small world, eh?
Logged
Annabelle Kennedy
Awesomesauce
Level 8
*


♥Android Love♥


View Profile
« Reply #13 on: October 31, 2008, 08:30:20 PM »

Yep, I work for WayForward in Valencia, California.

hay wow you're right next to CalArts! i dont go there right now but i did last year!  thats crazy you probably pass it every day! that's cool small world!
Logged
GregWS
Level 10
*****


a module, repeatable in any direction and rotation


View Profile
« Reply #14 on: October 31, 2008, 09:25:50 PM »

Yep, I work for WayForward in Valencia, California.
Crazy!  I guess I should shamefully admit that I still haven't won Contra 4, though I have won easy mode, almost all of the challenges, and I can usually make it to the last level.  Manliest game ever, I must say.  You guys really should just create a game even manlier than that somehow, just to push the testosterone limit even further.

Oh, and I don't know if you're at liberty to say much, but didn't Joakim Sandberg work on that game a bit (konjak here at TIGS)?  I remember hearing that somewhere, but maybe I'm way off; I'd been wondering what exactly he did on it (art of course, but that's pretty general).
Logged
konjak
Level 4
****


Bad to the bone.


View Profile
« Reply #15 on: October 31, 2008, 09:40:37 PM »

For Noitu Love 2 I just programmed where I wanted the pivot points to be, often by using one or two trigonometry calculations to make the parts follow rotations of objects they are attached to, then it was just grinding those variables that tell when stuff should move or not... I didn't use any software to help me (save for MMF's built-in rotation effects, but in real programming people use scripts for that anyway).

It's always a lot of work...

Also, I am a FREELANCER for WayForward!!!
Logged
JamesPopStar
Level 1
*


Agent California


View Profile WWW
« Reply #16 on: October 31, 2008, 11:16:18 PM »

hay wow you're right next to CalArts! i dont go there right now but i did last year!  thats crazy you probably pass it every day! that's cool small world!

Annabelle:  o_o WOW! Seriously? This thread just keeps getting more uncanny. : D

Not only do I pass CalArts daily, it's like a foot away from my house.. so I'm always around there! I have a bunch of connections to CalArts, too. Not to mention every day I'm driving into work down McBean Parkway, I pass it. Were you in the character animation program by any chance? Do you know the instructor Mike Disa? Uh... are you still close to CalArts?? (:

Sorry for the stack of ?'s .. We gotta talk! :3   (Jeeze, the world IS small!)
Logged

GregWS
Level 10
*****


a module, repeatable in any direction and rotation


View Profile
« Reply #17 on: October 31, 2008, 11:41:08 PM »

Also, I am a FREELANCER for WayForward!!!
Yeah, that's what I'd assumed.  Kick ass job on NL2 by the way; you really feel like you're laying waste to your enemies, as one should in such a game.  Grin

For Noitu Love 2 I just programmed where I wanted the pivot points to be, often by using one or two trigonometry calculations to make the parts follow rotations of objects they are attached to, then it was just grinding those variables that tell when stuff should move or not... I didn't use any software to help me (save for MMF's built-in rotation effects, but in real programming people use scripts for that anyway).
I'm probably going to have to do this in GM at some point soon, so it's good to see that the way I was thinking of approaching it (quite similar to this) isn't crazy after all.  Smiley
Logged
bateleur
Level 10
*****



View Profile
« Reply #18 on: November 01, 2008, 02:25:09 AM »

I've been doing this kind of stuff with my current project. The solution I adopted involved describing everything in terms of "poses". A pose is a bit like a keyframe, but doesn't necessarily have to correspond to anything visual. So for example:

Code:
<pose name="punch_right">
 <apply pose="face_angry"/>
 <set joint="right_elbow" value="0.0"/>
 <set joint="right_shoulder" value="90.0"/>
 <apply pose="leftarm_close"/>
</pose>

A few things to note about this: First, "face_angry" is an instruction to use a different face bitmap, it won't change the relative positions of anything. Second, the lack of leg directives in the above pose means that the legs will carry on doing whatever they were doing before when this pose is applied. This greatly reduces the amount of animating work required in some cases (although it does make things less convenient for your project's artists). Thirdly, as with many animation systems the joints will ease onto the given values, not snap there.

I want to add some control over easing patterns and stuff like that, but haven't got round to it yet.

(And the reason it uses XML is to save me development time, not because it's necessarily a good choice.)
Logged

Eclipse
Level 10
*****


0xDEADC0DE


View Profile WWW
« Reply #19 on: November 01, 2008, 04:48:48 AM »

i've always used skeletal animations for that, both in pure 2d, 2.5d and 3d... works like a charm  Wink

Logged

<Powergloved_Andy> I once fapped to Dora the Explorer
Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic