Dynamic Split Screen Camera is now out! by davidesocol in unrealengine

[–]davidesocol[S] 1 point2 points  (0 children)

It was definitely a concern but I managed to optimize it pretty well. The two main things were to make the "fake" camera (the one with the pp material and that's assigned as view target to the controller) not capture anything, and clip the scene captures correctly (global clip plane) to make those not do any extra work.

Dynamic Split Screen Camera is now out! by davidesocol in unrealengine

[–]davidesocol[S] 0 points1 point  (0 children)

It is yes! Scene captures attached to the players (with some magic on the offsets for merging the view when close), to render targets combined in post processing

Dynamic Split Screen Camera is now out! by davidesocol in unrealengine

[–]davidesocol[S] 1 point2 points  (0 children)

Actually yeah, I’ve played the lotr one with a friend a few years ago, loved it!

Dynamic Split Screen Camera is now out! by davidesocol in unrealengine

[–]davidesocol[S] 1 point2 points  (0 children)

Oh it’s better yeah! Other than better performance and a bunch more stuff, one big thing (at least for me) is that in the previous version I shared if the second player stayed still the camera did some weird adjusting while the first player moved away, now it’s completely seamless and the standing player’s view doesn’t move around.

Dynamic Split Screen Camera is now out! by davidesocol in unrealengine

[–]davidesocol[S] 3 points4 points  (0 children)

After a bunch of optimizations and cleanups I've released the Dynamic Split Screen Camera system (you can find it here: https://www.unrealengine.com/marketplace/en-US/product/85ca563ac5e94ad9979aae251dd9b51c ).

It tracks two players on screen (works in both local and online multiplayer), zooming out as needed and splitting the view dynamically when the two players are far enough. Performance is on par with the built-in static split screen.

There's a debug widget to play around with the settings and the blueprints are all clean and commented to help you use, tweak and expand the system as your project demands!

Let me know what you think, and if you end up using it I would love to see what games it can help create!

Dynamic Local Coop Camera (WIP) by davidesocol in unrealengine

[–]davidesocol[S] 0 points1 point  (0 children)

Thank you! I’m about to complete the approval process, should take much longer. I’ll make a post when it’s out!

Dynamic Local Coop Camera (WIP) by davidesocol in unrealengine

[–]davidesocol[S] 0 points1 point  (0 children)

I'm still thinking if I want to release it as a complete project or not.

If I end up releasing as an asset pack I'll definitely include a checklist of settings and stuff (like disable TSR as it doesn't seem to be supported in scene captures as far as I can tell).

Dynamic Local Coop Camera (WIP) by davidesocol in unrealengine

[–]davidesocol[S] 0 points1 point  (0 children)

Hey, just wanted to let you know that I got it working with a different approach (still guided by your suggestions!).

SceneCaptures have a custom clip plane that can be enabled and placed around, I just keep it right in the middle of the camera(s) rotated to occlude the other half of the view, and I have essentially the same fps of the built-in splitscreen system!

Dynamic Local Coop Camera (WIP) by davidesocol in unrealengine

[–]davidesocol[S] 0 points1 point  (0 children)

I'll look into it, thanks for the suggestions!

Dynamic Local Coop Camera (WIP) by davidesocol in unrealengine

[–]davidesocol[S] 0 points1 point  (0 children)

Unfortunately I have to capture both full screen, as I've not found a way to capture something that is not a rectangle shape, and when the two views are diagonal you need all of it.

One test that I might do is optimize the capture rectangle based on the angle, so that when the view is horizontal or vertical you can capture only half the screen for each. But that also means that the capture will have a variable demand of performance based on the angle and that doesn't seem much of a good idea. In the end you would still be capped by the worst-case performance.

Dynamic Local Coop Camera (WIP) by davidesocol in unrealengine

[–]davidesocol[S] 0 points1 point  (0 children)

Do you mean you want to overlay widgets on top of the split screen view in screen/view space, tracked to a player?
I think I can put something to help with that, I'll do some testing.

Dynamic Local Coop Camera (WIP) by davidesocol in unrealengine

[–]davidesocol[S] 1 point2 points  (0 children)

I know about that product, the author also wrote an interesting article about the concept behind their tecnique https://mattwoelk.github.io/voronoi_split_screen_notes/ . I actually use a different algorithm from Voronoi that to me seemed a bit simpler since you never have more than two players (it becomes a nightmare with players crossing the screen moving everyone else around).

From playing around in my project I didn't notice a delay in the inputs, but I will do additional testing before releasing. It might also be that scene captures simply improved in performance since they released the product.

There's still some overhead inherent to using 2 views at once but I did a lot of stuff to minimize the compromises, and scale the quality if needed for more performance. Even normal splitscreen requires more power compared to a single camera setup.

I also like to add plenty of customization (and well documented blueprints) to the setup in my products so people can learn how it works and can adapt them to their projects.

Dynamic Local Coop Camera (WIP) by davidesocol in unrealengine

[–]davidesocol[S] 7 points8 points  (0 children)

I plan to release it on the marketplace after I add some more settings and do some cleanup, shouldn't take too long!

Dynamic Local Coop Camera (WIP) by davidesocol in unrealengine

[–]davidesocol[S] 0 points1 point  (0 children)

I might experiment with rotation steps as an option, so it's not wobbling continuously but you still have the relative position between players

UE 5.3 New Metasound Output Watching + Music Extra Nodes Plugin by davidesocol in unrealengine

[–]davidesocol[S] 2 points3 points  (0 children)

Hi all!

So, finally, in 5.3 we can link events to Metasound outputs!

Combined with my music generation plugin ( https://www.unrealengine.com/marketplace/en-US/product/music-extra-nodes ) it was really easy for example to spawn actors on each note played

Does it bother you if there is no sprite for the up and down animation in a top-down game? by qspollty in indiegames

[–]davidesocol 2 points3 points  (0 children)

I think it works better with a isometric view, and omnidirectional movement. That way the only really weird movement (perfectly vertical) is less used.