Fake Wall Collision just as Chrono Trigger

Tatutoy

Villager
Member
Joined
May 24, 2020
Messages
7
Reaction score
3
First Language
Portuguese
Primarily Uses
RMVX
Hey guys!


I was checking collision system on walls at Chrono Trigger and I noticed that you hardly "bump" you character onto something, because the character model always slides through the sides of the wall tiles you running into.

The default collision system on RPG Maker MV is not cool, though, specially when you're working with diagonal movement and fast paced combat systems. Whenever you collide with a tile that is not passable and you force movement, your character stays immobile.

If you never played CT (which you are missing), let me try to explain:

______________________________________________________________________________________________________________________________________
RPG MAKER:



Character >>>>>>> wall | *bump* (stop moving, even when holding other direction keys)


CHRONO TRIGGER:

...................................⭷
Character >>>>>>>wall *bump* (continue moving, without letting go of the foward key and holding other direction key)
..................................⭸

_______________________________________________________________________________________________________________________________

Is it possible to slide character when forcing movement through tiles?

I hope I could explain.
 

ShadowDragon

Veteran
Veteran
Joined
Oct 8, 2018
Messages
2,139
Reaction score
699
First Language
Dutch
Primarily Uses
RMMV
it is possible, but it wont be smooth through event, but better through a plugin (probably region/tiletag based)
or notetag when you hit the wall or event.

Like if you use event:
if region = 16
if player is facing up
moveroute player
upper left or upper right

use the same thing if going down, when facing left or right to move lower left, lower right, or upper right, upper left,
dependng on the diagonal wall and direction you want to push.

make this a parallel proces in a corner, than place region 16 (change 16 for a different region if so).
or make teh same event directly, but use player touch or event touch.

I cant tell if it go smooth, but a plugin would be smoother (this is true for zelda "Link to the past" as well.
it is also based if you use tile based or pixelmovement.
 

Tatutoy

Villager
Member
Joined
May 24, 2020
Messages
7
Reaction score
3
First Language
Portuguese
Primarily Uses
RMVX
it is possible, but it wont be smooth through event, but better through a plugin (probably region/tiletag based)
or notetag when you hit the wall or event.

Like if you use event:
if region = 16
if player is facing up
moveroute player
upper left or upper right

use the same thing if going down, when facing left or right to move lower left, lower right, or upper right, upper left,
dependng on the diagonal wall and direction you want to push.

make this a parallel proces in a corner, than place region 16 (change 16 for a different region if so).
or make teh same event directly, but use player touch or event touch.

I cant tell if it go smooth, but a plugin would be smoother (this is true for zelda "Link to the past" as well.
it is also based if you use tile based or pixelmovement.
Move route is probably the only way of doing this through eventing, but it's not a solution.
Forcing to move a player with event routes is not what I need, since the game takes control of the character's movement input and it doesn't feel natural or flows too well. It also causes a lot of lag, since the event is constatly running and checking.


If I had something that prevented the need of letting go of the direction you are forcing through a wall to then choose another direction would be ideal. The current movement input structure doesn't let me do that..



EDIT: Just found a Plugin called "Analog Move" that seems to work just fine.
I couldn't download it though, since it asks for a Google Drive permission.
Source: https://forums.rpgmakerweb.com/index.php?threads/analog-move.49828/

Would someone that already downloaded it kindly share it?
 
Last edited:

ct_bolt

Creator
Veteran
Joined
May 3, 2012
Messages
853
Reaction score
361
First Language
Javascript
Primarily Uses
RMMV
Hey guys!


I was checking collision system on walls at Chrono Trigger and I noticed that you hardly "bump" you character onto something, because the character model always slides through the sides of the wall tiles you running into.

The default collision system on RPG Maker MV is not cool, though, specially when you're working with diagonal movement and fast paced combat systems. Whenever you collide with a tile that is not passable and you force movement, your character stays immobile.

If you never played CT (which you are missing), let me try to explain:

______________________________________________________________________________________________________________________________________
RPG MAKER:



Character >>>>>>> wall | *bump* (stop moving, even when holding other direction keys)


CHRONO TRIGGER:

...................................⭷
Character >>>>>>>wall *bump* (continue moving, without letting go of the foward key and holding other direction key)
..................................⭸

_______________________________________________________________________________________________________________________________

Is it possible to slide character when forcing movement through tiles?

I hope I could explain.
QMovement works pretty well for me for this :)
 

Tatutoy

Villager
Member
Joined
May 24, 2020
Messages
7
Reaction score
3
First Language
Portuguese
Primarily Uses
RMVX
Hey @ct_bolt ! I appreciate your response.


At first, I tried QTouch and it didn't work, because I'm running Jeremy Cannady mapscroll plugin.
Since QTouch messed up with the colliders, whenever I got close to borders, the camera would scroll back and forth repeatedly and endlessly, because the mapscroll works with 48x48 x y default collision.

I did a quick adjust at the mapscroll plugin, if anyone ever have the same problem this is a solution.

Take the following lines of the code:

Code:
if (x2 > xScroll-1) {$gameMap.startScroll(6,xScroll,6);};//Left
        if (x2 < -0.5) {$gameMap.startScroll(4,xScroll,6);};//Right
        if (y2 > yScroll-1) {$gameMap.startScroll(2,yScroll,6);};//Down
        if (y2 < -0.5) {$gameMap.startScroll(8,yScroll,6);};//Up
And change the xScroll and yScroll values from -1 to -0.5:

Code:
if (x2 > xScroll-0.5) {$gameMap.startScroll(6,xScroll,6);};//Left
        if (x2 < -0.5) {$gameMap.startScroll(4,xScroll,6);};//Right
        if (y2 > yScroll-0.5) {$gameMap.startScroll(2,yScroll,6);};//Down
        if (y2 < -0.5) {$gameMap.startScroll(8,yScroll,6);};//Up
Now QTouch works as intended alongside Jeremy's mapscroll plugin.

Thanks a lot guys!
 

ShadowDragon

Veteran
Veteran
Joined
Oct 8, 2018
Messages
2,139
Reaction score
699
First Language
Dutch
Primarily Uses
RMMV
I got the analog plugin + fix, but even the fix, there is 1 problem remaining to make it perfect.
I still exiperiment with it :) if you want the analog, I can send it to you later through PM if you wish.
 

Tatutoy

Villager
Member
Joined
May 24, 2020
Messages
7
Reaction score
3
First Language
Portuguese
Primarily Uses
RMVX
@ShadowDragon thanks! I would love to experiment both Qtouch and Analog Move and see which one works better =)
 

Ellie Jane

Veteran
Veteran
Joined
Mar 17, 2012
Messages
761
Reaction score
1,489
First Language
English (UK)
Primarily Uses
RMMV
I'd second QMovement, out the box it does things like walking up stairs by using this method. All I had to do to make a staircase was make a collider that was diagonal, and the player just walks up it when you press right.
 

ct_bolt

Creator
Veteran
Joined
May 3, 2012
Messages
853
Reaction score
361
First Language
Javascript
Primarily Uses
RMMV
Hey @ct_bolt ! I appreciate your response.


At first, I tried QTouch and it didn't work, because I'm running Jeremy Cannady mapscroll plugin.
Since QTouch messed up with the colliders, whenever I got close to borders, the camera would scroll back and forth repeatedly and endlessly, because the mapscroll works with 48x48 x y default collision.

I did a quick adjust at the mapscroll plugin, if anyone ever have the same problem this is a solution.

Take the following lines of the code:

Code:
if (x2 > xScroll-1) {$gameMap.startScroll(6,xScroll,6);};//Left
        if (x2 < -0.5) {$gameMap.startScroll(4,xScroll,6);};//Right
        if (y2 > yScroll-1) {$gameMap.startScroll(2,yScroll,6);};//Down
        if (y2 < -0.5) {$gameMap.startScroll(8,yScroll,6);};//Up
And change the xScroll and yScroll values from -1 to -0.5:

Code:
if (x2 > xScroll-0.5) {$gameMap.startScroll(6,xScroll,6);};//Left
        if (x2 < -0.5) {$gameMap.startScroll(4,xScroll,6);};//Right
        if (y2 > yScroll-0.5) {$gameMap.startScroll(2,yScroll,6);};//Down
        if (y2 < -0.5) {$gameMap.startScroll(8,yScroll,6);};//Up
Now QTouch works as intended alongside Jeremy's mapscroll plugin.

Thanks a lot guys!
No prob. Glad to help out.
Another option would also be https://forums.rpgmakerweb.com/index.php?threads/altimit-pixel-movement-0-50v.85408/
I actually might end up switching over to use that in future projects.
 

ShadowDragon

Veteran
Veteran
Joined
Oct 8, 2018
Messages
2,139
Reaction score
699
First Language
Dutch
Primarily Uses
RMMV
@Tatutoy here are the links: San_AnalogMove (3.1.5) and the fix found here.
its not 100% fixed with 3 button press, but Stilll looking a way to ignore the 3rd press.

@ct_bolt while altimit is nice, it hars issues with some of yanfly plugins like regin restriction and some events
that doesn't work on it. but its probably 1 of the smoothest plugin otherwise. they need to edit to work with
many plugins nicely to play along together.
 

Tatutoy

Villager
Member
Joined
May 24, 2020
Messages
7
Reaction score
3
First Language
Portuguese
Primarily Uses
RMVX
@ShadowDragon @ct_bolt Yeah I remember trying Altimit's Pixel Movement aswell but had compatibility issues with YEP.
I don't rembember exactly what it was, though.

Still, QMovement is showing a perfect input response and no confliting issues, so I might just stick with it and save these other two options if I have any problem in the future.

@ShadowDragon thanks a lot for providing the script code.

And thanks a lot for helping me out =D
 
Last edited:

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

Don't mind me, just installing a fog machine. :LZSwink:


I can't stop looping this BGM while at work since I began to play PSO2. It just too good for mood booster.
How to post a picture there in the status feed?
So I was at the grocery store trying to reach for some small garbage bags on the top shelf way in the back. Instead of going all the way downstairs to find someone to help me I grabbed a broom and pulled it down. Putting the broom back I said, "Thank you for your service".
S.O.S.--10:16pm......two toddlers still awake....send help...

Forum statistics

Threads
100,423
Messages
975,706
Members
132,080
Latest member
Garycomehome
Top