• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

Stage Mechanics for the BBR

Isatis

If specified, this will repl[0x00000000]ce the
Premium
BRoomer
Joined
Dec 18, 2008
Messages
10,253
Location
San Francisco, CA
NNID
reverite
So the BBR has reached out to us in getting some data for stages, more namely collisions and several things in the STDT both known and unknown. Here are the things we'll need:



Collisions


If we can get a drawing from BrawlBox on the visible collisions (platform and otherwise), and overlay them onto an image of the stage itself, including the death boundaries itself. If stages have transformations with different collisions, we'll include that as well.

Brawlbox drawings should be easy on some static stages (Battlefield and Japes) but hard on others (Yoshi's Island Brawl) and LOLWTF on a few (Pictochat).



Timer/Respawn Rate (STDT and Stage Rel)


http://opensa.dantarion.com/wiki/Stage_Rel_Constants
http://forums.kc-mm.com/index.php?topic=15618.msg270728


If you don't know what STDT are, "STDT are floating points or hex values that control certain things in a stage. Not all stages have them, though. STDT are usually in MiscData[20] [in Brawlbox]." This would include setting a limit for how much a platforms in Skyworld can do before they break (42%). In the Stage Rel (the little "rel" files in module, used for hacking) also feature similar traits; Pokemon Stadium 1's neutral form only lasts for 2400 frames, as described in the rel file.

We'll need data from those stages if possible, but preferred to be taken from STDT/Rel. Now those might be left to the hackers in the Smash Lab so unless you want to get your hands dirty I'll leave those to those that already know what they're doing ;)
 

Toomai

Smash Ace
Joined
Aug 17, 2006
Messages
769
Location
Someplace in Canada
I can do stage drawings. A bit unconventional though. Will post an example in a day or two.

Possibly constants as well, though I'm much better at getting the numbers and guessing what they are than hacking them in and trying everything out.
 
Joined
May 3, 2009
Messages
7,190
Wow, great work Toomai. What I like the most are the distances and how they're in exact numbers. Again, awesome job.
 

DeLux

Player that used to be Lux
Joined
Jun 3, 2010
Messages
9,302
Not just exact number. Exact numbers to the thousandth in terms of accuracy lol
 

MonkUnit

Project M Back Roomer
Joined
Nov 29, 2009
Messages
6,075
Location
Eau Claire, Wisconsin
Toomai, can you make a post on how to make that sort of image? If you could do that, that would be really helpful. What you did seems to be the best way to do the pictures + collisions.

As for STDT stuff, don't forget about the public STDT thread. http://www.smashboards.com/showthread.php?t=274439

This should probably be put in the OP.
[collapse=Stages that have STDT]Stages that have MiscData[20]

STGCRAYON
STGDOLPIC
STGDONKEY
STGDXBIGBLUE
STGDXGARDEN
STGDXONETT
STGEARTH
STGFAMICOM
STGFZERO
STGGREENHILL
STGGW
STGHALBERD
STGHOMERUN
STGICE
STGJUNGLE
STGKART
STGMANSION
STGMARIOPAST_00
STGMARIOPAST_01
STGMETALGEAR_00
STGMETALGEAR_01
STGMETALGEAR_02
STGNORFAIR
STGPALUTENA
STGPICTCHAT
STGPIRATES
STGPLANKTON
STGSTADIUM
STGGDIFF
STGTENGAN_1
STGTENGAN_2
STGTENGAN_3
STGVILLAGE_00
STGVILLAGE_01
STGVILLAGE_02
STGVILLAGE_03
STGVILLAGE_04[/collapse]
 

Toomai

Smash Ace
Joined
Aug 17, 2006
Messages
769
Location
Someplace in Canada
Toomai, can you make a post on how to make that sort of image?
I'll try:
  1. Programs required: Blender, BrawlBox, Brres Viewer, Inkscape
  2. Use BrawlBox to extract the stage model(s) and textures from the stage file.
  3. Use Brres Viewer to export the stage model(s) as an MD5 file.
  4. Import the MD5 file into Blender. Then:
    • Scale down by a factor of 10. (Not necessary but makes things easier to work with.)
    • Create one material for each texture; apply to each mesh until the stage looks fully textured from a side-on view.
    • Use an orthogonal camera to take a PNG RGBA image. Record the camera's scale and location relative to the stage's center.
  5. For the zoomed-in image:
    • Make a new SVG in Inkscape. Import the PNG and make the document the same size.
    • Calculate the image scale and image origin (that is, how many pixels equates to one unit and where the stage's [0,0] point is).
    • Use stage collision data obtained from BrawlBox to place quarter-circles (from 0 to 90) at the vertex coordinates. Labelling them might be a good idea.
    • Draw 5px lines between vertices for the edges by drawing an approximate line and then moving each vertex into the correct spot by copy-pasting the coordinates of the quarter-circle vertexes. Colour them based on the terrain. Label them too.
    • Duplicate the edges, Convert Stroke To Path, delete all but one side, make it 2px thick, and colour the result based on the collision type (floor/left wall/ceiling/right wall). If it's a soft platform make it a dotted line. (Not yet sure what to do for semisoft platforms.)
    • To put the spawn points in, place quarter-cirlces at the correct points and then make then half-circles. (This works because of how object coordinates work with circle segments.)
    • Put your guide objects (quarter-circle vertex marks, their labels) in a new layer if you haven't already and hide them.
    • Export as a PNG.
  6. For the zoomed-out image:
    • Make a new SVG in Inkscape. Size the document so that the proportions are equal to those of the blast lines.
    • Calculate the image scale and image origin (that is, how many pixels equates to one unit and where the stage's [0,0] point is).
    • Import the stage image; shrink and reloate it so that it's in the right place relative to the image borders (the blast lines).
    • Draw two black rectangles at 25% opacity: one the size of the image, the other the size of the camera zone. Boolean Difference the two to get a passepartout.
    • Put a circle where the revival platform location is (or are). Use the same "position quarter-circle, make it a different-filled circle" trick as above.
    • Calculate and fill in various distances, using 1px lines with arrowhead 1M for the lines and Arial 20pt bold italic while with black border for the text.
    • Draw 10px-tall rectanges to mark item drop zones.
    • Export and a PNG.
 

Yikarur

Smash Master
Joined
May 29, 2007
Messages
4,595
Location
Germany
more work than your mind has patience for!

have fun guys!

but the image is incredible :)

E: how long is the main platform of battlefield? that's not included in the image =(
 

T-block

B2B TST
Joined
Jan 11, 2009
Messages
11,841
Location
Edmonton, AB, Canada
That looks beautiful, Toomai.

You're missing one scene though. There are five scenes... you're missing what I call "spacecraft", which has a bunch of alien looking ships.

Also, your graph for Battleships is not consistent with my observation. Are these numbers extracted from Brawl's files, or just based on empirical evidence?
 

Toomai

Smash Ace
Joined
Aug 17, 2006
Messages
769
Location
Someplace in Canada
Lylat Cruise is split into five files:
  • STGSTARFOX_ASTEROID - contains the background for the asteroids scene and the Arwing shooting said rocks.
  • STGSTARFOX_BATTLESHIP - contains the background for the large space battle scene.
  • STGSTARFOX_CORNERIA - contains the background for the Corneria scene.
  • STGSTARFOX_GDIFF - contains the warp graphics, the Smash Taunt graphics and data, and the stage data itself.
  • STGSTARFOX_SPACE - contains the background for the space scene, involving the Star Fox/Star Wolf dogfight.
I am guessing that STGSTARFOX_SPACE appears as both the empty space scene and the dogfight scene.

The tilt graphs are from the stage files; each background file has a bone called "Slope" that determines the stage's tilt. Technically the graphs should be curves as opposed to straight lines, but I don't know what kind of interpolation formula Brawl uses.
 

MonkUnit

Project M Back Roomer
Joined
Nov 29, 2009
Messages
6,075
Location
Eau Claire, Wisconsin
Are there any animations that control the tilt by editing the "Slope" bone? Or is it STDT or .rel related? I'm sure you don't know this but it's worth asking. :)
 

Toomai

Smash Ace
Joined
Aug 17, 2006
Messages
769
Location
Someplace in Canada
Are there any animations that control the tilt by editing the "Slope" bone? Or is it STDT or .rel related? I'm sure you don't know this but it's worth asking. :)
If I didn't know then I wouldn't have been able to do those graphs.

The tilt of the stage, as far as I can tell, is determined by the animation of the Slope bone, which is part of the animation of the backgrounds.
 
Top Bottom