Hey hey~
Kay here 👋
This week, I didn't get as much done as I would have liked to, but that's not to say that no progress at all has been made~
Things worked on this week:
- Cel shader material
- Cobeta's story
- Planning out the character creator
- Some initial setup for landscape models
Cel Shader
More work, less results ;-;
After finishing up last week's blog, one of the first things I got to work on was the cel shader, and while I'd like to say I made a lot of progress, on it, sadly that's not the case, or at least it feels like I've made no progress compared to last time.
I opted to not use a post process material for the look, which means that I needed to implement multiple lights by hand. Surprisingly this was a lot easier than I initially thought. However, there are some problems I need to work past, like how I've been having trouble getting the light to fade away with distance or how I'll be able to dynamically assign lights to the material.
As of right now, how it works is I plop a light blueprint into the scene and it automagically plugs in its distance into the material and it just works. However, if I were to put a second light in the scene, it flip flops back and forth between the two lights. I also happened to find out that Switch statements in the material editor cannot be dynamically messed with, so oh well. Right now, my current planned fix for this is to attach a giant volume around the garde which, when a light enters it, will cause the light to be added to an array, check which light index is available and assign the index to that light. If there's no indices left, then I'll probably just have it not affect the material.
However, this is for distances only. Color (of any sort) has yet to be implemented in the cel shader at all. I'm sure that's not going to haunt me in the future >.>
Lights were one of the last things I messed around with this week for the cel shader, so I talked about it first since it was fresh on my mind. The first part I worked on though for the cel shader was my attempt to break up the harsh line between different light levels, to varying degrees of success.
And so, with that goal in mind, I opened up photoshop and made a pretty generic painting texture for use in a mask:
Initially, my attempt at breaking up the harsh lines relied on me just using this texture as a mask, using it to apply the previous band's color/light level and applying it one level up. It was a good result, but not quite what I was looking for. For one, that line was still there between the bands, and secondly, it was ugly as sin:
As you can see, the texture only covers a small part of the banding, leaving a majority of the model without this texture. More importantly, it doesn't wrap around the model on only where two bands meet, so of course, that's what I worked on next.
With some color tweaks, this result looks better, sure, but something was still off. For one, the entire reason of the texture I made was so I could get that thin slice of painted border that was on the edge to wrap around the entire band. While the texture was all there in this picture, you can still see some places where it's missing and it looks like a stretched mess (This stretching will be my downfall later)
After that attempt, I thought to myself "Okay, let's start from 0 with this
texture in mind and see *why* I can't get this to work", and so I did. I made
a new material assigned it to this placeholder model, and played around a
lot, only using one band of color between light and dark, trying to
adjust everything to get a successful result on one part.
Looks pretty good, if I say so myself. I did notice more stretching, but I can
fix that a bit lat-
I didn't lose much progress, but the result I had up there was certainly lost. I tried my best to get it how it was before, but sadly I couldn't, though it was still serviceable. However, once I got over that small loss, I really focused on the texture itself. As of right now, I was rather reliably able to pluck out bands from the lighting vector, so all that I needed to figure out was how to align the texture to this light vector. I added tons of control to the UV of the texture in all of my attempts to get it to line up with the light, but to no avail.
Like any true programmer, I gave up and slept on it. Several odd dreams later, I did some more looking and found out about a node called "rotatevector", which in the end became a life saver, meaning I could rotate the texture to face the light, and adjust it so the texture's edge will only show up in the narrow band I've marked out. Once I completed all of that, I wanted to add one final touch to the effect, where I would have a gradient applied to the narrow band, causing the paint texture to fade out slightly where it faces the light. This went well too, though this comes with a caveat that it only applies to one light source still at this point, so I'll have to see how well it works when I try to apply several overlapping light sources.
Now, just when I thought everything looked great in the little sphere up above, I came across a very glaring issue: No matter how much I tweaked the parameters, I just could not get the effect to look good on the test models I had. I could get it to look good on only one part of the model, but then it would look horrible on other parts of the model. Eventually, frustration set in and after attempting a myriad of things I came to the realization that the test models I was using was subject to horrible UV stretching, meaning no matter what I did on the material side, it would simply not work on the model. It was at this point that I simply gave up.
Despite that, I don't consider it a failed attempt, tinkering around with it, even though it took a while, has allowed me to come up with a plan in mind for how the whole material is going to work later on when I can have a proper 3d model to use it with, which means its time for me to fully focus on Cobeta's design and model.
Cobeta's Story
Between driving myself insane with materials and lamenting my lack of success on said material, I decided to work on Cobeta's storyline. I've had about half of Cobeta's story planned out, but the part I was really struggling with thus far is the first half, and to have the story feel genuine and not forced. Unlike the Gardes that will be added to the game later, Cobeta's story isn't structured in the same way as theirs, with the plot only really kicking in at a much, much later point in time compared to the others, which made it really difficult for me to fill in that time between the player first booting up the game and that point, and to fill it up in a meaningful way. And since Cobeta's meant to only be the test character, I'm restricted in what I can and cant to. If I have to do something specific for her story, I have to make sure it's not a mechanic that's *only* for her story. I have to make do with what's going to be in the demo, and nothing more. This isn't a problem for a game that's going to be purely a visual novel, but for my game which will be a mix of gameplay and VN elements, I can't exactly ignore one in favor of the other, I have to do them both well.
With that said, I *think* I'm on the right track with her story, and I'd say it's about 65% done. Once I do get finished with it though, I'm planning on doing a second or third pass over the story to really review and refine it before tossing off a test build to my patrons. The main meat of this story will probably be sidequests, which I certainly need practice in making. Though, as a nice side effect of how I'm setting this up, items will be no problem. Items are so easy to set up and spawn, in fact, that repurposing them for any situation will be a piece of cake for when modding becomes available in the game.
Character Creator
I haven't just been doing that though. In a separate document, I've been planning on how mine will work. For now, I've decided to use blendshapes on top of a base mesh as that seems to work well when blending. Let's just ignore the fact that's the only method I've seem to have come across. I'm going to do some more planning in this area in the upcoming week in preparation for making Cobeta's 3d model.
Landscape Models
You can see in the orange outline how that part of the heightmap is more detailed than the surrounding parts.
That went on for a bit longer than I expected
This upcoming week though, I plan on being much more focused on a few things:
Finishing up the character creation document and Cobeta's Design
Hopefully by next week I'll be able to show off the first design for this game~
I hope you enjoy the game when a download cums out~ 👋
If you like what you see be sure to support me on Patreon~
Discord Server for those that wish to join~
A playable build will be released on March 1st~
And a thanks to these patreon cuties. If you see them, make sure to let them know they're super cute!
Casual
Paracosm
YoLo360SwAgScOp3









No comments:
Post a Comment