Text Mesh Pro - The Ultimate Text Solution for Unity - Powerful & Flexible - Advanced Text Rendering

** Please post TextMesh Pro related questions in the Unity UI & TextMesh Pro section of the user forum. Be sure to add the TextMeshPro prefix to these posts.

Hello Everyone!

After months of development, I am pleased to announce that TextMesh Pro! is now available in the Asset Store. :slight_smile:

Developing TextMesh Pro has been a rewarding and challenging experience thus far. I hope that TextMesh Pro will live up to expectations and I will certainly continue to strive to make sure it does. I look forward to your feedback and answering any questions you may have. So without further ado, let’s take a look at what TextMesh Pro is and what it can do for you. :slight_smile:

- Stephan B.

IMPORTANT NOTE: The latest beta releases of TextMesh Pro with support for Unity 4.6 and the new UI as well as beta releases for Unity 5.0 are available to all registered users of the product on the TextMesh Pro User Forum. Once your registration to the forum has been approved, you will find the latest beta releases in the “TMPro - Alpha & Beta Releases” section of the forum.

INTRODUCING


Three TextMesh Pro objects as seen in the Unity Editor.

What is TextMesh Pro?
TextMesh Pro! is the ultimate replacement for Unity’s built-in Text Mesh Component (a.k.a. 3D Text). It was designed to provide users with a more powerful and flexible solution for their text creation layout needs while remaining easy to use and with improved performance.

Advanced Real-Time Text Rendering
Text is an important part of any game or project and as such shouldn’t your text always look amazing? TextMesh Pro uses an advanced text rendering technique known as Signed Distance Field “SDF” text rendering. The combination of SDF text rendering and a set of advanced custom shaders delivers substantial visual quality improvements over normal bitmap fonts while giving users amazing flexibility when it comes to font styling texturing. Of course, TextMesh Pro also supports and works with bitmap fonts.


“S” Letters shows some of the dynamic changes that can be applied to a single SDF font asset. With the exception of the first bitmap “S”, all visible text including the captions is an example of SDF based text rendering.

Amazing Flexibility & Quality
Besides the amazing visual quality improvements made possible by our advanced text rendering, another huge benefits is that we can virtually get an unlimited number of visual styles treatments from a single SDF Font Atlas and they look great at any point size. In addition, SDF font atlases are typically smaller in size than their bitmap based counterparts.


Close up - These two letters are using the same SDF Font Atlas. They are simply using two different materials.


Real-Time dynamic text font styling texturing.

Custom Editors & Improved Text Formatting
Starting with a larger text input box to a more comprehensive list of Rich Text which include underline, superscript, subscript or size to dynamic character spacing or word wrapping as well as support for kerning, TextMesh Pro! has you covered.


TMPro Inspector Material Editor Panel


Example showing superscript, subscript and center justification.


Partial list of some of the Rich Text Tags available in TextMeshPro.

Built-in Font Asset Creator
Want to use some new TrueType or OpenType font but need to create a font atlas for it? Not a problem with TextMesh Pro!. Just import your font in Unity. Open the built-in Font Asset Creator and within 30 seconds your new font asset is ready.


Built-in Font Asset Creator. No need for any external tools. Create normal bitmap font assets or SDF font assets with the built-in Font Asset Creator.

Intuitive User Interface
TextMesh Pro! features several custom inspectors editor panels. They were created to give users access to what they need while keeping things simple.


Shown TextMesh Pro!'s custom editor material inspector.

Scripting Interface
Need to create or modify text objects via scripts? All of Unity’s components offer a scripting interface and so does TextMesh Pro! All of the relevant properties of TextMesh Pro! can be accessed via script.


Example of TextMesh Pro! object creation via script.

TextMesh Pro! Main Features

  • Easy to use with simple UI featuring custom inspectors and editor panels.
  • Supports both Bitmap & Signed Distance Field font atlases.
  • Built-in Bitmap & SDF font atlas creation tool.
  • Most accurate & highest quality SDF Text Rendering tool.
  • TrueType OpenType font support.
  • 2D Text objects can be created in the Editor or dynamically via scripts.
  • Greatly improved performance over Unity’s 3D Text and TextMesh
  • Optimized to avoid Runtime Memory Allocations and keeping the Garbage Collector away.

Formatting Styling Options

  • Dynamic font sizing. SDF font atlas renders sharp and great looking text at any sizes.
  • Rich Text support. Per character tags include color, bold, italic, underline, superscript, subscript, size, tab, space and position.
  • Text Anchoring - The usual 9 positions.
  • Text Alignment - Left, Center, Right and Justified.
  • Control over Character, Line and Paragraph spacing.
  • Automatic word-wrapping with control over word or space tracking.
  • Kerning support along with Kerning Pair editor.
  • Multiple Texturing Mapping options.

Material Presets & Built-in Custom Shaders

  • Custom Context menu to enable easy creation of material presets and managing of materials.
  • Optimized shaders designed for OpenGL ES 2.0 compatible devices. (iphone 3gs and later)
  • Basic Bitmap text shader
  • Face vertex color
  • Face Texturing with multiple mapping options
  • Basic SDF text shader
  • Face vertex color
  • Advanced SDF text shader
  • Face vertex color
  • Face texturing with multiple mapping options
  • Border texturing
  • Border thickness softness control
  • Beveling + Glow control
  • Advanced Surface SDF text shader
  • Real-time lighting shadow casting
  • Plus same features as Advanced SDF text shader

Contact Information Useful Links

Once again, should you have any questions, please feel free to ask. It will be my pleasure to reply to you.

1 Like

TextMesh Pro Surface Shader Web Demo

This scene shows a few TextMesh Pro text objects. The Logo is using the Surface Shader and as such it is affected by scene lighting. The caption text below this logo is using the normal distance field shader.

The text on the right wall (on the left since I am being the logo object) is being generated via code and using the TextMeshPro.maxVisibleCharacter property which allows a user to control how many characters will be displayed. Please note that word wrapping is used.

The level text in the background is also being generated via code. It is also using a Surface Shader. The _GlowPower property is being animated using an animation curve.

The frame counter in the top right as well as camera controls in the bottom right are is also TextMesh Pro objects using Overlay mode.

Here is a link to the web demo of this scene.

1 Like

TextMesh Pro - Quick Start Guide
In this video, I go over some of the basics of TextMesh Pro which includes:

  • Asset Package Content
  • How to create a new TextMesh Pro object.
  • TextMesh Pro UI Panel.
  • Font Asset creation using the built-in Font Asset Creator.
  • How to assign this newly created font asset to a new TextMesh Pro object.
  • Basics of the Signed Distance Field Shader.

Awesome - congratulations to the release!!!

I’m buying this right now. And I’ll be adding this to the list of packages supported by ScoreFlash (btw, currently also working on NoesisGUI support and it’s coming along nicely) :slight_smile:

Thank you!

I look forward to seeing our products working together. If you need anything, let me know :slight_smile:

Just modified the (mostly) Surface Shader Web Demo to feature some scrolling text with (soft) vertical mask …

I bought this the day it came out.

It is so flippin awesome!!!

This is one of a very few select plugins i consider must have.

Thank you for the kind words.

In terms of “awesome!!!” … We are just getting started. Given time and a little help from Unity in terms of getting additional features like additional Vertex Streams, Render Textures available in Unity Free Pro and highly optimized way to update textures at run-time for instance, this awesome could turn into Amazing!!! Hopefully TextMesh Pro will do well enough to make all of this possible :slight_smile:

Don’t forget the 5 star review, guys :wink:

Here is a glimpse at a the new TextMesh Pro - UGUI Component along with the new Margins feature that will become available with the release of Unity 4.6.

In this image, you can see the margins represented by the yellow lines. These margins define where the text live within the RectTransform.


Text is using the Justified mode.

Margins provide better control over your text when used in conjunction with clipping or masking. Example showing soft masking as we change the VertexOffsetY material property in the Material Editor.


Text is Left Justified. Soft Masking + VertexOffsetY to move text outside RectTransform bounds.

Lastly, here is a video showing and describing these new features.

Unlimited Style Variances
In TextMesh Pro, the appearance of your text is control dynamically by changing material properties. There is no need to use Photoshop or to alter in any shape or form the font asset (atlas) or to create additional font assets. From one single TextMesh Pro SDF Font Asset, an unlimited number of style visual permutations are virtually possible.

Using the following TrueType Font a new font asset was created using TextMesh Pro’s built-in Font Asset Creator. Here is an example of what this font looks like without changing any material properties.

Next we add some Outline Thickness to get the following results. Again, we are using the same Font Asset.

Next, we add a shadow using Underlay with some offset X Y value.

We now add a texture on the face of the text.

Let’s add a texture to the Outline along with some beveling.

Lastly, let’s add some Glow inside the face of the text.

In my next post, I’ll show some examples of how we can actually animate these dynamic material properties.

Perhaps a little close up of the letter “Z” of Red Zone might be interesting to look at…

Kerning
While working on this Red Zone example, I ended up experimenting with another font called Snap it! As you can see, I changed the bevel and glow colors however, as I looked at the text, it looked like it could use some kerning.

The image below shows the text with Kerning disabled.

Here is the same text after adding a few Kerning Pairs. It is a subtle change but it does make a difference.

Here is a video showing this whole process

As the Z closeup above shows, the rendering is resolution independent.
You can zoom in, and the text will retain all of its detail.
Great when you are targeting multiple devices, as you can be sure it will always render your text sharp and clear.

This also apply to plain text as the web demo below highlight.

This scene is made of a single text Mesh Pro object with the camera set to cycle its position in 3d space…
No CPU usage or allocation of any kind is going on, the font scaling is solely performed on the GPU.

In this case we use the mobile optimized shader (shader model 2.0, opengl es 2.0) and render the face and soft drop shadow in a simple pass.

http://digitalnativestudios.com/textmeshpro/web-demos/Zoom_Demo.html
(This web demo is 164K)

Here is a PNG of this scene in Unity.

One detail : All position are sub pixel accurate, and with full kerning support you are guarantied correct typography at any size. No more weird spacing, get full consistency on all devices/dpi.

Nice job man

Impresive work! just one question: how does it behave with 2dtoolkit?

Thank you!

I do not know since I have never used 2DToolKit. TextMesh Pro is a replacement for Unity’s 3D Text / Text Mesh so as long as 2D Toolkit works with those we should be fine.

Thanks for the answer Stephan, I will give it a try and let you know and the community know

Thank you and I look forward to your report.

Please make sure you register to the TMPro User Forum which will make it easier for me to help you out should you run into any issues between TextMesh Pro and 2D ToolKit.

Creating TextMesh Pro objects via Script

Often people are curious as to how you would create a TextMesh Pro object via scripting. Here is a video a did a little while ago going over this process.