Screen-Space as a general tweak for every gadget
The idea would be to make it easier for dreamers to get info (and output stuff) on-screen, without having to use time to create and manage a working setup every time.
The Screen-Space Tweak could be added to a lot of gadgets (like movers, rotators, emitters and so on) and could be useful to be aware when something appears and/or happens on screen.
Use cases could be:
- Have inputs/outputs when an element enters or exits the screen
- Make it easier to create HUD and other on-screen 3D elements
- Being able to use screen coordinates to move Sculpts and Logic on precise X-Y locations on-screen....
- ...and being able to use movers on HUDs much more easily (since the head tracker doesn't really like movers)
- Being able to emit enemies and obstacles in extact spots on-screen, regardless of player and camera position
- And so on.
Most of this is probably doable right now, but it gets increasingly complex the more your camera moves around, or if you switch different cameras.
Again, this would serve as a general tweak to know if / when / where something is on-screen, and straight work with that info without having to create an ad-hoc setup.
-
- Have inputs/outputs when an element enters or exits the screen
Yes! Wanted this for an age. Even if it's "this sculpt is being rendered" sort of thing.
- Make it easier to create HUD and other on-screen 3D elements
What do you mean?
- Being able to use screen coordinates to move Sculpts and Logic on precise X-Y locations on-screen....
- ...and being able to use movers on HUDs much more easily (since the head tracker doesn't really like movers)
Movers etc. don't take screen coordinates to move something to; they use scene-space coordinates. Do you mean you'd like a way to convert from screen-space to scene-space for use with movers etc.? But then how far away should it be from the player's view? Also wiring a position into a gadget means that position can only update 30 frames a second--which would lag behind the camera view movements. I'm not sure how you're wanting to use this kind of feature. Could you give an example of something you could make in a game with this?
- Being able to emit enemies and obstacles in extact spots on-screen, regardless of player and camera position
Again, how are you converting into scene-space? Are you emitting *on the screen* so it's stuck to the player's view, or something different? It's hard to think of a mechanic you could make with this--could you give an example?
-
I'll try with a concrete example, hoping it'll make sense.
Let's say you're making a game like Space Harrier: https://www.youtube.com/watch?v=Hzgrb-mjLaM&t=77s
- You want to have different cameras with different angle/zoom
- You want the puppet to move to the edges of the screen.
- You also want to add a crosshair, that it should move to the screen edges as well, separated from the player.
The basic idea is that the engine already knows everything about your screen: where it "ends", what's in it etc. So it would make sense to just retrieve that data, and use it for character/HUD/enemy movement.
Right now it can be 100% done, but it's pretty cumbersome because you have to basically create a whole setup just to extract the data that the engine already knows, but doesn't disclose.
Spacer Harrier is also a fairly easy setup, maybe you want it for a more 3D environment with multiple dynamic cameras. That's even more complex, and Dreams is a massive time-sink already.Having inputs/outputs relative to the screen-space would bypass a lot of the grunt work needed to extract the data (the on-screen XY coordinates), and go straight to actually working with that instead.
The position on the Z-Axis can be adjusted separately, i don't think it would be a big problem. A tag+follower on Z-axis would be enough.
The problem is to A) detect things on screen, B) get and edit their coordinates relative to the screen, C) Do it without complex setups, getting the data the engine already has.Hoping this makes sense.
Please sign in to leave a comment.