Smooth map change without fade

Baka-chan

☆*:.。. o(≧▽≦)o .。.:*☆
Veteran
Joined
Dec 19, 2012
Messages
490
Reaction score
148
First Language
German
Hello everyone reading this. My goal is to make a smooth map change so that the player wouldn't really notice that he was just teleported to another map (for example leaving a town).

My current idea is using the possible places a player is able to enter the the next area x2, but that would only be a good way if there aren't many places a player is able to enter the next map. If the map transfer got many possible places where the player is able to change the map it would require too many teleport events.

Is there any better/easier/faster way without using a script to make this happen? Here's a demo of my current setup link.
 

Celianna

Tileset artist
Veteran
Joined
Mar 1, 2012
Messages
10,558
Reaction score
5,593
First Language
Dutch
Primarily Uses
RMMV
There might be a scrolling map script (the next map scrolls in if the player touches a transfer event) for VX Ace. Not exactly what you want, but it's close.
 

Espon

Lazy Creator
Veteran
Joined
Mar 20, 2012
Messages
1,810
Reaction score
192
First Language
Gibberish
Primarily Uses
RMMV
You should only need 1 row of teleport events, not two.  That would cut down on how many you need by half.

If you want to avoid having too many events then consider limiting the amount of places the player can go from one map to another.  The town's a good example because there's only a small area in which they can enter.
 

Baka-chan

☆*:.。. o(≧▽≦)o .。.:*☆
Veteran
Joined
Dec 19, 2012
Messages
490
Reaction score
148
First Language
German
There might be a scrolling map script (the next map scrolls in if the player touches a transfer event) for VX Ace. Not exactly what you want, but it's close.
That was the plan at first but then I decided to do a smooth map change like in the demo.

You should only need 1 row of teleport events, not two.  That would cut down on how many you need by half.

If you want to avoid having too many events then consider limiting the amount of places the player can go from one map to another.  The town's a good example because there's only a small area in which they can enter.
The reason it needs 2 events is because if the players leaves area 1 and then just changes the direction while standing on the teleport event it won't teleport him back but just let him walk into just the little part of area 1 that is visible in area 2.

Thanks to you two but maybe someone else might find another solution I could go with.
 

VegaKotes

Veteran
Veteran
Joined
Jun 25, 2013
Messages
96
Reaction score
3
First Language
English
Primarily Uses
I think I have a solution to cut down on the number of transfer events.

Firstly have an autorun event which sets a Variable named "X Pos" (or whatever) to Game Data "Player's Map X"

Then have a conditional branch check to see if "X Pos" = the X tile that your actor would be on.  (For instance in your demo the 2 X positions you're working with are "18" for town and "11" for forest path.

If the condition isn't met simply erase the event.

If it is set Move Route Move Player 1 forward. (This will move you 1 tile in the direction you're facing) and then Erase the event.

This will run each time you enter the map and it will ensure your players can't backtrack into area's they're not supposed to.

This will also work for up and down simply use a "Y Pos" with game map Y position. (Or just name the Variable something like "Position"

For clarity's sake I usually use 1 variable to store Player X position and one to store Player Y position.

And you can have multiple conditional branches in the same autorun, in case your transfer events are on the left and right, up and down, all around, doesn't matter.

You just need enough CB's to check for each possible entry point, which shouldn't be that many.

That make sense?
 

Andar

Veteran
Veteran
Joined
Mar 5, 2013
Messages
31,784
Reaction score
7,875
First Language
German
Primarily Uses
RMMV
The reason it needs 2 events is because if the players leaves area 1 and then just changes the direction while standing on the teleport event it won't teleport him back but just let him walk into just the little part of area 1 that is visible in area 2.
No, you can get away with one row by targeting one step beyond the transfer event on the target map.

You don't need to land on a teleport to make this work, especially since a teleport event you'll land on will not be triggered - and if it's a row of events the player can walk along (he doesn't see them as teleport fields so that's possible) then the result would be dozens of transfers (appearing as incredible lag to the player).

You need to make the maps one or two rows larger to allow for the overlap, but if the transfer events leading back are in row X of the target map, the transfer events in this map should target the row X+1 for transfers - and the other map's transfers would target a coordinate one lower then the row of teleports on the current map.
 

Baka-chan

☆*:.。. o(≧▽≦)o .。.:*☆
Veteran
Joined
Dec 19, 2012
Messages
490
Reaction score
148
First Language
German
I think I have a solution to cut down on the number of transfer events.

Firstly have an autorun event which sets a Variable named "X Pos" (or whatever) to Game Data "Player's Map X"

Then have a conditional branch check to see if "X Pos" = the X tile that your actor would be on.  (For instance in your demo the 2 X positions you're working with are "18" for town and "11" for forest path.

If the condition isn't met simply erase the event.

If it is set Move Route Move Player 1 forward. (This will move you 1 tile in the direction you're facing) and then Erase the event.

This will run each time you enter the map and it will ensure your players can't backtrack into area's they're not supposed to.

This will also work for up and down simply use a "Y Pos" with game map Y position. (Or just name the Variable something like "Position"

For clarity's sake I usually use 1 variable to store Player X position and one to store Player Y position.

And you can have multiple conditional branches in the same autorun, in case your transfer events are on the left and right, up and down, all around, doesn't matter.

You just need enough CB's to check for each possible entry point, which shouldn't be that many.

That make sense?
The Move Player 1 forward wouldn't make it look that smooth since it doesn't know if the player is walking or running. And wouldn't erasing the event stop checking it if the player might stand on the desired location some other time?

No, you can get away with one row by targeting one step beyond the transfer event on the target map.

You don't need to land on a teleport to make this work, especially since a teleport event you'll land on will not be triggered - and if it's a row of events the player can walk along (he doesn't see them as teleport fields so that's possible) then the result would be dozens of transfers (appearing as incredible lag to the player).

You need to make the maps one or two rows larger to allow for the overlap, but if the transfer events leading back are in row X of the target map, the transfer events in this map should target the row X+1 for transfers - and the other map's transfers would target a coordinate one lower then the row of teleports on the current map.
Teleporting one more tile ahead won't make it smooth and the player will notice that tile jump.
 

VegaKotes

Veteran
Veteran
Joined
Jun 25, 2013
Messages
96
Reaction score
3
First Language
English
Primarily Uses
The Move Player 1 forward wouldn't make it look that smooth since it doesn't know if the player is walking or running. And wouldn't erasing the event stop checking it if the player might stand on the desired location some other time?

Teleporting one more tile ahead won't make it smooth and the player will notice that tile jump.
Ah, but there is a way that you can.

Lemme go find it. XD

Also real quick Erase Event is, as others have put it, poorly named.

All it does is erase the event while you're on the map.

If you transfer the event comes right back.

Anyway if you want to know if a player is dashing and change your move forward based on that then put another conditional branch inside of the one that checks your X or Y pos and go to the last tab of conditions.

Plug this into the script call area.

$game_player.dash? == true

If it is, set player move speed to 5 move forward 1, set player move speed to 4.

Else move forward 1.
 

Celianna

Tileset artist
Veteran
Joined
Mar 1, 2012
Messages
10,558
Reaction score
5,593
First Language
Dutch
Primarily Uses
RMMV
If you want to know how to do smooth map returns (because event touch does not work if the player gets directly transferred onto that event), you can look at my demo here.
 
Last edited by a moderator:

Espon

Lazy Creator
Veteran
Joined
Mar 20, 2012
Messages
1,810
Reaction score
192
First Language
Gibberish
Primarily Uses
RMMV
The reason it needs 2 events is because if the players leaves area 1 and then just changes the direction while standing on the teleport event it won't teleport him back but just let him walk into just the little part of area 1 that is visible in area 2.

Thanks to you two but maybe someone else might find another solution I could go with.
That would only happen if you put the events in the same place.  You should be setting them up like this.



When the player steps on an event, they'll get sent to the exact same spot on the second map.  If they decide to turn around they'll go back to the previous map, otherwise they'll stay on the new one.
 

Baka-chan

☆*:.。. o(≧▽≦)o .。.:*☆
Veteran
Joined
Dec 19, 2012
Messages
490
Reaction score
148
First Language
German
That would only happen if you put the events in the same place.  You should be setting them up like this.



When the player steps on an event, they'll get sent to the exact same spot on the second map.  If they decide to turn around they'll go back to the previous map, otherwise they'll stay on the new one.
You are right... stupid me :/

Another question regarding my smooth map change. How would I get the x/y coordinates of an event that is placed on another map? I know how to get the coordinates for an event on the current map but is it possible to get it if the event is on another map?
 

Celianna

Tileset artist
Veteran
Joined
Mar 1, 2012
Messages
10,558
Reaction score
5,593
First Language
Dutch
Primarily Uses
RMMV
Another question regarding my smooth map change. How would I get the x/y coordinates of an event that is placed on another map? I know how to get the coordinates for an event on the current map but is it possible to get it if the event is on another map?
If your event is stationary and doesn't move, you can input the value yourself. Just click on the event in the editor, and look at the bottom right corner, it'll tell you the coordinates. You can use that for whatever you wanted.

Did you try my demo though? I think it's pretty much what you'd want.
 

Baka-chan

☆*:.。. o(≧▽≦)o .。.:*☆
Veteran
Joined
Dec 19, 2012
Messages
490
Reaction score
148
First Language
German
The script looks more like the map transfer in the old Zelda games but I'm trying to make it look like walking on one big map.

If your event is stationary and doesn't move, you can input the value yourself. Just click on the event in the editor, and look at the bottom right corner, it'll tell you the coordinates. You can use that for whatever you wanted.

Did you try my demo though? I think it's pretty much what you'd want.
Tried your demo but forgot to reply regarding it. It's not as smooth as I'm trying to make it. My goal, as currently shown in the demo, is to make it look like the player is walking on one really big map but in reality the big world is split into different areas.
 

Latest Threads

Latest Posts

Latest Profile Posts

Since I started in this world of make games, It's hard for me to enjoy playing a game. It's like, coding and make it work, sounds like I'm playing and have fun o_O
Not sure if it's true (and I won't judge or blame anyone if it is, really), but I heard from confident sources that you guys (and girls) really really like to
How is this new year for everyone? Hope you are well. Still deep in Covid in the US. Its like a vampire and refuses to die with even more strains. I need some holy water to kill it with.
in my game, what's known as HeadSpace is combining with the real world...
oh looks like the forums updated while I wasn't looking and we can put a banner now. Neat!

Forum statistics

Threads
107,670
Messages
1,031,298
Members
139,789
Latest member
TransDiv
Top