#avatar-optimization

1 messages Ā· Page 20 of 1

cobalt ivy
#

I can't optimize shinano

spring sun
#

Your pc has a built in screenshot tool

cobalt ivy
#

Ik

gritty terrace
#

then you should use that as its hard to see the error messages this way, but id remove unused blendshapes,lower texture res, atlas textures and merge materials, lowering phybone count, optimizing mesh's poly count etc

#

lots of ways to do it and even tools that can do it for you out there (Polytool or VRCQuesttools though auto optimizers can be destructive in some cases)

cobalt ivy
#

Yeah I used vqt but it it doesn't fix anything

#

Wait merging materials is a good idea

#

I even put some textures to 64

gritty terrace
#

if you've only used vrcquesttools and havent done any manual optimization then that could be your issue its mainly an add-on meant to assist in optimizing your model for that last stretch of the upload process not really to make a super unoptimized model magically turn into a optimized one

#

though if the original PC version was poor-medium rank it usually can just be put through the add-on nicely to get a easy quest version

cobalt ivy
#

Hmm ok

heady smelt
#

how to disable renderer onyl for myself?

obsidian lake
# heady smelt how to disable renderer onyl for myself?

for different behavior on a synced toggle make a fork for local and remote users in the controller with the IsLocal parameter. For an unsynced toggle (toggle that only does something on your side) simply disable "synced" in the expressions parameter list

heady smelt
#

i thougth is local isnt synced

spring sun
#

they can have the same transitions but end up being entirely desynced either because of an unsynced parameter or simply via lag

heady smelt
#

but my animations r always synced

spring sun
#

because the transitions have synced parameters so they end up with the same endpoint anyways

#

theres always a delay between local and remote

#

theres a reason why remote syncing is a thing you need to do with more advanced animation layers

#

animation layers have no syncing on their own whatsoever

heady smelt
#

the transitions ahve synced parameters

#

the isLocal dont matter

spring sun
#

no?

#

you can have more than one condition in a transition

#

you can have a singular off animation that has 2 animations it can transition to with islocal false on one and islocal true on the other

#

then have a synced parameter as an extra condition on both and for remote clients they get the islocal false transition and for you locally you get the islocal true transition

heady smelt
#

ok

#

so i was right

#

isLocal isnt only for the local player

#

i just added isLocal as condition but other players cannot see my avi either

spring sun
#

islocal for you is true
for them its false

heady smelt
#

but i switched it off globally

#

thats' the point

#

islocal is only for u to trigger sometihg

#

it doesnt say it wont be triggered globally

spring sun
#

its a nonsynced parameter

heady smelt
#

then how come others cant see me eithern ow?

#

now

spring sun
#

cause you fucked something up

heady smelt
spring sun
#

good job?

heady smelt
#

no

#

it's visible to al

spring sun
#

well are you trying to make the parameter a synced one?

ruby isle
# heady smelt

You have an anim key at 1 second in. Is that setting it off?

heady smelt
#

well it is the first animation

#

i was told I need 2 animations

ruby isle
#

I'm talking about the timeline. You have the two keys at the start, and one at the end

heady smelt
#

first anim is render 1

#

second anim swtihces to 0

ruby isle
#

Look at the end of the timeline

heady smelt
#

let me check

#

i see what u mean

#

magically creatd

#

still nto working

#

isLocal true = play hiding 2 animation

#

but it doesnt

heady smelt
#

forgot to add animation to a controller

#

still same issue

#

it switches off globally

radiant shadow
#

dont use any state for simple things like this , most people never disable transition to self

cold yarrow
#

Entry -> isLocal check -> do local things

raw oar
#

i already asked this in another channel, but im asking here also just in case. So i never knew questies could even see particle effects on avis.. and i just found out they are basically optimized particle effects or sum. Could someone tell me how it works??

long gust
raw oar
cold yarrow
raw oar
#

damn i wish alpha blended worked for avatars, it looks so good. Additive is probably my best bet at particles for quest

raw oar
slim fossil
#

The Lack of quest tranarency

radiant shadow
#

fill texture and use blender knife tool to make those yourself , shove a few triangles here and there its close enough ratl

raw oar
#

omg i completely forgot the fact that quest doesnt accept transparent textures no matter what....

#

i was so hyped when i made the additive particle fx vrcTupCry

#

i swear i need a whole-ass damn tutorial on how to make particles for vrchat quest

obsidian lake
#

you can use additive or multiply

#

there's no issue with transparent textures on quest, regardless of the shader

#

obviously if the shader doesn't support transparency it won't be transparent, but the texture works fine otherwise, nothing preventing you from using it

raw oar
#

wait so i can still use transparent texture as long as the shader allows it, thats it?

spring sun
raw oar
#

how will i know it doesnt allow it

spring sun
#

all quest shaders dont allow it

#

exception being the particle shaders which are technically not transparency but act like it

raw oar
#

interesting

#

so im guessing using the additive and\or multiply particle shader which are both in Vrchat\mobile shaders are allowed on quest?

spring sun
#

yea?

raw oar
#

thank GOD

spring sun
#

they just dont render like youd expect

raw oar
#

i mean i know but its better than nothing ngl

#

its still renders "transparent" textures tho right?

spring sun
#

every shader renders transparent texture either way?
just because a texture has alpha transparency on it doesnt mean it just wont render at all

raw oar
#

i didnt say that, i though it wouldve done the usual "fill the transparency with black" thing

#

idk, maybe its just me

spring sun
#

it just takes the transparency and sets it back to full alpha

raw oar
#

oh

devout flame
#

how can i know whats the size of my avatar MB

spring sun
hollow dagger
#

I'm planning on making an avatar with a simple little spell system to summon a few different items and effects, what would be an efficient way to have a bunch of different props?

elfin zodiac
#

When it comes to file size:
Do the Icons in the Radial menu add to the download/vram size limits?

radiant shadow
#

not seen those count, had one with alot and none - didnt increase size since they are local anyway

raw oar
heavy knot
#

and LZMA assetbundle compression would probably make it back into kilobytes of data so download size would barely nudge

blazing cypress
#

where can I see the hard limits before they won't allow you to upload an avi for quest?

mellow maple
silver kayak
#

ah nevermind, it kinda shows the hard caps, but doesn't list all of them

heavy knot
#

There's kinda of a hard limit for any avatar (all platforms) with the new security checks, but you have to have extremely abysmal stats

gritty crypt
#

How do I reduce the contact count on my avatar?
I have alot of physbones, thats obviously the source of them, but I removed collision, grabbing, posing, and radius from most of them, but my contact count didn't go down, its currently at 68/32 and its the only thing keeping my avatar from a better rating

mellow maple
gritty crypt
#

they might be, that was jsut an assumption on my part

#

in any case question is still the same, how can I reduce my contact point count?

#

I havent been able to find any info on that googling

mellow maple
gritty crypt
#

hmmm it must be something gogoloco is doing then
I have the preconfigured prefab installed, and it seems pretty heavy

cold yarrow
#

gogo loco doesn't add contacts or physbones though.

mellow maple
#

yeah gogoloco never put contacts on my avatar when i used it

gritty crypt
#

hmmmm, what else could it be?

cold yarrow
#

something else on your avatar

heavy knot
#

put t:vrccontactsender and t:vrccontactreceiver in your hierarchy search

#

though is there a reason you want your avatar in a better perf rank?

gritty crypt
#

I just want it to have a better rank. This is my own from scratch avatar, and optimization is important to me

#

also some people will understandably have very poor perf avatars go to fallback or disabled
I often get people telling me they need to enable my avatar to fully see me

#

also I havent even added much to this av yet, I'd prefer it not to have a very poor rating at base

heavy knot
#

show what you're searching, also are you seeing that performance rank in the builder tab of the SDK or is it when the avatar's uploaded in game

heavy knot
#

I'm guessing you're using VRCFury on this avatar

gritty crypt
#

yea

heavy knot
#

what VRCFury components are on the avatar

gritty crypt
#

I have some material toggles, and a bunch of toggles for animation clips and shape key control, and some gestures setup through VRCFury

heavy knot
#

could you click your avatar, at the top click Tools > VRCFury > list all components at the top of unity

#

show the console output it makes

gritty crypt
#

also I jsut CTRL Z'd a couple times and 4 world constraints appeared in my hierarchy, what?

#

hmm, that list all components option isnt doing anything
nothing in the console and nothing came up

heavy knot
#

screenshot your whole console tab

gritty crypt
#

its just empty

#

I cleared it before doing that list all

heavy knot
#

I need to see what your console settings are

gritty crypt
#

no hidden errors or anything either

heavy knot
#

did you select your object with the avatar descriptor then execute that method

gritty crypt
#

oh, I'm dumb šŸ˜›

#

hmm, could some fo them be coming from the constraints?

cold yarrow
#

some of what? constraints aren't contacts or physbones

gritty crypt
#

I just

#

have no idea what even is creating these contacts

#

this is all the documentation says
doesn't say what components create new contact points or how to reduce them

#

I dont know where my current ones are all coming from, other than possibly my physbones, but I tried disabling some of them and the contact count didnt go down

cold yarrow
#

If you turn on gizmos and click the avatar root, you should see them all show up in the scene view, that might help

hollow dagger
#

Just popping the question here in case anyone has any ideas, so!

Am attempting to make a silly little avatar from game, has a silly magic system in the game that I want to try my hand at making work here, basically you can do various gestures over a mask and summon various items/effects, and I want to make sure I can do that in a way that won't leave me with Way Too Many Mesh's, currently I have the Body, the Mask to allow for easy positioning, and then currently I'd need a seperate Mesh Render for Every Single Prop that I want to summon which is. Bad. Any ideas on how to not have it that way?

(Apple as example)

#

Basically, how can I have a bunch of different props that I can toggle on/off and position around?

cold yarrow
hollow dagger
#

Oh, I'd only have one at a time I think all tied to a single empty object rather than a bunch of different ones

cold yarrow
#

Sure, then you could just join it all into a single mesh and use tricks like UV tile discard to hide the parts not used

hollow dagger
#

Aha, that looks perfect, I should just be able to change which UV tile is yeeted in an animation?

cold yarrow
#

Assuming your shader supports it, yup, absolutely. This is how I do toggles for individual clothing parts with a single "outfit" mesh.

#

(and it's relatively easy to add to custom shaders too)

hollow dagger
#

Just using poiyomi, custom shaders are probably a touch too advanced for me, lmao.

hollow dagger
#

hi?

hollow dagger
#

I am well? Did you need anything?

cold yarrow
hollow dagger
#

And change which tile is yeeted

pearl kelp
hollow dagger
pearl kelp
#

Particles and lights. I pretty much added to it.

ivory sluice
#

if i'm correct this is a deira
afaik the base doesn't exceed 70k polygons and the only extra thing i see on your avatar is that puro mask
Have you checked how many polys does it have?

ivory sluice
#

the base should have less than 50k, are you sure you didn't accidentally clone the mesh or added a hidden model on the avatar root?

pearl kelp
#

Yea?

ivory sluice
#

then where do these 175k come from? it surely doesn't from the base
did you check the mask poly count yet?

pearl kelp
#

It has sub 2k

ivory sluice
#

can i see the hierarchy of the avatar?

pearl kelp
#

Give me a second to open it up. I just got up.

#

"arkoshark" doesnt have any body, just the armature for a transfur im working on

worthy sigil
#

way too much stuff

pearl kelp
#

The only thing that's not important there is gamblecore

#

Table is just a couple of unity objects. Transfur doesn't even have anything. It's just a material swap

cold yarrow
#

heh that's a whole lot of objects

pearl kelp
#

Uploading a build that doesn't have gamble core or any of the clothes that I don't consistently use.

#

192k still

worthy sigil
#

duh

pearl kelp
#

Yeah like I said I already deleted everything that wasn't necessary.

ivory sluice
#

You have a loooot of clothes, this is what's causing this poly count
You'll have to remove various clothes from the avatar if you want it to be poor or better

#

Also the pip boy, beanbag...
There are too many things

cold yarrow
#

I can't imagine a good beanbag is low-poly

pearl kelp
#

Like I said I literally removed all of the clothes except for the stuff I use. It removed like 200 polygons. Not even

#

For texture memory, I have excellent rating tho

#

happy with that

ivory sluice
#

it's impossible for a single cloth and even less a set of clothes to have less than 200 polygons
are you sure you are actually removing the clothes?

pearl kelp
#

..yea?

#

Wait. I'm slow.

#

Alright. Yeah. That had like 30 K.

#

I thought I only had 190 K to begin with 😭

#

Also, for some reason I had 4k textures on a candy cane.

ivory sluice
#

if you focus the main camera on your avatar and go to the game view, turning on the stats window will show the number of tris your GPU is rendering
if you have a directional light make sure to disable the shadows, and disable any outlines/fur shaders too

pearl kelp
ivory sluice
#

i mean in your unity project

pearl kelp
#

ik

#

410k

ivory sluice
#

disable the shadows on all the realtime lights in the scene if they are

pearl kelp
#

162k

ivory sluice
#

is everything except the body disabled?

pearl kelp
#

mhm

ivory sluice
#

do the materials on the body have outline?

pearl kelp
#

Quest version has 80k tris

ivory sluice
#

that's not a deira base model if it really has that poly count
is it edited or does it have extra body parts from the original bas model?

pearl kelp
#

I dont know what to tell ya

#

I already tried to optimize the triangles. It's just not possible without blender 😭

#

Which is why I'm trying to make up for it with everything else.

ivory sluice
#

who made that avatar?

#

or what page does it come from (gumroad/booth/etc.)

pearl kelp
#

uhhhhhhhhh

#

next question?

gritty terrace
#

erm

#

why dont you want to answer it?

pearl kelp
#

Because freedom of speech šŸ”„

ivory sluice
#

i don't have a next question
the final answer is that if it still had that poly count with only the body enabled, that means the base itself got a lot of thing added to it, the only way to solve that is to remove or reduce polys on blender

gritty terrace
pearl kelp
ivory sluice
#

yea ik

pearl kelp
gritty terrace
#

if you legally bought it from somewhere you'll have an email about it (or depending on if you got it from gumroad/payhip you'll have it in your library)

#

pretty sure mari only has gumroad though if its really the original base

pearl kelp
#

Wait, then I got scammed.

gritty terrace
#

wdym?

pearl kelp
#

I sent 60$ to someone on discord a while back 😭

gritty terrace
#

and?

pearl kelp
#

The model's only $45.

#

They did add some stuff tho

#

I'm just gonna assume that they paid for the commercial license and they didn't pirate it.

gritty terrace
#

yeah its likely you've gotten an edit of the original which is why your poly count is so high, theres tools like polytool that can make a optimized version of your model (though the turn out can very depending on how much stuff you've got on your model) but if you dont want to have to pay for a tool you're gonna need to likely take it to blender

pearl kelp
#

eh

#

Honestly I'm just gonna delete everything else to overcompensate for the triangles

#

Everything minus the triangles are gonna be like at least good rated

#

I'm now using like 128 textures so

#

Meshes and materials are next (no idea how)

heady smelt
hollow dagger
#

Or learn how to do that in Blender.

gritty terrace
#

yeah you dont need to get "an artist" to do it for you

#

plenty of docs/videos out there (prolly even some messages in here) that go over how to fix it up properly

modern fable
#

How does my friend fix this? He’s new to vr and is on a quest 3, what setting should he change to get it looking normal

sick timber
# modern fable How does my friend fix this? He’s new to vr and is on a quest 3, what setting sh...

Hi, that seems to be an imposter avatar (not a bug basically).
It’s basically a more accurate fallback avatar that actually matches the currently being used avatar.
If the avatar itself is PC-only, not much can be done here, except the avatar’s user switching to something with quest support
If the avatar is supported on quest and is being performance blocked, your friends can select the user from the quick menu and can manually select show avatar (this must be done for every very poor avatar, and is not recommended as it can have a major performance hit especially when showing many avatars)

modern fable
modern fable
#

All my other quest buddies see the avatar as it is

sick timber
#

(Just trying to rule out options here)

sick timber
modern fable
#

Like he got it yesterday

sick timber
#

My current guess is the avatar is probably ranked Very Poor for performance (as in the vrcPerfVeryPoor symbol) which is blocked by default on Quest
The only way to see such avatars is by selecting a user after opening the quick menu, and toggling ā€œShow Avatarā€

#

(And this must be done for every user who uses a very poor avatar)

modern fable
#

Oki I’ll make sure he has that on

pearl kelp
#

People like this disgust me. For the love of God, optimize your avatars.

#

Making the game unplayable.

sick timber
cold yarrow
#

Haha

amber otter
slate thicket
#

Sorry for the random message but I want to get better at making my avatars more optimized and I wanted to ask what is the biggest drain on other people's systems so I can focus on that first. Best bang for my buck/time.

Is it texture data, bones, bone components, sounds, particls, material slots, mesh, or triangles?

hollow dagger
#

Other stuff like physbones really depends on how you have them set up. Lots of physbones with long chains with colliders and animated? Worse for the CPU than something simpler.

#

Also your texture resolution is important too, 4k to 2k will drop the VRAM usage a lot.

#

Oh and shaders? I think they're fine under most circumstances but transparency is usually a thing you want as little of as possible

slate thicket
#

Thank you. I tend to keep my avatars to 1 set of clothing. And I don't use 4 k textures. I've been getting into the habit of keeping masks down to a low resolution or 500 or so. But I like my particals and often re use the same material. I guess I could go into blender and combine them now that I know how to.

My biggest thing is I like those spiky tails. I usually have 3. I don't have a floor colllider on them. And I do sometimes like to use transparency but I don't use them that often

All in all thank you for the help. I'll keep that in mind and see what I can do to limit material slots, and combind meshes and add them together as one material.

slate thicket
tawdry wyvern
#

Which is most optimized?

A) Regular mesh, Backface culling off

B) Above mesh, all faces duplicated and flipped in blender, Backface culling on

hollow dagger
heavy knot
zealous wigeon
buoyant holly
#

for lighting purposes B would be better as you're able to have the front and back receive different lighting?

hollow dagger
#

Ideally you could pop them together in Blender, yeah, and either hide the unused clothes by using blendshapes to shrink them or by using something fancy like UV tile discarding in Poiyomi or such

#

(then animate which ones pop out and get unhidden and all that)

#

Still would have the issue of materials but you could atlas em together that way.

cold yarrow
#

if you have too many clothing items, make multiple avatars

hollow dagger
#

Mhm!

spring moss
#

ALOHA

tawdry wyvern
zealous wigeon
heavy knot
#

If you want actual better raw performance then the selective duplication is actually better, but if you want to cheat the performance rank system just do it in the shader pass

tawdry wyvern
#

I really wish they would fix the performance ranks.
The triangle limit is so low that avatars end up very poor, and then there's no incentive to optimize, and most people will have no clue how bad their avatar really is.
I wish there was a score system, so even if you go past very poor, you and others can still evaluate and compare avatars.

cold yarrow
#

I'd just like to see ranks before I load an avatar

heavy knot
#

triangle perf rank hasn't really updated since the OG vive HMD was the main headset people used

#

and tupper (in a deleted message) stated they won't change it because people play the game on bad hardware?

#

Here's this before someone goes "SOURCE?"

tawdry wyvern
#

It's really only end spectrum of the performance ranks that need adjusting.

heavy knot
#

With most modern GPU architectures nowadays, they can handle a shit load of triangles

tawdry wyvern
#

Yeah

heavy knot
#

Mainly referring to the 30 series nvidia area

#

RDNA 2 AMD gpus too

#

VRChat definitely has PC hardware analytics, they could update the triangle count limit based off of it

tawdry wyvern
#

The biggest issue is just that the performance ranks don't matter if they're so strict that everyone ends up ignoring them.

heavy knot
#

It's just cause the system is pretty flawed, you could have a excellent rated avatar that makes the game go to single digit FPS cause of shaders

#

or have a very poor rated avatar perform better than an excellent for the same reason

cold yarrow
#

two disabled lights on an Excellent = Very Poor

heavy knot
#

oh lol

cold yarrow
#

(one = poor)

heavy knot
#

Pixel/Vertex lights are just not separated entirely

tawdry wyvern
#

That too, or models with lots of meshes where only a single one is ever enabled at once.

cold yarrow
#

yep

#

really easy

heavy knot
#

We can only wish for stuff like this to be fixed, their current mindset is that "If it makes us money, make it. If it makes us lose money, fix it"

tawdry wyvern
#

I don't see how a company could survive with any other mindset.

heavy knot
#

You can still listen to customers whilst being profitable

tawdry wyvern
#

If they don't they're gonna lose profits. So in the end it's still all about profit.

#

I still think a performance score in addition to the ranks could be good.
That allows you to create your own ranks based on your own hardware.

#

I mean, there's already memory usage which you can use to cull avis, which is independent of ranks

slate thicket
#

sorry I was gone for a bit. one last question.

does it help when you toggle extra things off?

hollow dagger
#

Like, toggled off and enabled later? I think the game still has to store them in VRAM at the least even when toggled off, potentially also has more impacts, not fully sure there. Toggling a light off or particles off will help though.

#

For things like meshes it still has an impact though

slate thicket
#

ok cool.

so the take away I got from this is keep texture res down, no need for 4 k, keep martials down (2-4 max) and learn how to atlas

keep culling to back and avoid transparences and lights

hollow dagger
#

You can have some transparencies just don't go ham with em, and yep, that's about it!

slate thicket
#

got it

hollow dagger
#

You can have 4k if its necessary for some textures, just try and limit it

#

Overall, its really just a tradeoff on how detailed you want the avatar. If it starts to negatively impact how your avatar looks its fine to keep the resolution as is, and all that. Just having fewer material slots alone will help a lot!

#

(Also lights are The Worst for performance)

slate thicket
#

the funny thing is I'm more into particles and stuff. but probably the kicker for me is all the addons, wings, horns, tails, all have different material . I'll need learn to atlas them to use the same material might look for an auto atlas thing, or youtube.

hollow dagger
#

Atlasing is decently easy thankfully, at least from what I've done with it, Cat's Blender Plugin has a button to do it, actually, I think?

#

I haven't looked all that much into particles but I think collisions are the biggest thing with em, and how many there are.

slate thicket
# hollow dagger Atlasing is decently easy thankfully, at least from what I've done with it, Cat'...

when I first got into making avatars I had no idea what I was doing but I was told i needed cats and i needed to use auto fix. later after many many tries I found out that the auto fix in cats was deleting material slots and just being a mess. so from then I'm not the biggest fan of cats. now I'm better but just like how I messed up my first avatar trying to add gogo. I hold a grudge to those both.

hollow dagger
#

Lmao, that is fair

slate thicket
#

thank you very much for all your help, now it's sleep time

cold yarrow
#

also you can get the atlasing plugin separate from cats

#

material-combiner I believe it's called. Cats just calls this.

lyric lintel
#

So with mip map streaming now enabled, Is the texture memory usage still acurate?

cold yarrow
#

yep, limits have not changed

lyric lintel
#

Ah alright

lyric lintel
#

Like the unity LOD system?

cold yarrow
#

I haven't looked into that. There's some stuff you can do with textures but I don't personally know the details.

lyric lintel
#

Hmm, may was well try it, I'd be really supprised if we cant use LODs, thats such a basic tool for optimzation

#

Looks like you can actually

#

Nevermind, LODGroup isnt whitelisted

heavy knot
#

Yeah LODs are a world only thing

hollow dagger
heavy knot
#

Using avatar culling, yeah it's not a default option that's set however. Impostors would be nice as an LOD, but their VRAM cost is kinda high for that

lyric lintel
#

Regular old LOD groups would be really good as well, as on lower quality LODs you could merge meshes/swap out textures for lower quality ones (though less needed with streaming mip maps now) and disable things like shadows on the lowest quality LODs

pearl kelp
#

I cut out like half the bones because of armature. But now I have to completely rework how clothes work.

late quiver
#

I ended up atlasing a lot of my textures together. A recent project I've been working on is pyramid head. Got him from 8 to just 1 texture.

#

Here's a question I'd like to ask you all. Is it better to have more numerous but tiny textures or just one big one. Right now on my pyramid head I have a single 4k texture.... that's actually a 16k texture compressed waaaaay down.

proper grail
#

math wise a 16k texture is 16 4k textures. im not sure how you turned 8 textures into 16 4k textures but its all a learning curve~

late quiver
#

I stacked them all on top of each other in photoshop then lined up the UVs in Blender.

#

Well... not truly 16k.

It's 8kƗ16k. I'm trying to keep my model at medium.
Currently it's 17mb of texture memory and it's 2 materials. The main material, and a empty cube so the model can turn invisible on quest.

proper grail
#

as long as its power of two, its good :3
to answer your question, the number of textures doesnt matter(*) its the total resolution and if that texture has an alpha channel that does it

late quiver
#

What does that do.

proper grail
#

every compression option with an alpha channel will double the vram usage compared to one without.

late quiver
#

So using Jpeg is better then PNG?

proper grail
#

not exactly, first of all always have lossless source files. Unity will compress them again for use in game

#

depending on the texture import settings

late quiver
#

I'll check those.

proper grail
#

like for example if you had a png with no alpha channel, normal compression would give you bc1. 16 bits of data.
but a png with an alpha channel would default to bc3. 32 bits of data
double the size for one more channel

#

but yeah, lossless input. Let unity compress it as you need it to!

late quiver
#

So if not using alphas, disable the alpha channel

proper grail
#

yis be sure it says dxt1|bc1 for minimal vram usage

pearl kelp
#

Why do avatar creators seem to think very poor and very poor have the same performance 😭

#

They will get very poor on one aspect, then proceed to do the same with everything

late quiver
#

I shoot for medium on quest and while my PC builds do tend to get heavy, I try to control the vram and avatar size.

gritty terrace
#

i know the majority of western creators are just asset bashers, not too big of a purchaser to know if thats the case for non-western creators though

languid brook
#

hey, I want to have 3 different sweaters on my avatar with a radial puppet slider. Are the only ways I have
a) 3 different materials for the sweaters or
b) 3 different skinned meshes
or are there other ways so I can still get a good ranked avatar?

mellow maple
languid brook
#

ohh I read about this not too long ago! I'll watch a guide on that thank you šŸ™‚

cold yarrow
languid brook
#

thanks alot šŸ™‚

proud urchin
#

You can also use blendshapes and scale them down, but this (in my experience) is difficult to do correctly without getting weird artifacts

late quiver
#

Nailed it

late quiver
# languid brook hey, I want to have 3 different sweaters on my avatar with a radial puppet slide...

Good ranked maybe not but Medium is the new Good XD.

On PC it should be more then possible just... a lot of work. Optimization usually boils down to a lot of tedious work with very little visually on the outside to show that it worked. If you plan on making this a quest Avatar as well, I would strongly suggest atlasing all of the textures together which means you put them all on a single texture that's bigger than original texture but you can always scale it down later, and I would make very careful blend shapes. One thing to keep in mind with blend shapes is even if you shrink the whole thing in blender and it looks like the whole thing shrinks in blender, whatever you're shrinking is going to stay bound to whatever bone it's weighted to so that means you're going to have to account of where it's going to go. Personally I like to shrink each quadrant one at a time and shrink it to where it is and make it super skinny like a noodle that way it can hide within your avatar

silver kayak
cold yarrow
#

disable animation and you end up with 3 sweaters on too šŸ™‚

silver kayak
#

but if you have blendshape toggles, you wouldn't display all 3 at once, you have 3 blendshape sliders, and you only turn on one of them, meanwhile the other 2 remains off

#

but object toggles aren't as bad too, you can have up to 8 skinned mesh and 16 basic mesh toggle on a medium avatar on PC. but it's generally better to have blendshape toggles on small things like bracelets, necklace that is less than 5K tris.

pearl kelp
#

Wtf did I do

#

2 BILLION polys 😭

cold yarrow
#

check "read/write" in the first panel in the inspector for the model file.

cold yarrow
#

redoing what?

#

you'll have to check that checkbox either way

pearl kelp
#

Also doesnt show

cold yarrow
#

that looks like a mesh object, not sure what you're trying to show me

pearl kelp
cold yarrow
#

no, that's a mesh object possibly inside that model file

pearl kelp
#

Wait

#

Ignore that

#

Uh

#

I dont have an excuse

cold yarrow
#

that's okay.

pearl kelp
#

Its past my bedtime

#

Thats the excuse

cold yarrow
#

no worries, as long as you figure it out, you can do this along the way šŸ™‚

pearl kelp
#

Was already halfway through doing it again 😭

mellow maple
pearl kelp
#

Saved 2000 polys for this model, which I use twice so I save 4000

#

Is there any way to take an object from my hand and attach it to my head?

#

Like a toggle

#

Would save 500~ tris

cold yarrow
#

sure, parent constraints

pearl kelp
#

Uh

#

Dumb that down for me? (Very stupiddididd)

silver kayak
mellow maple
#

no, but thats not the point of using it. uv tile discard would have better performance than just using blendshapes. what you choose to use really just depends on your use case

silver kayak
#

i know, blendshapes does have it down side by always rendering on the screen, but if your avatar is already have a medium performance rank, in my opinion it's better to aim for better visibility for the players, so they can see your avatar just fine with the fallback shaders. but it's really up to the creator who decides what he wants

#

there are a lot of avatars in vrc where if you play with the shaders turned off, most of the avatars just look very ugly

#

but that's kinda what you need to do in public lobbies to avoid crashers

mellow maple
#

i think using both at the same time would work the best

mystic trout
#

Has an animation option been implemented that can swap to another avatar entirely?

For example, instead of having 6+ outfits in 1 avatar and having to worry about several skinned meshes and materials having to load, I can instead use the emotes menu to change avatar to a different avatar (different blueprint ID with another outfit), instead of Quest / Low End users having to download the entire thing, or me having to manually swap avatars from the avatar menu?

cold yarrow
#

No, but it seems pretty simple to swap avatar from one of the menu wings?

late quiver
#

It wouldn't be an animation but rather a button in the menus. Probably you'd have to own both models and enter the ID into the button. Then when pressed it quickly switches.

mystic trout
#

and instead of having like 30 variants in my avatars list, i'd just see it from 1 avatar which controls all of its variants within itself
Would be convenient, and also help general desktop performance. Only loading what the avatar currently uses

winged hinge
#

I managed to halve the polygon count of my AVi finally, from 1,1million to 480k. There are still a few more things I can do probably and I will try to lower it further. Can you spot which one of the two is lower in quality? If not then I think i did well enough preserving the visuals

weary ice
#

The one on the right?

winged hinge
#

The one on the right is the higher quality model (1.1m polys)

sick timber
late quiver
#

What is it?

winged hinge
#

Living clothes type of thing. Some people compared it to Vaal Hazak from the monster hunter series

regal basin
#

is there any way to test what different mipmap levels look like in editor? Is there some way to force the viewport to temporarily display a certain level for all textures?

proper grail
#

I wouldnt overthink it, some unholy combination of mips off and manually setting the resolution would give an appropriate force. Its so natural its hard to notice the uv size vs mesh tri vs viewport usage mipmapping in action

runic slate
#

i wish there was a way to view what an avatar would look like on quest before you upload it so i don't get jumpscared by the fact an avatar just doesnt have clothes on quest only,,,

spring sun
#

dont use a separate parameter list

runic slate
spring sun
#

there is literally no difference except for rendering like material detail levels

runic slate
#

I'm talking about what it ACTUALLY looks like on Quest. Again. I have avatars where they'll look fine in unity, in the gesture manager, etc, but the moment i load them up on standalone theres things like missing clothes or issues.

#

which i think missing clothes is p big if they work fine in gesture manager, and are defaulted on, but when i go on quest, theyre defaulted off? or just not working at all?? and i can't tell unless i boot up standalone which i don't do often.

spring sun
#

sounds like a completely different parameter list or broken layers

runic slate
#

still wish it was easier to see without having to boot up standalone itself.

spring sun
#

you kinda need to be on the platform in order to see what you built for that platform

#

like its not a hardware limitation
its a software limitation of being entirely separate builds of the game
including the content upload being completely separated and independant of each other

#

although if you did build the quest version of the avatar on pc
other than the materials being rendered differently
you will see exactly what a quest user would see

runic slate
#

until i turn into the avatar in the same instance as a friend whos a questie and then tells me theres a large plain sticking out of my backside.

spring sun
#

šŸ¤·ā€ā™‚ļø

#

its entirely up to what you put on the avatar

#

the only things you need to keep the same between the avatar builds just so its actually functional and synced between them is the parameter list

#

otherwise the shaders/materials and toggles are entirely up to you

sudden perch
#

I am attempting to upload an avatar onto Quest but it is not optimised for Quest and quite literally have zero clue how to fix any of this nor do I even know what any of this means lol

#

i may just give up with this one which is unfortante but oh well

cold yarrow
#

thre are lots of decent tutorials though, if you wanted to learn.

mystic trout
#

Looking to optimize my avatar - currently I have 'clothing color swaps' but instead of swapping the texture of a specific clothing, it swaps out its material.
This results in an incredibly high material cost, which definitely worsens my avatar performance.
Is there a way to animate this better? (Changing the texture of a material in an animation, instead of swapping the entire material in a skinned mesh)

#

considering this is all that changes

zealous wigeon
# mystic trout considering this is all that changes

That is poiyomi is it not?
Right click the property and select the option to allow it to be animated (shaders that lock themselves, like poiyomi need this step to allow things to be edited by animations) and then you just animate the swap of that, because of how monolithic poiyomi is use the recording feature to animate the swap instead.

mystic trout
#

I'm using LilToon shaders

zealous wigeon
mystic trout
#

don't think i lock this shader at all

zealous wigeon
#

Anyhow, the locking is just a minor thing, you can absolutely animate texture swaps over entire material swaps, just animate using the recording button instead, drag drop texture in and stop recording.

mystic trout
#

gonna try that, ty

cold yarrow
#

Poiyomi will lock on upload, this is desired

#

but I didn't think you could animate a texture swap on any shader...

mystic trout
#

just tried that

#

no dice

#

hmm

narrow lake
#

hii can someone help with quest version my package is 2 big and i dunno know how 2 do

runic slate
#

crunch some textures.

zealous wigeon
# narrow lake hii can someone help with quest version my package is 2 big and i dunno know how...

If you haven't already used it then vrcfury's blendshape optimizer could likely bring you down below that without any visual or functional differences.

If textures then don't use crunch, use ASTC12x12 (for lowest size) or ASTC10x10 (for a bit higher quality at a slightly larger size)

The reason you don't want to use crunch on avatars is because crunch causes stutters when being loaded in, so each person who loads in your avatar will get a stutter (depending on amount of textures crunch and such)

long gust
rancid linden
#

i'm just getting back into vrc after a break, what are the new hard limits for avis? i can't find the info easily

cold yarrow
#

limits are about halfway down

rancid linden
#

ahhh thanks, but i meant didnt they say in a dev update that there will be hard limits? not sure where the cutoff point is ratl

cold yarrow
#

oh you may mean the actual avatar package size limits

rancid linden
#

oh is that whats affected? sorry, i only skimmed over the updates yesterday

cold yarrow
#

yep

#

I'm surprised it's not on this page

rancid linden
#

yea, do we know the size limit tho?

cold yarrow
#

yes, it's in the updates, not sure wherelse

#

I don't know the numbers offhand as I don't produce anything near the limits

rancid linden
#

ohhh its that high huh

cold yarrow
#

not for quest

#

but otherwise yeah, they're pretty high still

mellow maple
#

i think for pc its 200 compressed and 500 uncompressed

rancid linden
#

oh okay okay, i'll just stay within the performance ranks to be safe xD

mellow maple
#

and quest its 10 compressed 40 uncompressed

modern meadow
#

Somehow I do not think I will be able to make my current avatar quest compatible šŸ˜…

modern meadow
#

I think it's related to my coat-

warm falcon
silver kayak
#

by default, your hands already has colliders on it even if you didn't put any collider on it, and it will collide with everything, and it will collide with other people's colliders too

marble vine
#

i have an question, if an avi is Opti, can i upload it as an quest one ? or do i have to make it a pc version ?

spring sun
#

there is no reason to not upload a quest only avatar as you can just upload the quest version to pc to make it both pc and quest compatible

atomic sigil
#

So Ive been trying to get an answer on this but keep getting mixed messages. When making an avatar, it it better to have multiple objects that i just toggle on and off, or should i combine them and use shape keys to hide them? I know combining them reduced the number of draw cells because of the fewer materials ill be using, but ive also heard shape keys can be expensive and negatively impact performance

heavy knot
#

Blendshapes is the worst method as it applies skinning to all those vertices, you can use UDIM tile discards if you're making a PC avatar

atomic sigil
#

It mainly PC, but i do try to make them quest compatible when i can

radiant shadow
#

if its a object you can weightpaint it to a bone and scale it & shove it somewhere its not visible - instead of a blendshape , will still always be visible but doesnt add another +1 drawcall

atomic sigil
#

I didnt know about UDIM and never thought of scaling it like that, Thanks a ton

cold yarrow
hollow dagger
crude carbon
zealous wigeon
# crude carbon When is UDIM not a good option?

When it is used on things that are practically always hidden.
UDIM makes the most sense for things that are commonly shown and uncommonly hidden.
Stuff that is usually hidden should, performance wise, be a separate mesh.

#

Of course are more things to think about, you don't want everything to be its own mesh

#

If you went separate mesh route then you should combine as many toggled meshes together as possible.

radiant shadow
#

a fun thing can happen in some worlds with a postprocessing set up a certain way and uv tile discards glow when they are ment to be invisible

#

very very rare, seen it in older world once

crude carbon
#

Ok, makes sense. You want to minimize the number of meshes for the average case

zealous wigeon
#

Projectors, like caustics, make it appear too.

radiant shadow
#

your image is at 0.0 and then just shove parts you want to hide in those directions , can be done on a single material

zealous wigeon
crude carbon
hardy hound
pearl kelp
#

idk i feel like 20k tris isnt enough tbh

vague wren
#

Try 2mil, that should have enough resolution

#

(Don't actually use 2mil tris PLEASE šŸ™)

stoic gust
vague wren
#

What the hell

#

Is that

#

I've seen better topology from boolean modifiers

ivory sluice
#

this is the "cinematic" model for stuff like cutscenes of whatevs silent hill transitions between scenes with
The topology is like that to give an accurate silhouette to the model, and since it's not a skinned mesh it doesn't need to have uniform topology, so that's why non-detailed areas have a very low density compared to the silhouette areas

blazing pawn
#

So I need someone to teach me how to make an avi

#

I am trying to make an XCOM 2 ADVENT Trooper avatar

#

I have the model but I need help with the collisions

amber hemlock
tawny escarp
#

does anyone know any NDMF based tools to atlas materials together?

stable juniper
surreal night
#

I don't know how to optimize my character for Quest. I tried following a YouTube video tutorial and the guy or gal who did it went too fast in certain parts. I did manage to make it say AVI-NAME QUEST (Quest) (Quest) in unity, but when I was trying to upload it through Android, it kept saying PC only

proud urchin
#

When you change the build target, it will update all of the optimization requirements so you can easily see what you can leave alone and what you need to change. If you need help from there with anything specific then we can also help with that

waxen maple
#

i need a bit of help - what tools do you guys use that can optimize avatars beyond d4rkavataroptimizer, AAO, and vrcfury's ?

worthy sigil
#

Blender

stable juniper
waxen maple
#

yeah just having stuff on avatar sps or 13 other systems when only 3 would be active still seems to reduce frametime from 11(90fps) to 15.5(65fps).. eh

#

i converted everything from MA to VRCF thinking it'd be more performant but doesnt seem the case. weird af

#

i saw in a built FX layer that MA at least put some things in one blend tree which improves draw calls, vrcf uses layers and a DBT..
AAO seems to work with MA and makes that blendtree even bigger

cold yarrow
#

blendtrees don't affect drawcalls

proper grail
#

Welp cant argue against that. I am wondering what the complete thought there was tho

cold yarrow
#

me too

surreal night
#

@proud urchin I've already changed the build target to Android, I think the issue was more along the lines of reducing triangles to the reasonable amount to be able to have my avatar not be blocked.

proud urchin
#

We can't know unless you show us what it's saying

amber hemlock
#

What's the process for inverting a shapekey in blender? For example, turning a "Enable Glasses" blendshape into a "Disable Glasses" blendshape

proper grail
#

cats has an apply blendshape to basis button in the shapekey down arrow options menu, that functionally reverses it.

#

if not, if the glasses are simple one could separate them out and delete all the blendshapes to start over

cold yarrow
#

FYI you can do that without cats

#

reversing is more tricky though

#

for something as simple as "enable glasses" I'd just apply that to basis and make a new hide one

amber hemlock
#

Yeah more specifically this is something like "Hide Hoodie" blendshape that shrinks the jacket into the body, and "Worn Hoodie" blendshape that makes my upper body get really thin so the jacket doesn't clip.

But I can't join these two blendshapes directly because they are "opposites"

#

Even though they totally just be one

cold yarrow
#

but you can make a new blendshape from whatever ones are active, that can often work

amber hemlock
#

That effectively just copies the Worn Hoodie blend shape, since it's the only one active

proper grail
#

when you do go through with this.. gonna eventually find out that "show" shapekeys that are scaled to 0 will have the normals of the ball of verts that is their 0 shapekey form. Show shapekeys no worky

cold yarrow
#

You can use "blend from shape" to activate any you want though and make a mix of them

amber hemlock
#

also also, you can have custom normal data

#

and tell unity to import instead of calculate

#

I use custom normals a lot to sphere-ize out hair shading and make it less harshly lit in any setting

#

You don't have to have normals always point away from the surface of the faces if you don't want them to

surreal night
stable juniper
surreal night
#

thanks so much!

serene sky
#

what are the best ways to lower upload size for quest

glacial shadow
#

Reduce the resolution of textures

#

Simply reducing texture res from 4096 to 2048 can reduce the amount of memory it takes up by 75%
I really think more people should do it. I hate having to download 100mb+ avatars

#

(for example, lowering it to 2k made my avatar's body texture go from 11.18mb to 2.80mb)

gritty terrace
#

removing unused blendshapes is another good one that not many do

proper grail
#

mmhm vrcfury or d4rkOptimiser has a checkbox in unity* for doing the unused blendshape removal on upload. Makes exporting from blender not a chore

serene sky
#

can I get an explanation on this so i could maybe have a lead onto how to upload my avi?

forest pebble
serene sky
warm mural
#

has anyone made an avatar optimizer that merges meshes + materials + makes a texture atlas?

#

because this is pain xD

zealous wigeon
wide quarry
#

d4rks avatar optimizer my beloved
helps a ton with quest conversion too~

zealous wigeon
#

It has definitely made my workflow easier, I only have one major piece of clothing on my avatars so I can just add it in Unity instead of Blender.

forest dome
#

When it was apparently so bad you can't click the create optimized copy with d4rk's avatar optimizer šŸ˜”

vapid bluff
#

merging meshes isnt gonna be extremely beneficial

#

its arguably even worse, depending on the avi. optimization is on a case by case basis rather than a 1 solution for all

#

especially while using many blendshapes for things, or multiple UVs

#

best practices is going to be dissolving unnecessary loops and removing mesh bloat like mesh chains

#

combining expression blendshapes into 1 instead of a combination of multiple, avoiding blendshapes if possible, and to use the toonlit instead of standard lite shader
** Removing**

  • unused vertex groups
  • extra vertex color sets
  • extra UVs
#

separate meshes is actually better if youre going to be using blendshape for meshes over ~ 20k tris

#

mesh memory is going to generally be more of an important focus than texture memory for quest avatars. but these things are generally applicable to all quest avis

#

vrc limits dont really account much in regard of mesh memory

radiant shadow
#

so much wrong here ,

vapid bluff
#

its really not tho

#

combined meshes is purely for draw calls

radiant shadow
#

merging greatly benefit drawcalls , seperate meshes with blendshapes was a 2019 thing its barely any difference now

vapid bluff
#

a unity change didnt magically change that

#

and is literally easy to test

#

i said it depends on the avi, if an avi is generally optimized to begin with them yeah merging will be well

radiant shadow
#

If you have 4+ meshes you doing it wrong , mesh memory is going to generally be more of an important focus than texture memory ?? guess wich ones the biggest since most never touch their texture setting, (its not mesh)

vapid bluff
#

texture is easy

#

literally the easiest thing

#

hence mesh memory should be more of a focus, especially on quest

#

i can get an avi easily less than 8MB and look insane for pc, pc is ez, i was speaking on quest tho

#

quest is generally gonna have more mesh memory than texture memory, thats whats common

#

most avis out there for quest arent even that optimized to be merging it all together in the first place

#

considering ~10k tris is ~.8MB -1.2MB, depending on blendshapes

#

not every avi is fairly or even acceptable optimized in general, let alone anywhere near a 1 solution fix

#

ur viewing it with a black and white perspective

#

smart people would separate head meshes from bodies, due to the mesh memory size increase from the abundance of blendshapes, especially facetracking

#

unity switch doesnt solve that...

#

it will always be on a case by case basis, because avis are a very wide range of performances

#

yeah the most easiest to fix and most accessible

#

so why would that be the primary focus if u can solve it by a literal shift click and resolution change?

#

tf

#

quest has a texture limit, not a mesh limit.

#

so mesh will be overlooked.

#

i see more people struggling to get quest avis to even upload despite having 512x512 or lower textures. clearly mesh is a bigger overlooked issue

#

theres more to optimization than surface level.

#

mesh memory isnt surface level, nor is animator logic like layers. texture memory is

zenith sequoia
#

Hi hi, I was wondering what would be the best option to optimize my avatar if it has 5 different meshes, I'm already working on making a single texture for most of the clothing parts and reducing the polygons but I still can't figure out what to do with the meshes (mostly clothes)

worthy sigil
#

Join them?

zenith sequoia
plain storm
#

What should I do to force sdk to update the numbers? My whole avatar is under 5mb right now, but the sdk just see no difference in sizes between 4k tex and 512 tex

heavy knot
plain storm
radiant shadow
#

swith to pc build and offline build vrcRat to get a refesh on last build

trail field
#

How bad is it from an optimization perspective to have different shaders on different materials? I have a model I bought that uses lilToon, but to do some hue shifting I needed to convert some of the materials to Poiyomi. Is it worthwhile to move all of the mats to Poi or is it fine for them to be different?

proper grail
#

at time of writing, unity considers shaders on skinned meshes to be unique no matter what. It is fine for them to be different

heavy knot
#

it's basically minimal

ivory sluice
rustic harness
#

hmmst

#

how bad can 576 phys bone collision check count be when almost everything else is fine?

#

alright, that emote says everything

#

here go another 3 days

mellow maple
# rustic harness alright, that emote says everything

i thought it was a joke im sorry 😭 after looking at the performance rankings it's not that much higher than the limit for poor ranking, though would still put your avatar in the very poor rank. If you haven't already done this I would suggest limiting the collision checks to the bones most likely to collide with it, like if you have long hair, those parts would need to check collision on the chest and maybe upper arms, but likely not need to collide with the head. sometimes angle limits would work better than collision checks.

rustic harness
#

how does one even do that?

#

I've heard that CATS can fix models but so far I'm in the process of figuring how it works

mellow maple
#

I'm not really sure what you're asking here. CATS can 'fix' MMD models to work for vrchat but i don't really have any experience with that because i make my own models. But physbone collision has to be set up in unity i thought? not sure what that has to do with blender.

rustic harness
#

huh

#

so how does one do that in unity?

mellow maple
#

like, changing the collision checks??

rustic harness
#

yes

mellow maple
#

just remove the collision object from the list of collision checks in in the physbone component (sorry phrased this wrong at first)

rustic harness
#

where does one do that?

cold yarrow
#

physbone component

rustic harness
#

ah, it works, thanks

#

oh, wait, animations don't work without colliders?

mellow maple
rustic harness
#

they are all labelled "VRC Phys Bone Collider (Script)"

mellow maple
#

i'm not sure why that would disable animations, but if you're removing a collider from an object you probably need to remove any reference to it in the physbone components as well

cold yarrow
#

it's the combination of colliders and the number of bones in the physbone chain

rustic harness
#

huh, removing all physbone scripts from "secondary" has upgraded it to medium without affecting it in any visible way

#

vroid generates a lot of useless physbones, it seems

rapid leaf
#

removed lots of physbones, made the textures shitty asf and its still 11.82mb
reccomendations pls?
(i have 8 meshes .. i think. dont plan on removing any)

(image showing textures & physbones btw)

idle mirage
gritty terrace
#

could also use thry's avatar performance tool to check whats taking up space

proud urchin
rapid leaf
#

it's okay chat i just made it fallback level
idk why but no matter what i did it was still too big to upload, it was so weird. even merging all the meshes didn't work :P it's okay it will just forever be bad on quest lol

tropic hill
#

I have body wich is 8 mb itself

mellow maple
# tropic hill I have body wich is 8 mb itself

usually the body should have the mesh chopped off where it will never be visible (under the clothes, for example)
then you'd also have a lot of unused space on the textures, so you can repack it with something else to reduce texture space and make it more efficient.
Most assets are just not built for quest as they are. it requires blender work to fix them

tropic hill
#

All of my textures are set to 32x32

mellow maple
tropic hill
#

How do I make mesh in blender more shit?

#

I need to reduce trianle amount or what?

#

I found a thing called "Decimate"

robust anchor
#

it might also be worthwhile to see if enabling mesh compression in the import settings of the mesh helps.
but I doubt that the mesh is consuming that much of the bundle size

mellow maple
# tropic hill I need to reduce trianle amount or what?

you'd have to delete parts of the mesh that are never visible, fix UV maps, repack textures, ect... i can't explain everything you can do. It's not an easy process for beginners. For what I suggested you would just have to learn 3D modeling.
other than that, you could consider removing assets from your avatar in unity. Other people here may have different optimization tips. I was just giving a general suggestion for what I would do.

tropic hill
#

What about Decimate?

mellow maple
# tropic hill What about Decimate?

decimate is an option but it also makes the topology look like shit and will likely fuck up the weight painting and cause clipping. decimate cannot manually remove parts of the mesh that are never seen. Real optimization requires being able to properly analyze what parts of your assets are actually useful or just taking up extra space when they are not needed. It's not about the poly count in this case. It's about unused texture space, which no amount of image size reduction can fix without repacking the UVs

#

For example I had exported a model from VRoid which used two textures at 2048x2048. Upon inspecting the UV maps I found that only half of that texture space was actually actively being used on each texture. I was able to modify the UV maps and re-pack everything into one texture without losing any of the initial resolution.

cold yarrow
#

unused blendshapes can take up a lot of space too

proper grail
vapid bluff
#

itll tell you your texture and mesh memory

#

u can use it as reference to know what u should lower

#

also be sure to remove extra UV sets if ur taking it in blender, that will increase ur mesh memory usage

#

and as previously mentioned, remove unused blendshapes, extra vertex groups can also take up memory too

#

mesh memory can account for a very large portion of a quest avis size if its not kept in conscious check

tropic hill
proud urchin
#

Is it more optimized to use blendshapes or to use mesh toggles for hiding clothes? On one hand, blendshapes don't really count towards vrchat's performance rank, but I've also heard that mesh toggles are more optimized despite them heavily contributing to performance rank šŸ¤”

cold yarrow
#

blendshapes, when you can, since you don't cause another draw call by having a separate mesh

#

I tend to use UV tile discard, for PC at least.

#

Also blendshapes can be difficult when you have physbones involved

glass aspen
heavy knot
# proud urchin Is it more optimized to use blendshapes or to use mesh toggles for hiding clothe...

If you want to be properly optimized, use normal mesh toggles. If you want to cheat the performance rank system use UDIM tile discards if you can as it's similar performance or even a bit better to mesh toggles, if you can't (like if you're using a quest avatar) you could use a "parent bone" of the clothes to scale it down instead. Marking all the vertices as skinned with blendshapes would be the worst for performance

waxen maple
#

AAO has a combine physbone tool that can combine them if they have the same values

#

i love it

#

would be real funny this worked properly

cold yarrow
#

what's AAO?

waxen maple
#

you got chatgpt in 2025, go try it

cold yarrow
#

thanks, that's helpful

rigid nacelle
#

can someone help me it a mb for it

rigid nacelle
#

Where can i find VRWorld Toolkit?

cosmic wave
#

So im uploading a Fallback for quest avi, i made an atlas in blender, and everything looks good in both blender and unity. But ingame the UVs are incorrect. i dont have a quest headset so i tested on my phone.

#

and here is how it looks in blender

#

nvm figured it out, had to many materials set in unity

hardy hound
# mellow maple the thing is a lot of avatar creators are literal scammers that don't care to ac...

i think its more that alot of them are not scammers. just a bit too incompitent to be allowed to sell their works just yet.
cause optimisation is one of the easier things to do... instead they put 10 highpoly outfits on the avatar all with 4k textures instead of having 10 avatars with 1 outfit and remove the extra mesh thats not visible.. and compressing downt he textures to a reasonable amount lol..

and that way the person who bought the avatar does not need to upload the outfits from it that they do not peronaly like.

mellow maple
vapid bluff
#

want to know if its unoptimized? then ask

#

language isnt a new concept at all

#

nobodys forcing anyone to buy anything. it is also your job as a consumer to do your research on what youre buying too.

#

buying things blindy is genuinely insane.

#

better yet, ask them to start posting their stats publicly on their pages, genuinely not hard

gritty terrace
#

ALOT of creators dont respond to DMs about their works when it comes to asking for model stats or straight out lie (even if by a little bit) id say make sure whatever sites the user is hosting off of has a good refund system and you record the whole process of download the package and setting it up since w/o proof of you not tampering with it some wont issues refunds. many creators can say they wont issue refunds but if the site has refund options use them (though this process will almost 100% get you black listed from purchasing/using the content of that creator and possibly their friends)

gritty terrace
vapid bluff
#

plenty of resources out there ngl

#

its genuinely a skill issue after a while

#

and non refunds for digital goods is pretty standard, vrchat aside

#

its genuinely not hard to know if something unoptimized

#

e model = lag
glitter eveywhere = lag
50 clothes = lag

#

if its that much of a worry then they shouldnt buy models, exactly why i dont

#

plenty of public out there, plenty of free avis as well.

#

refunding against something you read and agreed to. creators breaking tos + customers for having in-es-eff. gotta take your picks and gambles, def not a one sided thing by any means.

#

vrc community isnt exactly a ocean of competence unfortunately

cosmic wave
#

I always tell people i know if they want to buy an avi make sure all these are checked.

  1. Avi must have a public sample avi so you can see it ingame before you buy
  2. Have the photoshop files or substance painter files
  3. Blender files
  4. 80% preferably higher should always be made by the creator themselves.
    if one of these aren't there then stay away
vapid bluff
#

if theres alot clipping in the showcases then its a hard pass

cosmic wave
#

thats where the sample avi comes in, showcases dont show it all.
with a sample avi you can check everything

vapid bluff
#

if it has flicker artifacting from the metal, and the skin looks like plastic, hard pass as well

#

bad materials are a big dead giveaway ive noticed

vapid bluff
#

big reason why i release free versions of my avis lately

#

u like the quality? then u can buy the paid if interested vrcAevSip

ocean ether
#

When I use the material combiner to combine all my materials, my avatar's clothes turn black. Any idea on how to fix this?

spare goblet
#

is the add on you're using the correct version for your version of blender? (cause I assume you're combining them in blender)
is the correct material selected on the mesh after you combine it?

ocean ether
#

I switched all the materials to Diffuse BSDF and it still doesn't work

#

What it looks like before atlas vs after:

cosmic wave
ocean ether
cosmic wave
ocean ether
cosmic wave
#

then i would make a backup of the blender file (just in case stuff breaks) delete the extra Uv's so theres only 1 left on each

ocean ether
cosmic wave
#

hmm mabey addon is broken ?
how many materials do you need to merge
manually atlasing might honestly be easier at this point

cosmic wave
cosmic wave
#

ahhhh
okay revert to a version with working colors, then rename the uvs

#

and then merge

ocean ether
#

But I'm pretty sure I already tried to atlas the medium version and still had the same issue

#

Should I send the .blend file of the medium version?

cosmic wave
#

you can try

#

but im 99% sure the merge will work if you start with a version with working colors and then rename it.

ocean ether
cosmic wave
#

one that dont have that black texture

ocean ether
cosmic wave
#

when it looks like this rename the uvs so they share name and then do the merge

cosmic wave
#

hmm can you send me the blender file and ill take a closer look at it ?

cosmic wave
#

i cant test on the tool you're using but using the atlas feature on the CATS plugin works just fine. so im not sure what the issue is you're getting

#

mabey on the material its not using the correct image texture?
thats my best guess

ocean ether
cosmic wave
#

uhmm no idea, i only use it to import vrm

ocean ether
cosmic wave
#

yeah makes sense its been ages since i installed it. Do you know how to atlas manually ?

ocean ether
#

Maybe the newer versions of Blender are just borked 🤷

cosmic wave
#

i dont have your textures but ill add some random ones and try on the newest version , that sounds super odd

cosmic wave
#

but i dont get the black texture

ocean ether
#

Maybe the issue is in the textures

cold yarrow
ocean ether
cold yarrow
#

yeah definitely use the right one for your blender version, but also you don't need cats if you just want to combine materials

ocean ether
cosmic wave
#

i highly recommend doing it manually as you get more control over what gets detailed, and you can combine a whole lot more manually aswell

cold yarrow
#

(this is all I know - I don't use it)

ocean ether
#

But I'm gonna try it in the older version of blender and CATS and see what happens

cosmic wave
#

good luck with it

ocean ether
# cosmic wave good luck with it

If I still can't get it to work, I'll send a zip file with the FBX, Blend, and all the texture files so you can properly try it on your machine

cosmic wave
#

and if you cant get it to work ill teach you how to atlas, makes it look better anyway and is alot less complicated than you think

ocean ether
cosmic wave
#

ohh

#

thats in unity ?

cosmic wave
ocean ether
cosmic wave
#

did you import with cats ?

ocean ether
#

Just tried it and same exact thing happens

cosmic wave
#

Okay git of cats then lol

#

There's one more thing you can try

#

You wanted to get to good rating. So combine your skinned meshes, you can have a maximum of 2 if I remember correctly

cold yarrow
#

for Quest, yeah

cosmic wave
#

And then use the plugin you used before to combine, not sure how the plugin does it's job but make sure you only combine materials on that one skinned mesh

cosmic wave
cold yarrow
#

oh for good - I keep targeting medium

#

(8)

cosmic wave
# ocean ether That's what I did :/

Okay welp I'm heading to bed but if you haven't solved it by the time I'm up tomorrow I'll just teach you how to atlas if you're up for it ofc. I promise it's super easy

#

Screw these plugins, they make it more complicated than it has to be

cold yarrow
#

With you there šŸ™‚

cosmic wave
#

Okay one second I'll turn my pc on real fast, I'm to curious about that black shader

cosmic wave
#

ohh nvm its a beanbag i think

#

right ?

ocean ether
cosmic wave
# ocean ether There is a beanbag, yes

this avatar uses alot of Empties, not sure why you need them tbh, but i can imagine it giving alot of issues. (no clue if it does or not tho) but Uv's are fine they dont go black for me

#

did you buy this avi ? or was it free ?

ocean ether
ocean ether
proud urchin
# ocean ether Bought it

You usually can't share files you've bought with other people, that breaks the creator's TOS and is just generally bad manners. You should delete the file above to prevent others from downloading it.

gritty terrace
#

likely better to just get a mod on it

#

<@&397642795457970181> file sharing a purchase required product :P

ocean ether
ocean ether
cosmic wave
ocean ether
ocean ether
cosmic wave
vapid bluff
signal python
#

What’s the best/ easiest way to quest convert. I struggle to even convert an avi with one outfit on it. I want my questie besties to see my Avis too :(

spare goblet
#

what's the part you're struggling with? is it to many polygons? you can bake your avatar in blender to have less and have the avi look similar

signal python
cosmic wave
# signal python Everything in general lol, clothes, textures, materials, everything, I don’t rea...

i do highly recommend doing it manually in blender as that would give the best result
https://github.com/d4rkc0d3r/d4rkAvatarOptimizer
however this one i hear is fairly popular, i have never used it tho so i cant speak for it.

GitHub

d4rkpl4y3r's VRChat Avatar 3.0 optimizer. Contribute to d4rkc0d3r/d4rkAvatarOptimizer development by creating an account on GitHub.

worthy valve
#

hm.. for optimizing materials.. ingame, this prop uses 6 material slots, is it just better to use a 1536x1536 texture to fit all of the textures and UVs into a single material?

#

and to also merge all of the meshes into a single mesh

proud urchin
#

yes

worthy valve
#

ok

buoyant holly
worthy valve
#

ah

plain storm
#

What anisotropic filtering value is best for realistic textures in vrchat?

cold yarrow
#

I'd think that depends on the material you're going for

plain storm
#

Yeah but how much it will hurt on the performance?

cold yarrow
#

probably not very significantly unless your avatar is already extremely well optimized

runic slate
#

why does unity say to aim for less than 7500 tris but the docs say 32k?

spare goblet
#

you have android mode in unity, the doc is for pc

runic slate
#

i never changed to android mode

#

i just made the project using the vrccc

spare goblet
#

what platform do you have selected at the bottom?

#

of the SDK window

runic slate
spare goblet
#

maybe it needs a kick, switch it to android and switch it back

cold yarrow
#

yeah it sometimes gets stuck like that

proper shoal
#

If I have two meshes for my avi (one for the head with blendshapes, and one for everything else) and they both use the same material, does it render as one material, or is it counted as two?

runic slate
#

two

spare goblet
#

yeah, two materials

proper shoal
#

Bleh. Follow-up, I know that more verts on the blendshape mesh is bad, hence the head split, but is there sort of a soft cap? Is the performance of a 30k blendshape mesh worse than 2 materials?

spare goblet
#

30k for the whole model or only the face? if the whole model, i'd say it's fine, but i think worse then more materials

#

i'm speaking from experience as a quest user (what makes me lag and stuff), my answer isn't based in any data

proper shoal
#

Head alone is like 5.5k tris

#

Head plus everything else is... just about 40k? Yeah, probably best to keep them separate

cold yarrow
#

that 30k thing was from previous Unity, it's not a significant performance issue anymore

#

I generally just make the body one mesh these days

spare goblet
#

same here

proper shoal
#

Oh, that helps a bit. Learning about rgba masking, and trying to squish all the functionality I had into 1/4 the materials and half the individual meshes

proper grail
mortal glade
#

d4rk managed to remove 1 material...honestly not sure how to get the mesh and material count down.. as far as I can tell there is no easy way to convert meshes to static ones

cold yarrow
#

Skinned meshes are those which deform with an armature

#

You could join mesh objects in Blender.

worthy valve
#

What is considered a skinned mesh? I have a prop with two textured meshes but it isn’t included in the count, which is 1 (the avatar itself)?

cold yarrow
#

.... I just said

mortal glade
#

Also is there a way to convert them to a static mesh

cold yarrow
#

if you didn't unpack your avatar prefab,it shouldn't be much of a problem.

cold yarrow
mortal glade
cold yarrow
#

hmm ok I may be wrong, I haven't actually bothered doing this

worthy valve
#

Got it

#

Sorry about that

worthy valve
#

I just realized I can just... merge the texture of the second prop im making into the same texture atlas with a little room to spare... thus able to use the same material

cold yarrow
#

yup

worthy valve
#

both spawnable props use the same material (a poiyomi audiolink with 4 different texture masks), and the avatar has 4 materials... why is it saying the avatar takes up 18 slots?
Adding up the meshes and materials doesnt get to 18.. (6 'wings', 2 hulls, 1 unused plume, 1 amp (4 materials for that))

#

there should be only 5 material slots taken, one for both props, and four for the avatar itself

#

im confused

#

... wait...

cold yarrow
#

mesh objects * material slots on that object = total material slots

#

So each spawnable prop has its own set of material slots.

radiant shadow
#

merge those meshes no reason to have ship having multiple ratl (if they are ment to be movable use bones)

worthy valve
#

hm... so I should merge the materials here into one and then re-export to unity?

cold yarrow
#

also, holy bounding box

worthy valve
novel snow
#

Even though bounding box makes an avatar very poor, it doesn’t like actually perf block does it?

#

I haven’t run into that issue but the documentation makes it seem like that

worthy valve
#

I heard it causes it to sometimes not unload the avatar even if you are supposedly looking away from it but still in the bounding box?
Though... it should be fine if the avatar itself is well optimized otherwise

proper shoal
#

New question! Is there a way to reduce audio sources on an avi? Is there vrchat audio sprites or something, where you can specify portions of a track to use?

radiant shadow
proper shoal
#

Thank you, did a quick search on youtube with the right name, and there was a nice 5 minute video on how to properly set it up

main scaffold
#

do parameters on a fallback sync with ones on the main avi if they have the same name and type?

#

making a fallback of my avi and was wondering if putting facetracking on it would work

cold yarrow
#

If you use literally the same avatar parameters file for both, yes

main scaffold
#

tysm

worthy valve
#

what if.. I have several props with single armatures that separate them, but they are the same skinned mesh and object.. and it all takes up a single material slot

ivory sluice
#

that's dynamic batching but with an extra step being that every vertex has to calculate its skinned mesh weights

cold yarrow
#

not sure what you mean about single armatures? Sounds like separate mesh objects if that's the case

obsidian lake
worthy valve
obsidian lake
#

so even if it's not deforming with an armature, if it has blendshapes it'll also be a skinned mesh renderer

cosmic ledge
#

hi
i was messing around with stuff in unity and got to see that if i dont use leaf bones but rather set an endpoint in the vrc phys bone it reduces the nb of physbone transform in the vrcsdk but idk if it actually improves performanceses
i wouldndt beliovve so but guessed smbd here might know :>
from what i got to see, what contributes to the nb of physbone transforms is the actual nb of tranfsorm under a vrc physbone component, but it dosent matter the actual number, like with endpoint and ignore multi child type

cold yarrow
#

nb?

obsidian lake
# cosmic ledge hi i was messing around with stuff in unity and got to see that if i dont use le...

transforms in unity work differently than bones in blender; blender bones have a head and tail + bone roll and scale, while unity has a single transform position along with rotation and scale. The one thing unity transforms don't define that blender can is the endpoint of a bone. You can use leaf bones to define this endpoint, but that will cause an additional transform to be affected by the physbone component per-physbone affected leaf bone. Endpoints define this endpoint without the use of an additional transform so there's no need to add an additional transform to your physbone component. The leaf bones are actually affected by the physbone component, although typically nothing is weightpainted to them, so you wouldn't notice. It is slightly more performant, especially if you implement this across all physbones on your avatar and frequently make use of multi-child physbones. The only advantage that leaf bones have over endpoints is that for multi-child physbones, you cannot define a unique endpoint per-child, which you can do with leaf bones.

novel snow
#

I have one image about this that always feels relevant to my work

#

Except you can replace Maya with anything that isn’t Blender basically

cosmic ledge
# obsidian lake transforms in unity work differently than bones in blender; blender bones have a...

ok yeah i see thank you
cuz yeah i have these bones i use for the fluff on the kita'vali, and i saw it would divide the nb of transforms by 2 bc i use a lot of single bones so very good performance increase, i just wasent sure if it would actually help so didnt want to do it for nothing ever since even tho it is a transform affected it dosent change anything to the actual num,ber of moving bones

grand tusk
#

3 bones 4 joints

proper grail
fiery chasm
#

not comfortable with blender, so modeled in maya and went to import into blender to weight paint it after making a skeleton and

#

yea..

novel snow
#

ā€œWhy does my armature have so many extra joints?ā€

#

Meanwhile I was the opposite

#

I model in blender but I animate in Maya so I was like ā€œWhat happened to all my end bones?ā€

fallen beacon
#

@vernal reef hey bro I want to talk to you can we talk for a min?

#

@gritty terrace

#

U know him?

gritty terrace
#

same as i put in this message

#

you're spamming them in multiple channels and breaking the rules

urban wind
#

hey do you know if its ok to do a texture atlas yourself

cold yarrow
#

okay? you can do whatever you want

#

but what do you mean exactly?

urban wind
#

is going into photoshop and just making one a valid solution

cold yarrow
#

sure, why wouldn't it be?

urban wind
#

ty

#

oiiiaooiiiia

vapid bluff
#

those are usually awful and waste UV space

vapid bluff
#

even within blender too

#

best to repack UVs when atlasing, for more efficient UV space usage

opal lodge
#

You have much more control on the layout and there’s much less blank space

#

So yeah, as long as you know how to move uvs you should have no problem whatsoever

somber notch
#

Cause I've been doing it manually and stuff

vapid bluff
somber notch
#

Or something

vapid bluff
#

for substance no

somber notch
#

Dam

vapid bluff
#

it requires 3 UVs, well for my own method at least

#

new packed UV, original, and a 3rd for masking

#

u can also rebake textures to new UVs in blender

#

best way to optimize it is with newly packed UVs, unity atlasing only increases the wasted UV space to an extreme amount

somber notch
cold yarrow
#

Yeah, you treat it like a sprite sheet

somber notch
cold yarrow
#

a) look up what this means, it'll help
b) the tiling options in the shader, you simply offset the "window" to the section of the texture you want to use

cold yarrow
#

actually, I wonder if I can find a decent guide

#

In computer graphics, a texture atlas (also called a spritesheet or an image sprite in 2D game development) is an image containing multiple smaller images, usually packed together to reduce overall dimensions.

#

(so sayeth wikipedia)

somber notch
vapid bluff
#

the substance part is just the atlasing process, u can have the final UV on the mesh thats packed afterwards

cold yarrow
#

basically: take an image, split it into 4 sections. only show one quadrant at a time.

vapid bluff
somber notch
vapid bluff
#

and use rgba masking for each section

#

doesnt require altering UVS, and u can still have them all as a single mat

cold yarrow
#

RGBA masking is great, but I probably wouldn't use it for this

vapid bluff
#

it works fine as long as the textures arent big tbh

#

traditional atlasing requires higher res anyway to get good masks

#

even with packed globals

somber notch
vapid bluff
#

ooooh

#

youre doing world optimization?

somber notch
#

Oh also I've never checked this but if I bake lighting and have two walls uvs onto of each other will that cause problems

vapid bluff
#

im so half asleep i thought u were the other person

somber notch
vapid bluff
#

oh wait u are the persron who replied to me lmao

#

the sleep is consuming me

somber notch
#

Lol

vapid bluff
#

yeah then id rule out poi rgba then

#

not a good option

somber notch
#

Bed time go to sleep