Thai Text problems
I'm currently testing out some text rendering function, where I ran into two Thai-specific problems.
1) The editor doesn't seems to support Thai out of the box. Some kind of Tofu (with ท inside) displays in the text field. Is there a way to change the UI font so it could accommodate Thai text in the input field of the editor?
2) The text control in UMG doesn't seems to support required shaping feature required to render Thai text properly. The missing ones might be mark-to-mark and mark-to-base positioning (probably only one of them are missing, not entirely sure about it). I've tested all 3 available value in the Localization's Text Shaping Method settings and all of them doesn't really work. (the font I used is Noto Sans Thai UI)
notice the tone marks in the highlighted area, they are supposed to be placed a bit higher.
The question is, what shaping features are support in UE, whether or not mkmk and mark feature supported by the engine, and if they are missing, are there any plan to bring it it?
My guess is the work around would be to do manual glyph substitution (which is very common, and probably faster than mark-to-mark/mark-to-base implementation) instead, although it will give a different flavor of headaches I think.
asked Apr 13 '19 at 01:40 PM in Rendering
To answer my own question:
1) I couldn't find how to change the editor's font, or the fallback font rather. However the font file are DroidSansFallback.ttf in the engine's content folder. Replace it with another font that works with the engine will make it work.
2) Seems like the font file I used (NotoSansThai) does not work with UnrealEngine for some reason. I changed to Droid SansThai and the issue is gone. I guess the font I used before uses some feature that Harfbuzz does not recognized (it's a rather old version of Harfbuzz afterall....)
In the end I use DroidSansThai fonts for both place and it works pretty ok.
answered Apr 16 '19 at 10:46 AM
Follow this question
Once you sign in you will be able to subscribe for any updates here