Skip to content

Use 3D Modules

Use normal Text Studio effects for per-frame reveal, color, transparency, material channels, and glyph motion. Use Placement for baselines. Add a 3D Module only when reusable work must participate around mesh generation or glyph-object lifecycle. This boundary keeps common animation cheap, keeps geometry decisions inspectable, and makes cache compatibility understandable.

Read the 3D Modules Inspector

The 3D Modules foldout shows cards in effective execution order. Each card reports its shared asset identity, display name, priority, roles, pipeline stages, and outgoing-change participation. Open Module edits the shared asset. Make Unique creates a private reusable copy before experimentation. Remove detaches the module from this host.

Create Module opens one catalog for all built-in module types. Attach Existing references a module already used elsewhere. Module Inputs are assigned separately because the same module asset can consume different host values. Relevant changes request a live rebuild, so the inspector and scene remain synchronized without a manual refresh loop.

Module Control

How to Use It

Effective order and stages

Review priority, roles, pipeline stages, and outgoing-change participation on each module card.

Open Module / Make Unique

Edit the referenced shared asset, or create a private reusable copy before experimenting.

Create Module / Attach Existing

Choose a built-in module type, or reference an existing module asset.

Module Inputs / Remove

Assign values owned by this host, or detach a module without deleting its asset.

Execution Order, Roles, and Stages

A module declares the narrowest truthful role and stage. Priority resolves intentional ordering among compatible geometry work. Pre-geometry changes the input to topology generation; post-geometry transforms the generated result. Glyph Decoration adds topology-driven objects at generated sockets. Reveal, hide, marker, signal, and outgoing-letter responses use shared Text Studio Reactions.

Keep one owner for each response. Use modules for geometry and topology decorations, then use a Reaction Set for finite event feedback. Reactions retain their own bounded schedules, overlap policy, and renderer capability diagnostics instead of adding a second outgoing-motion module.

Layout Transform

Layout Transform applies a curve-weighted position, rotation, and scale offset after base placement and before generated glyph geometry is presented. Choose Per Glyph for a repeated transformation across the line or Whole Text for one shared transform. An optional Float Module Input can multiply influence without modifying the module asset.

Use it for reusable secondary layout art direction, such as lifting the center of a title, rotating a word family, or scaling a whole sign after its authored baseline. Keep primary line, arc, spline, and spatial-form placement in Text Studio Placement so the source layout remains easy to reason about.

Deformer Stack

A Deformer Stack applies ordered, topology-preserving deformation. Built-in operations include Bend, Arc, Shear, Pinch, Flare, Spherize, Cylindrical Wrap, Wave, Noise, and Twist. Each operation can work in Glyph, Word, Line, Text, Object, or World space.

Automatic bounds make a reusable effect adapt to the current text. Custom bounds give deliberate art-direction control. Falloff limits the deformation within those bounds. Order matters: a bend followed by a twist does not produce the same geometry as a twist followed by a bend, so inspect the stack from top to bottom and isolate one operation when diagnosing a shape.

Glyph Decoration

Glyph Decoration maintains at most one pooled prefab instance per rendered glyph in Play Mode. It places the prefab at a semantic or named glyph socket after topology generation. Choose Topology Pose to keep the captured pose, or Follow Glyph to track the current animated socket. It does not handle reveal, hide, or text-change events; use a Reaction Set for those responses.

Delay, lifetime, parent, position offset, rotation, and scale shape each decoration. An optional Boolean Module Input enables or suppresses it per host. The maximum is 256 instances per module and host. A zero lifetime keeps a decoration active. Edit Mode previews create no decoration GameObjects. Use shared Reactions when the same prefab should appear only for a finite reveal, hide, or replacement response.

Outgoing Letter Reactions

Choose Text Changed with Changed Outgoing Units in the host's Reactions section. Built-In Outgoing Shards and Counter Outgoing reuse the shared retained-letter actions. A retained response captures the old rendered glyph, its authored layers, material state, and selected socket before the new text commits. Text Studio owns the response lifetime and returns completed output to its pool.

Retained capture supports Combined, Chunked, Per-Letter, and Physical-Letter output within the renderer's declared limits. Writing, prepared GPU effects, and LOD switching can restrict exact capture; read the diagnostic rather than assuming a copied glyph is equivalent. Optional Dynamics can own a released retained body through its separate Reaction action. Recipe capacities and action limits bound rapid text changes.

Module Inputs

Module Inputs are named, host-owned values consumed by shared module assets. Names are case-insensitive and types are exact: Float, Integer, Boolean, String, Color, Vector, Curve, Gradient, and Object. A Layout Transform reads a Float influence. Glyph Decoration reads a Boolean enabled value, and a shared Reaction can use that Boolean as a gate. A type mismatch is reported instead of silently converting a value.

Use inputs for meaningful per-host variation, such as strength, enabled state, color, or an object reference. Do not mirror every module field into inputs. The asset should still represent a coherent reusable behavior when no input holder is assigned.

Caching and Prepared Only

Topology-preserving post-geometry modules can often reuse warmed source geometry and apply their result afterward. Pre-geometry modules and topology-changing post-geometry modules change cache identity or the reusable result and may block Prepared only. The module card and Runtime Preparation explain that impact. Freeze a finished object, prepare an exact compatible variant, or use Generate if missing according to the real runtime workload.

Custom modules must declare truthful stages, roles, required channels, geometry impact, bounds behavior, threading support, and cache impact. Shared ScriptableObject assets keep mutable per-host state on a host-owned runtime object. Register semantic material regions only when downstream effects and diagnostics can address them consistently.