Investigating the animation system
Page 2 of 2 Goto page Previous  1, 2
Radicalus




Posts: 6425

PostPosted: Sun, 5th Feb 2012 23:53    Post subject:
I came across that, too, and that's useful for inspiration about animation blending.
Back to top
garus
VIP Member



Posts: 34197

PostPosted: Sun, 5th Feb 2012 23:53    Post subject:
snip


Last edited by garus on Tue, 27th Aug 2024 21:23; edited 1 time in total
Back to top
Radicalus




Posts: 6425

PostPosted: Sun, 5th Feb 2012 23:54    Post subject:
PumpAction wrote:
Well to be honest, our animation system is SO simple, that we could built our own animation creating tool. This should be fairly easy and share the essential classes with our game...


Animation editor, you mean? Yeah, that's an option, but making it possible to create the assets in tools, that people are already very familiar with is even better. We just have to make it possible to load, what is created in c4d/max/maya/flash, and it'd be great.
Back to top
PumpAction
[Schmadmin]



Posts: 26759

PostPosted: Sun, 5th Feb 2012 23:56    Post subject:
That's why I exported it into several different formats, so that we can analyze which one suits our need Smile


=> NFOrce GIF plugin <= - Ryzen 3800X, 16GB DDR4-3200, Sapphire 5700XT Pulse
Back to top
garus
VIP Member



Posts: 34197

PostPosted: Sun, 5th Feb 2012 23:58    Post subject:
snip


Last edited by garus on Tue, 27th Aug 2024 21:23; edited 1 time in total
Back to top
BearishSun




Posts: 4484

PostPosted: Mon, 6th Feb 2012 00:01    Post subject:
As far as exporting animations goes .X should support keyframe animations fine, unless some kind of new .X format is used for XNA.

You can also try writing your own animation editor Wink Once you have the animation system set up, it won't be too hard to make a simple editor for moving bones and their pivots around. (EDIT: Didn't see you already suggested it Smile )

I think you guys have a pretty good idea of how it should look. That's pretty much how a 3D systems I'm familiar with would translate to 2D.
Back to top
PumpAction
[Schmadmin]



Posts: 26759

PostPosted: Mon, 6th Feb 2012 00:05    Post subject:
That we never developed it, doesn't mean, that we never understood HOW it should work Smug Very Happy

I'm off to watching a movie or so, I feel tired Smile


=> NFOrce GIF plugin <= - Ryzen 3800X, 16GB DDR4-3200, Sapphire 5700XT Pulse
Back to top
garus
VIP Member



Posts: 34197

PostPosted: Mon, 6th Feb 2012 00:06    Post subject:
snip


Last edited by garus on Tue, 27th Aug 2024 21:23; edited 1 time in total
Back to top
Radicalus




Posts: 6425

PostPosted: Mon, 6th Feb 2012 00:10    Post subject:
PumpAction wrote:
That we never developed it, doesn't mean, that we never understood HOW it should work Smug Very Happy

I'm off to watching a movie or so, I feel tired Smile


I understood the theory - but developing it is a whole other dimension though.
Back to top
Radicalus




Posts: 6425

PostPosted: Mon, 6th Feb 2012 00:11    Post subject:
garus wrote:
My idea cries alone in the corner, unnoticed. Crying or Very sad


Easy there soldier! I was about to write, that yes, that's a good idea, especially, since I read other studios approach it the same way.
Back to top
BearishSun




Posts: 4484

PostPosted: Mon, 6th Feb 2012 00:13    Post subject:
As far as interpolating between different animations goes, you just need a Crossfade("NewAnim", crossfadeTime) along side your Play("Anim") method. Crossfade would just linearly interpolate between current animation and the new animation.

First you do keyframe interpolation for current anim, then you do keyframe interpolation for new anim. And then you interpolate between those two results based on relativeCurTime/crossfadeTime.

I'm afraid I don't have any useful links at the moment, but I'll see if I can find something later.
Back to top
Radicalus




Posts: 6425

PostPosted: Mon, 6th Feb 2012 00:46    Post subject:
I am off to bed now, too. Late, work on the morrow.
Back to top
Radicalus




Posts: 6425

PostPosted: Mon, 6th Feb 2012 18:24    Post subject:
Right, I am back home now.

Ok, so I need some help understanding how programs like 3ds max or c4d store their export information about skeletons, transformations, keyframes, and skinning/vertece weighing?
Back to top
BearishSun




Posts: 4484

PostPosted: Mon, 6th Feb 2012 18:45    Post subject:
Not sure how those exact programs do it, but it's normally in this form, more or less:

Skeleton
- Contains a hierarchy of bones
- Bone
---- Name
---- Parent
---- Children[]
---- Transformation matrix relative to parent (In your case just one 3D position vector)
---- Inverse bone matrix (Used for transforming mesh vertices into bone space. You don't need this unless you will be using skinning and vertex weights. In your case the equivalent would be a pivot point for rotation.)

Animation - Contains all animations
- AnimationClip - One specific animation
---- Name
---- Keyframe[]
-----Name of the bone it's applied to
--------ActivationTime[]
--------TransformMatrix[] for that time (or more commonly 3D position, 3D scale and rotation in form of quaternion. In your case you only need rotation in form of one angle)

Mesh
- Visual representation of the model. Each vertex of the mesh contains index to one or bones, referenced by their index, plus a bone weight determining how much that bone influences that certain vertex. You don't need any weight information for you game.
Back to top
Radicalus




Posts: 6425

PostPosted: Mon, 6th Feb 2012 19:01    Post subject:
BearishSun wrote:
Not sure how those exact programs do it, but it's normally in this form, more or less:

Skeleton
- Contains a hierarchy of bones
- Bone
---- Name
---- Parent
---- Children[]
---- Transformation matrix relative to parent (In your case just one 3D position vector)
---- Inverse bone matrix (Used for transforming mesh vertices into bone space. You don't need this unless you will be using skinning and vertex weights. In your case the equivalent would be a pivot point for rotation.)

Animation - Contains all animations
- AnimationClip - One specific animation
---- Name
---- Keyframe[]
-----Name of the bone it's applied to
--------ActivationTime[]
--------TransformMatrix[] for that time (or more commonly 3D position, 3D scale and rotation in form of quaternion. In your case you only need rotation in form of one angle)

Mesh
- Visual representation of the model. Each vertex of the mesh contains index to one or bones, referenced by their index, plus a bone weight determining how much that bone influences that certain vertex. You don't need any weight information for you game.


Thanks mate! I was pretty clear on the theory part myself, I just didn't want to parse through all the data, that Pumpy's export was, for example. I might just use the predefined content load pipeline.
Back to top
Radicalus




Posts: 6425

PostPosted: Mon, 6th Feb 2012 21:16    Post subject:
Pumpy, mind getting on Steam, so we could chat a bit?
Back to top
remyleblau
Banned



Posts: 2039
Location: Poland
PostPosted: Thu, 9th Feb 2012 18:07    Post subject:
so, how it is going? there were almost no posts in 2-3 days :X
Back to top
PumpAction
[Schmadmin]



Posts: 26759

PostPosted: Thu, 9th Feb 2012 18:18    Post subject:
Cause I'm not ill anymore and had to actually work xD and work out :'(


=> NFOrce GIF plugin <= - Ryzen 3800X, 16GB DDR4-3200, Sapphire 5700XT Pulse
Back to top
Radicalus




Posts: 6425

PostPosted: Thu, 9th Feb 2012 22:36    Post subject:
I'm really overdue with some heavy work, it needs my exclusive focus until mid of next week. Life sucks. I did have some success with my experimenting, will post soon.
Back to top
Page 2 of 2 All times are GMT + 1 Hour
NFOHump.com Forum Index - Project Codenamed Cuppah Joe's Goto page Previous  1, 2
Signature/Avatar nuking: none (can be changed in your profile)  


Display posts from previous:   

Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB 2.0.8 © 2001, 2002 phpBB Group