MV3D - 3D rendering for RMMV with Babylon.js

tseyik

Villager
Member
Joined
Oct 22, 2015
Messages
20
Reaction score
19
First Language
English
Primarily Uses

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,546
Reaction score
375
First Language
Portuguese
Primarily Uses
RMMV
So, I made a small fix to my last post, you can fall from slopes too if it is set to on but not from those with directional passage. The rest still is valid though.

Re-tested this qith QMovement, just to check how bad it gets with the slowdown on this version.
Player can't move if QMovement is under this one. Above they can walk.
Height being ignored and camera not changing the input when turned are still happening.
But the main problem for me is the slowdown when used together... the slopes map worked ok but the big island - that is the main test map - suffered a LOT. Thing is, it seems to be more QMovement than the combination now, because when I turned off mv3d the slowdown stayed... Some of the time, others it stayed close to 60fps.
So I tried again... and it stood around 30.
I am confused now...
 

Dread_Nyanak

Veteran
Veteran
Joined
Feb 24, 2019
Messages
161
Reaction score
257
First Language
English
Primarily Uses
RMMV
Update 0.4.4
Altered platform finding function to be less buggy
Platform finder is called less often
on maps with 3d disabled, 3d map is no longer constructed and update functions for 3d objects are no longer called.
fixed bug that prevented fringe tiles with zero height from being walkable
Added new plugin parameter to change sprite offset
New parameter to remove 3D options from options menu, keep it as a submenu, or dump all 3D options into regular options menu.
fixed cave rope in demo project


If there's any new bugs I've caused because of these changes let me know.

gravity being a map option sounds like a good idea.
 

glaphen

Veteran
Veteran
Joined
Jan 13, 2019
Messages
326
Reaction score
120
First Language
English
Primarily Uses
RMMV
Only problem I see is this stacking staircase I built, seems to ignore 1 height difference or less still on below/same as/above, I don't know if it needs to be fixed really, not sure if it exists in a situation you wouldn't want it. Though I tried turning off the parallel and it still does it even when not stacked so not sure why it happens. Only works with Walk off Edge again. Also isn't 1.0 or less but 0.99.

Ok I figured out what causes it, z, if you use z you can walk on anything 0.99 or less difference from you. Also events seem to ignore stair threshold for flat events with 0.99 height difference with any of the height possible settings z/height/collide/below/same/above. Though they can't walk any higher than that unless within stair threshold. Not just flat, any event with 0.99 or less. Though it only does it for belows that walk into stuff, not same as/above. Also they only do it with Walk off Edge again.

Not just player either, any event same/above can also walk on any flat event with z setting 0.99 height difference or less.
 

Attachments

Last edited:

Dread_Nyanak

Veteran
Veteran
Joined
Feb 24, 2019
Messages
161
Reaction score
257
First Language
English
Primarily Uses
RMMV
The reason your stacked staircase doesn't work without the proper stair threshold is because I have changed how the platform finder works.
If stair thresh is < the character's height, it will find platforms with z < the top of the character's head.
Otherwise it will find platforms with z <= the character's z + stair thresh.

Basically I just reverted to old behavior for small stair threshes to eliminate glitches. Only time you can climb platforms without proper stair thresh anyway is with through on.
 

glaphen

Veteran
Veteran
Joined
Jan 13, 2019
Messages
326
Reaction score
120
First Language
English
Primarily Uses
RMMV
The reason your stacked staircase doesn't work without the proper stair threshold is because I have changed how the platform finder works.
If stair thresh is < the character's height, it will find platforms with z < the top of the character's head.
Otherwise it will find platforms with z <= the character's z + stair thresh.

Basically I just reverted to old behavior for small stair threshes to eliminate glitches. Only time you can climb platforms without proper stair thresh anyway is with through on.
Not sure what you mean, I can walk on it regardless of stair threshold in demo right now, because z event notetag seems bugged as written above.

Also one thing I just noticed is if you fall from a high tileset height you can still move in the air, but if you fall off an event you can only wait until you are done falling before you can move. Pretty sure it always did this but I didn't notice. Wait NVM, I just realized I am holding ctrl while moving through map.
 
Last edited:

Fyoha

Villager
Member
Joined
Sep 24, 2019
Messages
17
Reaction score
15
First Language
English
Primarily Uses
RMMV
@Dread_Nyanak The hot-air balloon vehicle isn't descending to the ground when exiting it, making it unable to re-enter it during my first test of 0.4.4. It also doesn't ascend when you enter it until you move.
 

Parallax Panda

Got into VxAce ~2014 and never stopped...
Veteran
Joined
Oct 29, 2015
Messages
926
Reaction score
1,162
First Language
Swedish
Primarily Uses
RMMV
@Dread_Nyanak

I can't find a notetag of plugin command for changing the render distance parameter? If there isn't one, can you add it or does that screw things up?

I have one map which is the top of a mountain and I want a lot of render distance on that map in particular. But there are other maps where it's not really needed so being able to set a standard render distance in the plugin parameters and then have a tag placed in the map's notebox which overriders it on that specific map would be useful.

Also... is there some kind of max to wall height? Or the height the player can be at?
 
Last edited:

Fyoha

Villager
Member
Joined
Sep 24, 2019
Messages
17
Reaction score
15
First Language
English
Primarily Uses
RMMV
I've got something to say about event platforms. I've noticed that if you create a bridge with events that go over a non-passable terrain such as water, you can't walk across parts of the bridge that are over the water tiles. My scenario is a river that has region ID 5 <height(5)> with cliff sides that are region ID 7 <height(7)> on the ends where the bridge starts.

With the depth settings for the water tiles taken into consideration, I set my notes to <mv3d:height(2.3),platform(true)> for the events to align with the cliffs. Even with platform set to true, I am unable to cross the bridge unless I do one of two things.

(a): Change the water tiles from X to O in the database.
(b): In the mv3d-babylon plugin params, create a new region ID that is also set to <height(5)>, but also add <pass(o)>

My question is: Is there another way to make this work easier? Am I missing something important like another special note to use?

Method (a) creates a less immersive experience if you were to use the "walk off edge" option within the plugin and don't want to be able to drop down into specific water tiles and walk around on them.
The overuse of method (b) on intricate maps with multiple height levels may have you creating and using up too many slots for Region IDs and may even run out.

@Parallax Panda I also wonder about max/min height
 

Attachments

Karbonic

Off Brand OFF
Veteran
Joined
Dec 24, 2015
Messages
57
Reaction score
20
First Language
English
Primarily Uses
RMMV
Just to make sure, does this program actually utilize true 3D rendering, or is it more based in visual tricks similar to the original Doom games?
 

Zekken

Programmer? Pro-Gamer? Pro-Grammar?
Veteran
Joined
Aug 29, 2019
Messages
115
Reaction score
27
First Language
Indonesian
Primarily Uses
RMMV
As long as I know, the wall tiles and building tiles are transformed into actual 3d shapes, but the sprites remain 2d but it stand on the ground.
 

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,546
Reaction score
375
First Language
Portuguese
Primarily Uses
RMMV
@Fyoha did you try to put in the event's notetags for it to have pass(o)? I know it isn't mentioned there, but I do remember it being one of the things said to have been added, so we could have things like butterflies that are passable (I said this because it is just what Parallax Panda used in the request for earlier, a butterfly flying through the forest that won't go through walls but that can be walked through). Maybe that works for platforms too?
EDIT: Just checked, and neither o or * made the floating chicken in the test map passable... so yeah, this and the platform thing could be good things to add, @Dread_Nyanak

@Karbonic as far as I can see, despite using the 2d map as a base it is real 3d. The camera can be moved everywhere as long as it is already rendered, unlike with raycasting, the one you mentioned, that renders it every frame.
 

Parallax Panda

Got into VxAce ~2014 and never stopped...
Veteran
Joined
Oct 29, 2015
Messages
926
Reaction score
1,162
First Language
Swedish
Primarily Uses
RMMV
Hm, I have some questions about slopes which I'm sure has been brought up before but...

How do I write the tileset tag to specify what the sides of the slope will look like? And to be able to place a slope on top of an elevation (on a cliff/roof/whatever), does it need to be a B, C, D or E tile?
 

Dread_Nyanak

Veteran
Veteran
Joined
Feb 24, 2019
Messages
161
Reaction score
257
First Language
English
Primarily Uses
RMMV
@Parallax Panda
The sides of the slopes are defined the same way as any other tile, with side().
And you don't need to use B+ tiles, A tile slopes can also have elevation, but the cliff side will use the same texture as the side of the slope. If you want it to use a different side texture then it needs to be B+ (or one of the special A tiles which go on an upper layer)

@Waterguy
All event platforms are supposed to be walkable, so something like pass(o) isn't needed.
collide(false) will let you walk through events similar to pass(*) and will also turn off platform. platform(false),collide(0) will also behave like pass(*)
And events with collision but not platform will behave similar to pass(x), preventing you from walking over them even if walk off edges is on.

Actually I suppose I could add pass for events as a sort of shorthand so you won't need to remember these interactions. pass(o) turns on platform, pass(x) turns off platform while keeping collision, and pass(*) turns off platform and collision. I think I'll do that.

@Fyoha
Thanks, these are some pretty serious bugs.

Update 0.4.4.1
Fixed airship takeoff and landing
You can now walk on platform events over impassable terrain
Fixed bug that prevented airship from flying over certain events
Platform finding now uses collision height instead of sprite height
Added pass() for events as shorthand for collide and platform
 

Fyoha

Villager
Member
Joined
Sep 24, 2019
Messages
17
Reaction score
15
First Language
English
Primarily Uses
RMMV
@Waterguy Yeah, I forgot to mention that I also tried using <pass(o)> for the events, but it didn't work like it did for setting it in a new region ID. My (b) method is what I will roll with for now. If I feel like I will run low on region IDs (which we have 254ish), a third method would be to create a duplication of the water tile or anything that is set to be not passable and make THAT passable and just place them under events accordingly.

Also, wouldn't the Through checkbox in the event options let your walk through the butterfly/chickens? I'll have you know when I was testing, I checked that little box for my bridge and fell right through down into the water! (I smell hidden trap door events incoming).

@Karbonic Like people are saying already, in short, it is 2.5d. This plugin is very revolutionary for this engine and has a lot of potential in my opinion.

EDIT: disregard some of what I said since I posted moments after new patch notes were posted.
 

KaYsEr

Koruldia
Veteran
Joined
Mar 14, 2014
Messages
227
Reaction score
455
First Language
French
Primarily Uses
RMMV
It's great to witness this amazing plugin taking shape. I made further tests, especially in Dungeon Crawling mode.

(Thought it would help not to see our MC, to avoid the game breaking visual glitch/corruption when trying the game on iOS web export, but I forgot every events were affected haha.. Anyway, even when trying the same "ftp-uploaded demo" on Chrome the shadows under events are missing too, something might be wrong for this specific kind of export idk. A bit worrisome.)

I got an idea so the player could still play the first person view with a mouse or touch screen (currently if you click the screen you can only go forward basically), so the solution could be a touch/click sensitive area around the screen, I made a screenshot to better explain: (of course that ugly thing would be invisible in game)



The 4 blue areas would be the arrow keys, and the red could even be for optional strafe etc.
The “green large middle area” would be perfect to validate, like in front of a treasure box, to open it.

Good to see you added the option to turn the plugin OFF by default. :)

Here are some extra observations:

*
When adjusting the camera with a plugin command during gameplay, if you save your game and reload, the camera resets to the original parameters. No big deal but good to know.

* Took me a while to realize many important plugins don’t work with MV3D, like those from GALV. For example, the one to use more than 3 frames for characters, and especially the one to move diagonally is messing up the directions/controls in game. Usually it’s possible to adjust plugin's positions to make things work again but those 2 are quite specific haha, like the diagonal one has to be under the multiframes one and it’s impossible to do in that situation because MV3D would “need” the opposite in order to work. (The multiframes plugin makes every events disappear.)

* Another big one, the plugin from Yanfly to let the player config the keyboard, in first person view we’ll strafe instead of rotate if that plugin is ON. In third person view it will just be impossible to rotate the camera. Just in case, I’m on an AZERTY keyboard even if it’s unlikely to be a problem.


I think it might be better to focus on problems like that before going further adding even more features and complexity. If it becomes usable, I’ll be more than happy to purchase a commercial license or something, dynamic shadows look awesome. Keep up the great work!

(Another extra “idea”: would be super impressive to be able to procedurally animate the fog, some kind of subtle fractal noise could go a long way to add a nice ambiance and bring some life.)
 
Last edited:

glaphen

Veteran
Veteran
Joined
Jan 13, 2019
Messages
326
Reaction score
120
First Language
English
Primarily Uses
RMMV
@Parallax Panda
The sides of the slopes are defined the same way as any other tile, with side().
And you don't need to use B+ tiles, A tile slopes can also have elevation, but the cliff side will use the same texture as the side of the slope. If you want it to use a different side texture then it needs to be B+ (or one of the special A tiles which go on an upper layer)

@Waterguy
All event platforms are supposed to be walkable, so something like pass(o) isn't needed.
collide(false) will let you walk through events similar to pass(*) and will also turn off platform. platform(false),collide(0) will also behave like pass(*)
And events with collision but not platform will behave similar to pass(x), preventing you from walking over them even if walk off edges is on.

Actually I suppose I could add pass for events as a sort of shorthand so you won't need to remember these interactions. pass(o) turns on platform, pass(x) turns off platform while keeping collision, and pass(*) turns off platform and collision. I think I'll do that.

@Fyoha
Thanks, these are some pretty serious bugs.

Update 0.4.4.1
Fixed airship takeoff and landing
You can now walk on platform events over impassable terrain
Fixed bug that prevented airship from flying over certain events
Platform finding now uses collision height instead of sprite height
Added pass() for events as shorthand for collide and platform
You still seem to be able to ignore stair threshold within 0.99 with z events as long as Walk off Edge is on for both players and same as/above events, rest seem fixed though. Boat vehicle seems to be unable to move through water if you set water to passable, only in tileset though.

Oh and it's only flat z events, seems fixed for other shapes. Actually it does work on other event shapes but only if the event is set to below. If it's set to same as/above for other shapes it actually makes it so it can't move under it if set to any z higher than 1 height difference. Went back to test again, it actually does work for above, but same as you can't walk under it at any height, even z(99) it can't walk under.
 
Last edited:

CattleDog

Warper
Member
Joined
Apr 12, 2019
Messages
4
Reaction score
0
First Language
English
Primarily Uses
RMMV
Latest version seems to have broken my project. Reverted back to previous release, back to working.

Game has encountered a bug. Please report it.

TypeError: this.setupParameters is not a function

at Object.setup (mv3d-babylon.js:901:997)
at Function.Graphics._createCanvas (mv3d-babylon.js:901:24574)
at Function.Graphics._createAllElements (rpg_core.js:2336:10)
at Function.Graphics.initialize (rpg_core.js:1769:10)
at Function.SceneManager.initGraphics (rpg_managers.js:1822:14)
at Function.SceneManager.initialize (rpg_managers.js:1811:10)
at Function.SceneManager.run (rpg_managers.js:1802:14)
at Function.SceneManager.run (YEP_CoreEngine.js:1371:32)
at window.onload (main.js:8:18)
 

glaphen

Veteran
Veteran
Joined
Jan 13, 2019
Messages
326
Reaction score
120
First Language
English
Primarily Uses
RMMV
Latest version seems to have broken my project. Reverted back to previous release, back to working.

Game has encountered a bug. Please report it.

TypeError: this.setupParameters is not a function

at Object.setup (mv3d-babylon.js:901:997)
at Function.Graphics._createCanvas (mv3d-babylon.js:901:24574)
at Function.Graphics._createAllElements (rpg_core.js:2336:10)
at Function.Graphics.initialize (rpg_core.js:1769:10)
at Function.SceneManager.initGraphics (rpg_managers.js:1822:14)
at Function.SceneManager.initialize (rpg_managers.js:1811:10)
at Function.SceneManager.run (rpg_managers.js:1802:14)
at Function.SceneManager.run (YEP_CoreEngine.js:1371:32)
at window.onload (main.js:8:18)
I'm pretty sure that happens when you replace the plugin in files but don't update it in plugins manager with new important settings, just hit refresh or change a setting and back. Also I recommend backing up before doing it, my demo corrupted when I first tried to just change the files.
 

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,546
Reaction score
375
First Language
Portuguese
Primarily Uses
RMMV
@KaYsEr when in first person view you cannot see the mc, but you need to turn followers invisible by hand. To use it set the camera distance to 0, either through map notes or a plugin command.
I'd like to give more ideas about your first person touch screen... you see, this plugin allows you to look up and down with page up and page down (if you set it to do so on plugin parameters), and straffing, that is walking to the side without turning. So while that is a good idea if you won't use these, what about for letting the player do those too?
Personally, I'd think it is better to focus on finishing the plugin before dealing with compatibility with other plugins. But I myself did a small compatibility patch for QSprite and a version of QAudio, am currently trying a patch for SRD's CCEx and am planning on doing a version of QInput, so take what I say with a grain of salt. Truth is, many plugins being incompatible in 3d mode is kinda expected since this changes things like how events are shown - they are not sprites, but a new class called Characters that take some things from sprites but not everything, if your plugins are under IIFEs like Galv's are they won't work (actually many other plugins become incompatible with plugins with IIFEs, had myself to remove them from a few Galv plugins for a few friends - that was all I did though so doubt it would be considered a big deal, if this is the first one you met this happened with consider yourself lucky). Not only that, plugins dealing with keys and directions are also expected to have problems - this plugin changes the input so that if you turn the camera pressing left is read as pressing up, for example. Also, the directions were moved to wasd and straffing went to q and e, while default keys are the arrows and q and w for page up and down. Yanfly's plugin, the one you mentioned, considers the default keys and the ones added by his own plugins.
The "fog" here is not really a fog, it is more like those old ps1/n64 fogs to hide the edge of the rendered poligons. Probably actual fog plugins would work fine with it?

Holy walls of text batman! Sorry, a bit out of my mind trying to do the ccex patch I mentioned earlier. Will try to fix this later.

@glaphen I don't understand the problem... from what you said earlier you changed the stairs threshold? Is this problem with the usual threshold or only your new one? Could you send a video or something of what you mean, because I read and read it and don't get it...
 

Users Who Are Viewing This Thread (Users: 4, Guests: 6)

Latest Threads

Latest Posts

Latest Profile Posts

BCj
Gotta love some gossip :D
Please do not buy games from g2a.com. The sellers have total power over you. The website has many scam sellers. It looks cheap, but the key code didn't work.
A while back I was having fun making my own custom tiles, then I hit carpet... why is it so difficult!? Lol.
Weekend is finally here... what would you like to see (?):
1) Pokemon into zelda minish-cap style
or
2) Pokemon into zelda gbc style
or
3) Zelda into pokemon style

#= Choose ===============#
||__[ Full mockup ]_[ Charset ]__||
#=======================#

Forum statistics

Threads
97,946
Messages
948,073
Members
129,196
Latest member
Sharyun
Top