How to Make Non-Flat Images like 3D Styled Stages/Panels for Parallax

maxman

Well-known member
I checked with 3D movement for stages in Volcanic's Rocket Viper 2.

I plan to make a panel entity in parallax via camera for players and enemies to move. I know the 3D thingy exists in Rocket Viper 2 and I wanna make it more similar to SF2, but I don't want idle frames of stages with u3d scripts which rely on 2 or more frames. One example is the Square stage. I want it to act like water with rock 1 when players and enemies move back and forth. For example, if two stand on panel, the panel shouldn't be scrolled but stay normal. I want it to remain intact until they start moving anywhere, left, right, away, etc. (Need the scrolling to be subsequent to players, enemies, npcs, etc., like u3d script.)

Code:
name	panello
type	panel
speed	5


anim idle
@script
	changelevelproperty("water",1);
	changelevelproperty("rock", 1);
@end_script
	loop	1
	offset	0 244
	delay	9
	frame	data/bgs/stageb/panel.png

I dunno what to do.

Do I need globalvars?

I wanna make something similar to this stage.

https://www.youtube.com/watch?v=-4tT4KInD5Y

[attachment deleted by admin]
 
How am I going to skew layers like this one in the video without relying too much on (watermode from) bglayers/fglayers? I'm trying to figure out a way to calculate beginsize and endsize in watermode 3 along with xratio as a parallax, but I get lost every time I try without knowing how to calculate the decimals of those (beginsize, endsize, and xratio). I know doing flat images is easy, but what about the non-flat ones?

 

Attachments

  • dhalsim.pcx00010000.png
    dhalsim.pcx00010000.png
    7.9 KB · Views: 2
Last edited:
the only way to do that with vertical sprites, is to make a drawmethod script,
i shared in another thread one that does sprite/entity scaling in relation to z axis values, shared by @bWWd .

i suppose that a with few tweaks & some portions of the rocket viper script this script can do distortions on a decoration/panel entity made up of a single vertical sprite (or idle animated sprite).

a few caveats to conside tho...
the script will be a bit complex, especially if you want the distortion to take into account camera height & camera angles too.
 
Last edited:
in a nutshell, the script should distort or skew a sprite, thing is, it might be pretty much a similar process of making an animation in its most brutal form
(lines code that one after the other distort the sprite 10, 15 , 30 times) if you do it "manually"

the other drawback is that im not sure if openbor could distort a sprite based in 4 points, have not tested enough to find out
 
How am I going to skew layers like this one in the video without relying too much on (watermode from) bglayers/fglayers? I'm trying to figure out a way to calculate beginsize and endsize in watermode 3 along with xratio as a parallax, but I get lost every time I try without knowing how to calculate the decimals of those (beginsize, endsize, and xratio). I know doing flat images is easy, but what about the non-flat ones?
for MUGEN i used grid images & trial and error along with other grid front layers & back layers to adjust the values in relation to parallax, after a while you get used to it over time & do the numbers almost by instinct. There are formulas, (in mugen) but i am afraid i still can't understand them
 
the only way to do that with vertical sprites, is to make a drawmethod script,
i shared in another thread one that does sprite/entity scaling in relation to z axis values, shared by @bWWd .
Could you please point out the thread to me of what you're talking about? I'd like to see how that scaling is done with script or such. In Photoshop terms, that's skewing. In Gimp, it's shearing I think.

i suppose that a with few tweaks & some portions of the rocket viper script this script can do distortions on a decoration/panel entity made up of a single vertical sprite (or idle animated sprite).

There's one of the panels I saw in one of the final stages in that mod, but I can't figure out how the cage floor was done and scrolled as a parallax. Not sure if it was from watermode or script, but I believe it's not from watermode.
 
Last edited:
ill post the script here, make sure to play around with it a bunch to see how functional it is.

it has little use currently bacause as far as i understand, it does not scale hitboxes...

take in account that it seems that this script its " zooming" the entity, (if this is the correct script)

##############################
void main()
{
void self = getlocalvar("self");
int z = getentityproperty(self, "z");
void sp = getentityproperty(self,"speed");
int ypos = openborvariant("ypos");
int zoom = 500 + (z - 800 ) ;
int zspeed = 0.5 + (z / 250-1600/500/2/2 ) ;
drawstring(110,380,0,"SPEED_-_" + sp/100000);
drawstring(110,410,0,"ZOOM_-_" + zoom/100000);
if(zoom < 0) {zoom = 0;}
setdrawmethod(self, 1, zoom , zoom , 0, 0, 0, -1);
changeentityproperty(self, "speed", zspeed );
}
#################################

for more information , check the last two pages of this thread:
 
I understand that script works (for him), but from my testing for my mod or any mod from others, it doesn't work. I am in a 2D scrolling platform now, not in a 3D/2.5D walking area. I also tried with a Beat 'Em Up walking area whether I add ondrawscript or update(d).c, and it doesn't work. Tried it with player's ondrawscript and it crashes before the default select screen. Even with update.c or updated.c, I used the same code, but used the player property as entity (since update.c doesn't recognize getlocalvar("self") as an entity). I found out that some supposed zoom value from setdrawmethod caused the crash. I cannot get it to work without watching that video @bWWd made.
 
. I found out that some supposed zoom value from setdrawmethod caused the crash. I cannot get it to work without watching that video @bWWd made.
the video was just the mandalorian walking towards the screen and then walking away, it had no instructions as far as i can remember (i think) Bwwd has another mando video he posted just for fun.

my personal experimets have produced no results at all, since i barely undrestand script syntax
 
@oldyz: I was testing it in my Captain Commando mod for the first time without the need of openborvariant (using build from Nov. 16 2016) and it works. I found out OV caused the crash on my part. Thank you for the share. I'll try to figure how to make them smaller or bigger a bit, but the sprite is way too big for the screen resolution. I can try to manage the zoom size.
 
Last edited:
These parallax effects eat cpu cycles for breakfast then brush their teeth with cpu cycles even longer.Id use them sparingly.
 
I am having trouble with scalex and shiftx parts from the setdrawmethod function in ondrawscript when I'm trying to scroll like parallax.

Here's the model that has each floor of one frame per animation.

Code:
name GroundSF
type none #panel
speed 5
palette none
scroll 0.5 #0.5
antigravity 100
facing 1
ondrawscript data/bgs/groundsf.c

anim idle # Dhalsim

    loop 1
    offset 576 1
    delay 8
    #drawmethod shiftx 128
    frame data/bgs/dhalsim/dhalsim.pcx00010000.png

anim follow1 # Zangief
#@script
void self = getlocalvar("self");
int x = getentityproperty(self, "x");
int scroll = getentityproperty(self, "scroll");
//int hres = openborvariant("hresolution")/2;
//int 

//setdrawmethod(self, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0);
//changedrawmethod(self, "shiftx", scroll);
//setdrawmethod(entity, flag, scalex, scaley, flipx, flipy, shiftx, alpha, colourmap, fillcolour, rotate, rotateflip, transparencybg);
@end_script
    loop 1
    offset 441 1
    delay 8
    #drawmethod shiftx -2
    frame data/bgs/zangief/zangief.pcx00040000.png
    frame data/bgs/zangief/zangief.pcx00040000.png
    frame data/bgs/zangief/zangief.pcx00040000.png

I understand that shiftx has its max value of 256 which equals to 1. Maybe some calculating to xratios for delta could help like 1/256 equals 0.00390625 or 128/256 equals 0.5 (a half value)? I looked at the scrolling property thread, but I don't know whether I could use model or background because setdrawmethod is only used for entites. Is there a rescale or shiftx for stage layers, as in background or foreground layers?

This is its ondraw script. GroundSF.c:

C:
void main(){
    scrolling();
}

void scrolling()
{
void self = getlocalvar("self");
int x = getentityproperty(self, "x");
int z = getentityproperty(self, "z");
void sp = getentityproperty(self,"speed");
float scroll = getentityproperty(self, "scroll");
float xmin = openborvariant("scrollminx");
float xmax = openborvariant("scrollmaxx");
//int zoom = 500 + (x - 1060 );
int zoom = 0 + (x + 10);
//int zoom = 0;

//int zoom = 500 + (z - 700 ) ;
//int zspeed = 0.5 + (z / 250-1600/500/2/2 ) ;
//drawstring(110,180,0,"SPEED_-_" + sp);
drawstring(110,190,0,"ZOOM_-_" + zoom);
drawstring(110,200,0,"X_-_" + x);
//if(x == 160){ scroll = 0;}
//if(x < 160){scroll == -0.3;}
//if(x > 160){scroll == 0.3;}
if(x < 160){ x=0; }

if(zoom < 0) {zoom = xmin;}
//if(zoom < 0){zoom < xmin;}
//if(zoom > 0){zoom > xmax;}
//setdrawmethod(self, 1, zoom , zoom , 0, 0, 0, -1);

//setdrawmethod(self, 1, zoom, zoom, 0, 0, x, 0, 0, 0, 0, 0, 0);

setdrawmethod(self, 1, zoom, zoom, 0, 0, x);
//setdrawmethod(self, 1, 0, 0, 0, 0, x);

/*
 0 - entity
 1 - flag
 2 - scaleX
 3 - scaleY
 4 - flipX
 5 - flipY
 6 - shiftX
 7 - alpha
 8 - colourmap
 9 - fillcolour
 10 - rotate
 11 - rotateflip
 12 - transparencyBG
*/

//setdrawmethod(self, 1, 0, 0, 0, 0, 0.5, 0, 0, 0, 0, 0, 0); // setdrawmethod(entity, flag, scalex, scaley, flipx, flipy, shiftx, alpha, colourmap, fillcolour, rotate, rotateflip, transparencybg)
//changeentityproperty(self, "speed", zspeed );
changeentityproperty(self, "speed", 2);
}

Here's the level for it.

Code:
#### PLEASE USE BOTH THESE IMAGES AS HUD FOR YOUR PLAYER(S) UNLESS IT'S BONUS STAGE #######
fglayer data/sprites/hud_base.png -1 1 0 3 3 1 1 1 1 1 0 0 0 0 0 0     # 0
fglayer data/sprites/hud.png -1 1 0 3 3 1 1 1 1 1 0 0 0 0 0 0        # 1
###########################################

fglayer data/bgs/zangief/zangief.pcx00010000.png -63 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 # 2

bglayer data/bgs/zangief/zangief.pcx00000000.png 0.365 0 0 0 1 1 1 1 1 0 0 0 0 0 0 # BG layer not counted as animated background layer

################ ANIMATED TOP CROWD ################
fglayer data/bgs/zangief/zangief.pcx00020000.png -63 0 0 64 14 1 1 1 1 1 0 0 0 0 0 0 # 3
fglayer data/bgs/zangief/zangief.pcx00020001.png -63 0 0 64 14 1 1 1 1 1 0 0 0 0 0 0 # 4
fglayer data/bgs/zangief/zangief.pcx00020002.png -63 0 0 64 14 1 1 1 1 1 0 0 0 0 0 0 # 5
fglayer data/bgs/zangief/zangief.pcx00020000.png -63 0 0 64 14 1 1 1 1 1 0 0 0 0 0 0 # 6
fglayer data/bgs/zangief/zangief.pcx00020001.png -63 0 0 64 14 1 1 1 1 1 0 0 0 0 0 0 # 7
fglayer data/bgs/zangief/zangief.pcx00020002.png -63 0 0 64 14 1 1 1 1 1 0 0 0 0 0 0 # 8
fglayer data/bgs/zangief/zangief.pcx00020000.png -63 0 0 64 14 1 1 1 1 1 0 0 0 0 0 0 # 9
fglayer data/bgs/zangief/zangief.pcx00020001.png -63 0 0 64 14 1 1 1 1 1 0 0 0 0 0 0 # 10
fglayer data/bgs/zangief/zangief.pcx00020002.png -63 0 0 64 14 1 1 1 1 1 0 0 0 0 0 0 # 11
fglayer data/bgs/zangief/zangief.pcx00020000.png -63 0 0 64 14 1 1 1 1 1 0 0 0 0 0 0 # 12
fglayer data/bgs/zangief/zangief.pcx00020001.png -63 0 0 64 14 1 1 1 1 1 0 0 0 0 0 0 # 13
fglayer data/bgs/zangief/zangief.pcx00020002.png -63 0 0 64 14 1 1 1 1 1 0 0 0 0 0 0 # 14
####################################################

############## ANIMATED BOTTOM CROWD ###############
fglayer data/bgs/zangief/zangief.pcx00030000.png -63 0 0 51 82 1 1 1 1 1 0 0 0 0 0 0 # 15
fglayer data/bgs/zangief/zangief.pcx00030001.png -63 0 0 51 82 1 1 1 1 1 0 0 0 0 0 0 # 16
fglayer data/bgs/zangief/zangief.pcx00030002.png -63 0 0 50 82 1 1 1 1 1 0 0 0 0 0 0 # 17
fglayer data/bgs/zangief/zangief.pcx00030000.png -63 0 0 51 82 1 1 1 1 1 0 0 0 0 0 0 # 18
fglayer data/bgs/zangief/zangief.pcx00030001.png -63 0 0 51 82 1 1 1 1 1 0 0 0 0 0 0 # 19
fglayer data/bgs/zangief/zangief.pcx00030002.png -63 0 0 50 82 1 1 1 1 1 0 0 0 0 0 0 # 20
fglayer data/bgs/zangief/zangief.pcx00030000.png -63 0 0 51 82 1 1 1 1 1 0 0 0 0 0 0 # 21
fglayer data/bgs/zangief/zangief.pcx00030001.png -63 0 0 51 82 1 1 1 1 1 0 0 0 0 0 0 # 22
fglayer data/bgs/zangief/zangief.pcx00030002.png -63 0 0 50 82 1 1 1 1 1 0 0 0 0 0 0 # 23
fglayer data/bgs/zangief/zangief.pcx00030000.png -63 0 0 51 82 1 1 1 1 1 0 0 0 0 0 0 # 24
fglayer data/bgs/zangief/zangief.pcx00030001.png -63 0 0 51 82 1 1 1 1 1 0 0 0 0 0 0 # 25
fglayer data/bgs/zangief/zangief.pcx00030002.png -63 0 0 50 82 1 1 1 1 1 0 0 0 0 0 0 # 26
#######################################################

#fglayer data/bgs/zangief/zangief.pcx00040000.png -93 0 0 -213 181 1 1 1 1 1 0 3 0.92 1.3 1 0# 19 - Floor #### -93 0 0 -108 181 1 1 1 1 1 0 0 0 0 0 0
#fglayer data/bgs/zangief/zangief.pcx00040000.png -93 0 0 -213 181 1 1 1 1 1 0 3 1 1.6 0 0
bglayer data/bgs/zangief/zangief.pcx00040000.png 0.2441 0 -213 181 1 1 1 1 1 0 3 1 1.6 0 0
fglayer data/bgs/zangief/zangief.pcx00050000.png -63 0 0 330 151 1 1 1 1 1 0 0 0 0 0 0 # 20 - Hydrant
#fglayer data/bgs/zangief/zangief.pcx00060000.png 30 0 0 450 0 0 1 1 1 1 0 0 0 0 0 0 # 21 - Chains
#fglayer data/bgs/zangief/zangief.pcx00070000.png 30 0 0 0 150 1 1 1 1 1 0 0 0 0 0 0 # 22 - Gate

panel        data/bgs/zangief/panel.gif
direction    both
notime        1
settime        0
order        a
updatescript    data/bgs/zangief/zangief.c
#music    data/music/zangief.ogg 2647014.3
#music    data/music/zangief1.ogg 2330288.1 #52.961*44100
#music    data/music/zangief2.ogg 677243.7 #15.055*44100
#nofadeout 1
levelscript    data/levels/vs/pvp.c

# xratio/zratio - 0.5 same scroll like background; 1 same scroll like panel
# panel type entity - 10 times xratio or zratio speed for background if speed is 5; e.g. speed 5 type panel - move like background

#bglayer 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
# 0 - path
# 1 - xratio
# 2 - zratio
# 3 - xposition
# 4 - zposition
# 5 - xspacing
# 6 - zspacing
# 7 - xrepeat
# 8 - zrepeat
# 9 - transparency
# 10 - alpha
# 11 - watermode (if set to 3, next 3 parameters become beginsize, endsize and perspective; if set to 1, water effect will play)
# 12 - amplitude (if watermode set to 1, not 3) / beginsize (if watermode set to 3, not 1) 
# 13 - wavelength (if watermode set to 1, not 3) / endsize (if watermode set to 3, not 1) 
# 14 - wavespeed (if watermode set to 1, not 3) / perspective (if watermode set to 3, not 1) 
# 15 - bgspeedratio

# In perspective mode
#~{perspective} defines z depth effect it should have

#    0 = No effect (default)
#    1 = Perspective & tile
#    2 = Perspective & stretch

#~{bgspeedratio} determines the moving ratio of this bglayer relative to main background. Defaults to 0 (no movement).


spawn    camera 1
@script
void main(){
    void self = getlocalvar("self");
    int width = openborvariant("levelwidth");
    int half = width/2;
    changeentityproperty(self, "position", half, 0, 0);
}
@end_script
coords 350 200
at 0

spawn   RondeText 1
@script
void main(){
    void self = getlocalvar("self");
    int vres = openborvariant("vresolution");
    int ypos = openborvariant("ypos");
    int y = ypos+vres/2;
    int width = openborvariant("levelwidth")/2;
//    int half = width/2;
    changeentityproperty(self, "position", width-5, 210, y-26);
}
@end_script
coords  15 10 #Altitude value should be 6 or higher for spawning text entity
at    0

spawn    no1 1
alias _
coords    -1120 210
at    0

spawn GroundSF 1
@script
void main(){
    void self = getlocalvar("self");
    int width = openborvariant("levelwidth")/2;
    changeentityproperty(self, "direction", 1);
    changeentityproperty(self, "animation", openborconstant("ANI_FOLLOW1"));
    changeentityproperty(self, "position", width/2, 50, 0);
}
@end_script
coords 1 1
at 0

spawn RefPlays 1 # This entity is VERY important!!!
@script
void main(){
    void self = getlocalvar("self");
    performattack(self, openborconstant("ANI_FOLLOW3"));
}
@end_script
coords 160 200
at 0

Take a look at the scrolling floor behind both fighters above.


Is there any way I can optimize memory from eating CPU cycles?
 
@maxman here is a Mugen tutorial to calculate the delta. But it requires a good grasp in math because its kinda complicated

The person who wrote this is a Mugen master stage designer btw.

But keep in mind that Mugen has no Z axis, so this calculation works for each line. Since characters walks in Z axis, you will need the calculate the factor for each line.
 
Last edited:
Man, this is so complicated. I used to be good in math but that one is beyond my knowledge. Does it require like pre-Calculus or Calculus or something? What pattern should I learn for making the delta?

@DCurrent: Does that floor above need to be in drawsprite? I'm trying to apply the scrolling floor based on the Z area, but I have no idea on how to use delta math for it. I know setdrawmethod is involved with the entity. I took a look at this one here. But I cannot apply it with affines for the layer. bglayer/fglayer is easy only when it comes with watermode 3 set.
 
Man, this is so complicated. I used to be good in math but that one is beyond my knowledge. Does it require like pre-Calculus or Calculus or something? What pattern should I learn for making the delta?

@DCurrent: Does that floor above need to be in drawsprite? I'm trying to apply the scrolling floor based on the Z area, but I have no idea on how to use delta math for it. I know setdrawmethod is involved with the entity. I took a look at this one here. But I cannot apply it with affines for the layer. bglayer/fglayer is easy only when it comes with watermode 3 set.

I'm not even sure what you're doing TBH. I read through the thread but there's so much over-complexity and misinformation going around I wouldn't even know where to begin. I suggest you start from the beginning and explain what exactly you are trying to do. If it's an effect from another game, provide a video example and point out the exact part of it you want.

DC
 
I don't know how I can explain it better about this but there's only one goal for it: Make a single wider and longer sprite to scroll beautifully like parallax every time characters move while the camera pans ala Street Fighter 2, Fatal Fury, and some others. I can't use perspective with watermode 3 from either both layers the because the sprite layer itself makes a difference. It only works when I use flat images like the ones from Super Street Fighter 2 HD Remix, and that is no problem. I'm trying to apply a single non-flat sprite as an affine without using setdrawmethod or (b/g)layers. setdrawmethod requires me to call a certain entity. I was playing around with shiftx but everytime I use it, it becomes false or it doesn't show. I'm completely lost with using setdrawmethod. Maybe drawsprite can work? But I'm gonna need to do extra work and I am not good with the complicated math.

This transition of scrolling parallax from Dhalsim's stage looks perfect to the naked eye, but it's almost close to look perfect if you scroll all the way from left to right (and vice versa) after checking the result. (Close to it or almost looking perfect as a result probably depending on the screen resolution.) I was cropping one panel into all 64 images as 1-pixel high layers. It was quite tedious for me to change each xratio and xposition per layer for a better-looking parallax.

Code:
####### SEPARATE LAYERS FROM FLOOR ########
bglayer data/bgs/dhalsim/panellayer/panel001.png -0.01335 0 -264 176 1 1 1 1 1 0 0 0 0 0 0 # 1
bglayer data/bgs/dhalsim/panellayer/panel002.png -0.0300 0 -262 177 1 1 1 1 1 0 0 0 0 0 0 # 2
bglayer data/bgs/dhalsim/panellayer/panel003.png -0.0450 0 -260 178 1 1 1 1 1 0 0 0 0 0 0 # 3
bglayer data/bgs/dhalsim/panellayer/panel004.png -0.0600 0 -258 179 1 1 1 1 1 0 0 0 0 0 0 # 4
bglayer data/bgs/dhalsim/panellayer/panel005.png -0.0700 0 -256 180 1 1 1 1 1 0 0 0 0 0 0 # 5
bglayer data/bgs/dhalsim/panellayer/panel006.png -0.0800 0 -255 181 1 1 1 1 1 0 0 0 0 0 0 # 6
bglayer data/bgs/dhalsim/panellayer/panel007.png -0.0900 0 -253 182 1 1 1 1 1 0 0 0 0 0 0 # 7
bglayer data/bgs/dhalsim/panellayer/panel008.png -0.1050 0 -251 183 1 1 1 1 1 0 0 0 0 0 0 # 8
bglayer data/bgs/dhalsim/panellayer/panel009.png -0.1150 0 -249 184 1 1 1 1 1 0 0 0 0 0 0 # 9
bglayer data/bgs/dhalsim/panellayer/panel010.png -0.1300 0 -247 185 1 1 1 1 1 0 0 0 0 0 0 # 10
bglayer data/bgs/dhalsim/panellayer/panel011.png -0.1450  0 -245 186 1 1 1 1 1 0 0 0 0 0 0 # 11
bglayer data/bgs/dhalsim/panellayer/panel012.png -0.1500  0 -244 187 1 1 1 1 1 0 0 0 0 0 0 # 12
bglayer data/bgs/dhalsim/panellayer/panel013.png -0.1650  0 -242 188 1 1 1 1 1 0 0 0 0 0 0 # 13
bglayer data/bgs/dhalsim/panellayer/panel014.png -0.1750  0 -240 189 1 1 1 1 1 0 0 0 0 0 0 # 14
bglayer data/bgs/dhalsim/panellayer/panel015.png -0.1900  0 -238 190 1 1 1 1 1 0 0 0 0 0 0 # 15
bglayer data/bgs/dhalsim/panellayer/panel016.png -0.2000  0 -236 191 1 1 1 1 1 0 0 0 0 0 0 # 16
bglayer data/bgs/dhalsim/panellayer/panel017.png -0.2150  0 -234 192 1 1 1 1 1 0 0 0 0 0 0 # 17
bglayer data/bgs/dhalsim/panellayer/panel018.png -0.2250  0 -233 193 1 1 1 1 1 0 0 0 0 0 0 # 18
bglayer data/bgs/dhalsim/panellayer/panel019.png -0.2350  0 -231 194 1 1 1 1 1 0 0 0 0 0 0 # 19
bglayer data/bgs/dhalsim/panellayer/panel020.png -0.2500  0 -229 195 1 1 1 1 1 0 0 0 0 0 0 # 20
bglayer data/bgs/dhalsim/panellayer/panel021.png -0.2650  0 -227 196 1 1 1 1 1 0 0 0 0 0 0 # 21
bglayer data/bgs/dhalsim/panellayer/panel022.png -0.2750  0 -225 197 1 1 1 1 1 0 0 0 0 0 0 # 22
bglayer data/bgs/dhalsim/panellayer/panel023.png -0.2900  0 -223 198 1 1 1 1 1 0 0 0 0 0 0 # 23
bglayer data/bgs/dhalsim/panellayer/panel024.png -0.2950  0 -222 199 1 1 1 1 1 0 0 0 0 0 0 # 24
bglayer data/bgs/dhalsim/panellayer/panel025.png -0.3100  0 -220 200 1 1 1 1 1 0 0 0 0 0 0 # 25
bglayer data/bgs/dhalsim/panellayer/panel026.png -0.3250  0 -218 201 1 1 1 1 1 0 0 0 0 0 0 # 26
bglayer data/bgs/dhalsim/panellayer/panel027.png -0.3350  0 -216 202 1 1 1 1 1 0 0 0 0 0 0 # 27
bglayer data/bgs/dhalsim/panellayer/panel028.png -0.3500  0 -214 203 1 1 1 1 1 0 0 0 0 0 0 # 28
bglayer data/bgs/dhalsim/panellayer/panel029.png -0.3550  0 -213 204 1 1 1 1 1 0 0 0 0 0 0 # 29
bglayer data/bgs/dhalsim/panellayer/panel030.png -0.3700  0 -211 205 1 1 1 1 1 0 0 0 0 0 0 # 30
bglayer data/bgs/dhalsim/panellayer/panel031.png -0.3850  0 -209 206 1 1 1 1 1 0 0 0 0 0 0 # 31
bglayer data/bgs/dhalsim/panellayer/panel032.png -0.3950  0 -207 207 1 1 1 1 1 0 0 0 0 0 0 # 32
bglayer data/bgs/dhalsim/panellayer/panel033.png -0.4100  0 -205 208 1 1 1 1 1 0 0 0 0 0 0 # 33
bglayer data/bgs/dhalsim/panellayer/panel034.png -0.4250  0 -203 209 1 1 1 1 1 0 0 0 0 0 0 # 34
bglayer data/bgs/dhalsim/panellayer/panel035.png -0.4300  0 -202 210 1 1 1 1 1 0 0 0 0 0 0 # 35
bglayer data/bgs/dhalsim/panellayer/panel036.png -0.4450  0 -200 211 1 1 1 1 1 0 0 0 0 0 0 # 36
bglayer data/bgs/dhalsim/panellayer/panel037.png -0.4550  0 -198 212 1 1 1 1 1 0 0 0 0 0 0 # 37
bglayer data/bgs/dhalsim/panellayer/panel038.png -0.4700  0 -196 213 1 1 1 1 1 0 0 0 0 0 0 # 38
bglayer data/bgs/dhalsim/panellayer/panel039.png -0.4850  0 -194 214 1 1 1 1 1 0 0 0 0 0 0 # 39
bglayer data/bgs/dhalsim/panellayer/panel040.png -0.4950  0 -192 215 1 1 1 1 1 0 0 0 0 0 0 # 40
bglayer data/bgs/dhalsim/panellayer/panel041.png -0.5050  0 -191 216 1 1 1 1 1 0 0 0 0 0 0 # 41
bglayer data/bgs/dhalsim/panellayer/panel042.png -0.5200  0 -189 217 1 1 1 1 1 0 0 0 0 0 0 # 42
bglayer data/bgs/dhalsim/panellayer/panel043.png -0.5300  0 -187 218 1 1 1 1 1 0 0 0 0 0 0 # 43
bglayer data/bgs/dhalsim/panellayer/panel044.png -0.5400  0 -185 219 1 1 1 1 1 0 0 0 0 0 0 # 44
bglayer data/bgs/dhalsim/panellayer/panel045.png -0.5550  0 -183 220 1 1 1 1 1 0 0 0 0 0 0 # 45
bglayer data/bgs/dhalsim/panellayer/panel046.png -0.5700  0 -181 221 1 1 1 1 1 0 0 0 0 0 0 # 46
bglayer data/bgs/dhalsim/panellayer/panel047.png -0.5800  0 -180 222 1 1 1 1 1 0 0 0 0 0 0 # 47
bglayer data/bgs/dhalsim/panellayer/panel048.png -0.5900  0 -178 223 1 1 1 1 1 0 0 0 0 0 0 # 48
bglayer data/bgs/dhalsim/panellayer/panel049.png -0.6050  0 -176 224 1 1 1 1 1 0 0 0 0 0 0 # 49
bglayer data/bgs/dhalsim/panellayer/panel050.png -0.6150  0 -174 225 1 1 1 1 1 0 0 0 0 0 0 # 50
bglayer data/bgs/dhalsim/panellayer/panel051.png -0.6300  0 -172 226 1 1 1 1 1 0 0 0 0 0 0 # 51
bglayer data/bgs/dhalsim/panellayer/panel052.png -0.6450  0 -170 227 1 1 1 1 1 0 0 0 0 0 0 # 52
bglayer data/bgs/dhalsim/panellayer/panel053.png -0.6500  0 -169 228 1 1 1 1 1 0 0 0 0 0 0 # 53
bglayer data/bgs/dhalsim/panellayer/panel054.png -0.6600  0 -167 229 1 1 1 1 1 0 0 0 0 0 0 # 54
bglayer data/bgs/dhalsim/panellayer/panel055.png -0.6750  0 -165 230 1 1 1 1 1 0 0 0 0 0 0 # 55
bglayer data/bgs/dhalsim/panellayer/panel056.png -0.6900  0 -163 231 1 1 1 1 1 0 0 0 0 0 0 # 56
bglayer data/bgs/dhalsim/panellayer/panel057.png -0.7050  0 -161 232 1 1 1 1 1 0 0 0 0 0 0 # 57
bglayer data/bgs/dhalsim/panellayer/panel058.png -0.7100  0 -160 233 1 1 1 1 1 0 0 0 0 0 0 # 58
bglayer data/bgs/dhalsim/panellayer/panel059.png -0.7250  0 -158 234 1 1 1 1 1 0 0 0 0 0 0 # 59
bglayer data/bgs/dhalsim/panellayer/panel060.png -0.7350  0 -156 235 1 1 1 1 1 0 0 0 0 0 0 # 60
bglayer data/bgs/dhalsim/panellayer/panel061.png -0.7500  0 -154 236 1 1 1 1 1 0 0 0 0 0 0 # 61
bglayer data/bgs/dhalsim/panellayer/panel062.png -0.7650  0 -152 237 1 1 1 1 1 0 0 0 0 0 0 # 62
bglayer data/bgs/dhalsim/panellayer/panel063.png -0.7800  0 -150 238 1 1 1 1 1 0 0 0 0 0 0 # 63
bglayer data/bgs/dhalsim/panellayer/panel064.png -0.7850  0 -149 239 1 1 1 1 1 0 0 0 0 0 0 # 64

This is why I avoid doing separated images from one panel layer.

Here's what I mean with the examples for flat and non-flat images.

Flat image:
Ground.png

Not-flat image:
dhalsim.pcx00010000.png
 
Last edited:
Back
Top Bottom