How Chao Colouring / Textures Work

A forum for discussion regarding hacking of the Chao system and editing things with non-standard methods.
Warning! This topic is 5 years and 2 months old! Please consider opening a new topic rather that bumping up this very old post.
Post Reply
User avatar
Pratzelwurm
Adult Chao
Adult Chao
Posts: 113
Joined: Thu Jul 21, 2016 10:24 pm
Motto: I'm a cool kitty cat
Location: cat planet
Contact:

How Chao Colouring / Textures Work

Post by Pratzelwurm »

I would put this under the contributions forum, but it's locked so I guess here is the best alternative since it's somewhat related to chao editing?

Anyways, I want to share a few things that I discovered awhile back about the nature of chao colours and textures that I haven't seen other people point out. I verified this for neutral and dark adults by ripping the textures from the game, but I couldn't get the hero or child chao model textures to rip properly, but I assume they work similarly.

So, as we know, basically every chao aside from jewel chao and coloured monotone chao will change their colours and markings depending on their evolutionary path. But how does that work?

=== BLENDING MODES ===

Through chao hacking and texture ripping, I found that each chao basically has four possible textures applied to it, which are as follows:
  • Base colour - solid colour texture that changes for "normal" chao and remains stagnant for all other types
  • Two-tone overlay - separate texture file(s) that are placed over the base colour and set to the blend mode "multiply"
  • Shiny texture - separate texture file that is placed over the other base (and the two-tone if applicable) and set to the blend mode "screen" (possibly "dodge" or "overlay", hard to tell)
  • Jewel texture - another separate texture file which is placed over any other texture files, covering them completely
On the PC version, regarding shiny two-tones, or "bright chao", rather than the shiny texture being screened over the two tone one as it is in the Dreamcast / Gamecube version, the shiny texture file is not present, and it sets the blend mode two-tone texture to be dodge rather than multipy over the base, resulting in the chao's bright and seemingly off-coloured appearance. I'm not sure why it does this, or why this glitch affects how the model reacts to the level lighting, but this is how it impacts the texture.

The textures of the wings and emote remain unaffected.

Let's take a Dark/Fly/Fly chao for example.

Here he is normally:
Image

If we remove his two-tone texture, he looks like this:
Image

A nice shade of lavender!

Here he is shiny monotone, and shiny twotone (on PC, since I can't get screencaps from my Gamecube version)
ImageImage

So, how do we verify that the change in the colour markings is caused by varying the blending mode? Well, we can actually isolate the "pure" colours of the twotone texture by setting his base colour to be white, as any colour multiplied by white (#FFFFFF) is still itself.
Image

So, voila, there is what the Dark/Fly texture appears like without being multiplied over another base. To demonstrate, I took this screencap and manually multiplied and dodged it over the monotone image.
ImageImage
ImageImage

It's not an exact matchup since the model itself is being affected by the level lighting, but you can see the general idea.

The same thing applies to a chao with a solid colour base.
Image
ImageImage
ImageImage

Pretty neat stuff!

=== EVOLUTION ===

The other thing I want to touch on is how the colour is effected by a chao's evolution.

The base colour of a normal chao essentially exists on a multi-scale gradient. For those who don't know, the gradual evolution of your chao is dependent on four sliding scales:
  • Alignment - this only effects the appearance of baby chao
  • Swim/Fly leaning - giving your chao swim or fly animals / drives will move this slider towards one or the other
  • Rub/Power leaning - same as above
  • Magnitude - how far along in evolution it is
Each extreme value (i.e. 0% to 100%, and -100% to 0% where applicable) of these scales has a set colour, and these blend together as it moves from one end to another.

Here are some examples:

Neutral newborn --> Neutral/None baby
ImageImage

Dark/None baby --> Hero/None baby
ImageImage

When the overlay texture changes, one texture will simply fade out while the other fades in. This is pretty much only relevant to baby chao though, since adults of the same alignment and type will all have the same twotone pattern simply overlayed over different bases.

Various Neutral/Fly chao
Image

Neutral/Run --> Neutral/Run/None
Image

Neutral/Run --> Neutral/Run/Swim
Image

Both of those start in the same place, but end up in different colours. You can also shift your chao's second evolution.

Neutral/Run/Swim --> Neutral/Run/Fly
Image

As you can see, there are a lot of different colour possibilities. Most (if not all) of these can actually be found under the "invisible" colours that you can set your chao's base to manually via editing. Perhaps I will make a database of which invisible colour goes to which chao type, if someone else has not already done so lol

The main exception to the colour blending is hero chao, both babies and adults. All of them have white bases, and, though the two-tone texture is the same on all babies and all adults of the same type, the pattern itself is what changes colour rather than the base. I'm not entirely sure how that works, since I was unable to successfully rip all of the hero textures.

Various Hero/Power chao
ImageImage

Anyway, that's just some cool stuff I've figured out! Feel free to correct me on any mistakes or add your own information, I just thought I'd share this because I thought it was interesting.
25↑ | he/him | simultaneously dead and alive until observed

Image

:herocool:
User avatar
Eru
Moderator
Moderator
Posts: 29
Joined: Tue Aug 28, 2018 10:44 pm
Motto: bread
Contact:

Re: How Chao Colouring / Textures Work

Post by Eru »

Really neat stuff, love the time put into this to document the changes. The shiny textures being set to dodge rather than multiply in particular interests me, as well as how the hero chao blending is handled- if I knew more about coding Id love to look through the code and see how it works.

Also thought Id grab a few screenshots just to add to what you already mentioned in the post because the more the merrier:
ImageImage
Top left: Two tone regular
Bottom left: Two tone white
Top Right: Mono tone regular
Bottom Right: Mono tone white
...of Dark/Run chao of different secondary alignments.

Do you think you'll look into the blend types of the Hero chao? Im curious as to why only Fly/Swim ans Fly/None have a significant change colour, as well as how Swim/Fly is the only ___/Fly secondary evolution to not tend to a shade of purple and instead becomes a vivid green. I lack the knowledge of different blend types or hexadecimal colours as to why it does this though.
mooncow smells
User avatar
Pratzelwurm
Adult Chao
Adult Chao
Posts: 113
Joined: Thu Jul 21, 2016 10:24 pm
Motto: I'm a cool kitty cat
Location: cat planet
Contact:

Re: How Chao Colouring / Textures Work

Post by Pratzelwurm »

The only hero texture I was able to rip was for the Hero/Power type, which seems to be the same for all iterations. My guess is that there's another sort of colour filter applied to hero chao, but it's not a simple hue shift, and it doesn't effect the base colour at all, so I'm not sure what it is. I'd be curious to find out, though!
25↑ | he/him | simultaneously dead and alive until observed

Image

:herocool:
Exant
Chao Researcher
Chao Researcher
Posts: 7
Joined: Sun Nov 26, 2017 8:38 am
Contact:

Re: How Chao Colouring / Textures Work

Post by Exant »

I just wanted to point out that the Shiny texture blending mode is actually additive, and brights are the result of trying to use the "shiny-monotone" shader mode which is basically (Shiny texture.rgba + Base color), but instead of sending the shiny texture, they send the body texture or "twotone texture" and then its basically (body texture.rgba + base color).
User avatar
Pratzelwurm
Adult Chao
Adult Chao
Posts: 113
Joined: Thu Jul 21, 2016 10:24 pm
Motto: I'm a cool kitty cat
Location: cat planet
Contact:

Re: How Chao Colouring / Textures Work

Post by Pratzelwurm »

That makes a lot of sense. I'll edit the main post a bit (also with some new info I've found)
25↑ | he/him | simultaneously dead and alive until observed

Image

:herocool:
azureprism
Evolved Chao
Evolved Chao
Posts: 99
Joined: Fri Sep 29, 2017 12:48 pm
Motto: without memes i will die

Re: How Chao Colouring / Textures Work

Post by azureprism »

IIRC the colouring of the Hero Chao textures are extremely dependant on palette files, think it might have been the .PVRs? The file extension definitely starts with a P.
User avatar
Pratzelwurm
Adult Chao
Adult Chao
Posts: 113
Joined: Thu Jul 21, 2016 10:24 pm
Motto: I'm a cool kitty cat
Location: cat planet
Contact:

Re: How Chao Colouring / Textures Work

Post by Pratzelwurm »

Ahhh I've been super busy and completely forgot about this thread I started... whoops. I still haven't updated the main post.
azureprism wrote: Thu Oct 04, 2018 8:13 am louring of the Hero Chao textures are extremely dependant on palette files, think it might have been the .PVRs? The file extension definitely starts with a P.
That would make sense. I wish this files in this game weren't so tricky to deal with so I could examine them properly!
25↑ | he/him | simultaneously dead and alive until observed

Image

:herocool:
Post Reply