gibberingmouther_1
Member
|
animated panel
blender has the ability to interpolate between frames when it animates something ...
there's probably 2d software out there that does the same thing
let's say panel is in state 1, then the player clicks on it, and an animation shows, and then it is in state 2 and the user can again interact with it
usually panels are static except for a drag and drop feature maybe, though i can think of some exceptions in commercial games
is it currently possible to do this in Esenthel? i know it's not something that would be in a lot of game
since there is a variable frame rate, i figure it wouldn't look right if i just did a set of static drawings for example, assuming that were possible ... so there would need to be the ability to assimilate data from 3rd party animation software
|
|
02-26-2014 02:09 AM |
|
Pixel Perfect
Member
|
RE: animated panel
There is support for 3D skeletal animation. These will be interpolated between frames. But I get the impression you are talking about 2D images and I don't think interpolation is supported between a series of animated static images if that is what you are meaning.
However, you could have control over the animation rate of displayed images so if you have sufficient images to ensure a smooth animation then you can keep the animation rate constant (so long as the overall frame rate doesn't drop below the proposed animation rate). If you are meaning you would like to vary the animation rate then slow image rates without interpolation would cause visual issues.
|
|
02-26-2014 06:21 PM |
|
gibberingmouther_1
Member
|
RE: animated panel
this can't be such an uncommon thing in fantasy/scifi rpgs
oblivion had an instance of this. most of the fantasy genre pc games i'm aware of are mmos but i haven't played many of those so i don't have an idea of how their panels typically look.
visual theme is very important in the fantasy rpg genre, u know, so this is a problem. i'm not really complaining since esenthel is perfect otherwise. i could have used a simpler engine that would have given me more control and done a lot of extra unnecessary wheel reinvention...
to give u an idea of what i mean. let's say u were making a "steampunk" game and when you clicked on the hotkey bar panel there were a bunch of gears that moved and then a different set of hotkeys displayed. (this is not what i'm trying to do in my game but it's the same situation illustrating when you would want animated panels.) or you clicked on your character sheet in a fantasy game and you wanted to have it so there was like a highlight around one of the ability icons.
actually some of this could be done easily if you just have support for the .gif or .png format but that doesn't help when you want the actual panel to animate. like the panel is in shape A and over a couple of frames it changes into shape B.
so definitely a feature request if the engine doesn't already support this, in the spirit of improving esenthel as well as b/c i want my panels to look right.
|
|
02-27-2014 12:34 AM |
|
Rubeus
Member
|
RE: animated panel
Keep in mind that if you interpolate a 2D image, it's going to be computationally very expensive, if it works at all. What you see in the AAA titles I can almost guarentee is one of more of:
1) using 2D images in frame sequences and swapping them out every x milliseconds(like EE's ImageAtlas)
2) using 2D images and doing simple transforms like rotations
3) using 3D objects and rendering to a texture
|
|
02-27-2014 05:45 PM |
|
gibberingmouther_1
Member
|
RE: animated panel
okay i'm just going to do a set of 2d images. having an extra layer of software to "interpolate" between images was a stupid idea but i figure more streamlined is usually better ...
i guess i could use one of the "draw" functions and then tell the program to wait and then update at an appropriate interval? i don't need too many frames since this is for one panel transitioning into another and you wouldn't want that to take too long
|
|
02-28-2014 02:18 AM |
|
Rubeus
Member
|
RE: animated panel
Define "Streamlined" :-P
displayedTime += Time.d();
if(displayedTime > timeToDisplay)
{
theImage = Images(UID(...)); // Next frame
displayedTime = 0;
}
theImage.draw(....);
Very simple.
|
|
02-28-2014 02:42 PM |
|