[Request]Alpha Channel Animation Object
Hi, I have a cool looking fire animation that I made. It has a birth, a loop, and a death animation. I put it all together just to see how big the filesize is. The whole animation put together is 262 frames, each one is 512x512. I encoded it with Xvid, (doesn't look bad at all), and I exported it to 2 different animations, 1 for RGB, and a grayscale one for the alpha value. The two animations' sizes combined comes to only 972kb.
For a huge animation like this, this is extremely good. But unfortunately, MMF2's active object converts everything to a lossless file when it is imported. I'm not even going to bother trying to do that, it would lead to an absolutely massive filesize, and a huge performance hit too. I could use the animation object to play back the animation, but it doesn't have a way to use alpha channels, since movie files don't have alpha channels with them (hence my earlier decision to create 2 files for RGB and Alpha.). So basically, what I'm asking for is a way to use compressed video in MMF2, with 2 movie files, for RGB and Alpha.
I desperately need this if I hope to have my games look as good as possible.
Re: [Request]Alpha Channel Animation Object
If you extract your animations as a ton of PNG files, then MMF2 will automatically see the number at the end, and ask if you want to export the animation.
For example:
Object000.png
[Import Animation]
Object001.png
Object002.png
Object003.png etc, are all detected and imported.
PNG's are good because MMF2 will automatically split the color channel and alpha channel into the correct places.
Re: [Request]Alpha Channel Animation Object
But the problem with that is that I have roughly 200 512x512 images. They may have a small file size outside of MMF2, but MMF2 converts them all to lossless files. Each one is roughly 360kb, so that comes to... 92MB.
Re: [Request]Alpha Channel Animation Object
Man, I've posted this issue 2... maybe 3 times! I'm kind of tired of going through the same cycle (I post up, some other guy posts up something that contradicts what I had already said, I post up correction, the topic dies). Isn't there any possibility of this happening??? If not, then 2d games are dead to me. Good bye.
Re: [Request]Alpha Channel Animation Object
I don't know if this will help you but, .ccn files, set to maximum compression, get rather good file size reduction. The compression varies, but I have seen fifty-percent or more. Considering that .ccn files are both for subapplications AND Vitalize! use, I think it really optimized for file size.
Have you considered the option of using subapps to accomplish this for your project? A while back, we had a user doing comparisons of .ccn compression to other forms and he was showing statistics that made .ccn look rather attractive when comparing quality to the great compression ratio. I thought that was impressive.
Introducing lossy compression into MMF does not seem to be practical to me, though I understand why you want to get smaller files in this case.
Re: [Request]Alpha Channel Animation Object
Nah, just compressing the files isn't going to make it take up less RAM, which is really the main issue here.
Why doesn't it seem practical? It solves all the problems. Even if it isn't an AVI file, if there was still the possibility to use tons of png images while keeping them compressed, that would be sooooo much better. Right now, I have to face the dilemma of either good graphics (large file size, and therefore, big download and slow gameplay) or crusty old 3 fps graphics (low self esteem, and the game not being all it could be).
Re: [Request]Alpha Channel Animation Object
Okay Okay, so instead of me sitting here whining about all the problems in the world, I actually tried to do it myself. I tried to take advantage of the 'load frame' action on the active object, but even then it still converts it to a lossless image.
Since it's fire I'm trying to achieve, I even tried just importing the RGB Xvid animation (in the animation object), THAT preserves the compression, but like before, no alpha channel. So I tried turning on the additive ink effect, well, this is OK, but it completely gets rid of the smoke in my fire animation.
Here's the baby you're killing!
http://img26.picoodle.com/img/img26/...em_2c75394.jpg
It's part of the large fire animation set I was talking about earlier. I made it as part of my (unannounced) fire and smoke graphics library I was making for the Clickteam community to use, free of charge. But if the animation file size is this big, well it seems a little bit useless now.
Re: [Request]Alpha Channel Animation Object
I don't know if this problem is specific to MMF2. Seriously. Maybe we could find a way to improve on it, but isn't this the nature of computing itself at this stage?
No matter how you slice it, you can't pull a rabbit out of hat with this, and that's just my personal experience. Maybe there is something new I haven't heard of though? The bit depth of your image is a major factor in the memory usage, uncompressed.
There is a price to pay: If you have a 1MB picture and you compress it, that will give you smaller file size, but the memory used is a different issue. If you use lossy compression, the memory use will be less, (information has been thrown out) but it still won't be as small as your file and the picture is degraded and will most likely be closer to the original, but that all depends on the image complexity.
If you yous lossless compression, then the picture will be displayed using as much memory as it originally did.
If you compress the graphics in memory, (which sounds like what you are getting at) then the better the compression ratio, the more of a cpu hit and delay in decompressing it on the fly. With a very large set of graphics, one could expect a decompression delay which goes back to slowing down your app.
Memory usage is a common dilemma for artists and 2D and 3D games, so it is not unique to MMF2 at all.
There are various techniques to use to cut down size, but it depends on what you are willing to sacrifice: color depth, dimensions, deleting frames, (every other) lowering framerate, etc.
So, any ideas of how you think getting large, high quality animations to work the way you want them to without loading them from disk as needed? What can we do about this in your estimation based on what I noted above?
Has any research been done on it or are there examples of software that accomplishes this in ways that differ from what I have related?
Maybe our programmers or users have more to say on this. This is just my take on it.
Re: [Request]Alpha Channel Animation Object
In fully commercial games, care is normally taken to use compressed graphics formats that graphics cards can handle natively, i.e. DXT. The compression ratio isn't as good as some other formats, but because the graphics card understands it, the textures can be kept in memory compressed.
Re: [Request]Alpha Channel Animation Object
Quote:
Originally Posted by Novabrain
If you compress the graphics in memory, (which sounds like what you are getting at) then the better the compression ratio, the more of a cpu hit and delay in decompressing it on the fly. With a very large set of graphics, one could expect a decompression delay which goes back to slowing down your app.
But that delay wouldn't be as much as it would be trying to display a lossless image right? (I really don't know)
I've just noticed that if I try to play an AVI file that is uncompressed, it plays hundreds of times slower than if it was compressed.