Kerning Only Works in Some Applications

Hello,

I’m experiencing an issue where an exported font is sometimes not displaying any of the kerning that is configured in the Glyphs file. Instead, all glyph pairs are equally spaced with no exceptions.

In Finder thumbnails, and Photoshop, the exported font displays kerning pairs properly. However, in Unreal Engine, there is no kerning present. Other custom fonts I’ve downloaded display proper kerning in Unreal Engine.

I’ve tried exporting and importing the font as a .OTF and as a .TFF.

Any advice would be appreciated.

Cheers.

You might have a font cache problem: https://www.glyphsapp.com/tutorials/eliminating-font-cache-problems

This may also be an issue of the app. Some applications still do not support opentype properly.

Thanks for your replies.

I don’t think it’s a font cache problem as the kerning didn’t work from the very first time. I’ve also tried exporting the font under many different names during my troubleshooting.

I’ve also tried both .OTF and .TTF. The weirdest part is that other fonts (.TTFs) I’ve downloaded from the internet and added in Unreal display with proper kerning.

To add a font to Unreal, you drag and drop the font directly into the application’s folder structure and that works with or without installing the font in the OS.

Thanks for your time.

Have you asked the Unreal developers? I don’t know the app.

I’ve posted on the Unreal forums as well, yes. Despite being a well-documented application, there doesn’t seem to be any history of kerning problems in Unreal.

Are there any other options for including kerning information in an export from Glyphs? There just has to be a reason why some .TTFs and .OTFs display kerning in Unreal but mine doesn’t.

Can you send us one of the fonts that does show Kerning?

Here’s a Google Drive LINK with the .TTFs of a working font and my font. Also included are examples of the kerning working/not working.

Thanks for your time.

It’s possible that the Unreal Engine is looking at the old-style kern table instead of the GPOS kern feature.

To write an old-style kern table, add the Custom Parameter Write Kern Table to either the Instance or the Font tab in File > Font Info… (Command-I) and select the checkbox so that it is enabled. The Write Kern Table will be greyed out and not show up in the suggested list, but should still work.

You also need to export as a TTF format to have the old-style kern table added.

There might be a better way to get the font kerning to work with Unreal Engine, but it would require more investigation with Unreal. Note that I have not tested this font in UE4.

If you have an OTF font file that has kerning show up properly in Unreal Engine, that might also help in troubleshooting and understanding the issue.

1 Like

Wow! That worked!

I exported the font as a .TTF with the custom parameter “Write Kern Table” (typed in manually) checked. I imported it into Unreal and it kerns properly.

Thank you so much, you’ve been a big help.

You should report this to the Unreal developers so they move their font support into the twenty-first century.

It may be that Unreal Engine uses FreeType which, as far as I know, does not support GPOS kerning features. It’s possible that a number of applications use FreeType without an additional processing engine. A couple notes from FreeType about their kern support:

https://www.freetype.org/freetype2/docs/glyphs/glyphs-4.html
https://www.freetype.org/freetype2/docs/tutorial/step2.html

It might be possible to have Harfbuzz or ICU handle the shaping and font processing in Unreal Engine, but that would require more investigation or conversation with Epic Games developers about what’s needed to configure that processing.

Still, it’s worth mentioning to the Unreal Engine support folk, @Flynn.

It’s great that Unreal supports fonts in the first place (yes I’m being sarcastic). Unity cannot even handle fonts as they are, and need to convert to rasterised textures in the end.