Different Character Sizes

Started by Samwise, Sun 09/07/2006 14:41:01

Previous topic - Next topic

Samwise

Hello everybody,

This is my first post here, so treat me gentlyÃ,  :)

I'm starting to build a "realistic" AGS game, with characters and backgrounds based on real photos taken from videos.

Due to the nature of the work process, my characters are at different sizes - some are 500 pixels high, some are 400, 200, 100 and so on.Ã,  Now, I'd like to use them in the game without having to resize all of them to an equal size, because:
1. if I'll make them all 400px or 500px the game will be very large (I have like 35 characters...)
2. if I'll make them all 200px it will harm the graphics quality (the characters change their size according to their location on the screen - kind of 3D style, so it's important that they'll be in high quality).

Do you possibly know of a way to upload the pictures to AGS in their original (and different) sizes, and adjust every character size separately within AGS?

By the way, all the pictures are in BMP format.Ã,  Is that the best file type to use, or should I convert them to another one?

Ashen

Character.Manual Scaling property and Character.Scaling, perhaps?

If so - Read the manual before posting in future (and I'll lock this thread).
If not, can you explain your problem a bit more? Why are you drawing characters at different sizes? Why not just use the 'Continuous Scalling' option on the walkable area?

As far as AGS in concerned the file type used doesn't matter (well, other that JPG will probably muck up the quality), as it does it's own compression on graphics anyway, it just depends how much harddrive space you're willing to use to store the originals (they're not needed by the engine once you've imported them, but you should ALWAYS keep a backup). To post them on the forums, however, I think GIF or PNG is best - check posts in Critics Lounge for more details.
I know what you're thinking ... Don't think that.

Samwise

Ashen, thanks for your feedback!

I'm not DRAWING characters - I'm actually using separate frames I'm taking out from streaming videos (this is a really awesome method, BTW).  The characters are all photographed, so this is why each of the characters have a different size.

I could use the ManualScaling property option, but my problem is that multiple characters (with different sizes) need to move across the screen and their size should change their size accordingly.  Is it possible to determine different kinds of dynamic character scaling?  For example, to have one character zoom level between 70 and 80, and the second character (in the same screen) between 100 and 130?

Ashen

Not easily. However, since the CharacterScaling property can allow characters to have different scales on the same coordinates, nevermind the same screen, it's definitely possible. You'd just need to check the character's Y-coord in repeatedly_execute, and alter the scale accordingly. I believe tiagocorreia's AreaScale module uses it to achieve non-default scaling types. Perhaps you could modify that code? (Or maybe the module already does what you're after - never used it myself.)
I know what you're thinking ... Don't think that.

Gilbert

You may also try this quick module I just mucked up, hope it does what you want.

Samwise

Thanks a lot.

Since I'm only going to try it in a month or so, please tell me if case you try it and it works.


Samwise

Quote from: Gilbot V7000a on Mon 10/07/2006 10:38:59
You may also try this quick module I just mucked up, hope it does what you want.

Hi,

I tried to use this module and got this message:

Error: run_text_script1: error -6 running function
'repeatedly_exectue':
Error: Array index out of bounds (index 4, bounds 0..3)
in Individual Character Scaling (line 48)

Help?

Gilbert

Well when I first tested it it worked, but it would crash for AGS V2.72, due to the fact that the module codes tried to access characters with out-of-bound ids (probably newer versions of AGS has better checks).

I'm too lazy to modify it to work better at the moment, but a quick and dirty fix is to change line 48 of the module code to:
    if (char_scales[ii]!=100) if (character[ii].Room==player.Room) {

Samwise

Quote from: Gilbot V7000a on Mon 21/08/2006 12:42:45
Well when I first tested it it worked, but it would crash for AGS V2.72, due to the fact that the module codes tried to access characters with out-of-bound ids (probably newer versions of AGS has better checks).

I'm too lazy to modify it to work better at the moment, but a quick and dirty fix is to change line 48 of the module code to:
Ã,  Ã,  if (char_scales[ii]!=100) if (character[ii].Room==player.Room) {

Sorry for the delay, but - thanks a lot.

SMF spam blocked by CleanTalk