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.
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.
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.
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.
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.
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:
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.