MV3D - 3D rendering for RMMV with Babylon.js

KaYsEr

Koruldia
Veteran
Joined
Mar 14, 2014
Messages
227
Reaction score
455
First Language
French
Primarily Uses
RMMV
Yes Khas said he would “retire” just after his lighting/fog plugin. Worst case scenario you use his plugins and if he comes back you can get the license you need.

I don’t know if all those MV3D issues are “minor” but to be honest right now it would be unusable in many scenarios, like on a touch device or with a mouse (when in first person view at least) also “accessibility” is a big deal today so the lack of key remapping in the option menu is super serious for some people. But yeah considering the plugin is under construction it’s totally fine to have other priorities, my feedbacks are more “to add on a list” just in case.

Like.. I just found out that if the plugin is turned OFF by default and you want to only turn some maps in 3D, very often the render is totally broken if you come on that map from another one (simple transfer), it’s fine when setting a starting point on that map but if you transfer from idk for example a 2D map, and the destination is a 3D map with an “autorun event” having the plugin command to turn the 3D ON, most of the time it fails to properly render the scene (sometimes you’ll have a little chunk of what’s supposed to be around you, sometime not a single polygon and only events floating in the void), I found a way to “solve” the problem by WAITING between commands (especially the one to turn 3D ON) like for example 5 frames between each command in the list, to let it “breath” apparently. But even that can sometime fail.

Lights on events can randomly break as well, one event would have a light and if you copy/paste the exact same event somewhere else.. No light for that one.

Now that I think about it, it’s true that a compatibility with GALV’s plugins like the one to have sprites on diagonals would look better when the camera rotates because you could see more (8) sides of rotating sprites or when turning around em. (Like in ol’Doom when circling around enemies.)

Well I hope feedbacks/reports like these can help for future iterations. :)
Take care and good luck, it’s very promising.
 

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,546
Reaction score
375
First Language
Portuguese
Primarily Uses
RMMV
@KaYsEr that ... is to be expected.
It takes some time for the 3d to be rendered. you can't just expect to go from a 2d map to a 3d on, without turning 3d on first, and expect the 3d to come up without any wait. That would mean the 3d was rendered already even with it turned off, which would be a waste of resources if you never turned it on for that map.
Which is why it is better to use map notetags to set it with 3d enabled or not. that way the map should be 3d right on entering it.
About the input, I think she already messed a bit with the touch input, as it seemed to be working on the demo I am using for my CCEx compatibility, but since the beginning it was told that would only be dealt with properly later. It does change how the map is seen after all so calculations wouldn't be the same.
 

KaYsEr

Koruldia
Veteran
Joined
Mar 14, 2014
Messages
227
Reaction score
455
First Language
French
Primarily Uses
RMMV
you can't just expect to go from a 2d map to a 3d on, without turning 3d on first, and expect the 3d to come up without any wait
I know, and the problem isn't about "wait until it appears" (or load), it simply never comes in that situation, the "wait" I'm referring to is an event command.
But I agree it would be better to be able to directly turn it ON with a map tag, right now that method doesn't seem available (or maybe I missed it) perhaps in a next version. Would be the best way yes, I prefer map-notes (too bad the window for map-notes in MV is so narrow haha) calling that thing from a loaded 2D map seems unreliable.
 

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,546
Reaction score
375
First Language
Portuguese
Primarily Uses
RMMV
Ah, it isn't?
to be honest I don't disable it in the options, I just set it on everything and use the disable note for when I want that map to be 2d.
 

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
I’m pretty sure I disable/enable the 3D with a notetag directly in the map settings but I’m at work and can’t look right now.

@Dread_Nyanak
I have a suggestion for something you might want to add to that list of features and improvements.

I have no idea how difficult this would be but, how about a proper (or slightly more proper) skybox? We currently just have a parallax which is serviceable for some maps, but if you tilt the camera up (or in any direction) the parallax follows the screen. Even just turning left/right looks a little bit weird. Less weird than tilting the camera of course, but it’s still noticeable I think. This “issue” is particularly obvious if your parallax has a horizon.

What about something like his maybe? Allowing us to set several images from the parallax map to each side using map tags?

Oh, and IF you decide to do something like this, plugin commands to change parts of, or the entire skybox at once, would be nice to have for day/night cycles etc.
 

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
784
Reaction score
321
First Language
English (USA)
Primarily Uses
RMMV
Update fixed things nice.

One more thing I'd like to ask, though: is there any possibility of switching off the shadow circle on actors and events that was added recently? (I'm not talking about the shadow effects in the paid version, just the circle under characters and events as it is totally out of place for the purpose of design specification.)

EDIT: Here's an example of what I'm referring to. It also gives off the appearance that everything's floating around.
 
Last edited:

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
@CoopNinjask

Very coo! :kaopride:

Is this an extension plugin or something you intend to share, or is it something you made for your own project maybe?

[EDIT; I re-watched the video and saw that I missed that it said it's an evented system at the beginning. Good job doing all that with events.]
 
Last edited:

glaphen

Veteran
Veteran
Joined
Jan 13, 2019
Messages
326
Reaction score
120
First Language
English
Primarily Uses
RMMV
Update fixed things nice.

One more thing I'd like to ask, though: is there any possibility of switching off the shadow circle on actors and events that was added recently? (I'm not talking about the shadow effects in the paid version, just the circle under characters and events as it is totally out of place for the purpose of design specification.)

EDIT: Here's an example of what I'm referring to. It also gives off the appearance that everything's floating around.
You can turn it off in plugin parameters for character event settings shadow option, just change it to shadow(0), or turn it off with the event notetags to shadow(0), can also customize it's size with that in general.
 

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,546
Reaction score
375
First Language
Portuguese
Primarily Uses
RMMV
ok, so I got the characters to change to use the ccex as texture... now to make the characters and events update when they should. Right now everything only updates when you change maps...
The problem is that copying it the way SRD did it, the character will be updating all the time, and thus not only will take more from the computer it does it so much it doesn't have time to actually draw them and they become invisible... my ideas to change that work on the player and followers, but not on events...
but as I said, progress has been made o/
 

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
784
Reaction score
321
First Language
English (USA)
Primarily Uses
RMMV
That did the trick. Thanks again!
 

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, we’re able to stretch tiles vertically, even to decimal values, using the height() tag. We can also to the opposite and lower it into the ground wot the depth() tag.

Made me wonder, is it possible to stretch or shrink tiles horizontally with decimal values as well (in the directions of north, west, east and south)?

Looking at the documentation I can’t find anything that would hint at this being possible, but I think it would do wonders for creative people in what’s possible to do in regards of mapping.

Maybe another thing which would be worth thinking about adding? If it it’s at all possible that is.
 

Dread_Nyanak

Veteran
Veteran
Joined
Feb 24, 2019
Messages
161
Reaction score
257
First Language
English
Primarily Uses
RMMV
@KaYsEr
You can definitely enable and disable 3D in the map tag. That's they way I've recommended people do it since I added the feature.
<mv3d>
enable()
disable()
</mv3d>
The plugin command messing things up when used in autorun events is definitely a bug though.

@Parallax Panda
The parallax background can look better if you use one with Loop Horizontal and Loop Vertical, like on the big island map. I agree that a proper skybox would work better though. Possible future feature.

Edit: horizontal stretching is something I don't plan on adding. That kind of detail will have to wait for custom 3d models.

Update 0.4.4.3
mv3d enable shouldn't break map when used in autorun events any more.


Also, I'm thinking about renaming the plugin script from mv3d-babylon.js to just mv3d.js
There's no three.js version any more, so the babylon part of the name isn't needed. Changing the name would cause everyone to have to redo their plugin parameters though.
 

KaYsEr

Koruldia
Veteran
Joined
Mar 14, 2014
Messages
227
Reaction score
455
First Language
French
Primarily Uses
RMMV
You can definitely enable and disable 3D in the map tag. That's they way I've recommended people do it since I added the feature.
<mv3d>
enable()
disable()
</mv3d>
The plugin command messing things up when used in autorun events is definitely a bug though.
Thanks, I was writing a wrong command all along when trying the map-tag method.

@CoopNinjask Cool video! Did you notice after the first time you transfer to another map (the first person view forest) when you come back to the main island, "circle shadows" under events are gone, never to come back.

Dynamic shadows look good. I agree custom assets (other than RTPs) could look better, the key would be to embrace the "cube-limitations" of the design and try to “stylized” the GFX.

In other words, GFX less detailed than RTPs could give interesting results. Would probably be the direction I’d go if I end up using the plugin.
 

glaphen

Veteran
Veteran
Joined
Jan 13, 2019
Messages
326
Reaction score
120
First Language
English
Primarily Uses
RMMV
I've been trying to make a flying bird enemy and it sorta works editing yanfly chase events and yanfly scriptcallplugincommand but is there a better way to obtain the current event id in movement route and plugins or even better script, I tried many word combinations of this._RELATIVE_BLEND(e.blendElevation, t[0], i) but I have no idea how to script and couldn't get it to work.

I've been using this in updateChaseMovement
if (this._bird === true) {
if (this.eventId() === 106) {
CallPluginCommand('mv3d @e106 elevation -1 4');
}
}
to make event 106 descend when chasing and the same call in movement route to gain height which I'll probably make a random height script for it. Using trigger(0,1) to make it start combat when reaching the right height. But right now I probably would have to make a chain of map id into each bird event into their individual plugin calls to get it working. I tried @s.

Oh and I've tried var and variables but yanfly plugincommand doesn't like them no matter what you do and it doesn't even work with yanfly pluginswitchvariables.

I did get it working in movement route only with $gameMap.event(this._eventId).targetElevation(-1, 4); or blendElevation or .setValue(-1,4); but no combination work in plugins and all spam errors in console.
 
Last edited:

CoopNinjask

Veteran
Veteran
Joined
Jan 9, 2020
Messages
126
Reaction score
84
First Language
Portuguese
Primarily Uses
RMMV
@Parallax Panda

Hi Panda!

I answered your PM.
Now responding publicly: I will release a demo and a tutorial soon, just a few adjustments left. I'll even create a specific topic for this, it will be an add on for anyone who wants to create a game using mv3d as a base.


@KaYsEr

Yes! There is a bug related to this circle shadow and the flashlight that they fade (or erase a part, in the case of the flashlight) when you change map. This bug is something from mv3d itself that I can't change. Let me tag @Dread_Nyanak here to make her aware.

I preferred to completely remove this shadow, replacing the shadow image in "img/mv3d" with a transparent one, as dynamic shadows do a much better job. I kept the original files in the folder for anyone interested in using them when i release the demo.
 

glaphen

Veteran
Veteran
Joined
Jan 13, 2019
Messages
326
Reaction score
120
First Language
English
Primarily Uses
RMMV
I finally got the plugin command script working.
var fly = new Game_Interpreter()
fly.pluginCommand('mv3d', ['@e' + this.eventId(), 'elevation', '-1', '4']);
 

Cormorant42

Veteran
Veteran
Joined
Sep 17, 2019
Messages
51
Reaction score
23
First Language
English
Primarily Uses
RMMV
Hey, I've been following this plugin since you released it but this is the first time I've had an actual question about it.

First of all--great work! It's good to see some true innovation in this community again.

Second, here's a screenshot of the game I'm making with your plugin...it's a fangame/redux of the classic NES game StarTropics, called StarTropics+, using all of the original graphics with updated VFX.
cave01.png

Okay, now on to my actual questions:

1. Is there any planned compatibility with Galv's MapProjectiles? If not, I get it, I'm sure programming MV3D isn't the easiest task to begin with.

2. Can you implement a function where an event can have a 3D tile as its graphic? As in either an event shape (CUBE or something), or just by proxy--setting an event to use a tile graphic automatically uses the tileset config data. As-is, I can manage without this, but it would make certain features (such as disappearing walls) easier to make.

Once again, nice work! Can't wait to see what the future brings.
 

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,546
Reaction score
375
First Language
Portuguese
Primarily Uses
RMMV
@glaphen I favor SRD's version of plugin command evals that he released some time before yanfly's, it allows you to use actual code instead of just switches and variables. since you seem to know your way around code already, that could be more useful for you.
 

Fyoha

Villager
Member
Joined
Sep 24, 2019
Messages
17
Reaction score
15
First Language
English
Primarily Uses
RMMV
It's your friendly neighborhood Fyobro here again to talk more about airship mechanics in Update 0.4.4.2

First of all, @Dread_Nyanak I want to say I love that an optional gliding mechanic is back! So, thanks for that among other things.

I was messing with navigation around event platforms. I like how you are able to fly up to a platform that is within elevation range and it allows you to climb/ascend onto it. But I also noticed that you are able to climb up from underneath when an event platform is a block higher in front of you, thus popping you up through the event. It made me wonder - Is there a way to turn that off without killing the ability to climb onto an event from the side?

BUT THEN I HAD AN IDEA.

With this function, you can stack events on top of each other and essentially create an elevator with it. Maybe you could do something like simulate a geyser that shoots up steam which can push your ships elevation up with invisible events to a higher ground. Hypothetically, you could manipulate elevation even further with events in key points on the map like this.

It's a lot like how the ladder is made in the demo with using <pos(+x,+y)> in notes. Just keep all the platform events set to the same height and they'll stack upward on the same tile. Moving an event that is set to height(4) on top of an event set to height(2) will put it 4 blocks high over the first event, 6 total from the ground level.

Anyway, this is just what I have found out in my testings and figured I'd share if it's something that needs to be handled or not. Maybe there could be an option to toggle the ability to pass through events from the bottom or not in event notes. Again, idk how it affects approaching events from the sides too. Made another YT video below to help show what I mean.

 

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

Latest Threads

Latest Posts

Latest Profile Posts

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 ]__||
#=======================#
I know someday I'll start working on this...

I'm so happy that I got Steam achievements to work in my game, thanks in large part to the posts by other RPG Maker devs on this issue!

Forum statistics

Threads
97,944
Messages
948,067
Members
129,196
Latest member
Sharyun
Top