MV3D - 3D rendering for RMMV with Babylon.js

glaphen

Veteran
Veteran
Joined
Jan 13, 2019
Messages
326
Reaction score
120
First Language
English
Primarily Uses
RMMV
In the future I'll do some testing with gamepads to try and make it work better out of the box. I also plan on adding mouse lock to use the mouse to turn the camera, like in most 1st person games. This will work great with movement plugins that add omnidirectional movement.

Update 0.5.3:
  • Camera Collision
  • Zoom plugin command that changes fov
  • Diagonal sprites
  • Tweaked diagonal movement when moving against walls to not cut corners.
  • improved support for Change Tile Size plugin
  • Fixed non-autotile fences
  • Option to disable fence posts
  • edge(clamp) to repeat tiles at the edge of the map.
  • Option to disable back face culling
  • Fov can now be changed in options menu
  • added zoff() configuration function for z offset, and renamed x() and y() to xoff() and yoff(). Change all three at once with offset()
  • Renamed height() configuration plugin for events to elevation(), to have the same name as the related plugin command, and to avoid confusion with the height() tile configuration function.
    x(), y(), and height() will continue to work, but have been deprecated.
Premium changes:
  • Glow feature can now adjust intensity for each character.
  • Skybox plugin command

If you use the new zoom plugin command at the same time as dist, you can achieve what's known as a dolly zoom.

Regarding the changes to configuration plugins, it's bothered me for a while that x() y() and z() were inconsistent. x() and y() were offsets, but z() was absolute position.
Also height() acted differently for positive values and negative values. For positive values it acted as elevation(), and for negative values it acted as zoff(). Now it's been separated into two functions.
New version seems to have broken tileset images with non English names, or at least Japanese, fails to load them.
Found a bug with loading, the tiles are all messed up after loading from a map other than the map you load from, even from title, saving and then instantly loading from same map works though. Pretty sure it didn't do it before the .5 versions.
 
Last edited:

seaotter

Veteran
Veteran
Joined
Mar 2, 2019
Messages
132
Reaction score
28
First Language
Chinese
Primarily Uses
RMMV
I TRY 0.5.3 last version !
This is a great version at more fast !

0.5.2
FPS is 9

0.5.3
FPS is 42
ClipBoard-1.png

Good Job !!!!!!!!!!!!
 

CoopNinjask

Veteran
Veteran
Joined
Jan 9, 2020
Messages
107
Reaction score
62
First Language
Portuguese
Primarily Uses
RMMV
In the future I'll do some testing with gamepads to try and make it work better out of the box. I also plan on adding mouse lock to use the mouse to turn the camera, like in most 1st person games. This will work great with movement plugins that add omnidirectional movement.

Update 0.5.3:
  • Camera Collision
  • Zoom plugin command that changes fov
  • Diagonal sprites
  • Tweaked diagonal movement when moving against walls to not cut corners.
  • improved support for Change Tile Size plugin
  • Fixed non-autotile fences
  • Option to disable fence posts
  • edge(clamp) to repeat tiles at the edge of the map.
  • Option to disable back face culling
  • Fov can now be changed in options menu
  • added zoff() configuration function for z offset, and renamed x() and y() to xoff() and yoff(). Change all three at once with offset()
  • Renamed height() configuration plugin for events to elevation(), to have the same name as the related plugin command, and to avoid confusion with the height() tile configuration function.
    x(), y(), and height() will continue to work, but have been deprecated.
Premium changes:
  • Glow feature can now adjust intensity for each character.
  • Skybox plugin command

If you use the new zoom plugin command at the same time as dist, you can achieve what's known as a dolly zoom.

Regarding the changes to configuration plugins, it's bothered me for a while that x() y() and z() were inconsistent. x() and y() were offsets, but z() was absolute position.
Also height() acted differently for positive values and negative values. For positive values it acted as elevation(), and for negative values it acted as zoff(). Now it's been separated into two functions.
Hi! I tested the new version.
You have done a amazing job!
With each new version I feel that you are making a masterpiece.
Here goes the feedback about it:


The good:

- Performance has increased.
- More control over the menu options is a good call, good job!
- FOV and Zoom are awesome!
- Camera Collision is very cool, so the camera is more dynamic.
- Resolution Scale is very cool too, this give me some ideas.
- Allowing sprites for diagonal is something that was missing, now we can say that the 8 directions support is complete.
- You fixed the shadows issues. (I think it was unintentional, so I'll explain it below)



Bug Fixes:

- Backface Culling = false has solved the shadows issues, the one in which the shadows of some buildings had spaces between them. (It's just my guess, but I think you fixed it without realizing it.)
If you keep Backface Culling = false, the shadows issues no longer happen, even if the shadowGenerator bias is the old one: o.shadowGenerator.normalBias = 10 * o.shadowGenerator.bias.
-
Due to the above correction, there is no longer a need to keep shadowGenerator bias = 0.
Revert the value to the old one in the next update of mv3d-patr3on.js to correct self shadowing issues, as you taught us before.


Ideas:

- Give us a parameter that lets us define the names of the options in the menu.
- Give us the symbol names of this options, so we can include this in the third party options plugins (Yanfly Options Core, SumRndmDde Options Upgrade, etc).
- Teach us the plugin commands for Zoom and FOV, since you forgot to mention it in the help file.
- Make a plugin command that allows us to turn on/off the Camera Collision at any time in the game, so we can activate this only on some maps, such as inside houses, for example.
-
Make a plugin command that allows us to change the Resolution Scale at any time in the game, so we can change the graphics at any time.
This allows us to create something like a trip to the 8-bits world, like the journey between dimensions of the game The Messenger, for example.


Bugs:

- Camera Collision generated bugs with the animations.
If you use Resolution Scale = 1, some frames of the animations will get larger than normal, as if they were being affected by Camera Collision.
If you use Resolution Scale < 1, the animations are off target, with the wrong offset.
Please make animations unaffected by Camera Collision.
- The bugs that I mentioned earlier in version 0.5.1 persists, like the Character Entire Sheet Bug, for example.


Doubts:

What exactly Backface Culling does? (In addition to fixing the shadow issues)


That's it!
Keep the good work!
You're doing amazing job! :cutesmile:
 

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,633
Reaction score
417
First Language
Portuguese
Primarily Uses
RMMV
I think it just makes the backside of the tiles not be made, since they aren't visible. to save in performance.
but since your shadow issues are when it is set to true, they are probably not making shadows anymore either.
 

seaotter

Veteran
Veteran
Joined
Mar 2, 2019
Messages
132
Reaction score
28
First Language
Chinese
Primarily Uses
RMMV
Plugin conflict:
MOG_CharacterMotion.js
float_mode can't float

FloatingCharacter.js
Can't float
 

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,633
Reaction score
417
First Language
Portuguese
Primarily Uses
RMMV
Plugin conflict:
MOG_CharacterMotion.js
float_mode can't float

FloatingCharacter.js
Can't float
These two will never work. Not for incompatibility but because they are useless here.

They are not actual floating. They are just an y offset in 2d to give the impression of floating, since in 2d there isn't really a height.

MV3D adds height, adds z. And in the case of floating, adds "elevation", which you can change with the plugin command

"mv3d @t elevation <n> <t>"

which does the floating.

So yeah. These two won't work. But mv3d already has it anyway.

Oh, by the way, that github link is of a copied fork, not the original creator's. The plugins of the creator had been updated a few times since that copy was made, if you plan to use any of the others better look at triacontane's current version instead of those.
 
Last edited:

seaotter

Veteran
Veteran
Joined
Mar 2, 2019
Messages
132
Reaction score
28
First Language
Chinese
Primarily Uses
RMMV
MV3D adds height, adds z. And in the case of floating, adds "elevation", which you can change with the plugin command

"mv3d @t elevation <n> <t>"

which does the floating.

So yeah. These two won't work. But mv3d already has it anyway.
I try this plugin command : mv3d @t elevation <n> <t> ,and got this error
ClipBoard-1.png

if I want let player floating height = 2 , can you get me a example and plugin command ?

if I want let event 1 floating height = 2 , can you get me a example and plugin command ?

-------------------------------
I try plugin command done, not things list :
mv3d @e1 elevation 2 60
mv3d @e1 elevation 0.5 600
mv3d @e1 elevation +2 1
mv3d @p elevation 2 60
mv3d @player elevation 2 600
 
Last edited:

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,633
Reaction score
417
First Language
Portuguese
Primarily Uses
RMMV
@seaotter you must have done something wrong somewhere. press f8 or f12 to open the console.
I copied your second to last command there, as in just copypasted it (because the others were for an event and the last was too much time) and it floated perfectly with no error. Save for <t> being in seconds so it took a whole minute to reach the 2 tiles high mark.
1585403330535.pngas you can see, I just copied and pasted theplugin command you posted, mv3d @p elevation 2 60
1585403387069.png
and it worked.
 

seaotter

Veteran
Veteran
Joined
Mar 2, 2019
Messages
132
Reaction score
28
First Language
Chinese
Primarily Uses
RMMV
@seaotter
u can see, I just copied and pasted theplugin command you posted, mv3d @p elevation 2 60
View attachment 138078
and it worked.
omg, you are really right, I try again really fly ~ >_<

but I see this plugin command let them like to flying....not Floating ( a feel )

fly is alway at a hight

Floating is little time to up then little time to down, you know .

^_______^

but , still thank you, maybe I so tired to try the code....no to see success done.

haha...
 

Dread_Nyanak

Veteran
Veteran
Joined
Feb 24, 2019
Messages
165
Reaction score
279
First Language
English
Primarily Uses
RMMV
@glaphen
I just tested, and I can still load tilesets with Japanese characters fine. Strange.
I'm also not experiencing the loading bug you describe, even if I open the load menu from the map.

@CoopNinjask
Animations are already ignored by camera collision. I couldn't reproduce any issues with animation frames being larger than normal, so I'm not sure what you mean about that.

The animations are offset incorrectly when using resolution scale. Only the regular animations though, the ones produced by the plugin command are fine. I'll have to fix that.

The zoom plugin command is
mv3d camera zoom <n> <t>
where <n> the value and <t> is time. Values larger than 1 will zoom in and values smaller than 1 will zoom out. I'll put this in the help text later.
 

glaphen

Veteran
Veteran
Joined
Jan 13, 2019
Messages
326
Reaction score
120
First Language
English
Primarily Uses
RMMV
@glaphen
I just tested, and I can still load tilesets with Japanese characters fine. Strange.
I'm also not experiencing the loading bug you describe, even if I open the load menu from the map.

@CoopNinjask
Animations are already ignored by camera collision. I couldn't reproduce any issues with animation frames being larger than normal, so I'm not sure what you mean about that.

The animations are offset incorrectly when using resolution scale. Only the regular animations though, the ones produced by the plugin command are fine. I'll have to fix that.

The zoom plugin command is
mv3d camera zoom <n> <t>
where <n> the value and <t> is time. Values larger than 1 will zoom in and values smaller than 1 will zoom out. I'll put this in the help text later.
Ok I downloaded the newest demo and tried and loading didn't work recorded exact process.

File names doesn't happen though don't know why it does in my project, turned off all plugins but mv3d and still fails to load, I'll just change the names.
 
Last edited:

CoopNinjask

Veteran
Veteran
Joined
Jan 9, 2020
Messages
107
Reaction score
62
First Language
Portuguese
Primarily Uses
RMMV
@glaphen
I just tested, and I can still load tilesets with Japanese characters fine. Strange.
I'm also not experiencing the loading bug you describe, even if I open the load menu from the map.

@CoopNinjask
Animations are already ignored by camera collision. I couldn't reproduce any issues with animation frames being larger than normal, so I'm not sure what you mean about that.

The animations are offset incorrectly when using resolution scale. Only the regular animations though, the ones produced by the plugin command are fine. I'll have to fix that.

The zoom plugin command is
mv3d camera zoom <n> <t>
where <n> the value and <t> is time. Values larger than 1 will zoom in and values smaller than 1 will zoom out. I'll put this in the help text later.
Okay, i'll record a video showing the animations problem to show you better. :thumbsup-right:
 

CoopNinjask

Veteran
Veteran
Joined
Jan 9, 2020
Messages
107
Reaction score
62
First Language
Portuguese
Primarily Uses
RMMV
@glaphen
I just tested, and I can still load tilesets with Japanese characters fine. Strange.
I'm also not experiencing the loading bug you describe, even if I open the load menu from the map.

@CoopNinjask
Animations are already ignored by camera collision. I couldn't reproduce any issues with animation frames being larger than normal, so I'm not sure what you mean about that.

The animations are offset incorrectly when using resolution scale. Only the regular animations though, the ones produced by the plugin command are fine. I'll have to fix that.

The zoom plugin command is
mv3d camera zoom <n> <t>
where <n> the value and <t> is time. Values larger than 1 will zoom in and values smaller than 1 will zoom out. I'll put this in the help text later.

Here is the video showing the animation issues.
0:00 - Camera Collision = True (The problem)
1:32 - Camera Collision = False (Animations working correctly)

A note: My animations are smaller than normal, as they were made to fit well in the characters' sprite.
Perhaps this can influence in the problem.
 

seaotter

Veteran
Veteran
Joined
Mar 2, 2019
Messages
132
Reaction score
28
First Language
Chinese
Primarily Uses
RMMV

Here is the video showing the animation issues.
0:00 - Camera Collision = True (The problem)
1:32 - Camera Collision = False (Animations working correctly)

A note: My animations are smaller than normal, as they were made to fit well in the characters' sprite.
Perhaps this can influence in the problem.
same animation problem at me , like Camera run 2 times, one time right one time too big.
 

Neverglow

Keyblade Master
Member
Joined
Nov 14, 2018
Messages
6
Reaction score
0
First Language
Spanish
Primarily Uses
RMMV
Hi everyone.



I need a little help, I don't know how to configure doors, trees, towers, and light poles to be positioned correctly, what do I do with each object?
Captura.PNG
This is strange...
Captura1.PNG
 
Last edited:

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,633
Reaction score
417
First Language
Portuguese
Primarily Uses
RMMV
Necesito un poco de ayuda, no sé cómo configurar las puertas, los árboles, las torres y los postes de luz para que se coloquen correctamente, ¿qué hago con cada objeto?
don't speak spanish, but I'll try to help.
just an important tip: check the demo project. everything here is done there. so for better explanation, you can just check there.
ok. so!

doors and other events like this, to be put on walls, need to have their positions set in the notetags. if you are having trouble understand it from the help file, on the example project one of them to be on the left side of the building is set as <mv3d:shape(wall),z(0),x(-0.51),scale(0.9,1.3),rot(270)>
shape(wall) makes it be standing up but not rotate as the camera does. It becomes a cardboard standing up.
z(0) sets it to be positioned at height 0. unlike your map, where it is on top of the house.
x(-0.51) makes the image go to the left a bit more than half the tile, appearing as if just in front of it. making it positive (removing the -) would move it to the right. using y would be to north/south.
scale(0.9,1.3) makes it be stretched to the side to 90% the original size (well, it is smaller so squeezed I guess) and vertically be 30% higher. As the default door images are just a tile high, that makes it a better fit for the characters.
rot(270) rotates the image 270 degrees clockwise. As mentioned before wall makes it a cardboard that doesn't rotate with the camera, so with this it is a cardboard turned with the front to the left.

trees, towers and lamps are more for setting in the tilesets and mapping. they need to be set to pop up, as a fence/wall (same difference for setting them in mv3d), cross or xcross (the image is a cross, xcross is rotated 45 degrees). there are some pre-made setting using terrain tags in the plugin parameters. for example, trees set as xcross have their terrain tag set as 1 because it is already set for that.
but that makes them pop out properly instead of being on the ground... but does not fit all the mapping differences.
by default, a star passability sets something floating 2 heights above ground (can be changed though).
the way to avoid it, usually, is to set both the base and top of the tree as X passability, then put the bottom on the map... and then the top on the same map tile.
there are other ways, of course, but this is the easier one at the start, and is the one used for most of the demo project.
for example, the towers won't work that well with it.
 

Neverglow

Keyblade Master
Member
Joined
Nov 14, 2018
Messages
6
Reaction score
0
First Language
Spanish
Primarily Uses
RMMV
don't speak spanish, but I'll try to help.
just an important tip: check the demo project. everything here is done there. so for better explanation, you can just check there.
ok. so!

doors and other events like this, to be put on walls, need to have their positions set in the notetags. if you are having trouble understand it from the help file, on the example project one of them to be on the left side of the building is set as <mv3d:shape(wall),z(0),x(-0.51),scale(0.9,1.3),rot(270)>
shape(wall) makes it be standing up but not rotate as the camera does. It becomes a cardboard standing up.
z(0) sets it to be positioned at height 0. unlike your map, where it is on top of the house.
x(-0.51) makes the image go to the left a bit more than half the tile, appearing as if just in front of it. making it positive (removing the -) would move it to the right. using y would be to north/south.
scale(0.9,1.3) makes it be stretched to the side to 90% the original size (well, it is smaller so squeezed I guess) and vertically be 30% higher. As the default door images are just a tile high, that makes it a better fit for the characters.
rot(270) rotates the image 270 degrees clockwise. As mentioned before wall makes it a cardboard that doesn't rotate with the camera, so with this it is a cardboard turned with the front to the left.

trees, towers and lamps are more for setting in the tilesets and mapping. they need to be set to pop up, as a fence/wall (same difference for setting them in mv3d), cross or xcross (the image is a cross, xcross is rotated 45 degrees). there are some pre-made setting using terrain tags in the plugin parameters. for example, trees set as xcross have their terrain tag set as 1 because it is already set for that.
but that makes them pop out properly instead of being on the ground... but does not fit all the mapping differences.
by default, a star passability sets something floating 2 heights above ground (can be changed though).
the way to avoid it, usually, is to set both the base and top of the tree as X passability, then put the bottom on the map... and then the top on the same map tile.
there are other ways, of course, but this is the easier one at the start, and is the one used for most of the demo project.
for example, the towers won't work that well with it.
I did not understand very well ... There are no videos where they explain it? :(

And sorry for commenting in Spanish, the page was translated as I wrote...
 

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,633
Reaction score
417
First Language
Portuguese
Primarily Uses
RMMV
@Neverglow probably, but not that I know of...
as I said, the best option is really to just read the help file, or the github page, they tell the same thing but the github can be open while you set the notetags, and compare it with the demo project in the github
 

Neverglow

Keyblade Master
Member
Joined
Nov 14, 2018
Messages
6
Reaction score
0
First Language
Spanish
Primarily Uses
RMMV
@Neverglow probably, but not that I know of...
as I said, the best option is really to just read the help file, or the github page, they tell the same thing but the github can be open while you set the notetags, and compare it with the demo project in the github
Do you mean that on GitHub is the solution? Or that I have to buy the product?
 

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,633
Reaction score
417
First Language
Portuguese
Primarily Uses
RMMV
@Neverglow nothing to buy. the paid plugin only has extras.
on the first post there is both a link to a zip of the plugin and a link to a github folder. https://github.com/Dread-chan/MV3D
in that folder there is the plugin zip and also a demo project with examples of how it is used, with ready maps and everything (the "project" folder). plus some source files in the "webpack" folder
 

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

Latest Threads

Latest Posts

Latest Profile Posts

just a few more hours until the toughest, most pressure 72 hours of my life, wish me luck guys
Working on some bosses for my game-
His tracks are always so wonderful.
In a narrative Choose Your Own Adventure-style RPG, do you prefer the narrative to be in 2nd person ("you saw", "you thought"), or 3rd person ("he saw", "he thought")?

What's your preference, and why?

Forum statistics

Threads
100,558
Messages
977,220
Members
132,136
Latest member
alfredotrojse
Top