[UX / Character Creation] Colors and colorization
发表于 : 周六 6月 28, 2025 8:11 pm
We're in the process of refining the character creator, and one of the biggest topics on our minds is color. Specifically, how you, the players, will get to colorize your character's features like hair, eyes, and body. We want to find the perfect balance between creative freedom and a system that guarantees good-looking results within our game's art style.
This is a core part of the experience, so we want to build it with you.
A Little Tech Talk
To understand the options, it helps to know how our colorization works under the hood. Our character part sprites (hair, etc.) are drawn in grayscale. Our character shader then takes a color you choose and multiplies it against the grayscale sprite.
Think of it like shining a colored light on a black-and-white photograph. The white parts of the photo take on the color of the light perfectly, the gray parts become a darker shade of that color, and the black parts stay black. This method allows for great shading and detail, but it has its quirks.
The Problem We Ran Into
Our very first internal build used a 100% open RGB color picker. While this offered total freedom, it often led to... "broken" results. For example:
This leads us to a crossroads with a few potential paths forward. We've mocked up a couple of systems and want to know what you think.
Option A: Large, Curated Palette (Our Current Approach)
We've built a very large, hand-picked palette of colors. This isn't just 16 basic colors; we're talking hundreds of options with a wide variety of hues, saturations, and lightness values.
Pros:
We could go back to an open system, likely with HSL (Hue, Saturation, Lightness) sliders which are a bit more intuitive than RGB.
Pros:
This is a core part of the experience, so we want to build it with you.
A Little Tech Talk
To understand the options, it helps to know how our colorization works under the hood. Our character part sprites (hair, etc.) are drawn in grayscale. Our character shader then takes a color you choose and multiplies it against the grayscale sprite.
Think of it like shining a colored light on a black-and-white photograph. The white parts of the photo take on the color of the light perfectly, the gray parts become a darker shade of that color, and the black parts stay black. This method allows for great shading and detail, but it has its quirks.
The Problem We Ran Into
Our very first internal build used a 100% open RGB color picker. While this offered total freedom, it often led to... "broken" results. For example:
- Picking a very dark color would crush all the details into a black, muddy mess.
- Picking a super-saturated, bright neon color could look jarring and out of place, sometimes losing shading detail.
This leads us to a crossroads with a few potential paths forward. We've mocked up a couple of systems and want to know what you think.
Option A: Large, Curated Palette (Our Current Approach)
We've built a very large, hand-picked palette of colors. This isn't just 16 basic colors; we're talking hundreds of options with a wide variety of hues, saturations, and lightness values.
Pros:
- Every color is guaranteed to look good with our shader.
- Maintains a cohesive art style across the game world.
- Still offers a massive amount of choice.
- Better User Experience (UX) for players who might be overwhelmed by infinite choice.
- It's not true freedom. You can't pick that exact RGB value if it's not on our list.
We could go back to an open system, likely with HSL (Hue, Saturation, Lightness) sliders which are a bit more intuitive than RGB.
Pros:
- Maximum creative freedom. You can pick any color in existence.
- Fulfills the promise of letting players have complete control.
- High potential for players to unintentionally create weird or broken-looking color combinations that our shader can't handle well.
- Could lead to immersion-breaking characters in the game world.