Search Unity

TextMesh Pro Joins Unity

Unity is excited to announce a powerful new addition to our creative tools suite: TextMesh Pro and its creator, Stephan Bouchard, have joined Unity!

TextMesh Pro is a replacement for Unity’s existing text components like Text Mesh and UI Text. TextMesh Pro uses Signed Distance Field (SDF) as its primary text rendering pipeline making it possible to render text cleanly at any point size and resolution. Using a set of custom shaders designed to leverage the power of SDF text rendering, TextMesh Pro makes it possible to dynamically change the visual appearance of the text by simply changing material properties to add visual styles such as dilation, outline, soft shadow, beveling, textures, glow, etc. and to save and recall these visual styles by creating/using material presets.

Example of Dynamic Visual Text Styling

TextMesh Pro provides improved control over text layout and formatting giving users control over character, word, line and paragraph spacing, support for kerning and basic hyphenation, additional text alignment modes like Justified and Flush text, over 30 Rich Text Tags are available giving users control over margins, indentation, user definable styles, links and even support for using multiple fonts and graphics inline with the text.

We have already started work to integrate TextMesh Pro’s functionality into Unity 2017, and will continue to support the asset with periodic updates to functionality and compatibility to ensure a seamless experience for TextMesh Pro users.

Hi, do you have plans to support dynamic font ? Something like rendering current visible characters to an renderTexture, and when adding new chars, calculate its sdf before rendering. (just an idea, i tried before, but didn’t work because of unity’s api limitions.) With this additive pattern we can have a dynamic sdf texture, then when usng non-english characters, we don’t need pre-calculated data, and most importantly, we can render arbitrary charactors with ease.

but unity 3d not support rendering of GSUB and GPOS properly.
even we can make sdf font with all character but when assign add text in text component then its OK but in game view not rendering properly. i try with UGUI, NGUI, Text mesh pro ,text mesh but nothing is working proper. With English it’s OK but when use Indiana language,Arabic, Farsi,pasto-dari etc. it’s not Working.
i’m using Arial Unicode ms font (inside this font many language available ) . i don’t have issue with RTl but text rendering is not proper.

Since I just started working on this and need to get up to speed on the internals of Unity, I don’t have an ETA yet on when this integrated incarnation of TextMesh Pro will be available.

As I have mentioned before, this integration will essentially be a full re-write as I look to take full advantage of the closer integration and ability to leverage the native side to provide even greater functionality and performance. I refer to this as Phase II.

In the meantime, I will continue to provide support and updates to the current incarnation of TextMesh Pro which is available on the Asset Store.

At some point in the Unity 2017 release cycle, we plan to include the current / an updated version of TextMesh Pro with Unity either with the dlls or as an option in the Unity installer. I refer to this as Phase I.

The valuation will be a lot higher for Pro Tools compared to TextMesh Pro since they have a bigger suite of tools. Not sure Unity is ready to take that kind of risk or Pro Tools is ready to get acquired for a smaller valuation.

TextMesh Pro already includes support for Chinese, Japanese and Korean which requires creating a Primary Font Asset and potential Fallback font assets which include the characters used in your project.

TextMesh Pro also includes support for proper line breaking for Chinese, Japanese and Korean.

I have an important question, in order to use textmesh on MOBILE devices, where size really matters.

1. Due to texture size limit, multiple localizations and and general tendency to keep apps small, we would need support for dynamic SDF texture generation on a separate thread or maybe even with a shader if render targets are supported on all devices.
2. atlases can’t be bigger than 1024*1024 on some devices, we would need support for multiple atlases (I don’t know if it’s supported atm).

Just ignore the 1st sentance, I forgot to delete it :) But please do consider reading points 1 and 2. I think SDF text is the way to do font rendering even on mobile devices if you manage to solve those main two issues.

I agree that an improved solution is needed to balance localization needs and font asset / package size.

I believe using a combination of Primary Font Assets created offline in conjunction with Fallback Font Assets which would be loaded on demand along with the ability to use Dynamic Fallback Font Assets would provide for the most flexibility in terms of handling, quality assurance and package size control.

Given the Dynamic Fallback Font Asset would only need to contain those few characters not already included in the Primary and Fallbacks almost exclusively resulting from user input, whatever performance overhead resulting from having to add these characters into a font atlas a run time should be masked behind the relatively slow human typing speed.

I believe this system would be a good hybrid alternative to a full dynamic system.

Note: If you have questions / concerns or suggestions about this system, please create a post in the Unity UI section of the forum. Be sure to add [TextMesh Pro] as a prefix to the post title and I will be more than happy to discuss this further :)

Dynamic fonts is incrediably important on the global mobile space. I cannot stress this enough. It is just essential.

But, the idea that typing speed somehow will mask atlas creation is a big strange. I mean, in any connected game, it is not just typing but the seeing of what is typed that requires the atlas updates. Clan chat, user gamer names, all need to support whatever is typed, in whatever language.

Right now we use TMP only in static text portions of the game. And the awful built in text for the names and chat. It’s a bad solution, as you can imagine.

So getting this resolved is our #1 issue.

#2 is support for standard (to the degree there is such) emjoi… which is also critical in chat these days.

#3 Is better dropshadow support. Getting text to pop off the screen requires a special sort of dropshadowing, as seen in games like Clash Royale. Not been able to recreate that with TMP or anything else yet.

Its good news!
Very important think: dont stop support open source version. Its inportant because when you try go to dll version from open source – you can corrupt all your project with a lot of broken links =)

Yes the paid TMP version will continue to be supported via the TMP forums until at least the 2017 integration happens. If you have the paid version be sure to register on the forums as updates wont automatically show in Unity due to it not being on the asset store.