Persona renders Cubism 3, 4 and 5 models, up to and including moc3 format v6 (Cubism 5.3 offscreens and blend modes), through a rendering engine maintained in-house
A Live2D model is a flat canvas placed in screen space: drag to move, scroll to zoom, Shift-scroll to rotate. Several can share a stage, stacked with images and video in one layer list, and one can ride another as an item
Rendering Engine
Live2D is drawn by a Cubism renderer written for Persona: it loads .model3.json models with their motions, expressions, physics, pose and hit areas, and fully supports Cubism's clipping masks and blend modes. Like the rest of the 3D stage it runs on WebGPU, falling back to WebGL on machines without it
Live2D composites into the 3D stage, so the whole effects chain reaches it: tone mapping, grading, bloom, chromatic aberration and the stylize effects. A Live2D-only scene can add effect layers too, and keeps its Look section
Bundled Models
One Live2D model ships with the application: Sony's RAYNOS-chan
RAYNOS-chan is a sample asset, free for evaluation and testing but not for commercial streaming. Persona marks it in the panel with a link to the licence that applies — use your own model on stream
Motions and Expressions
The Motions and Expressions sections list what the model provides, with the count next to each heading
Motions
Clicking a motion group plays a random motion from that group, and the button stays highlighted for as long as that motion is playing
Clicking a different motion replaces the running one, including a loop, matching VTube Studio
The running motion's own button is also its stop: clicking it again fades the motion out and hands the model back to its idle animation. A looping motion never finishes on its own, so this is the only thing that ends one, and a one-shot stops early the same way. The fade uses the model's own fade-out time. An avatar shortcut bound to that motion toggles the same way — press it again to stop
Groups whose motions loop are marked with a repeat icon
A group holding more than one motion carries a chevron beside its name. The dropdown behind it lists every motion in the group, with the running one checked, for when you want a specific motion rather than whichever one the group picks. Selecting the checked entry stops it
A playing motion outranks face tracking for the parameters it animates, as in VTube Studio, and those parameters ease back into tracking over about 0.3 seconds when it ends
Record Motion sits at the top of this section and captures what the model is doing right now as a new motion file — see Recording Motions
Expressions
Expressions toggle. Clicking one applies it and highlights the button; clicking it again removes it
Several can be active at once and they combine, so a model that separates, say, a blush from a mouth shape can wear both. Each is applied in the order you clicked, and removing one leaves the rest untouched
New Expression sits at the top of this section and writes a new expression file beside the model; the chevron beside each expression button edits, duplicates, renames or deletes one — see Expression Editor
Remembering Expressions
Remember Expressions, at the top of the Expressions section, is on by default. With it on, whatever you have applied is saved as you go and restored when you switch back to that model or restart the application. Restored expressions come back already settled rather than fading in, avoiding a visible transition at startup
The saved set lives with the model, not with Persona: in the model's .vtube.json when it has one — the same field VTube Studio writes, so the two agree — and otherwise in a <model>.persona.json sidecar beside the .model3.json. Turning the switch off clears the saved set
VTube Studio Models
Many models built for VTube Studio ship their .motion3.json and .exp3.json files loose on disk without declaring them in the model settings file, because VTube Studio reads them from its own .vtube.json hotkey configuration instead. A standard Cubism loader finds nothing in these models and shows empty lists
Persona discovers those loose files and presents them anyway, taking their display names from the model's .vtube.json when one is present. Your files on disk are never modified — the extra entries are synthesised in memory as the model loads
Loose files are listed even on a model that declares its own motion groups or expressions: each motion as a group named by the file, each expression after the ones the model declares. That is what keeps a recorded motion and a file written by the expression editor listed on any model
Idle Animation
Idle Animation, in the Idle section, is on by default: it loops one motion underneath everything else while nothing is playing
Motion, below it, chooses which one. The default Idle Group plays the model's own Idle group at random, which is what the Cubism engine does on its own. Pick a specific motion instead and it loops that one
The idle plays at the lowest priority, so any one-shot motion overrides it and face tracking writes over it per parameter. When it is released, it hands those parameters back over its own fade-out time
A chosen motion that a later model no longer lists falls back to the Idle group at random
When Tracking Is Lost
Also in the Idle section, this decides what the tracked parameters do while face tracking is gone:
| Option | Behaviour |
|---|---|
| Keep Last Pose | Freeze on the last frame received until tracking returns — the default |
| Return to Idle | Ease to whatever the idle animation writes over about 0.3 s, and back when the face returns |
Live2D adds two more. Tracking-Lost Motion names one of the model's own motions to replace the idle animation once the face has been gone long enough, swapping back when it returns; Delay is how long that is, 0 to 60 seconds, defaulting to 3. Both are hidden until a motion is chosen, leaving just the two behaviours above
VRM has When Tracking Is Lost too, without those two — see VRM idle behaviour
Auto Breath
Auto Breath, in the Idle section, is the Cubism engine's own built-in breathing, switchable per model instance and on by default. Depth multiplies its amplitude: 1 is the Cubism sample's own depth, and 2 is the maximum
It writes more than ParamBreath — the same driver also sways ParamAngle* and ParamBodyAngleX, adding head movement on top of tracking. VTube Studio breathes only the one parameter a rig names in its .vtube.json, so a model tuned over there may show additional movement in Persona. Turn the depth down, or the switch off
Turning Auto Breath off stops the breathing motion and preserves the depth setting for when you turn it back on
Parameter Bindings
Expand Parameters to edit, binding by binding, how tracking drives the model's parameters — inputs and weights, input and output ranges, response curves. See Parameter Bindings
Model Info
Expand Info to see what actually loaded:
| Row | Meaning |
|---|---|
| Source | Whether the model is bundled or one you opened |
| File | The .model3.json that was loaded. The folder icon beside it reveals the file in your file manager |
| Config | Configuration sidecars found next to the model — .vtube.json, .persona.json |
| Canvas | The model's canvas dimensions |
| moc3 | The model's moc3 format version, and the highest version the bundled Cubism Core can load |
| Core | The Cubism Core version in this build |
| Params | Number of Live2D parameters — these are what face tracking writes to |
| Parts | Rig part count |
| Textures | Texture atlas sizes, with a rough uncompressed VRAM total |
| Motions | Motion groups and total motion count |
| Express. | Expression count |
| Blink | Parameter ids the automatic eye blink drives |
| Lip Sync | Parameter ids of the model's LipSync group — flagged when empty; microphone lip sync then needs a mouth binding |
| Perfect Sync | How many raw ARKit channels the rig's parameter bindings read, out of 52 — it describes what the rig binds, not what a source sends |
| Extras | Optional subsystems that loaded, such as physics, pose and blink |
| Load Time | Wall-clock time the stage spent loading the model |
If the moc3 row is flagged as too new, the model was authored in a newer Cubism version than this build can load. The model may appear to load successfully but fail to render
Last updated on September 20, 2026