The Diorama Camera in GameMaker
ฝัง
- เผยแพร่เมื่อ 12 ก.ค. 2024
- As far as GameMaker's 3D capabilities are concerned, the "diorama style" of games like Paper Mario or Pokémon are somewhat easier to work with than other kinds of 3D environments. My own game, Wizarducks, uses a style similar to that. Here are two ways you can create it yourself!
This is also sometimes called "2.5D," but there's a lot of debate online about what is/isn't "2.5D" and I don't feel like entertaining those comments right now.
Yes, I used footage from Color Splash instead of one of the older ones.
Basic 3D setup in GameMaker:
• Getting Started with 3...
The very old "3D NPCs" video:
• Game Maker Tutorial - ...
The code:
github.com/DragoniteSpam-Game...
Shader playlist:
• Shader Stuff - GameMak...
GameMaker 3D playlist:
• 3D in Game Maker Studio 2
GameMaker Studio 2 playlist:
• Game Maker Studio 2 - ...
0:00 Introduction
1:22 The sample project
3:38 3D setup
10:14 Using matrices to make sprites stand up
17:21 Using shader shenanigans to make sprites stand up
22:32 draw_sprite_general
28:02 Limitations
29:38 The end
30:00 Other ways you can achieve this effect
#GameMaker
#GameMaker3D
#GameMaker3DCamera
- - - - -
I've now made that Patreon:
/ wizardragon
That promised social media link spam.
/ dragonitespam
Transition / idle music is by my old friend Kamex:
/ greatgabite
Rate, comment, subscribe, watch more, enjoy! - เกม
Tilting sprites a flat 90 degrees up from the ground at this camera angle causes some pretty obvious distortions to the sprites that you'd probably wanna deemphasize for games that aren't intentionally leaning into the paper aesthetic.
Of the examples given: DS Pokemon games lean the sprites back to face the camera better, Octopath keeps the camera lined up at a specific angle with the main character's sprite, and Paper Mario, well, yeah, haha
I ran into the same problem while trying to go for something more towards the DS Pokemon games but I can't seem to sort out how to get it right. I have it next to an object drawing with projection the way I want, but even when the angles match the shader tilted one is smaller.
16:28 "This is probably way more grass than you're ever going to realistically have"
Acerola would like a word
Minor correction: You're not reinventing the wheel in such cases, you're building a whole inverted catenary road so the square wheel can work.
thats just reinventing the wheel with extra steps
Man! ❤ I was lookin for something like this like forever! Thank you!
Haven't even watched this yet, new favorite video of yours
I appreciate this video, with the shader system some sprites are not rotated, why?
I'm a simple man, I see Paper Mario, I click
THANK YOU MICHAEL!!!
A little late to the party, but if you want to use the matrix method for tilting sprites and want to keep a sprite origin that's not at the bottom of the sprite, you can simply write draw_sprite(sprite_index, image_index, 0, -sprite_get_yoffset(sprite_index)) when drawing your sprite. This will draw the sprite at the proper tilt position while also allowing the sprite to be rotated the way you want. I'm not sure how this will work with the shader method, but if you don't need the extra speed then this will work fine.
Hello how are you? Is there any chance to avoid to recall every time in the draw event something like
camera_set_proj_mat(global.camera3D, projmat);
gpu_set_zwriteenable(true);
gpu_set_ztestenable(true);
gpu_set_alphatestenable(true);
but more important, forcing every layer to 0 in the create event cause every time a lot of z-fighting for the things i make with normal 2D, some shadows, some footprint, some dust when the player's move, how can i fix this kind of problem?
Thank you!
in my case (most) of the ground layers are drawn with z writing/testing turned off since they're just flat planes stacked on top of each other and they don't really need the depth buffer, but you can also use a matrix transform or something similar to draw them at slightly different depths to avoid having them fight
It would be awrsome to see a tutorial on how to do this thing, because i can’t figure it out, with the Zwriting and testing activated in the objCamera how did you can draw a layer with them turned off?
Hello Michael, i just want to ask how can i implement the shadows for my sprites rotated, thank you for this video btw!
try starting with this: th-cam.com/video/N1y90ut3o0g/w-d-xo.html
Thank you! @@DragoniteSpam
Hello, how did you draw the clouds on the ground? This video is huge BTW
that part's somewhat more complicated, it involves projecting a cloud texture onto everything that gets drawn at about a 45 degree angle
it would be great to see an entire step by step tutorial on how to recreate this system as well as the diorama style camera
Hey, I havea quesstion. How would we flip particle systems at a 90 degree angle? Should we somehow still do it with flipping the world matris or is there another trick for that?
Hello Dragonite, how are you?
Is there any reason why larger sprites aren't rotated?
EDIT: the sprites that do not rotate are those that have empty pixels in the upper left and upper right parts, for example the sprite of my fir tree does not rotate
hello, your video helped me a lot, but there was a small problem with the movements of the characters, before I entered the variable z through the definition of variables, but something went wrong and I decided to ask you
Hey dragonite! Is it possible to make the 3d game tutorial but with 2 players if yes can you please make a tutorial!
How to make the sprite move in the diorama camera?
Hey DragoniteSpam - Any chance you can expand on this video and add a building for the player to walk around and potentially a blur shader to the background ?
that might be a fun one to do sometime
Would it be achieved with sprite stacking out of curiosity?
@@digitalswordplay more like vertex buffers and a depth of field effect
Hiy, DragoniteSpam. I'm using the shader method, and I'm getting weird red reflections on the ground. Is that fixable?
Hello! How would you handle collisions? With this method mine are totally spread away from the sprites :(
collisions should still work as they normally would in 2D, i usually have all of my sprite origins set to bottom-center for this
Everything was working well until I got to making the sprites stand up. When I followed the script and ran it, the player doesn't show anymore. What should I fix?
Make sure the culling direction isn't removing the front of the sprites.
@@DragoniteSpam The culling direction. Like the matrix?
@@R_Parandagpu_set_cullmode
@@DragoniteSpam Where is that? Sorry I'm a bit confused.
I have the character moving script but whenever I start the game it only moves the camera and the character doesn’t move, I am stuck please help
my camera also starts far away from the player
woow