Typography

May 19, 2026 · View on GitHub

Render text, images, and particles on a VRChat avatar. Three shaders (Typography / Imagery / Particler) controlled entirely through material properties — no C# scripts, Animator drives everything.

Unity 2022.3+ License: MIT

Japanese | Changelog

Performance

Fragment shader instruction count vs. comparable libraries (Unity compiled shader stats, d3d11):

MathTextureBranch
Typography920331
SSVFX3,702102201
TexSvfx5,585210255

Average frame cost:

AvgRatio
Typography0.471 ms1x
SSVFX0.851 ms1.8x
TexSvfx6.094 ms13.0x

Numbers are for the text shader. Imagery and Particler render in separate draw calls.

Installation

Requires Unity 2022.3 LTS+, Built-in Render Pipeline, and Thry Editor.

  1. Import Thry Editor
  2. Import the Typography unitypackage
  3. Three sample materials appear under Prefab/:
    • GekikaraStore_Typography.mat (text)
    • GekikaraStore_Imagery.mat (image)
    • GekikaraStore_Particler.mat (particle)

Quick start

  1. Duplicate Prefab/GekikaraStore_Typography.mat into your project and rename
  2. Assign it to a GameObject with MeshFilter + MeshRenderer
  3. Open the material inspector, add a Font asset under Fonts
  4. Open Layer 0, toggle Use on, type into Text
  5. Click Gen — the atlas and mesh generate and assign automatically
  6. Tweak effects (Typewriter, Outline, Fractal Noise, etc.)

Image and Particle work the same way — no Gen needed, they use the static meshes shipped with the package.

Effects

Per layer (32 per material):

  • Typewriter — reveal characters sequentially or through a sliding window. Direction (LTR / RTL / Center Out), Group By (Character / Word / Line). In and Out phases each carry separate progress and transform offsets
  • Centering — keeps the visible portion centered while Typewriter is mid-animation
  • Spacing — letter spacing with Center / Left / Right anchor
  • Scatter — random or directional per-character displacement
  • Repeater — duplicate the layer 1–16 times with per-copy transform offsets
  • Curve Path — drive per-character X/Y/Z position with AnimationCurves
  • Path Shape — bend the text along Circle or Rectangle paths
  • Shake — random per-frame jitter
  • Outline — Outline (filled) or Stroke (outline only) mode with rounded corner option
  • Fractal Noise — color modulation through 6 noise types (Simplex / Flow / FBM / Turbulence / Ridged / Marble)

Limits

  • 255 characters per text layer (split longer text across multiple layers)
  • Material must be saved as an asset before pressing Gen
  • Adding or removing fonts requires re-Gen
  • Repeater count is animatable up to the baked maximum — set the max higher than the largest runtime value you intend to use
  • Built-in RP only (URP / HDRP not supported)
  • PC and PC VR (Index, Vive, Quest-Link, etc.) — Quest standalone is not a target

License

MIT. See LICENSE.

Dependencies: