MV3D - 3D rendering for RMMV with Babylon.js

Danielcross

Veteran
Veteran
Joined
Sep 27, 2017
Messages
95
Reaction score
10
First Language
English
Primarily Uses
RMMV
We have slopes now.



The slope tiles automatically try to figure out which way they should be facing, but if you need to you can prevent them from facing a certain direction with directional collision.
That's insane, thanks!
 

k333

Villager
Member
Joined
Dec 6, 2019
Messages
20
Reaction score
11
First Language
Español
Primarily Uses
RMMV



i was thinking on the posible uses for the Y rotation texture ^^, thanks to the ability to move an event from his position, you could create complex textures without needing to use the tileset, but events instead , also kinda was thinking on a posible structure important on the plugin, those two kind of slopes would be important in case someone would want to creare a hill, like on, as an example a forest, would help to construct the natural terrain ^^, why i think its important the y rotation tool is to give flexibility to create trully complex structures for cosmetic stuff , the things the player would not really need to step on, but would look nice on the map, as in this picture i made, you would be able to create all kind of figures, like a tree, a mushroom, or even like that complex anubis kinda building , all created with events textures ^^, without taking space from the tileset ... i hope the pictures are usefull to explain myself <.<
 

DMJohn0X

Veteran
Veteran
Joined
Oct 24, 2015
Messages
34
Reaction score
6
First Language
English
Primarily Uses
Dread Nayak, this is amazing, but do you think you could add a switch of sorts to enable/disable the plugin? Im thinking itd be quite stunning to enable this for cutscenes, but go back to traditional 2d rendering after a cutscene ends.
 

JosephSeraph

White Mage
Restaff
Joined
Mar 7, 2014
Messages
900
Reaction score
768
First Language
Portuguese
This is likely a perfectly doable request, but I have a hard time believing your maps will look good in the top-down perspective they're built in the editor, since MV3D requires you to bake a lot of info into notetag configs and whatnot.

Unless you plan to have some maps be 3D and some not -- specifically, to make alternate versions of the maps, rebuilt to look good in orthographic 2D.


BTW, I've been playing around with this thing.
I really love it so much. More than I should. I'm letting it consume too much of my time lmfao
 

safermike

Veteran
Veteran
Joined
Nov 30, 2016
Messages
32
Reaction score
8
First Language
swedish
Primarily Uses
@k333
Yes this would be great to add customization for textures. I made a similiar post earlier about how to implent this aswell.
 

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,422
Reaction score
324
First Language
Portuguese
Primarily Uses
RMMV
@DMJohn0X
as @JosephSeraph mentioned, you can't just use a normal map for maps using this plugin. You don't put actual walls, just the ceiling and the walls grow from it. You don't put two-tiles-high tiles one over the other, you put them in the same tile.
As such, a map made for use with this plugin is extremely different than a normal one. So disabling the plugin mid-map is... not the best idea.
You can, however, disable the plugin for a specific map putting a notetag in it.
 

Dread_Nyanak

Veteran
Veteran
Joined
Feb 24, 2019
Messages
152
Reaction score
218
First Language
English
Primarily Uses
RMMV
@DMJohn0X
Disable per map with map config:
<mv3d>disable()</mv3d>
Or disable mid map with plugin command:
mv3d disable
mv3d enable

Note that disabling the plugin mid map probably won't look good. I recommend having separate maps for the 3D parts and 2D parts.
Or, instead of disabling the plugin you can use the orthographic camera instead.

Set camera mode in map config:
<mv3d>camera(mode: orthographic)</mv3d>
<mv3d>camera(mode: perspective)</mv3d>
Set camera mode with plugin command:
mv3d camera mode orthographic
mv3d camera mode perspective


@JosephSeraph
Nice stuff! I can't wait to see more get made with the plugin.
 

DMJohn0X

Veteran
Veteran
Joined
Oct 24, 2015
Messages
34
Reaction score
6
First Language
English
Primarily Uses
@DMJohn0X
Disable per map with map config:
<mv3d>disable()</mv3d>
Or disable mid map with plugin command:
mv3d disable
mv3d enable

Note that disabling the plugin mid map probably won't look good. I recommend having separate maps for the 3D parts and 2D parts.
Or, instead of disabling the plugin you can use the orthographic camera instead.

Set camera mode in map config:
<mv3d>camera(mode: orthographic)</mv3d>
<mv3d>camera(mode: perspective)</mv3d>
Set camera mode with plugin command:
mv3d camera mode orthographic
mv3d camera mode perspective


@JosephSeraph
Nice stuff! I can't wait to see more get made with the plugin.
So the issue is, I'd love to use this plugin for cut-scenes but if im understanding correctly, this plugin will entirely break any pixi.js plugin? And I use several of those in my main game.
 

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,422
Reaction score
324
First Language
Portuguese
Primarily Uses
RMMV
So the issue is, I'd love to use this plugin for cut-scenes but if im understanding correctly, this plugin will entirely break any pixi.js plugin? And I use several of those in my main game.
depends.
it has no effect in battle or menus, for one.
it breaks plugins that are based on something's (x,y) location on the screen. if it is a filter, however, like most pixi effects I saw around, I'm not sure they would still work on the events, but they should work fine if it applies to the whole screen at once. probably won't break your game either way, too.
 

Grilled Mormons

Villager
Member
Joined
Feb 15, 2016
Messages
10
Reaction score
0
First Language
English
Primarily Uses
N/A
A good addition would be a z or height coordinate for player and events on map, it could be useful for conditions or whatever.
I've noticed during testing that height differences between player and event do not effect touch/action triggers so if an event is 10 levels higher the player can still trigger it if he is facing it from the ground.
 

Danielcross

Veteran
Veteran
Joined
Sep 27, 2017
Messages
95
Reaction score
10
First Language
English
Primarily Uses
RMMV
For those having errors loading saves using Yanfly's Save Core plugin:

I've noticed that loading a save while currently in a game results in freezing, but MooCow9M has discovered a workaround/edit in Yanfly's Save Core at lines 19:

Code:
* @param ---MC9M - Mod---
* @default
*
* @param MapID
* @parent ---MC9M - Mod---
* @type number
* @default 1
528:


Code:
Yanfly.Param.MapID = Number(Yanfly.Parameters['MapID']);
1253:


Code:
    Scene_File.prototype.terminate = function() {
    Scene_MenuBase.prototype.terminate.call(this);
    if (this._loadSuccess) {
        $gameSystem.onAfterLoad();
        let id = $gameMap.mapId();
        $gamePlayer.reserveTransfer(Yanfly.Param.MapID, $gamePlayer.x, $gamePlayer.y, $gamePlayer.direction(), 2);
        $gamePlayer.performTransfer();
        $gamePlayer.reserveTransfer(id, $gamePlayer.x, $gamePlayer.y, $gamePlayer.direction(), 2);
        $gamePlayer.performTransfer();
    }
};


Current Workaround:
In the Scene_File.prototype.terminate function of the core file inside the if statement,
Teleport the player to an unused map and then teleport them back to force the MV3d script to fix itself
Example:
let id = $gameMap.mapId(); $gamePlayer.reserveTransfer(<Your Map id here>, $gamePlayer.x, $gamePlayer.y, $gamePlayer.direction(), 2); $gamePlayer.performTransfer(); $gamePlayer.reserveTransfer(id, $gamePlayer.x, $gamePlayer.y, $gamePlayer.direction(), 2); $gamePlayer.performTransfer();
Credit to MooCow9M
 
Last edited:

palatkorn

Veteran
Veteran
Joined
Nov 1, 2019
Messages
87
Reaction score
18
First Language
thai
Primarily Uses
RMMV
It does not work anymore. Parallaxes
 

Dread_Nyanak

Veteran
Veteran
Joined
Feb 24, 2019
Messages
152
Reaction score
218
First Language
English
Primarily Uses
RMMV
@Grilled Mormons
For now you can get player and event's z coordinate with $gamePlayer.mv3d_sprite.z

@palatkorn
Thanks for reporting the bug with all this information. It's a problem with parallax when plugin is disabled. It will be fixed in the next update.

EDIT:
Uploaded a new version.
Parallax bug fixed.
Event configurations in plugin parameters are now more powerful.
Dynamic Shadows now available on *******.
 
Last edited:

JosephSeraph

White Mage
Restaff
Joined
Mar 7, 2014
Messages
900
Reaction score
768
First Language
Portuguese
Awesome, constant stream of new features, thanks for your hard work!

I have a "request" which could be interesting to add to the tiles. Don't know how hard it'd be to achieve, though.
A bevel modifier would do great to make some parts of the environment look more organic, such as cave walls, cliffs and etc.

I was thinking about having a configuration like (tile):bevel, <number of divisions>, <depth>.

I worked on a company earlier this year and we were working on a functional 3d tile system and man, was it a pain connecting everything together... The back-and-forth between the art team (me lol) and the code team was taxing
AKA I wanted actually to ask about having 3d tile presets for use within the engine (kind of like a 3d autotile that'd auto-slap the appropriate textures according to the tile configs) but having the 3d tile presets to begin with is likely going to be a painful ordeal, as it took us weeks to get a working setup >.>'

Definitely something to keep in mind for a later, way later version of the plugin methinks? But a bevel modifier, if as relatively simple to implement as my nooby brain hopes it is, would be a real nice addition!

Actually, in addition to a regular Bevel modifier... some auto-generated patterns on top of the tiles could look really nice... Hmm...
Let me illustrate.

upload_2019-12-11_5-47-43.png

A simple bevel would make the edges rounder by adding a subdivision, v and h bumps (prolly has a better name) subdivides the tile by a X amount of subdivisions then shifts these subdivisions alternately (and adds the bevel on top of them), mixing V and H bumps would create a wavy grid or something

But yeah this is likely very time consuming so idk just an idea have a nice day bye lol
 
Last edited:

HuskyTrooper

Veteran
Veteran
Joined
Oct 23, 2018
Messages
32
Reaction score
32
First Language
Spanish
Primarily Uses
RMMV
My first reaction when I've seen the first screenshot:
WOWW!!

I always wanted a 3D like that for my game, I hope that you finish this awesome project and implement the navigating with mouse and touch as you listed on the possible future updates list!!

Keep up the good work!! If you have a *******, I may support you with 1$~5$/mo.
 

JosephSeraph

White Mage
Restaff
Joined
Mar 7, 2014
Messages
900
Reaction score
768
First Language
Portuguese
Weird bug?? game still tries to load the geometry of the last map after teleporting, oddddddddd
 

Dread_Nyanak

Veteran
Veteran
Joined
Feb 24, 2019
Messages
152
Reaction score
218
First Language
English
Primarily Uses
RMMV
@JosephSeraph
The bevel would definitely be hard to implement.

For the bug, I don't know why that's happening. It looks like the materials are being disposed, but not the geometry? I don't have that problem on my end, so if you can figure out how to reproduce the bug please tell me. Or you could send me the project file.

@HuskyTrooper
I'm glad you like the plugin. I do have a *******. The link can be found in the Github Readme or Plugin Help text.
 

JosephSeraph

White Mage
Restaff
Joined
Mar 7, 2014
Messages
900
Reaction score
768
First Language
Portuguese
I figured it out and it was pretty dumb on my end! it was the Cell Size. I noticed increasing it caused the engine to run much smoother, but I don't understand what it actually does so I cranked it all the way up lol. Indeed it makes running single, large maps incredibly smooth but I don't understand how, why or why it causes the cells not to dispose. I think we're supposed to set this as the minimum map size in the game? After I set the value to lower than the map I was previously (lol) it properly disposed of the geometry when transitioning.

I recommend adding a small description to the cell size field and the help file! Thanks :D
Also sorry if i'm speaking too much or making too many requests or mentioning too many things i'm clearly hyped about this and i'm enjoying it very very very much lmao
 

Dread_Nyanak

Veteran
Veteran
Joined
Feb 24, 2019
Messages
152
Reaction score
218
First Language
English
Primarily Uses
RMMV
Okay, I know the problem. With a big cell size the mesh ends up having too many vertices, so the merge function fails.
Cellsize is the size of the chunks the map is divided into. A larger cellSize means less total meshes, which is probably why it performs better. But if the cell size is too close to the map size then map looping won't work right.

The problem will be fixed in the next update. Until then I recommend keeping cellSize smaller than about 40.
 

HuskyTrooper

Veteran
Veteran
Joined
Oct 23, 2018
Messages
32
Reaction score
32
First Language
Spanish
Primarily Uses
RMMV
@HuskyTrooper
I'm glad you like the plugin. I do have a *******. The link can be found in the Github Readme or Plugin Help text.
Done, glad to support you. For now this is what I can contributed since my economy is very limited, but in the future I'll try to go up to 5$/mo or even more if I can.
This kind of work needs a lot of support to continue living, otherwise a lot of wonderful projects becomes paralyzed and go unknown because, even the work "for free", needs money, all projects needs more or less time sacrificing.

I don't know if is allowed to post ******* link on the Project Topics, but if it isn't, moderators should reconsider such prohibition, in the end, the engine continues living thanks to the resource developers of the community, and their time and dedication needs and deserves money, I hope that all of you gets enough support to, between all of us, make RPG Making awesomer every day and making it shining.

Also I hope that the future RPG Maker releases still use the same javascript language, more or less optimized, but similar at the end to allow developers continue their projects on those future releases and make them require less time to sacrifice to re-adapt their work, maybe by providing some kind of converter for adapt possible new functions in the less time possible. Kadokawa/Degica/Enterbrain are big business, but individuals are who less resources has and more support needs at the end.

Good job.
 

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

Latest Threads

Latest Posts

Latest Profile Posts

Made a brief video showcasing early game play... Got a copyright claim by BIG UP! (https://big-up.style/) for using music I bought from here (Future Steam Punk Pack). Now I wonder if I should strip any purchased music from here out of my game. :LZSskeptic:
Cleaned character animation and new room


I'm not sure if I should open a thread for this in games in development..
It's weird I actually have MORE work to do when stuck at home than before.
The No Travel Game Jam is here! Jump in to make a game in the month of April that takes place all in one town!

Forum statistics

Threads
95,473
Messages
929,424
Members
125,716
Latest member
DarkPatisserie
Top