Texto en Unity

El texto es uno de los componentes más importantes de las aplicaciones holográficas. Para mostrar texto en Unity, hay tres tipos de componentes de texto que puede usar: texto de la interfaz de usuario, texto 3D Mesh y texto Mesh Pro. De forma predeterminada, el texto de la interfaz de usuario y el texto 3D Mesh aparecen borrosos y son demasiado grandes. Cambiar algunas variables da como resultado texto más agudo y de mayor calidad con un tamaño manejable en HoloLens. Puede lograr una mejor calidad de representación aplicando un factor de escalado para obtener las dimensiones adecuadas al usar los componentes de texto de la interfaz de usuario y texto 3D Mesh.

How to get sharp and beautiful text
Texto predeterminado borroso en Unity

Trabajar con texto 3D de Unity (texto Mesh) y texto de la interfaz de usuario

Unity supone que todos los elementos nuevos agregados a una escena son una unidad de Unity en tamaño o una escala de transformación del 100 %. Una unidad de Unity se traduce a aproximadamente 1 metro en HoloLens. En el caso de las fuentes, el rectángulo delimitador de un TextMesh 3D entra de forma predeterminada a unos 1 metro de altura.

Working with Fonts in Unity
El texto 3D predeterminado de Unity (texto Mesh) ocupa una unidad de Unity, que es de 1 metro.


La mayoría de los diseñadores visuales usan puntos para definir tamaños de fuente en el mundo real. Hay aproximadamente 2835 (2.834.6456666399962) puntos en 1 medidor. En función de la conversión del sistema de puntos a 1 metro y el tamaño de fuente predeterminado de Text Mesh de 13, la matemática simple de 13 dividida por 2835 es igual a 0,0046 (0,004586111116) que proporciona una buena escala estándar para empezar (algunos pueden querer redondear a 0,005). El escalado del objeto de texto o el contenedor a estos valores no solo permitirá la conversión 1:1 de tamaños de fuente en un programa de diseño, sino que también proporciona un estándar para que pueda mantener la coherencia en toda la experiencia.

Scaling values for the Unity 3D Text and UI Text
Escalado de valores para el texto 3D de Unity y el texto de la interfaz de usuario


Unity 3D Text Mesh with optimized values
Mesh de texto 3D de Unity con valores optimizados


Al agregar un elemento de texto basado en lienzo o una interfaz de usuario a una escena, la disparidad de tamaño sigue siendo mayor. Las diferencias en los dos tamaños son aproximadamente del 1000 %, lo que traería el factor de escala para los componentes de texto basados en la interfaz de usuario a 0,00046 (0,0004586111116) o 0,0005 para el valor redondeado.

Unity UI Text with optimized values
Texto de la interfaz de usuario de Unity con valores optimizados


Nota

El valor predeterminado de cualquier fuente puede verse afectado por el tamaño de textura de esa fuente o cómo se importó la fuente en Unity. Estas pruebas se realizaron en función de la fuente Arial predeterminada en Unity, así como otra fuente importada.

Trabajar con texto Mesh Pro

Con text Mesh Pro de Unity, puede proteger la calidad de representación de texto. Admite contornos de texto nítidos independientemente de la distancia mediante la técnica campo de distancia firmada (SDF ). Con el mismo método de cálculo que usamos anteriormente para el texto 3D Mesh y texto de la interfaz de usuario, podemos encontrar los valores de escala adecuados que se usarán con puntos tipográficos convencionales. Dado que el texto 3D predeterminado Mesh Pro fuente con el tamaño de 36 tiene un tamaño de límite de 2,5 unidades de Unity (2,5 m), podemos usar un valor de escalado de 0,005 para obtener el tamaño del punto. El Mesh Pro texto en el menú de la interfaz de usuario tiene un tamaño de límite predeterminado de 25 unidades de Unity (25 m). Esto nos da 0,0005 para el valor de escalado.

Scaling values for the Unity 3D Text and UI
Escalado de valores para la interfaz de usuario y texto 3D de Unity

Como puede esperar, los tamaños de tipo que usamos en un equipo o en un dispositivo de tableta (normalmente entre 12 y 32pt) parecen pequeños a una distancia de 2 metros. Depende de las características de cada fuente, pero en general el ángulo de visualización mínimo recomendado y el alto de fuente para legibilidad son alrededor de 0,35°-0,4°/12,21-13,97 mm en función de nuestros estudios de investigación de usuarios. Se trata de aproximadamente 35-40 pt con el factor de escalado introducido anteriormente.

Para la interacción cercana a 0,45 m (45 cm), el ángulo de visualización de la fuente mínima legible y la altura son de 0,4°-0,5° / 3,14–3,9mm. Se trata de 9-12 pt con el factor de escalado introducido anteriormente.

Near and far interaction rangeContenido cerca y lejos del intervalo de interacción

Tamaño mínimo de fuente legible

Distancia Ángulo Alto del texto Tamaño de fuente
45 cm (distancia de manipulación directa) 0.4°-0.5° 3.14–3.9mm 8.9–11.13pt
2 m 0.35°-0.4° 12.21–13.97mm 34.63-39.58 pt

Tamaño de fuente cómodamente legible

Distancia Ángulo Alto del texto Tamaño de fuente
45 cm (distancia de manipulación directa) 0.65°-0.8° 5.1-6.3 mm 14.47-17.8 pt
2 m 0.6°-0.75° 20.9-26.2 mm 59.4-74.2 pt

La interfaz de usuario de Segoe (la fuente predeterminada para Windows) funciona bien en la mayoría de los casos. Sin embargo, evite usar familias de fuentes ligeras o semi ligeras en tamaño pequeño, ya que los trazos verticales finos vibrarán y degradarán la legibilidad. Las fuentes modernas con suficiente grosor de trazo funcionan bien. Por ejemplo, Helvetica y Arial se ven hermosas y son legibles en HoloLens con pesos regulares o negrita.

Viewing AngleDistancia de visualización, ángulo y alto de texto

Texto con Mixed Reality Toolkit v2

Calidad de representación de texto afilado con una dimensión adecuada

En función de estos factores de escalado, hemos creado objetos prefabricados de texto con texto de interfaz de usuario y texto 3D Mesh. Los desarrolladores pueden usar estos objetos prefabricados para obtener texto nítido y tamaño de fuente coherente.

Sharp text rendering quality with proper dimension
Calidad de representación de texto afilado con una dimensión adecuada

Sombreador con compatibilidad con oclusión

El material de fuente predeterminado de Unity no admite la oclusión. Por este motivo, verá el texto detrás de los objetos de forma predeterminada. Hemos incluido un sombreador sencillo que admite la oclusión. En la imagen siguiente se muestra el texto con material de fuente predeterminado (izquierda) y el texto con la oclusión adecuada (derecha).

Shader with occlusion support
Sombreador con compatibilidad con oclusión

Siguiente punto de control de desarrollo

Si sigue el recorrido de desarrollo de Unity que hemos diseñado, está en medio de explorar los bloques de creación principales de MRTK. Desde aquí, puede continuar con el siguiente bloque de compilación:

O bien puede saltar a las funcionalidades y las API de la plataforma de realidad mixta:

Puede volver a los puntos de control de desarrollo de Unity en cualquier momento.

Consulte también