top of page

- Stages -

Capture.PNG

    Welcome! In this section we will be talking about Stages and see the basic attributes that we can change about them! This is an advanced Section and it is highly assumed that you checked all the previous Documentations (especially Fighters).

    

    Stages are way easier to handle than Fighters and such but it is still important to know how the other parts of the Framework work to go through this section faster! So let's start!
 

    PS: It is alright if some information below don't make any sense yet. We will have an example for almost all of them in the next Section!

 1- Introduction

    Stages are Blueprints just like Fighters and Projectiles. As the name suggests, they contain the data needed for Fighting Zone to have a visible background. However visuals are not the only things they contain.

    Stages are also responsible about setting Fighter and Camera Movement Limits, containing interactable Stage Objects, having Team Spawn locations, setting shadow and reflection values and more! However, despite having a lot of functionality, they are all pretty easy to set up as almost everything is automated and ready from get go!

    One thing to note is, 2D and 3D Stages have no difference in between. Unreal Engine games are always in 3D space. It is up to the developer to give the feeling of a 2D Stage by using only flipbooks or 3D by using Static Meshes! 

1.PNG
2.PNG

 2- Components

     Now let's start by checking out the Components!

  • First lets take a small tour about what each Components are doing. Some components are editable while some are system-only, which should NOT be touched and handled by UF2D itself.

  • We will be going through everything in "Bsc3D_Temp_Stage" and video shows where to find and open it!

  • PS: You will see some Stages having "_Stage" prefix but keep in mind that this is not a must.

3.PNG
  • Let's first talk about the Team Starts. As the name suggests, these Scene Components contain the Main Character Spawn Points for each Team. Sidekicks (other Team members) spawn just slightly behind them.
     

  • These components are MOVABLE. It is important to keep these spawn points inside the Camera Visual Range, which will get to later.

  • Next we have is Core Rotator. This Component holds everything else which are mostly visual components and platforms.
     

  • Visual/Gameplay Data holds sub-comps that are meant to store 2D or 3D Objects.
     

  • Stage Object Holder holds Blueprints that are interactable such as breakable Barrels.

4.PNG
  • Flipbook Holder holds the 2D Flipbook Components
     

  • Render Target holds any possible Camera is meant to render a certain portion of the Stage. This part is advanced so we will cover it later. If you know to how to have render targets in Unreal Engine, please link all the items needed to this component.
     

  • Effect Holder can be used to contain visual effects such as Niagara although we won't be using it much.
     

  • Mesh Holder is meant to hold all the 3D Static Meshes that your Stage will be containing.

  • If you prefer you can expand the view on those components and see that we got a few of items attached!
     

  • We will get to adding and removing them soon enough.

  • Boundary Data is pretty important. As the name suggests, it contains the boundaries for the gameplay.
     

  • Stage Boundaries are for Gameplay Actors such as Fighters and Projectiles.
     

  • World Boundaries are only there so that an Object can't go endlessly towards a direction even when it is told to go out of the Stage Boundaries. As a developer you don't need to adjust these as they expand accordingly to Stage Boundaries.
     

  • Camera Boundaries limit the Stage Camera movement.
     

  • These Boundaries might be invisible at first but we will get to the point where we can see and edit them later in this section!

4.PNG
  • Respawn Data holds the targets that contains the locations of possible safe locations if a Fighter got more than one Life Point left and that it can come back to game. Can be left empty if no such gameplay is used.

4.PNG
  • Platform Data holds the Stage Objects that are acting like Platforms that Fighters and alike can stand over them.
     

  • Kill Zone Data holds the Stage Objects that causes instant KO incase a Fighter touches them.
     

  • Camera Data generally holds only another component named Display Zone, which shows the location and render zone of the Camera which is editable and movable.

    Now that we have checked the Components, now lets see what the variables are about!

 3- Variables

  • Stages got a fair share of variables themselves, so lets see what they are about!
     

  • Stage Music section contains the data to play the music. Array and Item IDs are related to the Sound Storage that UF2D provides. We did not speak about the Storages before but they aren't complex.

5.PNG
  • Array ID value 1 is to use the list named "Stage Song List" and Item ID value 0 is for the first song to be used.
     

  • Also Test Mode has music disabled so we also enable them to test! 

  • Stages can also Preload assets. This is mostly not needed as Stages load everything that they contain anyway.

5.PNG
  • Debug Visual Properties not only shows the important data visually, but allows us to edit them as well!
     

  • Let's see what they are about!

5.PNG
  • Visible Stage Limits can be used to show Stage Limits for objects that need to stay inside the said limits such as Fighters and Projectiles.
     

  • Feel free to click on the newly appeared Collision Boxes to set new limits. They automatically align themselves to each other so fear not!
     

  • PS: Ceiling is disabled but I suggest it to be as high as possible to not have weird behavior in case Fighters jump too high etc!

  • Visible Platform Collisions can be used to show Platform Collisions.
     

  • There is a 2D Stage Template with Platforms so we showcase the property in it instead!

  • Visible Kill Zone Collisions can be used to show Kill Zone Objects present on the Stage.
     

  • There is a 3D Stage Example with a Kill Zone so we showcase the property in it.

  • Visible Display Zone can be used to show the render zone of the Stage Camera.
     

  • Mostly used with Visual Stage Limits to align Camera with its own movement limits.

  • Visible Camera Stage Limits can be used to show Stage Limits related to Camera itself.
     

  • Just like regular Stage Limits, they align themselves automatically to each other. It is VERY important to make sure that Camera Render Zone is not overlapping to these limits.

  • Visible Camera Walls (Runtime) can be used to show Limits related to Fighters which are used to prevent them from going off screen unless it is specifically asked for.
     

  • These limits are created runtime so they can only be viewed when playing.

  • Variables to the right are important ones related to visualizing Actors such as Fighters, Projectiles and whatnot.
     

  • When they are spawned, they check these values to adjust the way they look so let's see what they are about

Capture.PNG
  • Lit Mode On can be used to force game actors to have lighting depending on the Stage's light objects.
     

  • This is normally not wanted as Player would expect to see everything clear so that it is off by default.
     

  • If an Actor has "Force Unlit Mode" toggled, than this value will not work for that specific actor.

  • Hidden Shadow Cast On can be used to force game actors to cast realistic shadows if so desired.
     

  • For this to work it is important to have actual 3D Meshes as ground or Flipbooks that are flipped so that the shadows can be visible.
     

  • Ground Object should also not have Translucent material but an Opaque or a Masked one. This can mess up with Flipbook Reflections so beware!

  • Allow Fake Shadows can be used to use simple Flipbook Shadows for Fighters, Projectiles and alike.
     

  • Can be toggled off if a Stage doesn't need them.

  • Allow Fake Reflections can be used to use simple Flipbook Reflection for Fighters, Projectiles and alike.
     

  • Can be toggled off if a Stage doesn't need them.

  • Global Color can be used to use to change the colors of the Flipbooks for Fighters, Projectiles and alike to give a different feel of lighting or ambience for them.
     

  • Can be left default.

  • Fake Shadow / Reflection Colors can be used to use to change the colors of the shadow and reflection Flipbooks for Fighters, Projectiles and alike.

  • Fake Shadow / Reflection Scales can be used to use to change the size of the shadow and reflection Flipbooks for Fighters, Projectiles and alike.
     

  • Generally only changing the last (z) value is enough. Changing Reflections' scale can look odd but it is normal to change Shadow value.
     

  • Positive value means they will be towards the camera while negative means otherwise.

  • Camera Properties are there to be used to edit the variables of the Camera linked to the Stage. These values are there so that we don't need to create separate Camera Actors for each Stage.
     

  • Camera to Use is for advanced developers who override or create their own Camera Actors. Most of the time it can be left as the default value.
     

  • Camera Movement Type ID is important so let's see what it is used for!

5.PNG
  • There are 3 types of Movement IDs ranging from ID 0 to 2. ID 0 is the regular movement without zoom.

  • ID 1 is still without zoom properties but the Camera is always focused on the middle of the Fighters.

  • ID 2 is lets Camera zoom in and out with most of the properties we will be mentioning below will be about it all.

    PS: There is also ID 3 but it is meant for Platformer Fighters Games and still in experimental stages.

  • Z Movement Trigger Relative Loc value determines the distance needed in Z axis to be travelled by Fighters to make Camera follow them.
     

  • The smaller value the earlier Camera moves in equal amounts.

  • Camera Base Arm Length is used to adjust how far the Camera can render. The bigger value the farther camera can render.
     

  • Camera Max Zoom Arm Length is used to adjust how far the Camera can render when max zoomed out. This is the limit.

  • Camera Max Zoom Z Position Offset is used so that when Camera is zooming out, it does not go down towards the Stage Ground.
     

  • Camera Zoom Start / End Distance values are used so the Camera Zoom actually triggers and limited.
     

  • All the values mentioned above just need to be edited to get the right feel for the Camera, especially for zooming! ^-^

  • Enable Camera Lag toggles slow Camera lag on.
     

  • Camera Lag Speed is used to determine how fast the Camera should catch up to where it supposed to arrive. The lower value the slower it arrives (more lag).

 4- Important Things to Note

  • All Flipbooks should have materials mentioned below so that Sprite Sorting can work properly;

    NoPal_Lit_Translucent_MI
    NoPal_UnLit_Translucent_MI

     

  • Translucency Sort Priority for Flipbooks should also be between values of 0 - 500.

  • All 3D Meshes scan have their own materials free from the limitations of Flipbooks.
     

  • However they still need to have a simple Material Function within their material so that Stage Effects work properly.

  • Another thing to note is, a developer CAN have fake reflection for their 3D Meshes just like Flipbooks.
     

  • All they need to do is duplicating the Mesh itself in Stage Blueprint and let it have a Material Instance with "Translucent" property selected.
     

  • Of course it may not look pretty like an actual reflection but realistic 3D stages are not in the scope of UF2D. ^-^

    So far we have checked what we needed to know in basic terms when it comes to Stages. Feel free to check the next documentation regarding on how to create a Stage! Thanks for your time and reading!

bottom of page