My Avatar
0.9.8 — 2026-10-10
- Likes and reviews in the gallery: an asset’s details show its likes beside its name and its reviews at the end, the
same as on its Orbiters page. Signed in, you like it with the thumb (green once liked), like other people’s reviews,
and write your own review, then edit it in place or delete it with a second press. Reviewers who own the asset are
marked Owns it, the creator Creator.
- Everything shows at once: a like counts before Orbiters answers (quick double presses send only the last wish), a new
review appears dimmed until it is saved, and a failure puts back what Orbiters holds with a short note.
- Like counts on the cards, at the end of the creator line; liking an asset in its details updates its card.
- Materials that don’t render: the Materials card opens on an avatar drawn pink (its shader is missing, fails to
compile or is unsupported, Poiyomi’s generated shader of a locked material included), says per material what it was
made for and the shader it moves to, and Fix materials fixes them all in one Undo step, keeping each original
beside it as “name (old)”. See Materials that don’t render. The
myavatar_materials
MCP tool does the same.
- Face tracking for part of a face: the Face tracking card now shows up when the face has most of the shapes of its
mouth, or of its eyes, not only of both (e.g. Ultinova’s lip tracking shapes without eye shapes). It says which parts
move and which are missing; an upload leaves out the parameters of a part the face has no shapes for, and takes them
back once it has some.
- GoGoLoco versions: once GoGoLoco is on, the Locomotion card shows a big tile per version the installed GoGoLoco
ships (1.8.6: All, locomotion, poses and emotes with its Base, Action and Sitting layers; Beyond, All plus
flying from seats it carries, with an FX layer), each with the synced bits it adds to this avatar. A press switches
the prefab in one Undo step, where the old one was, keeping its name and active state; nothing of the old one stays.
- Edit menu: the new Menu card opens the avatar’s VRChat menu exactly as it will be in the game, VRCFury (SPS
included) and Modular Avatar included: the Quick Menu’s Expressions page and the Action Menu as Gesture Manager draws
it, side by side. Rename items in place in either, give them an icon (drop a picture on them or choose one), drag them
to another place, into a folder or back up, hold one on another to make a folder of the two (or tick items and
Create folder), then Save (one Undo step, then the scene and assets are saved like the texture Save) or
Cancel; Ctrl+Z and Ctrl+Y step through every change. The card is marked beta. See Menu.
- Textures find added parts: a dropped set named after its numbered material (“hair_Material.002_Normal” for
Blender’s “Material.002”) goes to that material, and so does one named after the object holding a part or its model
file (“Spiky hair” above the hair’s “NurbsPath.001”). The avatar’s own name and the skeleton say nothing about one
part, so a “Rexouium_…” file is not pulled onto a Rexouium hair. Where an earlier drop guessed is no hint either:
a set that once landed on the wrong material (the body’s MiscMatt instead of the hair) finds its part when dropped
again, while images in slots you chose still count, also when the drop used the project file as it is.
- Export prefixes don’t name parts: in a folder of several sets exported with one prefix (” hoodies hairs for
substance_EyeMatt.001_BaseColor”, ”…_MiscMatt…”), the words they start with are ignored and what follows names the
part, even when other files in the folder don’t have the prefix (“hairs” no longer pulls the eyes to the feathers),
and when one set is dropped alone beside sets already on the avatar: words all those sets share (“Matt”, “.001”)
don’t count either, so EyeMatt goes to the eyes and not to MiscMatt.
A set made for a Blender “Material.002” the avatar doesn’t have (a part since removed) is left for you to choose
instead of guessed onto another part.
- Face tracking that glides: the smoothing presets work like OSCmooth. Locally, Balanced (the default) starts at
0.6 and Smooth at 0.85; Responsive keeps the template’s 0.25. Others now see the face glide between the values
VRChat sends them at the preset’s pace (each frame Balanced moves 9 × the frame time of the way, Smooth 7, Responsive
the template’s 15, which got there long before the next value and then held, so the face moved in steps), and
smoothing stays on down to 10 fps instead of switching off below 25.
- “Disable Facial Expressions” works on every avatar: hand-gesture layers that show the face’s own expression shapes
(“smile”, “furrow” on a Novabeast), not only those face tracking also drives, rest while it is on (and while the face
is tracked); layers moving only a body part (ears, tail, an arm flex) or blinking keep going. An avatar’s own Bool
EyeTrackingActive conditions read the template’s Float correctly once merged.
- Glowing eyes keep their colors after Fix materials: lilToon’s emission tinted by the main texture
(
_EmissionMainStrength) becomes Poiyomi’s “base color as map” (and back), so a white emission mask no longer lays a
white veil over the eyes, stronger in dark maps.
- The tongue stays in for others: while lip tracking is on, the avatar’s other hand-gesture layers (the Rexouium’s
ear gestures put the tongue out) play without their jaw, tongue and mouth curves: the ears still move and the tracked
mouth is left alone.
- Leave menu items out of the upload: in Edit menu, the red cross at an item’s top right (or Leave out in the
side panel) takes it out of both menus at once. It waits under the Action Menu, in Left out of the upload, and a
click puts it back where it was. When that place has filled up since, the item goes on a “Next” page: VRCFury’s, or,
without VRCFury, a “Next” folder made at the eighth place with the place’s last item and this one.
- Remove default menu, on the Menu card and in Edit menu: the avatar’s own menu (the descriptor’s, e.g. the
Rexouium’s Credits, Avatar Appearance, Body, Head and Gesture Speeds) is left out of the upload; what VRCFury, Modular
Avatar, MCB and Orbiters add stays. One chip puts it back.
- What a left-out item takes with it, on the upload’s copy only, after VRCFury: its parameter keeps its default (its
synced bits are freed) unless another item still sets it, conditions on it are decided, states and blend tree branches
that can no longer play go, a layer left playing one constant pose is written into the avatar and removed, objects left
hidden for good are deleted, and materials and animations nothing uses any more stay out of the upload. Logic the menu
didn’t switch stays: the Rexouium’s petting still answers to its contacts. A Rexouium with its default menu removed
keeps 27 parameters (55 synced bits) at their default, loses 21 layers and 21 objects, and uploads 14 materials
instead of 26 (its alternate fur colours are gone).
- Parameter budgets count the avatar as uploaded: XRay Gizmos’ chart and My Avatar’s bit counts leave out the
synced parameters left-out items free (the same ones the upload frees: those only they set, the avatar’s own, a Full
Controller’s or a VRCFury Toggle’s), as soon as an item is left out, the default menu removed or a look hidden.
- Hidden Rexouium feathers don’t upload: a feather group hidden under Looks is left out with its menu toggle, and
its meshes, materials and textures with it.
- Novabeast looks: under Looks, a Novabeast shows its chest fluff, collar, goggles and mane as chips and its
breasts and tail size as sliders, shown in the scene. A hidden part stays hidden in VRChat (its toggle leaves the menu
and its synced bit is freed; it is a shape of the body mesh, so the mesh stays); a slider sets where it starts.
- Item settings in Edit menu: the side panel shows the selected item’s type (toggle, button, slider…), parameter,
value, what it starts at and whether it is saved and synced, and changes them. Save writes them to your own
VRCFury Toggle (toggle, hold button or slider, its default, saved) or to the avatar’s own menu (type, parameter, value)
and parameters (default, saved, synced); an item from a package says its settings stay as its creator made them.
- Default icons: Orbiters’ toggles, sliders and folders without an icon get a white dot, a gauge or a folder (64 ×
64 PNGs in
Assets/Orbiters/Menu Icons/), new ones when they are made and older ones at upload; VRCFury’s Next
pages get a white arrow unless Override Menu Settings gives them an icon. Edit menu shows them as uploaded.
0.9.7 — 2026-10-09
- GoGoLoco in one click: a Locomotion section, framed like face tracking, offers Franada’s GoGoLoco on every humanoid
avatar. Add downloads it from its VPM listing when it is missing (with VRCFury when the project has neither VRCFury
nor Modular Avatar) and puts its standard prefab (“GogoLoco All”, for VRCFury, or for Modular Avatar in a project that
only has it) on the avatar in one Undo step, as GoGoLoco’s own Add Prefabs window does. Once it is on, the section shows
its version with Select and Remove; a GoGoLoco set up another way (unpacked, or in the descriptor’s playable
layers) shows as already set up. Franada is credited under the frame, with a link, and in the About window.
- Face tracking and GoGoLoco share their one-click pieces: the downloads that finish after Unity has imported the
packages (
PackageSetup), finding a setup already on the avatar (PackageUse) and the frame with its credit line
(ToolHero).
- Update in the list: a gallery asset on the avatar shows when the gallery has a newer version for it (its version
pill turns green, “1.0.1 → 1.0.3”) and an Update button installs it in place of the old one, with its progress and
a Retry if it fails, like the gallery page’s cards (both use
GalleryInstaller.Update).
- Gallery packages of props that Toolkit fits to the avatar (the drawing pen, the hand screen) declare the Toolkit
version they need, also when the prefab refers to none of Toolkit’s files.
0.9.6 — 2026-10-08
- Face tracking quick settings, simpler: they fold into the face tracking frame (open right after the setup) and start
with four big buttons: Meta Quest, Vive (SRanipal), Apple (ARKit) and Custom. A tracker keeps only what
it sends, from VRCFaceTracking’s compatibility table (an iPhone has no pupil dilation, lip tighteners or tongue
directions; a Vive has pupils and the tongue in every direction but no brows, nose, lip press or lip tighteners; a Quest
Pro has no pupil dilation and its tongue only sticks out), with the recommended smoothing and the expressive mouth.
Custom shows every setting: the smoothing, each feature others see (Nose, Lip press, Lip tighteners and Tongue
direction are now their own switches) with the parameter budget, and the expressive mouth.
- Expressive mouth on every avatar: a face without its own grin shape grins with its cheek and eye squints when a full
smile raises the upper lip; Rexouium and Ultirex faces keep their sculpted grin.
- Test live in about a second instead of a whole upload build: only the template’s controllers are copied in memory and
finished as at upload (the face’s shape names, the mouth tuning), then MCB’s corrective blendshape links of the custom
base are applied to them, so fixes such as an Orbit Face eyelid fix following the blinks and the eyes looking aside show
in the test. The avatar’s own layers are left out. Changing the expressive mouth puts the face together again at once.
- At upload, the face’s shape names are matched before MCB’s corrective links run, so those links also follow the face
tracking clips.
- Avatar customization: one compact frame replaces the Rexouium card and the Hair, Ears, Tail and Toes cards. A row per
part with who can grab and pose it (three icons) and its stretch, an All row that sets every part at once, chains
without physics with Add physics inline, and the avatar’s looks below (Rexouium’s feathers as chips, the ear size
slider, double-click for the sculpted size).
- Face tracking: the quick settings are open by default; the frame shows VRCFaceTracking’s logo in the shape ring, the
template as “Adjerry91’s face tracking template” with the installed templates’ version, and Get VRCFaceTracking opens
its install guide. Setting it up is now Add under “Face tracking available”.
- Smoother live test: every frame the phone sends is shown (the face plays a moment behind, between the frames around
that moment, so Wi-Fi bursts play out evenly) and the values VRChat receives follow every drawn frame instead of ten times
a second. The corner shows the frames received and drawn; Unity draws less often while another app is in front.
- Face tracking counts as its own share in the Avatar budget (XRay Gizmos 0.2.9).
- The VRChat avatar card of the thumbnail now comes from Orbiters Toolkit, shared with Unit Git’s upload releases.
- Face tracking fixes: the upload only edits VRCFury’s copy of the FX controller, never the avatar’s own asset; the
template animates the face where it is now, also after the face mesh was renamed or moved (an MCB version), and the
section shows Check the face with Point at “…” when the template’s face is missing; blinks the avatar animates
wait for eye tracking only on the way to closed eyes, no longer on the way back to rest; while expressions are disabled
the expression layer stays at rest (menu toggles and Entry transitions included, no more flicker).
- The live test: no longer listed in the VRChat SDK panel, adds nothing to the Undo history, frees what each rebuild
made, closes its ports and threads before scripts reload, and survives changing the expressive mouth while it builds.
A pending one-click setup gives up after five minutes instead of waiting forever. The budget bar uses the same face
tracking count as the estimate.
- Restore of a fitted accessory also takes back the fit MCB saved for the version, so it no longer returns after a
version switch. Fit notes made for another custom base, or whose fit is gone, are asked again instead of failing. A
refit finishing after the custom base changed is taken back; the line-up ends when the custom base changes.
- Undo textures and the optimization’s undo skip renderers that no longer exist (MCB replaced them) and say how many,
instead of failing. The MCB tile finds MCB on a child of the avatar.
- Requires Orbiters Toolkit 0.3.18 (and MCB 1.12.4 for the corrective links in the test and fits taken back).
0.9.5 — 2026-10-07
- No more “This file was already uploaded”: the VRChat SDK keeps a pending thumbnail through every reload of the
avatar, even when its blueprint ID was cleared meanwhile (VRChat not finding the avatar for a moment). My Avatar now
checks its thumbnail again whenever the blueprint ID changes and takes it back when VRChat already has that image.
- Thumbnail check before the build: when the thumbnail waiting in the SDK (from My Avatar or picked in the SDK) is
the exact image VRChat already holds, Build & Publish stops at once instead of failing after the whole build and
upload. The thumbnail is taken out of the upload; clicking Build & Publish again uploads the avatar.
- Gallery assets on the avatar no longer list texture slots or material repair: their creator set them up. Their
picture shows props hidden until toggled on, such as the drawing pen.
- Face tracking: when the avatar’s face has most of the blendshapes face tracking uses (Unified Expressions, ARKit or
SRanipal, also under other names such as Rexouium’s “LipTrack_JawOpen”), a Face tracking section offers to set it up in
one click: Adjerry91’s Face Tracking Templates (and VRCFury) are downloaded through VPM when missing and the template for
that standard goes on the avatar. At upload, its blendshapes animate the face’s own shapes and hand-gesture expressions
pause while the face is tracked. The templates’ files are never changed.
- Face tracking moves the mouth like the Ultirex’s hand-made setup (OSCmooth) at upload: smiles and frowns are full at
0.8 instead of 1 (VRCFaceTracking seldom reports more), smiles, frowns, the lower lip, jaw and tongue are smoothed
like the original (70 % of the last frame kept, 30 % before), and a face with its own grin (Rexouium, Ultirex) turns a
smile with the upper lip raised into that grin. Rexouium’s lip tracking shapes take the original’s weights (lower lip
20 %, cheek puff 71 %, a pout also narrows the mouth), wide eyes raise the brows and the lids follow the eyes.
- Face tracking, redesigned: a hero with the face’s shape coverage and the template, then quick settings stored on
the template (one Undo step each, applied to the upload copy only): Smoothing (Responsive, Balanced, Smooth: the
template’s Local Smoothing to start with, and how much slower the mouth follows), Others see (eyes, pupils,
brows, mouth, tongue, cheeks, with the parameter bits each costs against the avatar’s 256: features left out lose
their parameters and menu toggles in VRCFury’s copy), and the Expressive mouth (the Ultirex tuning above, now
optional). Every parameter budget (My Avatar, the gallery, the Toolkit) counts the features you keep.
- Test live, without Play Mode: the avatar is built like an upload on a hidden copy (VRCFury, MCB, My Avatar, the
Toolkit, with a progress bar the first time; kept for ten minutes so testing again starts at once), then driven every
editor frame by an iPhone or a simulator through VRCFaceTracking’s own mapping (its iFacialMocap and Live Link modules,
correctors, v2 parameters and binary bits) and the built FX and Additive layers, parameter drivers included. A face
close-up turns with a drag. Pairing shows this PC’s address with copy buttons and each app’s steps, remembers the
iPhone’s address for iFacialMocap, detects which app is sending, and shows the frame rate, the last frame’s age and a
firewall hint when nothing arrives. “What VRChat receives” shows the values live. Stopping leaves nothing in your scene.
- About in the bottom toolbar: My Avatar’s version and the projects it works with, each with its license and credits.
- Materials, folded under the texture optimization: the avatar’s materials on Unity’s Standard shader (VRChat suggests
its Toon Standard) and open surfaces whose back is hidden (a tail of fur cards, feathers: many of their edges belong to a
single triangle). Open surfaces show both sides by themselves as soon as My Avatar finds them (on copies, with Undo;
a Standard material moves to Toon Standard for it); Ask me first, or Orbiters settings, lists them instead.
Use Toon Standard rebuilds a material with its texture maps, Fix all does every suggestion. Transparent and
cutout Standard materials stay as they are.
- Rexouium options in their own section below Posing: show or hide each feather group (what the avatar starts with in
VRChat, shown in the scene too) and an Ears slider from small to big.
- Posing no longer lists a custom base’s logic (MCB) or the face tracking template among the accessories to pose.
- Fix emission missing after a drop on materials locked with emission off (Poiyomi keeps only the features that were on
when locking): texture slots now come from the material’s original shader, so the hair’s emission map lands on every
hair material, and assigning it also turns on Poiyomi’s emission toggle and strength.
- In a wide Inspector, the thumbnail photoshoot shows the card, Done, the shot and framing on the left and the pose,
light, background, expression, effects and text options beside them.
- Text on the thumbnail: one line, right on the card. Hover the card in the photoshoot and press Add text, or use
the Text tab: drag the text to move it (it snaps to the middle), drag its corner or scroll over it to resize it,
double-click it to write. Pick among Unity’s default font and eight fonts that ship with My Avatar (each tile shows
your own text), a look (clean, outline, shadow or neon glow), colours that read well or are taken from the shot, and a
size. Captured thumbnails have it drawn in exactly as on the card; each avatar keeps its text for next time.
- Create ref sheet is a small link under the thumbnail’s buttons (and under Take pictures in the gallery’s
Pictures), hidden while the photoshoot is open: Done closes the thumbnail photoshoot and the ref sheet alike.
- The photoshoot gets the Toolkit’s poses of your own: add humanoid animations from the project to the Pose tab.
- Requires Orbiters Toolkit 0.3.17.
0.9.4 — 2026-10-07
- Pictures in Publish to the gallery: take pictures of the avatar wearing your clothing or accessory with the
photoshoot, shown live on the gallery card buyers will see. The first picture goes on the card, the others and ref
sheets open on the asset’s page (the website and My Avatar’s details); add picture files too, remove them, put another
on the card, or save a copy. They are sent with the asset when you publish. Needs the matching Orbiters server.
- Create ref sheet, under the thumbnail’s buttons (and in the gallery’s Pictures): the avatar from the front, the back
and the side on one 1920×1080 sheet. In the Thumbnail section it is saved beside the thumbnails and shown in the
Project window.
- The thumbnail photoshoot gets the Toolkit’s new effects, backgrounds of your own and environment light.
- Requires Orbiters Toolkit 0.3.16.
0.9.3 — 2026-10-07
- Blueprint ID check: Build & Publish stops before the build when the avatar’s blueprint ID belongs to an avatar
another VRChat account published (often a creator’s ID left in a prefab), instead of failing after the whole build
and upload. A window explains it and clears the ID in one click, so the avatar uploads as a new one. Asked to the
Orbiters server for signed-in members with a linked VRChat account; the avatar shown in the SDK panel is checked
ahead of time. Build & Test is never stopped, and nothing is blocked when the answer isn’t known.
- Requires the matching Orbiters backend (
GET /vrchat/avatars/:id/owner).
0.9.2 — 2026-10-06
- Thumbnail photoshoot: Look at the camera, with a Look dial from the head alone to the eyes alone, and a sphere that turns and tilts the avatar around what is framed (Orbiters Toolkit 0.3.14).
- Gallery: cards no longer cut off their creator name and buttons in a narrow Inspector; Publish is green; the license key and details sheets grow from their button every time they open (not only the first); opening the gallery from its card no longer jumps the page behind the banner.
- Requires Orbiters Toolkit 0.3.14.
0.9.1 — 2026-10-05
- The Parameters section is removed: XRay Gizmos 0.2.8 shows the avatar budget over the Scene view, with parameters as built (after VRCFury’s compression), bones, PhysBones and contacts against VRChat’s PC limits.
- Fix an error on every editor update once the avatar shown in the VRChat SDK panel was destroyed (a build copy, a test avatar); it also stopped other tools’ update callbacks.
- Requires Orbiters Toolkit 0.3.13 and XRay Gizmos 0.2.8.
0.9.0 — 2026-10-05
- Asset gallery: clothes and accessories from Orbiters creators, filtered for the avatar’s base and platform, added in one click. Paid assets list every store selling them with the creator’s preferred one first, then turn into a license key field; purchases are recognised from your Gumroad or Jinxxy email. Access from a tier, a Discord role or testing shows “Included”.
- Installs check the parameter budget, platform and dependencies first, show what an import would replace before changing anything, resume after an interruption and verify the avatar before reporting Installed. Gallery items in the accessories list show updates and can be removed.
- Creators publish from My Avatar: prefabs or a
.unitypackage, packaging rules (no Poiyomi Pro, source files or VPM packages), parameter cost and size, a test install on the current avatar, versions with public, beta or alpha scope and testers, and a rights confirmation.
- Cleanup (Orbiters settings): frees the files of removed gallery assets that nothing uses, keeps uncertain ones with the reason, and moves files to a restorable quarantine first.
- Publishing opens its own window, so selecting something else keeps the form; the gallery page stays open when the Inspector is rebuilt.
- The
myavatar_gallery MCP tool creates, builds, tests and publishes gallery assets with the same draft; publishing and withdrawing need the user’s approval code.
- The drawing pen is now a free accessory in the gallery instead of a My Avatar section.
- Clothes and accessories leave alpha and are on by default.
- Requires Orbiters Toolkit 0.3.12 and the matching Orbiters backend.
0.8.5 — 2026-10-03
- Improve cross-base clothing fitting and restore completed-fit review, cancellation and creator commission actions.
- Repair broken clothing materials, default missing roughness maps to matte and preserve creator-authored packed-map channels and inversion.
- Skip already-uploaded thumbnails when preparing the VRChat SDK, so an unchanged image cannot block the new avatar bundle.
- Add Drawing pen after Parameters and hide the empty clothes-and-accessories section while keeping drop choices reachable.
Unity 2022.3 avatar setup: textures, clothes and accessories, thumbnail, posing, physics and tools, with an optional Orbiters account.
Get started
- Install My Avatar from the Orbiters VPM repository. Toolkit and XRay Gizmos
are required dependencies; Unit Git 0.1.3 or newer is optional. The VRChat avatar SDK removes this editor-only
component when uploading an avatar.
- Select the avatar root in an open scene. Add Orbiters > My Avatar using
Add Component or the GameObject menu.
- Drop PNG, JPG or TGA files (or their containing folder) into the Drop anything field.
Folder import includes immediate files, not nested folders. Up to 48 files,
256 MB per file and 1 GB per batch are supported. The field turns into a
progress bar, then shows the result with Undo and Save; drop another
set on it at any time.
- Clear matches apply automatically. Textures that still need a slot are listed
below the field, grouped by the material they most likely belong to (No clear
target last): Use accepts the suggestion, Other… / Choose slot… picks
another, and either applies immediately. The × of a row, of a group or
Dismiss all leaves images out (screenshots, icons of the dropped folder); Undo
brings them back.
- Undo restores the materials from before the set (then reads Redo),
including after a scene reload. Save your scene to retain the component data.
- Save saves the current avatar scene and generated assets. When Unit Git is
installed it also creates a local commit named
texture change once the
project’s Git repository is initialized in Unit Git. The checkpoint includes the current scene (including its other pending
changes), generated textures/materials and their metadata. Unrelated project
paths and staged changes are excluded. Ignored checkpoint files must be
unignored first. Saving unchanged files succeeds without making an empty commit. Nothing is pushed.
Clothes and accessories (alpha)
Turn it on in Settings (bottom toolbar) › Features › My Avatar. The Drop anything field then also
takes what clothing and accessory creators deliver: a .unitypackage, a .zip (also
one holding a package, like …_UnzipMe.zip), a prefab, an FBX or an OBJ (copied with the .mtl libraries and images it names), with their textures
and .txt readmes, or their folder; a drop holding none of those is a texture set. My Avatar imports what is not in the project yet,
picks what to put on, places it under the avatar root and attaches it. It never changes
the avatar or moves bones into its armature: what attaches is applied to the build copy.
- Already set up with VRCFury or Modular Avatar: placed on the avatar root, as its
creator intended, with nothing added but a menu toggle when it has none.
- Clothing with its own armature: bone names that match the avatar’s exactly get
one VRCFury Armature Link. Other names (
upper_arm.L, J_Bip_L_UpperArm, Left arm…)
are matched by humanoid role and linked by My Avatar; at build each linked bone moves
under its avatar bone, keeping its rest offset. Extra bones (hood strings, physics
chains) follow their parent.
- Props (hats, hair, glasses, bracelets…) follow one bone, chosen from their name or
position. Modelled far from it, they are placed on it; Bone ▾ changes it.
- Empty constraints named after avatar bones (
Head, Left wrist) are wired to them
and become VRChat constraints.
- A saved VRCFury toggle under Accessories/ is added when the accessory has no
toggle or controller of its own; the list shows the parameter bits used. Body
blendshapes also drive the same-named shapes of the accessory at build, without a
VRCFury component per shape.
- Images of the drop go to the accessory’s materials, as in the texture field.
Variants are chosen for you: VRCFury over manual setups, PC over Quest (Quest on an
Android build target), with late-join sync over without. The only question is the
hand, when a package ships one per hand (Left hand, Right hand, Both); a
drop holding several different items lists them to pick from. Dropping something
already on the avatar offers Replace and Add another.
What My Avatar can’t do for you is listed under the field with Select: a name that
asks for a manual step (“Put me in armature”), a script of another tool (VRCLens has its
own installer), a missing script, a bone matching nothing of the avatar. A package made
for Modular Avatar, and VRCFury itself, can be installed from there. .blend, .max and
.stl sources are refused with a note; setup scenes are not supported yet.
Each accessory is one Undo step; Remove in the list deletes it. Packages with scripts
make Unity recompile: the drop continues after it, even without the Inspector open.
The list shows each accessory with a picture of it as worn (made in the background and kept in
Library/Orbiters/Thumbnails), its fit, and how it is attached. With AI help on, each gets a short
clean name there and in Posing (Glowsticks_Body ultipaw Variant reads Glowsticks for Ultipaw);
its object keeps its own name, shown on hover.
On a custom base
When the avatar uses a custom base, My Avatar finds out which one in the background when its
Inspector opens: from the avatar’s MCB component (the exact version applied), or, without
MCB, from its body’s model file, which Orbiters recognises (only a hash of the file is sent).
For each accessory then, only the meshes lying close to skin that the custom base’s
blendshapes move count (its declared shapes and every flexing shape); shoes far from flexing
arms, rigid props and accessories that already have the shapes are left alone, without a
question. Each drop asks again; accessories already on the avatar are checked once per custom
base version.
- Does it fit your body? The question shows the custom base (picture, name, version) and the
shapes involved. Already fits adds the blendshapes it lacks, so it flexes and moves
with the body, including every animation of those shapes once built. Shapes its creator
already made stay as they are. ReFit shows the original base see-through over
the body and lines the accessory up with it (its hips on the original’s, when a little
off): drag its arrows in the Scene view if it is still off (the selection does not change),
choose how tight it should fit, then ReFit now. This step needs MCB on the avatar, which
provides the original body.
- An accessory that already has some of the custom base’s shapes, or whose creator marked it
with Orbiters › Fit Info as made for the custom base, is only offered the missing shapes;
one marked as made for the original base goes straight to ReFit.
- ReFit is installed with one click the first time an answer needs it; the answer continues
on its own once Unity has reloaded.
- The result says how many shapes now follow the body, with Restore original. When some
spots could not be fitted exactly, Ask a creator opens ReFit’s commission page on it.
- Not now stops asking about that accessory for this custom base version. MCB keeps the
refits per custom base version: switching versions puts back those made for it, and
accessories lacking the new version’s shapes are asked about again.
With AI help on (the robot of this field, the same account setting), what the rules
could not decide is asked in the background: which of two items to use, the bone a prop
goes to when only its position suggests one, clothing bones nothing matched, and manual
steps its readme mentions. It receives object and bone names and paths inside the
accessory and the avatar, component types and up to 12,000 characters of the drop’s
.txt and .md files (next to a dropped prefab too); no images, no computer paths.
Quick optimization
Once a drop has placed an image that can be compressed, a Quick optimization card
appears below the drop field with the estimated texture memory before and after. It
opens by itself when a drop brings something to optimize; otherwise it stays folded
under its title.
Optimize caps the textures of every material on the body and face meshes at 2048 px and every other
texture the avatar’s materials show at 512 px (never upscaling), and sets their PC (Standalone) import settings for the best quality per byte of VRAM:
BC1 for colour whose alpha is unused (measured on the pixels, not taken from the
importer), BC7 when alpha is used, BC5 for normal maps; mipmaps and mipmap streaming
on, best compression quality. A crunched texture stays crunched (crunch only shrinks the download, not memory) and
keeps its crunch quality; it only changes when that takes less memory. Sizes are worked out from the image’s own size,
so a texture capped earlier by this optimization can grow back, while a cap you set yourself is never raised. sRGB, alpha-is-transparency and every other setting stay as they are. Ramps,
lookup tables, gradients, SDF maps, very thin strips, HDR images, render textures and
textures that are not plain imported images are left alone. Mobile settings come later.
Import settings change in place, all in one import pass. A texture also used by
something else (another object or avatar in the open scenes, or a prefab or scene in
Assets that depends on it, other than this avatar’s own prefab and model), or inside
a package, is copied under Assets/Orbiters/MyAvatar/<batch-id>/ instead, and this
avatar gets copies of the materials that show it, assigned only to renderers under this
component. It applies entirely or not at all: if a step fails, the import settings
already written are put back and the copies removed. The row then
shows the estimated texture memory (VRAM, as VRChat ranks it, not download size) and
how many textures changed; Optimize comes back after a new texture drop or an Undo.
The estimate reads the PC import settings, so it is right even when the editor keeps
textures uncompressed (“Compress Textures on Import” off). Undo restores the import settings and materials,
including after a restart: the component stores what it changed, so save your scene.
Unity’s Undo and Redo work too. Import settings or material slots you changed since
are kept; copies stay on disk. Undo the optimization before undoing its texture set.
Once optimized, the row points to d4rkAvatarOptimizer
for merging meshes and materials and removing unused bones and blendshapes, offers
Add to avatar when it is installed but not on the avatar, or notes that it is
disabled. It optimizes at upload; with VRCFury or Modular Avatar its author
recommends that over Create Optimized Copy. My Avatar is not associated with
d4rkAvatarOptimizer.
Materials that don’t render
An avatar bought for another shader, or for another version of it, often renders pink: its materials name a shader
that is not in the project. My Avatar lists them first in the Materials card (which opens by itself once) and
reads what each one was made for from what it saved: its shader GUID (lilToon’s variants keep theirs across versions),
Poiyomi’s markers and the original shader of a locked material, lilToon’s version, and VRChat’s fallback tag.
- Its own family is installed: it moves back onto it with every saved setting. A locked Poiyomi material whose
generated shader is missing is unlocked onto the shader it was locked from (its version under Poiyomi’s Old Versions
when that is the one), the way Poiyomi does it; Poiyomi locks it again when you upload.
- Another family: Poiyomi Toon if installed, else lilToon, else VRChat’s Toon Standard (opaque materials), else
Standard. It keeps its texture, color, normal map, emission, culling and blending (opaque, cutout or transparent); from
lilToon to Poiyomi (and back) also its shadow colors, lilToon-style rim light and backlight, which both shaders share.
Each row says what is not carried over (outline, matcap, 2nd texture layer…). Installing the original shader
instead keeps everything: the card offers lilToon or Poiyomi Toon from VPM when one of them is what is missing.
- Particles, trails and lines are only moved within their own family; otherwise the row asks for a particle shader.
Fix materials fixes them all in one Undo step. Materials in Assets are changed where they are, so every avatar
using one renders again, and each original is kept beside it as “name (old).mat” (its own GUID, labelled
MyAvatarBackup, never listed as broken itself; it renders again as made once its shader is installed); materials inside a package or a model are copied to Assets/Orbiters/MyAvatar/MaterialEdits/
and assigned to this avatar’s renderers only. The Console lists what changed. The myavatar_materials MCP tool
(inspect, fix) does the same on any scene avatar, with or without My Avatar on it.
Thumbnail
The thumbnail is shown on a copy of VRChat’s in-game avatar card, measured on the game
at 1:1 and set between faint neighbouring cards: the wide crop VRChat shows, the
platform badges, the warning badge of a Poor or Very Poor performance rank (the SDK’s
own rating for the build target), the avatar name on up to two lines and your VRChat
name once the SDK is signed in. The editor font stands in for VRChat’s. While the
studio follows the live preview, drag, scroll and Shift-drag right on the card image
to frame the avatar. Create thumbnail opens the Orbiters photoshoot, the same one MCB uses for
custom base media, set up for one 4:3 VRChat thumbnail (1200×900); the card then
shows the live preview. Choose a pose, light, background and expression, frame the
avatar, then press Capture: the thumbnail is saved at once and the card flashes,
while the studio keeps showing the live camera so you can capture again. Browse
uses an existing image instead and closes the studio. The image is saved as
Assets/Orbiters/MyAvatar/Thumbnails/<avatar> <id>/<avatar> thumbnail.png; a new
capture gets a unique filename so Unity Undo and Redo restore the previous pixels.
Whenever the VRChat SDK builder shows this avatar, My Avatar fills in this thumbnail
through the SDK’s own thumbnail selection, exactly as if you had chosen the file with
Select Image. Open in VRChat SDK opens the panel on this avatar. The SDK then
treats it as a pending change: review it, and upload or discard as usual. A thumbnail
you choose in the SDK afterwards is left alone. Nothing is uploaded automatically.
VRChat refuses an image identical to the avatar’s current thumbnail, and only says so at the
end of the upload. My Avatar compares its thumbnail with VRChat’s before offering it, again
whenever the blueprint ID changes, and takes it back if VRChat already has it. If the thumbnail
waiting in the SDK is still a duplicate when you click Build & Publish, the build stops at
once, the thumbnail is taken out of the upload and the next click uploads the avatar.
Posing
Three switches for posing the avatar in the Scene view (hover one for a short
explanation):
- Bones draws the avatar’s bones with XRay Gizmos; click one to select it, then
rotate it with the Rotate tool.
- Symmetry mirrors each rotation or move of a left or right bone onto its partner.
It is a mode: it stays on while nothing can be mirrored and starts mirroring as soon
as a bone or avatar is selected. Bones under an unevenly scaled parent are skipped.
- Clothing (beta) previews clothing and accessories as they will be attached once
built: they follow the avatar’s pose. It reads VRCFury Armature Links (merged bones,
and props linked to one bone), My Avatar attachments, and for clothing that nothing
links yet, matching bone names. Each follower keeps its rest offset from its avatar
bone, taken from both meshes’ bind poses. Bones driven by constraints are left to
them. The list below shows each accessory, how it follows and how many of its bones
do; click one to select it. It is only a preview: switching it off (or saving the
scene, entering Play Mode, a script reload) puts the accessories back where they were.
Pose edits of the avatar stay regular Unity edits: Undo reverts the avatar and its
mirrored bones together.
Avatar customization
Hair, ear, tail and toe PhysBones are recognised by name (Hair_Front, Ponytail,
Tail1, Toe_L, toe beans…), from the bone they start at or the object holding
them. Each part is a row of the Avatar customization frame (its PhysBone count selects them), with an All
row on top that sets every part at once:
- Grab and Pose: Nobody, Only me or Everyone icon buttons, written to the PhysBones’
grab and pose permissions. VRChat has no friends-only setting. Posing is limited to
who can grab. A picker outlined in orange means its PhysBones disagree.
- Stretch: a slider for how much longer the chain gets when pulled (PhysBone Max Stretch), up
to three times its length.
A choice applies to every PhysBone of the part and can be undone. Bones of the
avatar’s own armature named like a part but driven by no PhysBone are offered under
Add physics, which adds a PhysBone per chain under PhysBones/<Part> on the
avatar, with settings suited to the part and the part’s current permissions.
Under Looks, a Rexouium shows its feather groups as chips (what the avatar starts with in VRChat, shown in the scene
too) and its ear size. A hidden feather group is left out of the upload with its menu toggle, its meshes, materials and
textures with it. A Novabeast shows its chest fluff, collar, goggles and mane as chips and its breasts and tail size as
sliders. A hidden part stays hidden in VRChat: its toggle leaves the menu and its synced bit is freed (it is a shape of
the body mesh, which stays). A slider sets where it starts in VRChat; the upload starts from the avatar’s own pose.
Avatar budget
XRay Gizmos shows where the avatar stands against VRChat’s limits in a panel over the Scene view: synced
parameters as built (after VRCFury’s compression), bones, PhysBones and contacts, with a custom base’s share.
Buttons for tools that go with My Avatar, each marked Install until it is in the project:
- Gesture Manager (VRChat curated repository): installs the latest version when missing,
then puts its Gesture Manager object at the scene root, or selects the one already there.
- Unit Git: opens Unit Git, after installing it when missing.
An install goes through VPM like any optional dependency; the tool opens once Unity has reloaded.
The Menu card opens Edit menu: the avatar’s Expressions menu as VRChat will show it once uploaded, instantly and
without building anything. It starts from the menu on the avatar descriptor. With Modular Avatar in the project, its
build comes first: Menu Installers add their menu or the Menu Items, Menu Groups and Install Targets on their object
(to the main menu or the menu they name), and a menu of more than 8 items keeps 7 and continues in More. Then
comes what VRCFury’s build does: Full Controller menus merge in (folders of the same name merge), SPS adds its folder
(the socket toggles, Stealth, Auto and Dual Mode, the DPS Tip Light), Toggles, Puppets and Gesture locks add their items
at their menu paths (creating folders), Move Menu Item and Set Icon run, items are sorted by the component that added
them, Reorder Menu Item runs, and a menu of more than 8 items continues on a Next page (with Override Menu Settings’
text and icon). MCB’s sliders, GoGoLoco and My Avatar’s face tracking are VRCFury components, so they show too. The menu
follows the avatar live: change a toggle or a menu asset and it updates.
- The Quick Menu and the Action Menu show side by side, on the same page: an edit in one shows in the other at
once. The Quick Menu is the Expressions page of VRChat’s Quick Menu, measured from the game (Reset Avatar first on the
main menu, two columns of tiles, each item’s type as a badge, long names shrunk to fit). The Action Menu is Gesture
Manager’s radial menu (BlackStartX, MIT License).
- Click a folder to open it; the breadcrumb or back goes up. Click an item to see what it is and where it comes from.
- Select: tick the small box at an item’s top left (in either menu) to select it without opening it, folders
included; several items can be ticked. One ticked item shows its name and icon beside the menu; with any selection,
Create folder (submenu) puts the items in a new folder at the first one’s place.
- Rename: double-click an item (or F2), or type in the side panel.
- Icon: drop a picture on an item, from the Project window or from your computer, or choose one in the side panel.
A picture from your computer is imported on Save into
Assets/Orbiters/MyAvatar/Menu Icons/ with the settings VRChat
wants for menu icons (at most 256 pixels, compressed, no mipmaps).
- Settings: the side panel shows the selected item’s type, parameter and value, what it starts at when the avatar
loads, and whether its parameter is saved and synced, and changes them. They are written on Save to your own VRCFury
Toggle (toggle, hold button or slider, its default, saved) or to the avatar’s own menu (type, parameter, value) and
parameters asset (default, saved, synced); an item from a package says its settings stay as its creator made them.
- Leave out: the red cross at an item’s top right (or Leave out in the side panel) takes it out of both menus on
pointer down. Left-out items wait under the Action Menu, in Left out of the upload; a click puts one back where
it was. A place filled up since goes on over a “Next” page: VRCFury splits it, and without VRCFury a “Next” folder
(with the arrow) takes the eighth place, holding the place’s last item and the one put back. When even that can’t be
done, the editor offers up to six folders with room.
- Remove default menu (in the toolbar, or on the Menu card): leaves out the avatar’s own menu, the descriptor’s and
its submenus, keeping what VRCFury, Modular Avatar, MCB and Orbiters add. It shows as one chip under the Action Menu.
- Move: drag an item between two others to move it there, onto a folder’s middle to put it inside (hover it to
open it and drop deeper), onto Next for the next page, or onto back or a breadcrumb to move it up. Released in
place, outside the menu or anywhere it can’t go, it goes back and nothing changes.
- New folder: hold a dragged item on another item’s middle (its icon in the Action Menu) until the target lights up,
then release: a new folder takes the target’s place with both inside, named in place (“New folder”). Saving makes it
a new menu next to the avatar’s menus (or in
Assets/Orbiters/MyAvatar/Menus/ when those are in a package) when it is
in the avatar’s own menu, else VRCFury’s Move Menu Item moves its items to its path.
- Every change is a Unity Undo step (Ctrl+Z, Ctrl+Y or Ctrl+Shift+Z). Nothing is written before Save; Cancel
forgets the changes. Closing the window with changes asks first.
Save writes each change where it belongs, in one Undo step:
- the avatar’s own menu assets are edited (names, icons, order, items moved between them); a menu asset from a package
or used by another avatar is copied into
Assets/Orbiters/MyAvatar/Menus/ first and the copy put in its place;
- your own VRCFury Toggles and Puppets (in your scene, not from a package’s prefab) get their new menu path and icon,
and your own Modular Avatar Menu Items their new name (label) and icon;
- everything else (Full Controller menus, prefabs from packages, the folders VRCFury makes for menu paths) is left as it
is and changed with VRCFury’s own Move Menu Item, Set Icon, Reorder Menu Item and Override Menu Settings, on one
object at the end of the avatar, Menu edits (My Avatar), rewritten at every Save.
Then, like the texture Save, it saves the assets and the avatar’s scene (with Unit Git, also a local “menu change”
checkpoint; nothing is pushed). Ctrl+Z still puts the menu back as it was.
Left-out items and Remove default menu are kept on the My Avatar component; the menu assets don’t change. They act
at upload, on the build copy after VRCFury: the items go (a folder left empty goes too, and pages close up), and so does
what only they switched. Each parameter only they set keeps its default, freeing its synced bits, unless an item still
in the menu sets it; conditions on it are decided, states and blend tree branches that can no longer play are removed,
a layer left playing one constant pose is written into the avatar and removed, objects left hidden for good are deleted,
and materials, textures and animations nothing uses any more stay out of the upload; the parameter budgets (XRay Gizmos,
My Avatar) count those bits as free already. What the menu didn’t switch keeps
working (the Rexouium’s petting still answers to its contacts: only its menu switch goes). The Console sums it up after
each upload (“[My Avatar] Menu: …”). An object only moved out of sight rather than switched off stays, like the
Rexouium’s credits plane, which rests shrunk inside its chest once its Credits item is gone.
Orbiters’ toggles, sliders and folders without an icon get a white dot, a gauge or a folder (64 × 64 PNGs in
Assets/Orbiters/Menu Icons/), and VRCFury’s Next pages a white arrow unless Override Menu Settings gives them an
icon.
Before keeping anything, Save works out the menu again from what it wrote: when VRCFury would not build exactly the menu
you edited, nothing is kept and the editor says why. VRCFury finds items by name, so two items with the same name in one
menu can’t trade places; rename one first. A folder that opens the same menu as another folder (a submenu used twice,
or one looping back to a menu above it) moves like any other item when it is in the avatar’s own menu assets, and keeps
opening that menu. Such a folder that VRCFury or Modular Avatar adds (a Full Controller’s or an installer’s) stays where
it is: VRCFury’s Move Menu Item would copy its menu instead of moving it.
Face tracking
When the avatar’s face (the mesh lip sync uses) has most of the blendshapes face tracking uses for its mouth, its eyes
(with the brows) or both, the Face tracking section offers Add (Face tracking, Lip tracking or Eye tracking
available). My Avatar works out which standard the face fits best: Unified Expressions, ARKit (Perfect Sync) or SRanipal,
also when the shapes are named another way (e.g. Rexouium’s “LipTrack_JawOpen”, “Eye_LookUp_L”, “EyesWide_L”). Chips
under the text show each part: green with most of its shapes, amber with some, grey when missing (the tooltip lists the
missing shapes). A part without any of its shapes is left out of the upload’s parameters (no bits spent on it) and comes
back by itself once the face has its shapes. One click then:
- downloads Adjerry91’s Face Tracking Templates (and VRCFury) through VPM when they are missing; the setup finishes once
Unity has reloaded its scripts;
- puts the template for that standard on the avatar, pointed at the face mesh (one Undo step).
When you upload, after VRCFury has merged the template: blendshapes it animates under the standard’s names animate the
face’s own shapes, the avatar’s hand-gesture expressions pause while VRCFaceTracking drives the face (and return to rest),
and blinks the avatar animates itself wait while the eyes are tracked. The templates’ files and the avatar’s own
controllers are never changed. The template adds about 140 to 170 parameter bits; VRCFury compresses parameters when the
avatar goes over 256. Remove takes it off again.
The Smoothing setting chooses how the face follows the tracker, the way OSCmooth does: Responsive is the
template’s, Balanced (the default) and Smooth are calmer. Each sets the local smoothing the face starts with
(0.25, 0.6 or 0.85; the template’s Local Smoothing slider still changes it in game), how fast others see the face move
toward each value VRChat sends them, and how much slower than the rest the mouth follows. Smoothing stays on down to
10 fps. While lip tracking is on, the avatar’s other hand-gesture layers play without their jaw, tongue and mouth curves,
so a gesture never pulls the tracked mouth (or sticks the tongue out) while the ears still move.
Face tracking blendshapes are animated by Adjerry91’s Face Tracking Templates.
If you sell an avatar that uses them, their author asks for that credit, with the link, on your store or product page.
The bottom toolbar opens Settings (the Orbiters server: production by default, or a
local development server, each with its own login), Blendshape Links, which
still ships with MCB and is available when MCB is installed, and About: My Avatar’s
version and the projects it works with, each with its license and credits
(Editor/THIRD_PARTY_NOTICES.md).
What changes
Existing project textures are reused without copying or reimporting. For external
files, a persistent cache keyed by source path, size and modification time checks
only the files you dropped; unchanged files reuse their cached assets. New files are
copied in parallel, without content hashing, to one folder per drop under
Assets/Orbiters/MyAvatar/Textures/. No project-wide texture search or comparison
runs. A normal map with an incompatible importer gets a separate correctly configured
copy; the original asset’s settings stay unchanged.
File discovery and copying run in the background. Unity’s asset import and material
APIs still run on its main thread. Importer settings are written before the first
import, so each new texture is imported exactly once, in one batch. There is no
per-image forced synchronous import, per-image SaveAndReimport, or whole-project Refresh.
The tool creates material copies under Assets/Orbiters/MyAvatar/<batch-id>/
and assigns them only to renderers under this component.
Original materials and external images are preserved. New normal maps get Unity’s
normal-map importer; new named mask maps use linear color. Standard shader normal,
metallic, specular and emission keywords are enabled where appropriate.
The slot an image lands in decides how it is imported, whoever chose it (name matching, Orbiters AI or the slot menu): a
normal slot gets a normal map, colour slots sRGB colour, data slots (metallic, smoothness, occlusion, masks, height)
linear data. An image this drop copied in is converted in place; one used elsewhere gets a converted copy beside it, so
originals never change. A project texture already imported as a normal map counts as one even without “normal” in its
name. Images can also be dragged from installed packages, read-only ones included.
Only actual visible 2D texture properties on the current shader are considered,
including locked/optimized shaders such as Poiyomi’s Hidden/Locked/... shaders.
A locked shader only keeps the features that were enabled when it was locked: if a
texture set member needs a slot the material lacks (for example emission), the
Inspector says so; enable the feature (unlocking if needed) and drop again.
Custom shaders can require their own feature toggles. A roughness image put in a
smoothness slot (or the reverse) is inverted into a generated map, and maps put in a packed slot (metallic beside
smoothness or roughness) are packed into one generated image that keeps the slot’s other channels; dropped files never
change. A drop never changes UVs or switches shaders.
Undo becomes Redo after restoring the previous materials. Redo
restores the saved assignments immediately without importing or requesting AI.
Undo preserves generated files so other references remain valid. It refuses to
replace renderer assignments edited since the apply. Each drop is one logical
operation: later AI matches and slots you choose reuse that batch’s
materials and keep its snapshot, so Undo returns to the state before the drop.
A new drop replaces the component’s previous persistent Undo snapshot; Unity’s
regular Undo is also recorded, with AI matches as their own step. Undo after a Git
checkpoint creates a new local change, not a history rewrite. Existing imported files also remain after cancellation.
Blueprint ID check
VRChat only lets an account update the avatars it published. When an avatar carries someone else’s blueprint ID (its
Pipeline Manager’s ID, often left in a prefab by the avatar’s creator), the VRChat SDK only finds out when it uploads,
after the whole build. With an Orbiters account linked to your VRChat account, My Avatar checks the ID before the build
starts: when you click Build & Publish, it asks Orbiters who published the avatar that ID points to and compares it
with the VRChat account the SDK uploads with (or your linked one). When it belongs to someone else, the build stops
right away: the SDK reports it was aborted, then My Avatar’s window says whose avatar it is and offers Clear the
blueprint ID (one Undo step): the avatar is then uploaded as a new one, after you give it a name and a thumbnail in the
SDK panel. Put the ID back restores it.
- The avatar shown in the SDK panel is checked as soon as it is selected, so Build & Publish doesn’t wait; answers are
kept ten minutes.
- Nothing is blocked when the answer isn’t known: not signed in, no linked VRChat account, an avatar Orbiters can’t
see (private, hidden or deleted), or no answer within a few seconds. Build & Test is never stopped.
- Orbiters reads the avatar’s author with its own VRChat account and only answers signed-in members with a linked
VRChat account.
Optional account and AI
Connecting an account is optional; local matching always works. Login with
Discord or Login with Telegram opens your browser on that login; Orbiters then
asks you to confirm the connection once, showing the same four-letter code as Unity,
and My Avatar is connected. The link works once and expires after ten minutes. The
account is shared with the other Orbiters tools; logging out affects all of them.
The robot in the corner of the drop field shows whether AI help is available: crossed
out while you are not connected or AI is off. Once connected, click it to turn AI help
on or off; this is the same setting as on your Orbiters account page.
Local matches are applied immediately. When textures remain unmatched, an account
is connected and AI help is on, My Avatar
then asks the Orbiters backend in the background. It sends texture filenames,
dimensions, pixel statistics measured locally in Unity (grayscale, normal-color,
black and bright coverage, mean brightness), current material/shader slot information
and the provisional local matches. No image data and no computer paths are uploaded.
The backend uses the configured AI provider and honors the account’s AI preference;
reasoning can be switched per feature in the website’s AI administration. Source
context and model output are excluded from Orbiters AI history; usage and status are
retained. Provider processing follows that provider’s configured data policy.
Responses use validated texture/slot IDs; low-confidence and incompatible
assignments are ignored. Confident answers fill unmatched textures or correct a
local match. An answer is discarded if you drop again, edit a slot, or use Undo/Redo
while it is pending. Choices remembered from an earlier apply are never overridden.
On a network or provider failure the Inspector shows the reason and keeps the local matches.
Local matching works with any naming convention and avatar layout:
- Slots you chose by hand for a file on this avatar are reused (stored in
Library/OrbitersMyAvatar/slot-choices.json). Automatic matches are not stored,
so a wrong guess never becomes permanent.
- Filenames are split into words (camelCase, separators, digits) and compared with
the name of the texture currently in each slot, the material name, mesh names
(for meshes with one or two materials) and the material’s other textures. Role
words (
BaseColor, Normal, _N, Emissive…) set the slot type and are not
used as names. A word shared by many materials, like a base or author name, counts
little; words shared by most dropped files, like an export prefix, are ignored.
Plurals, prefixes (BodyMatt ~ Body) and a few avatar part synonyms (hair and
feathers, eye and iris, body and skin) are recognised.
- Primary slots are preferred over detail, matcap, rim and other effect layers;
particle, trail and line materials are ranked last.
- A match needs clear evidence and a margin over the next candidate. Files of one
set follow the material their siblings matched. A new texture also replaces the
old one in the same kind of slot on other materials that used it.
- When two colour images collide on one slot and exactly one is mostly black with
bright details, it goes to the material’s emission slot.
Unresolved cases retain a suggested target and offer Use on …. Only those
go to AI, with the free primary slots of avatar meshes.
Development and releases
Repository: https://github.com/Orbiters-cc/MyAvatar
The package version starts at 0.0.1. Build Release validates and publishes a
package ZIP plus package.json. Set the repository variable PACKAGE_NAME to
MyAvatar. Push a changed, unused version to master to release automatically;
dispatch the workflow for the first release. The Orbiters release webhook keeps
the canonical VPM listing current.
Assemblies: Orbiters.MyAvatar contains the persistent component;
Orbiters.MyAvatar.Editor contains import, matching, changes and Inspector UI.
Toolkit owns account storage, browser login, API roots/transport, shared account
controls, animated glow rendering, SVG logo drawing, the photoshoot panel, the
shared controls (segmented control, scrub dial, icons, switch, stage badge, support footer),
feature flags, VPM dependency prompts, bone matching, accessory attachment and its build step,
symmetry and accessory posing, the parameter estimate and hair/tail/toe PhysBone
editing. XRay Gizmos draws and picks bones. Unit Git, when installed, owns Git
execution and scoped index handling; the MYAVATAR_UNITGIT version define enables
the commit step. My Avatar does not depend on MCB.