Font issue: need to recreate system fallback (in particular, Japanese)

Godot Version

4.6.2

Question

tl;dr: system fallback for Japanese looks great, but it seems every font+settings I try does not look great. Alternatively, I need a Japanese font with skinnier katakana (and preferably hiragana too)

I’m trying to localize my game into Japanese. If it’s relevant, the resolution is small, 320x240, then you can scale it up.

I used a font with no Japanese support (Noto Sans), in settings enabled Multichannel Signed Distance Field and Allow System Fallback, and this is how the stats for one of the characters (Edwin) looked:

rich text editor image

Looks nice! Just to try things out, I turned Multichannel Signed Distance Field off, set Oversampling to 3, and this is what I got:

rich text editor image

Looks not so good. Not *that* bad, but the kanji are like unintelligible. So Multichannel Signed Distance Field on it is. I did a quick Google, turns out the Windows default for Japanese is something like Meiryo UI. So I slap that in Godot, set it as a fallback for my main font (in fact, the *only* font actually used anywhere), make sure Multichannel Signed Distance Field is on, and this is what I get:

rich text editor image

What the heck, it’s way too wide. Then I read it might be Yu Gothic UI, so I try that:

rich text editor image

A little different, but just as bad width-wise. I’ll spare you the details, but I attempted many fonts with many different settings, and could *not* for the life of my recreate system fallback.

The translation itself does not use half-width characters for his name. I’m at a total loss why the spacing is nice for system fallback, and bad when I actually specify (seemingly) any font with any settings. I’d also rather not change my layout or put half-width characters in the translation. Or add negative pixels between the characters. Someone please tell me there’s some nice combo of font and settings out there to get skinnier katakana.

Oh, and one last thing. I opened up good ol’ Word, and typed Edwin’s name in many different fonts, and Meiryo UI and Yu Gothic UI were indeed visibly narrower (last and 3rd to last):

image

Again… I’m at a total loss.

Thanks!

Your font may quite well support different widths. Create a font variation resource and add your font as a base font. Then check the Open Type Features. Click Add Feature and see what additional stuff your font supports.

This is a good site to examine fonts: https://fontdrop.info/ Just drop your font there and it tells everything about the font.

Ooh, super helpful, thanks! Why yes indeed, some of the fonts have some feature like “Half Widths.”
But curiously… ok here’s a snip of when I set the font to Kosugi, with Half Widths on

[I had to delete this picture, but trust me, it looked bad]

And here’s the same font, but the only difference is Half Widths is not enabled

[I had to delete this picture too, but trust me, it still looked bad]

Looks identical! But I know tinkering with the fonts is, in general, working, because when I change the extra glyph spacing to -3, this is what I get:

[I had to delete this picture too, but trust me, it still looked bad]

But wait, there’s more!!!

So then I thought, “hm, maybe there’s a fallback problem.” So rather than setting the font as what I called PrimaryFont.ttf and setting new_font_variation.tres as a fallback, I set the font directly as new_font_variation.tres, and what do I see?

image

HOORAY! But this is maybe a bug? OpenType features don’t work for fallback fonts?

Anyway, Dizzy_Caterpillar, many thanks :slight_smile: