TGB Isometric Add-On Pack - Part 6: nxAnimator!
by Neo Binedell · 04/26/2007 (6:38 pm) · 42 comments

- TGB Iso Builder -
Continued from my previous blog post
I wanted to support composite visuals for the iso builder from the start for things like character clothing, weapons, items, etc and while prototyping it I realized that it would be useful for core TGB stuff as well (I have seen many a post about the need for overlay sprites or synchronised animations). And so I designed a nice generic system that could be used by both the core stuff as well as the iso builder and nxAnimator was born.
(Perhaps a new pack for core TGB???)
First a vid and a screenie to get us into the swing of things:
(Rather low quality I'm afraid to keep the size down)
nxAnimator_alpha_wmv.zip

The workhorse of the system is the visual. Each visual can contain one or more channels that are overlaid at render time. Each channel can have one or more slots each of which contains an image map and frame list to use. Now while only one slot can be active per channel one can have as many slots as one needs and swap between them at runtime.
Each visual maintains animation state and has a base line duration and frame count to which all channels are either stretched or looped to fill. The animation can be played backward or forward, paused, play a specific frame or goto that frame and pause, loop/pingpong/or automatically switch the the next/prev slot when it reaches the first/last frame, etc. Rather similar to the way macromedia flash stuff works e.g:
- play();
- pause();
- isPlaying();
- getCurrentFrame();
- setCurrentFrame();
- getCurrentTime();
- setCurrentTime();
- getPlayDirection()
- setPlayDirection()
- togglePlayDirection()
- gotoAndStop( frame )
- gotoAndPlay( frame )
- nextFrame();
- prevFrame();
- etc
It also has a plethora of callbacks like onFrameChange, onAnimationCycle, onPlayStateChange, onSlotChange, etc, to allow the user to hook into the play state and update game objects as required. A visual slot does not have to be animated however, it can be used simply as a frame buffer to store graphics and show the correct frame as needed, etc.
Something else I'm working on is custom keyframe channels which will allow cool things like per-frame collision polies, animated channel offsets, scale, which effectively provides a timeline animation system similar to flash.
Now these are just workhorse classes and to use them you need a container that will let the visual update and render itself at the appropriate time, and so enters our new best friend, wait for it - nxSprite. Derived from t2dSceneObject it acts just like its poorer cousins t2dStaticSprite/t2dAnimatedSprite but with all the visual power underneath.
The more I worked on this the more it became clear to me that this was a tremendously powerful way to do things as it could be used in so many different ways, for example:
- A visual with e.g. 4 channels, a channel for the base character, a channel for pants, a channel for shirt, a chanel for hat, and each channel contains e.g 3 slots with different colored and shaped versions of each article of clothing. At runtime the character can switch between the slots as it picks up items, or according to user choices, etc.
- Channels can be active as needed and only shown when state requires it, e.g. you have an open roof tent base channel and hide the tent roof channel when a character enters the tent.
- It is a convenient way to store all related animations for e.g. a character together, e.g. stand/walk/run slots that can be easily switched as required.
- Instead of having multiple state graphics for e.g. a truck that can have either some logs, or drums, or people or whatever on the back you simply have a base truck channel and slots containing just the overlay graphics for the stuff on the back of the truck. Saves a ton of texture space as well as allowing mixing overlays, etc.
More as the system progresses...
As for the iso builder, it got overhauled (again) to use the new visual stuff, a mini-map gui control and I've added element libraries that can be packaged up and shared and also makes things easier to manage. A built-in datablock manager takes care of tracking, reloading and managing datablocks as required as well as saving,loading and anything else datablocks get up to.
As I spent most of my time lately working on the iso editors and they are getting up to scratch I can now turn my attentions to fixing and adding features to the engine as well as implementing mini games to test and suggest new features, so the next update should have some more interesting piccies of the engine in action ;p
Some other things I have been working on are the sprite builder ( nxSpriteBuilder??? ;) which allows you to import/crop/offset/convert and join images into one image or set of images, automatically create cell or key image maps for them as well as do custom processing like replacing background colors with alpha, removing bad alpha outlines, and converting images with alpha channels to pre-multiplied alpha that can be rendered with additive blending (and so do not require sorting, etc), etc, etc, etc. All things that you could do manually that are just a pain in the butt and that saves time when going back and forth between art creation and utilizing it in TGB.
And that as they say, is it, ladies and germs... tune in next time when we watch all of this in action in the next adventure of the iso builder err... adventure...
#22
There is nothing platform specific in the iso code although some of the editor stuff might utilize newer stuff, I'm not sure off hand. I will be giving it a thorough sweep once the code base is settled and see if there are any issues building with the different versions and platforms etc.
So I would say indeed I will put in the time to make it work with whatever supported versions are available.
06/08/2007 (1:01 pm)
@Jackson:There is nothing platform specific in the iso code although some of the editor stuff might utilize newer stuff, I'm not sure off hand. I will be giving it a thorough sweep once the code base is settled and see if there are any issues building with the different versions and platforms etc.
So I would say indeed I will put in the time to make it work with whatever supported versions are available.
#23
If you need any Mac testers, I'm using a intel imac running OS X 10.4.8. I've got a crapload of isometric renders for an RTS I'm working on as well! Drop me an email at jacksonhyde (at) hotmail dot com if you need..
06/09/2007 (5:35 am)
Fantastic! When I posted my question I didn't realize betas for TGB 1.5 had been released - hopefully everything will be stable by the time your ISO stuff is finished.If you need any Mac testers, I'm using a intel imac running OS X 10.4.8. I've got a crapload of isometric renders for an RTS I'm working on as well! Drop me an email at jacksonhyde (at) hotmail dot com if you need..
#24
06/11/2007 (4:07 pm)
i was wondering, NEO, when are you gonna release this ISO pack?... and, how much would it cost?... im pretty much interested in it, so i'd like to get my hands on it, and give it a try....
#25
If so, I wanted to put my two cents in.
Couple updates back someone asked if this could allow set or arbitrary map rotations to occur. What came to mind is the original Final Fantasy Tactics on PSX, where pressing the R2/L2 buttons caused the map to rotate 90 degrees, allowing you to get a different view of the map, maybe to get a better view of something occluded by buildings/scenery.
I'd like to toss another coin into that feature's cup. I realize it might be a niche feature, but personally it would end up saving me months on my own projects.
Yes, it would require multiple angle renders for pretty much every tile object, but if you made it an optional feature, then it could be planned for and used in projects where it's needed, or ignored when it's not.
In any case, I am waiting with baited breath for this to see a final or even a public beta release.
I am hoping that GG allows binary releases, as I only have the basic Indie of TGB, and it would be a tossup between getting Pro or getting this, and so far my projects don't need the features of Pro.
Final question. Do your current builds of this engine work with the 1.5B of TGB? I would hate to see something this beautiful loose out cause of changes between 1.1.3 and 1.5.
06/18/2007 (12:21 am)
I realize this particular .plan and blog is a little old, but I was just curious what the current status of the NX Iso Builder is? Are you still plugging away at nifty, cool, and must-have features?If so, I wanted to put my two cents in.
Couple updates back someone asked if this could allow set or arbitrary map rotations to occur. What came to mind is the original Final Fantasy Tactics on PSX, where pressing the R2/L2 buttons caused the map to rotate 90 degrees, allowing you to get a different view of the map, maybe to get a better view of something occluded by buildings/scenery.
I'd like to toss another coin into that feature's cup. I realize it might be a niche feature, but personally it would end up saving me months on my own projects.
Yes, it would require multiple angle renders for pretty much every tile object, but if you made it an optional feature, then it could be planned for and used in projects where it's needed, or ignored when it's not.
In any case, I am waiting with baited breath for this to see a final or even a public beta release.
I am hoping that GG allows binary releases, as I only have the basic Indie of TGB, and it would be a tossup between getting Pro or getting this, and so far my projects don't need the features of Pro.
Final question. Do your current builds of this engine work with the 1.5B of TGB? I would hate to see something this beautiful loose out cause of changes between 1.1.3 and 1.5.
#26
Yup, still pluggin away at nifty, cool and must-have features ;p
I might give the rotation stuff some slack as the map elements all have defined orientations and so it would be relatively easy to add an offset based on view direction - will look into it.
As for binary releases I have spoken to GG and it seems to be a go, so yes there will be both Pro and binary releases.
Current build of the engine is up to date with the latest 1.5 svn head release which should be available soon ;p
@Ehrlicmann:
I unfortunately don't have a release date as yet, neither on cost I'm afraid.
06/18/2007 (5:11 am)
@Trace:Yup, still pluggin away at nifty, cool and must-have features ;p
I might give the rotation stuff some slack as the map elements all have defined orientations and so it would be relatively easy to add an offset based on view direction - will look into it.
As for binary releases I have spoken to GG and it seems to be a go, so yes there will be both Pro and binary releases.
Current build of the engine is up to date with the latest 1.5 svn head release which should be available soon ;p
@Ehrlicmann:
I unfortunately don't have a release date as yet, neither on cost I'm afraid.
#29
matt
08/10/2007 (1:45 pm)
is there any news about it? i will buy it immediatelly once it is released!matt
#30
09/16/2007 (6:52 pm)
Wow - I've read the entire Iso Add-On set of updates. Your fans are legion, and with good reason! Add me to the list of parties interested in the next update and eventual release...
#31
Something I look for in every isometric game I get my hands on (I've been an iso-phile since Cadaver on the Amiga 500 in 1990) to being about to replicate the pseudo-isometric tricks in Diablo 2, where the different tile levels are scaled slightly differently, to create a genuinely impressive sense of 3D (with the tops of towers swaying independently of their background as you move). I thought this was actually the best feature of Diablo 2, even if many didn't notice it....
Any chance of this wonderful style of trickery being included?
09/20/2007 (2:23 pm)
This is all very exciting! Certainly my most anticipated project.Something I look for in every isometric game I get my hands on (I've been an iso-phile since Cadaver on the Amiga 500 in 1990) to being about to replicate the pseudo-isometric tricks in Diablo 2, where the different tile levels are scaled slightly differently, to create a genuinely impressive sense of 3D (with the tops of towers swaying independently of their background as you move). I thought this was actually the best feature of Diablo 2, even if many didn't notice it....
Any chance of this wonderful style of trickery being included?
#32
Sorry for not replying before but I've been away from all this for a while what with my new daughter and another one on the way for Dec, and been hacking away at a ton of contracts to pay for it all ;p
My mate Paul who's doing some cool modelling, feedback and proto testing is slowly going bananas because of this not getting any further, something that prompted me to want to take a step back and start simple and will post a plan about the status and my plans for it soon to let everyone know whats up.
09/24/2007 (7:14 am)
Wow, good to see theres still some interest!Sorry for not replying before but I've been away from all this for a while what with my new daughter and another one on the way for Dec, and been hacking away at a ton of contracts to pay for it all ;p
My mate Paul who's doing some cool modelling, feedback and proto testing is slowly going bananas because of this not getting any further, something that prompted me to want to take a step back and start simple and will post a plan about the status and my plans for it soon to let everyone know whats up.
#33
Congratulations about the new daughter-on-the-way! Sounds like it will be a busy (but hopefully still merry) Christmas.
Thanks so much for keeping us updated about the progress of your isometric add-on pack -- still really looking forward to purchasing your pack when it becomes available.
Cheers!
--clint
09/24/2007 (7:17 am)
Very good to hear you're still alive and kicking, Neo. :) I know how other projects can get in the way, but I'm really glad that you're still wanting to move forward on this.Congratulations about the new daughter-on-the-way! Sounds like it will be a busy (but hopefully still merry) Christmas.
Thanks so much for keeping us updated about the progress of your isometric add-on pack -- still really looking forward to purchasing your pack when it becomes available.
Cheers!
--clint
#34
Oh Im past the banana's stage, im just plain "kookoo" now ;p
But I am hanging out to post some screenies of this great stuff in Iso!
09/25/2007 (2:30 am)
"My mate Paul who's doing some cool modelling, feedback and proto testing is slowly going bananas because of this not getting any further"Oh Im past the banana's stage, im just plain "kookoo" now ;p
But I am hanging out to post some screenies of this great stuff in Iso!
#35
09/25/2007 (2:46 am)
gogo, show us that great stuff "kookoo" lol
#36
Keep up the awesome work!
10/30/2007 (1:20 pm)
This is pretty much exactly what I'm looking for. I'll be there whenever you release it, Neo. I do hope it's sooner rather than later, but I understand how life can get in the way of the cool things sometimes, heh. With that said, I'd like to hear about anymore progress that you've made recently.Keep up the awesome work!
#37
Neo, do you have thoughts on the Torque2 announcement? Does it at all affect the future of the TGB Isometric Add-On Pack? The isometric pack looks so cool it would be extremely tempting to not upgrade just to stay with it, but I fear that the need for core-engine fixes/updates would propel me away from it.
Thanks!
--clint
10/30/2007 (1:38 pm)
What with Torque2 on the medium-to-near-horizon, I'm not even sure how long this isometric pack will be out before its usefulness is limited to a legacy engine.Neo, do you have thoughts on the Torque2 announcement? Does it at all affect the future of the TGB Isometric Add-On Pack? The isometric pack looks so cool it would be extremely tempting to not upgrade just to stay with it, but I fear that the need for core-engine fixes/updates would propel me away from it.
Thanks!
--clint
#38
Indeed I have been overrun, overwrought and over... everything-elsed ;p
My workload should be calming down to a panic in about 2 weeks at which time I will be giving the iso pack some loving.
@Clint:
As I said before with all the engine shifts going on I was thinking to rollback to basics and just get a basic version out so people could use it so long, perhaps under EA or whatever.
As for Torque 2 I will be moving the iso stuff over quite quickly once it is released, etc. No problems there ;p
Really the ONLY thing keeping me away from iso stuff now is time, time, time... I am just as excited if not more about it as I was when I started, so thanks to everyone for being so (extremely) patient!
I promise to get an update up soon as I can to let everyone know whats cooking and where I'm going with stuff.
10/30/2007 (3:37 pm)
@Jerrod:Indeed I have been overrun, overwrought and over... everything-elsed ;p
My workload should be calming down to a panic in about 2 weeks at which time I will be giving the iso pack some loving.
@Clint:
As I said before with all the engine shifts going on I was thinking to rollback to basics and just get a basic version out so people could use it so long, perhaps under EA or whatever.
As for Torque 2 I will be moving the iso stuff over quite quickly once it is released, etc. No problems there ;p
Really the ONLY thing keeping me away from iso stuff now is time, time, time... I am just as excited if not more about it as I was when I started, so thanks to everyone for being so (extremely) patient!
I promise to get an update up soon as I can to let everyone know whats cooking and where I'm going with stuff.
#39
btw, hope everything goes well with you and your family.
matt-
12/18/2007 (4:43 pm)
and how about now? is there any news?btw, hope everything goes well with you and your family.
matt-
#40
01/09/2008 (2:47 pm)
iso? anynews? 
Torque Owner Jackson Hyde
Just a quick question, apologies if it's been asked before - do you plan on building this for the Mac? I imagine it's compilable for both platforms, but if there's 1.3 features used in there us mac users will be (for lack of a better word) screwed!