C&C's are very welcome!
UPDATE: I return to this project after over 2 years of a "break". I'll be starting from scratch, aiming for a look closer to the original concept:
*sigh* ... 8 years later. I feel like there's an ocean between me then and now. In knowledge, skill and bitterness. I've been thinking about this project and how much wrong I did the first two attempts at it. My priorities were all wrong, severe lack of experience and an underdeveloped artistic eye.
I figured that correct thing to do would be to return to it now, starting over and step-by-step write a little feedback to my former self on work-flow, what to think about and how I should have approached this 8 years ago. Sort of like
"This is what I wish someone told me 8 years ago (but to be honest, even if someone did I was probably not able to listen and understand at the time)".
I feel like there's a lot to write about, but honestly it's probably better if I keep it short, to save time and not bog down too much.
Re-re-start starts here.
Replies
Another screen-shot. I adjusted the textures a bit on the shelves and the cabinet slightly, pulling down the roughness.
My friend @Solara asked me for feedback on her scene, where my first reaction was that the roughness was a bit off. Then I realized that I should iterate over my own roughness, since Bloodborne is "the game of gloss" (everything is way too shiny). So I lowered my roughness channels in Substance by about 0.2 units.
Today, I made experimented with some wood floor shapes:
I reduced the noise a bit:
It's great that you have a clear main reference. The purpose of a reference/concept art is to "answer questions" for you and this one is actually pretty good as answering some of the basic questions. What I mean by "answer questions" is; "What am I making?", "What's the target look?", "What's the mood?", "What's the composition?", "What assets should I make?", etc-etc. All questions that need to be answered by choices you make during the project. Without a reference or piece of concept art, it's very easy to get lost in a sea of questions. It's also really hard for anyone to give feedback if they don't know what you intend to do (and when you're in portfolio hell and trying to break in to the industry with a dubious skill-set, getting feedback is really important).
Now, I can see that you've done a break-down of the assets in the reference image. This is cute and all, but you might be missing the bigger picture here. The important part isn't to make a list of things, if you do you really need to use that list otherwise it's worthless. An asset list is only useful if you use it to manage your time and help prioritize. Sadly, it looks like you just blocked out a lot of colors over the reference and then forgot about most objects on the list, seeing as you spent a lot of time polishing materials and background assets as well as digging in to nifty final-touch solutions to break up texture tiling and what not. This is how you don't use an asset list.
You will also need to gather more references than this one image. They don't need to be from Bloodborne, because it doesn't matter what a chair looks like in Bloodborne. You could gather more references now, but honestly it's a waste of time to guess what assets you need references for at this stage. You will know better later on, when you feel like the main reference isn't telling you enough about an object.
Also, in both of your attempts at this, you seem to have forgotten the most important part of the scene; the light source. This is one of the first things you need to consider in a scene. Luckily, there is a very obvious light source in the reference... No it's not the chandeliers, it's the windows. That's one really important question answered by your reference.
Here's what I threw together; It's a quick block-out of the empty room that I threw in to UE5's blank scene that I did some quick tweaks to, to set the base. It's important to start implementing into the final engine (in this case Unreal) as soon as possible, otherwise you're just working in a vacuum and guessing your way forward. (and I can see that you did that before, good!)
Is this block-out perfect? Is it even close to what the final target is? Of course not, it's ugly as fuck. But that's what the rest of this project is supposed to address. And as you can see, there's a lot to do.
What I've done here is to reproduce the very basic composition and established a light. The goal at this early stage isn't to make anything "perfect" because eventually all of this will be changed (so put in as little time as possible and don't get caught in details, just keep moving forward). The purpose is to establish a base where you can keep adding things. After that, when all objects are in, it will be much easier to spot what is and isn't working. Then you know what to prioritize in when refining the scene.
Next step is to fill this bad block-out with placeholder assets.
I saw that the shelves and the cabinet were both too short and looked way too small, so I just scaled them up in the z-axis (blender, y in Unreal) to make the proportions not too wrong (they're still wrong though, but that's for later).
My point is: This is why it's so important that you start implementing into the engine asap and take screenshots of (or at least spend some time looking at) your scene regularly, so you can notice at every step what's going right and what's going wrong. And this is why the block-out assets need to be done fast and should be seen as temporary, because you need to be able to do quick changes to them anyway. And please don't start finalizing the models and start texturing them now, chances are you will just have to re-do them anyway.
We're also quickly running in to problems that makes the screenshot look very different from the main reference. I remember that you were confused about some of the inconsistencies in the reference; strange angles in the corners, the door seems to not go down all the way to the floor, etc. The horizontal line seems to be by the top-row of the shelves... but take a look at the chandeliers and you'll see that they are horizontal too.
I know that it's confusing and hard to accept, but your goal shouldn't be to make a 3D 1:1 representation of the reference. I agree that it would be cool if you could post a side-by-side comparison and have them match perfectly. But that's not really possible in this case. Listen, there will be some things in every piece of concept art that just doesn't make sense, but it's your job to make it work anyway. This means that you have to deviate from the reference.
Another problem that doesn't become obvious until this stage here is what happens when you ask the question "what's just out of frame". This reference isn't answering this. And you need to know this, because this is a 3D scene for your portfolio for game art, you need to make an entire room that a player could walk around in, not just one angle of the room.
This is where you need to start making things up to answer some questions yourself. What is just out of frame?
As you can see, one of the things the reference isn't showing is whether or not the shelves wrap around the room or not. This obviously looks silly, but if we start divorcing from the idea that we need to keep the final render to be accurate to the reference, this isn't really a problem.
But I'll continue blocking out the smaller objects in the room, then when everything is in place, that's when we can start making real decisions about how to proceed.
Notice that these ~50 something objects aren't really covered in the asset break-down of the scene you did. Now, these ~50 something assets might be a bit overkill, some of them aren't visible at all right now and you might just end up cutting them or add new ones later anyway.
I also tweaked the lighting/post process a bit to get a little closer to the right mood. The shelves in the foreground were blocking the view too much, so I made a quick change to them as well. They're obviously still a problem from this camera angle (blocking the chair and the door).
Now that all basic pieces are in you'll have completed the initial block-out. Nothing is perfect, nothing is final and there's a lot to still do. But with this step done you can much easier see what needs to be done. Knowing this will help you prioritize what to put time and effort into.
Something you might notice is that I'm waiting with making any decisions or finalizing anything - this is very intentional. You want to wait for as long as possible to make sure you know enough before committing to anything.
I haven't really done any work in UE5 before, so I'll have to refresh myself on what still works like in UE4 and how all the new stuff works - this should likely be the next step, make sure that you know enough to make a better base lighting set-up for the scene.
After that, the next step will be to start figuring the scene out - how to fix all the composition problems and what to do with everything in the scene that isn't shown in the reference.
Will have to look further in to getting not so sharp window frame shadows.
Either way, with this all out of this initial set-up out of the way, it's time to make a final block-out of the scene.
Consider the focus point in the scene; the table with the body and the nearby assets. This is where you want the attention of the viewer to be drawn while everything else is just background and shouldn't grab too much attention - this informs how you should think about the visual hierarchy in the scene.
While it might sound like a good idea and enticing to put a lot of details and time in to every asset to make them "pop", be very mindful about how it impacts the visual hierarchy; if the wrong things grab the viewers' attention it just weakens the scene.
The visual hierarchy is mainly constructed with contrasts; colors, light values, details, etc. Keep the background somewhat uniform in terms of brightness and hue while pushing the focus point with more saturated, contrasting colors - you can see this a bit in the initial reference with the brightness of the image, but we can push this even further.
Next step is to fully establish the focus point composition and fill out the background in all angles - this is where you have the chance to make this scene *yours* and not just follow the reference. This is also where you'll start to know what assets you need and what to cut - with that it's also good to start gathering complementary references.
Did some further tweaking of the lighting to get a softer result. I know you would have preferred a much much darker lighting but it's important to keep the scene bright enough so that it can be seen - You've made the mistake too many times where you put months into a project only to end up with "moody atmospheric lighting" that just obscures way too much and looks terrible on high-contrast screens.
It's good to make sure that as much of the image is somewhere on the grey-scale spectrum and not completely white or black.
(here you can see the brightest and darkest areas in the above image, only the windows are peak-white and only pitch-black in some tight crevasses facing away from the light)
I also scaled up the floor and walls by about 25% to make the room feel less cramped (again, this is why it's important to not commit and start texturing assets too early). There's a lot more breathing space in general; Some areas that feel too empty right now will be filled in with more assets later, either more copies of already planned assets or maybe something new to make the scene a bit more varied.
I did some really dirty paint-overs to figure out how to fill out the rest of the scene, mainly the areas of the room that aren't in the original reference.
It's a good idea to per-visualize before committing too much time into modeling anything, just don't spend too much time on it. Try to get more used to doing these (I still need to). A little warning though, while working, certain art directors will like seeing these paint-overs a bit too much - this might lead to you spending too much time on them. Don't implement any feedback into the paint-overs, just keep the notes and carry them over to the actual 3D work.
I want to add a very large shelf/bookcase, on the wall opposite to the windows, with one of those ladder you can roll to the sides. This shouldn't be too much extra work, since I'm already planning on making a bunch of glass vials, flasks and jars and a few books as well.
Along the wall opposite side of the door is a bit hard to figure out, I get too many ideas. While it's not supposed to be the main focus in the scene, it's okay if it holds some interest. I still need to nail this bit down a bit more and make sure that it's not adding a bunch of new assets to make.
Lastly, the real focus point of the scene. I feel like the pale corpse is a bit too boring, so I painted a purple humanoid monster mid-autopsy instead. This is what I really meant before when I said "make the scene yours". This is *your* portfolio piece, not a commission or something that needs to fit someone else's vision or art direction. It also means that you don't need to make an anatomically correct human, which honestly helps. Now it's a monstrous feature that the proportions are off.
The main point to keep in mind about this focus point is that it needs to be bright and colorful, in contrast to the rest of the scene which is pretty cold, moody and monotone.
Either way, the next step is to figure out all this a bit more. And now it's high-time to look for more references.
I'm okay waiting with this until now because I'm just doing this for fun. I'll manage the scope later but for now I'm not worried. If this was in production, aka under time restrictions, this is one of the first things you should start with. All assets will need to be time estimated and fit into a schedule so you can't just wing it. Also, some assets might require special technical solutions (like a special shader for the the glass vials, flasks and jars) and that might impact how you should prioritize certain assets or avoid them entirely. But again, I don't have those restriction right now and I sure as fuck won't put them on me in my spare time.
but I did have some time to implement some changes to the scene
Next step will be to populate the scene more to fill out all the areas, get a more final feel for the entire composition.
In doing so I'll also be gathering references and refine the list of assets needed - I want to make sure that I commit to making as few assets as possible.
You don't need refs from the same sources or refs of objects that look exactly like the objects in the scene. Just get enough to get an idea of what you're looking at - ornate, Victorian, wooden furniture will have a lot in common. While searching you'll probably find a lot of things that you might like more than what the main ref provides. You need some variants of each object because that's how you get enough depth to pick and choose what aspects of each you can use.
While gathering references; since this is a somewhat realistic scene you should try to stick to actual photo references. Reusing other people's art (especially 3D art) is a bit risky because you might end up repeating their mistakes. Also, holy shit search engines suck these days when there's so much AI stuff everywhere - be very very careful when looking at AI generated images, because there are mistakes everywhere and they might end up providing inaccurate answers.
In short; Bad references are as bad as no references.
But I really didn't want to make all these bottles and jars by manually moving polygons around - the amount of work to get proper edge-flow is just not something I'm excited about. So I started modeling with curves, the plan was to convert them over to polygon edges and then grid-fill the edges into solid meshes - it's a pretty neat work-flow for making smooth and rounded shapes.
By just establishing a few silhouettes and making a few variations based on height and width I ended up with almost 100 bottles and jars - now the problem with that is that I really, really don't want to manually convert all those curves into solid meshes. Too much work. Of course I could pick my 20 favorites and just make those and move on with my life...
So I got stuck in a rabbit hole for a few days trying to learn vector math and some blender geometry node stuff.
Took some time but I did figure out how to set up a geometry node that allows me to input two curves; one that controls the silhouette/profile and one that controls the shape of the bottle. I had to try a few different methods to get it right - I ended up extruding the silhouette/profile and offsetting it by the shape curves' control points (scaling the silhouette/profile curve to make sure it doesn't intersect with itself) I also made a method that just rotates the silhouette/profile curve around origin (and since both methods have the exact same polycount (name drop) it's really easy to get a clean morph transition between them. There's also controls for the number of edges both in x&y as well as z.
There are still some things to do here, like controlling where on the mesh it should morph between the two different position calculations (I think I'll make it controllable by curve... so that I can get a them rounded towards the base and then again around the neck in a non-linear fashion).
To most people, this might seem like a waste of time. Why didn't I just make 20 bottle meshes in a few hours instead of spending a few days on making this geometry node tool?
In production, this is a big no-no. Don't spend more time on making a solution to a problem than it takes to just fix the problem. (This will take some time for you to grasp, but eventually you'll get a feel for when a technical solution is worthwhile perusing; reducing the time it takes to perform common manual tasks or solutions to scale up production are the two biggest areas where technical solutions are a good idea).
This case doesn't need a technical solution. If this was proper production, I would have just made the 20 bottles and moved on. However, not only can I use this tool to make a lot more than just bottles, I saw this as a learning opportunity. The amount of things I learned about geometry nodes in blender and about practical application of vector math is also a big thing that made this rabbit hole worth it.
1: this curve is the silhouette of the bottle (I'll probably end up making it so you only have to do the outside and the inside can be automatically generated with flipped normals or something to make it easy to set up a transparent glass asset).
2,3: these curves are the two shapes I can blend between.
4: this curve controls blending between 2/3 (the way this curve is sampled right now makes it a very imprecise control, since bending the curve to increase the amplitude also increases it's length; it offsets where on the mesh the blending is happening).
5: this curve controls where the shape should use a radial method instead (also same issue as #4).
I'm currently looking at how to sample the silhouette curve in a way to put point density where it's actually needed. But I need to find a way to compare multiple points and not just with their immediate neighbor.
I'll also need to look into UV mapping it automatically.
I'll probably end up making this as something that can be used as a generic tool and not just a bottle generator.
I'm asking because I'm doing something similar to generate hair cards, blending different curves for root, body of the card and tips. It's a bit different because I'm not offsetting anything after blending them and I have different requirements, plus the accuracy of the blend location isn't critical so I didn't even look at it closely to see if it shifts with different profiles.
Instead of using curves 4 and 5 to control the transitions how about using the central spline factor? The bottle mesh is going to inherit it.
Because it's not possible to use a float curve as input (like in the old particles system settings) usually I add an extra input controlling a mix of the linear factor with it going through a softer float curve. That tends to be close enough to get sharper or smoother transitions.
For this kind of application I like to just use the radius of the central spline to control depth so thickness isn't tied to a profile, but I wrote an addon displaying all attributes of a selected point or spline in a panel attributes so adjusting the radius by hand is far easier for me. Without it I think I'd just use another factor blending to avoid having to grapple with extra profiles.
Proof-of-concept using the same method I use for cards (but simpler), for bottles:
You can get sharper or smoother xy depth/thickness transitions using the radius alone, like neck vs bottom.
There are several minor things to be solved there like adding some sort of bevel control for sharper loops, deleting the bottom of the inner wall, etc.
Unwrapping curves tends to be pretty easy, you only need the factor of the profile and central spline. Then you'd mark seams for the bottom and decide if you want to recalculate the factor to include the inner wall or just cut a seam there too.
You both gave me some ideas I had to test, will have more time to write more thoroughly tomorrow.
The big idea is to be able to create a large number of assets with just a couple of curves. I want to be able to control both the side-view silhouette and the top-down shape and have a somewhat clean edge-flow be generated automatically that resembles the curves as much as possible.
I'll break down the graph a bit (again, it's messy and large so I won't go into too much detail).
- Secondly, I delete all points with an angle of less the 1 degree.
- Thirdly, I delete and merge all points based on a small distance (socket value) to remove any last small
2)
After the points are sorted, I just make some quick adjustments to the position and make sure to extract the attributes I need from the silhouette curve later in the graph (point count, factor at index, point position). I do the adjustments because I need the curve to be at origin and to have similar values in X and Y for what I'm about to do.
3)
Last curve preparations; Now I reposition and scale the silhouette curve according to the first point in both curve 2 and 3, as well as resample curve 2 and 3 to have a set number of points (socket value).
4)
I feed both the silhouette curve and curve 2 and 3 into a repeat, with a number of iterations equal to what I resampled curve 2 and 3 to. So for each point on curve 2 or 3, I extrude the silhouette curve (with no offset), save all current vertex positions, then I reset all positions to start pos (which is the point positions I captured in step 2). I then scale the silhouette curve according to the vector of the point in curve 2 or 3 and offset it to the correct location. Then, lastly, I reset all previous vertex positions (except the ones I just extruded) back to how they where right before I started moving them around. Repeat.
This is a bit silly and backwards, but it was the best way I could find since I really need to scale the curve in X and Y as well as offsetting it when I extrude. But I found no way to scale only a selection of vertices, so I ended up scaling the entire object and then just reset the previous positions.
All in all, this is how I extrude the silhouette curve along the other shape curves (2 and 3).
5)
My first solution, that I kept in as an option, was to extrude and rotate the positions around origin. I do this in the same repeat zone.
6)
At this point, I have 3 different shapes, they all have the silhouette of the 1st curve, one has the shape of curve 2, one has the shape of curve 3 and one is round.
I have socket values to linearly blend between them but I also use curve 4 and 5 to control where on the bottle I blend in the vertex positions (I just read their X position in relation to the curve's origin).
I also resample curve 4 and 5 to make sure that they somewhat accurately represent their Z positions in the 3D view; I almost flatten then in X and Y, resample the curve with an equal number of points to the silhouette curve and set the positions (from a high-res version of the curve, according to the factor at each index of the points in the silhouette curve that I fetched in step 2).
And that's basically it. I'll do some more tweaks here and there to make sure I haven't missed something (I think I can get a better approach to fix the edge-flow of the silhouette curve). I can probably also reduce and consolidate a lot of stuff in the graph.
I'll also check out the UV mapping.
Also, wow, I didn't know the curve radius did that - I was initially trying to use the curve to mesh node but I couldn't get it to do what I wanted.
I only experimented with it a bit but I guess it's possible to use my silhouette curve to set the curve radius? Or is the curve radius on an entire spline and not per control point? Would be a much cleaner way and skip the need for the entire repeat zone and all the fiddling with the curves to make the extrude work.
And thanks for the tip on UV mapping - it seems straight forward.