Night comes to the village: day/night phases and a bright moonlit night
Made a two-step day/night system that fades over when you stay at the inn or during events. For night I went with a bright moonlit night (V1) with moonlight, stars, a moon, 27 street lamps and lit windows, and kept the daytime look unchanged.
I was pretty happy with how the village looked during the day. I'm still thinking about a weather system, but there could be night events, so I needed day and night. The goal was to leave the daytime look as it is and add a night that the inn, story or events can switch to.
I captured three night backdrops (V0 day / V1 bright moonlit night / V2 dark night) and a few character brightness options from the same spot using temporary values during Play, compared them, and picked.
What I built
Night lighting is a bluish moonlight (intensity 0.5, same direction as the daytime sun) with dark navy ambient light and fog. I lowered reflections to 0.25, because reflections baked from the daytime sky shouldn't flash at night.
I added stars (two sizes, twinkling, hidden by the horizon and clouds) and a moon disc to the sky shader. The new values default to 0, so the daytime sky stays the same.
For street lamps, each of the 27 lanterns gets one light (intensity 3, range 9 m, no shadows), and I made the lantern material glow orange. They turn off during the day. For windows, only 117 of 158 material slots (about 70%) light up orange, and chimney smoke turns a dark blue-gray. For post-processing, I left the village's base settings alone and blend a night-only layer on top (saturation −15, bloom 0.8) from 0 to 1.
For the character I went with C3. The scene light ratio is 0.6, so the character picks up a bit of the moonlight color. 0 cuts off scene light like it does now, and 1 takes the moonlight as is. The fixed light direction and the street lamp blocking stay as they were.
To switch, I set or toggle day/night in the time-of-day manager, and it fades over in 1.5 s by default, then sends a single "changed" signal when it's done. The time of day carries over between scenes, and during development I can switch instantly with F8. Switching to night turns on all 27 street lamps and 117 window slots; after 1 s the night amount is 0.86, and at about 1.5 s it's fully night.
I compared the daytime screen before and after, pixel by pixel, from the same viewpoint. The only differences are things that move anyway, like cloud shadows, grass and smoke, and building walls and roofs show 0 difference. I haven't checked actual F8 input or frame time yet.
Things I thought about
- Step switching instead of a real-time clock, with just two steps: day and night. It fades over when you stay at the inn or during events. Sunset can be added later.
- Night is V1, the bright moonlit night, and the character is C3. For the character I started from straight moonlight (C2) and made it a bit brighter.
- No weather. If I add it, I plan to attach it as a layer on top of the time-of-day presets.
- Day preset = the scene values at setup time. That's why the daytime look doesn't change. Windows, smoke and sky only change material copies during Play, and the originals and pack assets aren't touched.
Rabbit hole: neon green grass and trees at night
The foliage shader adds transmitted light to the color, so even under dim moonlight, the green alone stayed glaringly bright. I toned it down by lowering saturation in the night post-processing.
Rabbit hole: glowing white smoke and black cloud smudges
Smoke is an unlit particle, so it glowed white even at night. I gave it a separate, darker night color. The clouds around the moon looked like black smudges, so I changed them to a pale grayish blue, as if lit by the moon.
Rabbit hole: lighting every window blew out to white
When I turned on every window, the screen blew out to white. I compromised by lowering the glow to an orange tone and lighting only about 70%.
Rabbit hole: the character came out black
I raised the scene light ratio so the character would pick up moonlight, and instead the character turned pitch black. The village directional light's rendering layers didn't include Character, so raising the ratio made the light color it received 0. I added Character, and pinned the shadow layer separately to the existing Default so no new character shadow shows up during the day.
Next up
- Save the time of day in save data, apply night to interior scenes, night NPC placement and BGM
- Street lamp lights have no shadows, so a little light may leak through walls. If it bugs me, turn on shadows for just a few nearby ones
- If the time of day changes while a house is faded out, that house's window light stays at the old value. It goes back to normal once the house turns opaque again

