|
Unreal can be a bit trickier than Unity for stylised/non-PBR art styles. You generally have two paths available: a) Default engine. Your work will mostly live in the Post Process Materials. These can be in the render pipeline in a few places (before/after translucency, before tonemapper, replaces tonemapper). You're limited to access render buffers already set up by the engine, so some effects become very hacky. b) Custom engine. You can add or remove whatever render passes and buffers you want. World is your oyster but you need a strong understanding of rendering to go this route. But there's also: c) Secret third option. There's actually way to do custom rendering stuff that inserts into the render pipeline, the magic words here are SceneViewExtension. If you're at a company working on a large project, it's strongly recommended you use a custom engine build anyway, so you may be comfortable with either B or C, especially if you have a tech art background and can write C++ and HLSL. Guilty Gear Strive did some really slick cel shading in Unreal without needing any custom render passes as far as I know - you can just plug any material into the emissive output and it'll ignore lighting information, so all lighting can then be faked by you.
|
# ? Apr 14, 2024 23:28 |
|
|
# ? Apr 24, 2024 06:19 |
|
jizzy sillage posted:Unreal can be a bit trickier than Unity for stylised/non-PBR art styles. You generally have two paths available: Yeah the major caveat is that you won’t have any lighting information available to you inside the shader graph (except the directional light direction, I think) so if you still want to be using point and spot lights you’ll have to either build you own SceneViewExtension that replaces their lighting pass or just overhaul the renderer completely. Either way I believe you’ll need source modifications?
|
# ? Apr 15, 2024 00:03 |
|
Yep, that's exactly why you need the custom render pass (through either custom engine or SceneViewExtension). By default you have the vector of the main (brightest?) directional light plus maybe a few other bits and pieces, but no point/spot light information. There are ways to get that information into the material, somewhere around here in this video is a short demo of getting extra lighting information into a toon shader that normally only has the main directional light. You can always just read pixel luminance to get a "lighting only" sort of buffer from the scene, but it's not actually "lighting only" since luminance is perceived brightness. Anyway, the extent of the engine customisation required really depends on the stylised look you're going for. Plenty of people have achieved some really beautiful stylised stuff without needing to rewrite the render pipeline.
|
# ? Apr 15, 2024 02:31 |
|
You can also I think pass in a vector of a location of some other actor and use that as a fake light source, I think that's what Arc System Works does to further control the shading and something I did for something similar for my Solar System simulation project so all the planets would be lit only on the half facing the sun without relying on the directional lighting in Unreal which did freaky undefined things for the scientifically astronomically proportionally accurate scales I was using.
|
# ? Apr 15, 2024 02:42 |
|
There's been some real butthurt going on, but I wanna park here for a second because somebody was goodposting:Red Mike posted:The back and forth literally reads like every time I've helped someone moving from Unity to Unreal and had to repeatedly play the XY problem game as soon as they hit one of the big differences, like the most common being UI and how in Unreal you set up 'pull' code vs. Unity you push data from code instead. Also, whatever other contrasts you have on the feel of Unity. These kind of "vibes" are actually pretty useful to know especially for some poor fool like me coming over from Unity.
|
# ? Apr 15, 2024 02:47 |
|
The worst thing about Unreal's GUI is needing to know about the Widget Reflector to debug anything or to know what you're dealing with, especially if you're new to a big project and obviously have no idea where anything is. Unity's is a little more convenient to work with since the canvas also exists in the scene hierarchy.
|
# ? Apr 15, 2024 02:56 |
|
Rocko Bonaparte posted:There's been some real butthurt going on, but I wanna park here for a second because somebody was goodposting: my reading is that in unreal you likely have something more akin to MVVM instead of the assumption unity makes that you have a behavior that writes values to a thing. so your UI selects what values you want, instead of being force fed values. with some effort, you can do the same in unity. havent used unreal so im not entirely sure if thats the case.
|
# ? Apr 15, 2024 04:23 |
|
Unreal Widgets can bind to values, so when the value updates so does the Widget representation - the UI is pulling data. I don't enjoy UI development at all so I tried to avoid it and jumped ship to Unreal long before I learned Unity best practice, but I'm guessing in Unity the object will set the value in the UI, so the object is pushing to the UI? Unreal also has a new MVVM system, UMG View Model.
|
# ? Apr 15, 2024 04:38 |
|
jizzy sillage posted:Unreal Widgets can bind to values, so when the value updates so does the Widget representation - the UI is pulling data. I don't enjoy UI development at all so I tried to avoid it and jumped ship to Unreal long before I learned Unity best practice, but I'm guessing in Unity the object will set the value in the UI, so the object is pushing to the UI? most large scale projects I've worked in unity have some sort of mvvm through a context object to decouple ui development from janitoring data. so it nets out the same.
|
# ? Apr 15, 2024 04:51 |
|
Rocko Bonaparte posted:Are you comparing Unreal event-drive GUI programming to Unity's immediate mode GUI stuff? This seems really important and I want to make sure I understand it. Basically yes, although it's not strictly speaking immediate mode, it's just a push approach instead of event driven, i.e. you set values/options in the UI objects directly. It's not like imgui where you're having to basically re-specify the UI every frame in order to keep it drawn (and therefore have to manage state/etc yourself), you just get a bunch of UI objects that you store references to and then set properties in those objects to make it change. I don't think either approach is better or worse for small scale projects, but Unity's approach breaks down pretty badly for large scale projects that want to have a consistent UI framework, unless you build something that 99 times out of 100 is a pull architecture built on top of what's there. But if people used it at smaller scales or only for prototypes, then they won't have done this and expect the push architecture to be 'standard'; hell AFAIK there still isn't any established major UI library/framework on top of Unity UI that does this (probably because it's so hard to genericise something like this properly for game UI). leper khan posted:most large scale projects I've worked in unity have some sort of mvvm through a context object to decouple ui development from janitoring data. so it nets out the same. ^ Basically this, you end up setting something up where you end up with something much closer to Unreal's approach (but not necessarily the exact same, and you usually add a bunch of stuff that Unreal doesn't provide out of the box anyway). To be clear: the thing I'm highlighting with the example is when someone used to pushing data to UI goes to Unreal, their default approach seems to be the opposite: try to get the Unreal approach to work in a push style.. which sounds like it should be pretty simple (just make something to hold the desired state of the UI, make the UI read from it, and have inputs on that state container that you can 'push' updates to). Unfortunately, they tend to run into two issues in the same order: "How do I make my state container push the info to the UI" - until they remember this is the point of the thing and you have to make the UI read from it instead; usually they get fooled by the fact that the C++ classes for the UI do in fact allow some amount of access to apparently 'push' data. "OK I have my state container working and the UI pulling from it (probably tied in via blueprint), how do I make the inputs generic so that I don't have to write boilerplate for each new UI component/value I want to support" - usually after a couple attempts to do this they start realising that there's something wrong with the approach because all they're doing seems to be writing boilerplate/glue code. jizzy sillage posted:I don't enjoy UI development at all so I tried to avoid it and jumped ship to Unreal long before I learned Unity best practice, but I'm guessing in Unity the object will set the value in the UI, so the object is pushing to the UI? Yeah more or less; you create your UI objects (ideally at design-time) and get references to them. You then have various properties you can set/methods you can call to affect the UI, and you'd normally be calling them from whatever your update/render logic is doing. There are a couple other approaches to UI in Unity really, but they're not as well-supported/used still AFAIK. Or at least one of the official ones does tend to be used/supported but for specific kinds of UI like game world UI or web views. All I really know about the newer developments is what I've heard or seen in projects but I haven't had to use them. Red Mike fucked around with this message at 09:04 on Apr 15, 2024 |
# ? Apr 15, 2024 09:00 |
|
At the end of the day of course, if you're new to game development or even as an experienced developer switching it up with Indie/personal projects, coding any code at all, even inoptimal code or a inoptimal approach, is better than spending all your time trying to do things the "right" way and not making any progress in your game. Because coding is just as much a creative pursuit and some people only have the mental energy for what they want to do in that moment.
|
# ? Apr 15, 2024 15:22 |
|
was debating whether or not to post this in the FG thread https://twitter.com/Otohadou22/status/1779589229204459940?t=eq2KQT3sF5yWGOHXWiCNlg&s=19 the quality of Mods for UMvC3 have been increasing to an insane degree over the months (to the point they're importing Animations from other games and originals). would love to see them take on another one If this isn't allowed I will happily remove it BornAPoorBlkChild fucked around with this message at 01:06 on Apr 16, 2024 |
# ? Apr 15, 2024 21:28 |
|
Is this a good thread to ask about Godot? My kid is doing game design and has hit a problem that seems like it should be really simple to solve but Basically it's a physics object that should be emitted and then keep moving subject to physics. Instead it just pops out and stops.
|
# ? Apr 19, 2024 03:36 |
|
I think you're gonna need to give more details than that.
|
# ? Apr 19, 2024 04:09 |
|
sebmojo posted:Is this a good thread to ask about Godot? My kid is doing game design and has hit a problem that seems like it should be really simple to solve but Is it running a _physics_process thst includes a command like velocity=move_and_slide()? Might need to set initial velocity?
|
# ? Apr 19, 2024 04:42 |
|
Thanks! I'm on my phone, I'll post some more details when I'm home, just checking that this was a useful place to post the question.
|
# ? Apr 19, 2024 05:19 |
|
This is a valid spot, yeah. You could also join the Dogpit discord server. It's an SA-adjacent gamedev server, and there's a fair few godot users there.
|
# ? Apr 19, 2024 19:13 |
|
TooMuchAbstraction posted:This is a valid spot, yeah. You could also join the Dogpit discord server. It's an SA-adjacent gamedev server, and there's a fair few godot users there. I hope that's not the racism gamedev server I was linked to before in the thread.
|
# ? Apr 19, 2024 19:31 |
|
Raenir Salazar posted:I hope that's not the racism gamedev server I was linked to before in the thread. dogpit came out of awfuljams
|
# ? Apr 19, 2024 19:54 |
|
|
# ? Apr 24, 2024 06:19 |
|
leper khan posted:dogpit came out of awfuljams That's good and reassuring. The other discord in question I was pretty surprised when I looked up and saw them defending the dude who said women couldn't be programmers in a "Well he's right!" way.
|
# ? Apr 19, 2024 20:20 |