#avatar-optimization
1 messages Ā· Page 20 of 1
Your pc has a built in screenshot tool
Ik
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)
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
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
Hmm ok
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
i thougth is local isnt synced
l,
it doesnt matter if a parameter is synced or not
animation states are never synced but only can end up being synced up via parameter conditions
they can have the same transitions but end up being entirely desynced either because of an unsynced parameter or simply via lag
but my animations r always synced
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
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
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
islocal for you is true
for them its false
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
its a nonsynced parameter
cause you fucked something up
good job?
well are you trying to make the parameter a synced one?
You have an anim key at 1 second in. Is that setting it off?
I'm talking about the timeline. You have the two keys at the start, and one at the end
Look at the end of the timeline
let me check
i see what u mean
magically creatd
still nto working
isLocal true = play hiding 2 animation
but it doesnt
dont use any state for simple things like this , most people never disable transition to self
Entry -> isLocal check -> do local things
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??
Particle additive & multiply materials
Is there a tutorial of some sort I can look at that could explain to me how to use them?
one thing i did was grab one of the free particle effect packs from the Unity store and just look at each one to see how they did it.
damn i wish alpha blended worked for avatars, it looks so good. Additive is probably my best bet at particles for quest
what am i lookin at
fill texture and use blender knife tool to make those yourself , shove a few triangles here and there its close enough 
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 
i swear i need a whole-ass damn tutorial on how to make particles for vrchat quest
?
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
wait so i can still use transparent texture as long as the shader allows it, thats it?
you can use it either way its just the fact if the shader doesnt allow it then it wont be transparent
how will i know it doesnt allow it
all quest shaders dont allow it
exception being the particle shaders which are technically not transparency but act like it
interesting
so im guessing using the additive and\or multiply particle shader which are both in Vrchat\mobile shaders are allowed on quest?
yea?
thank GOD
they just dont render like youd expect
i mean i know but its better than nothing ngl
its still renders "transparent" textures tho right?
every shader renders transparent texture either way?
just because a texture has alpha transparency on it doesnt mean it just wont render at all
i didnt say that, i though it wouldve done the usual "fill the transparency with black" thing
idk, maybe its just me
it just takes the transparency and sets it back to full alpha
oh
how can i know whats the size of my avatar MB
when you build
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?
When it comes to file size:
Do the Icons in the Radial menu add to the download/vram size limits?
not seen those count, had one with alot and none - didnt increase size since they are local anyway
lol i always thought quest couldnt have transparency like WHATSOEVER
They will effect it yes, however VRChat's maximum size for icons is just 256x256 which would be 32kb (64kb if the image has an alpha channel). So if you had like 60 icons it would only be 1.9mb of VRAM with icons without the alpha channel or 3.8mb of icons with an alpha channel
and LZMA assetbundle compression would probably make it back into kilobytes of data so download size would barely nudge
Hey forgive me im not following
where can I see the hard limits before they won't allow you to upload an avi for quest?
The Avatar Performance Ranking System allows you to see how much a user's avatar is affecting performance via analysis of the components on that user's avatar. You can also use it on yourself to see how performant your avatar is.
tank you :3
these are just soft limits, hard limits is like the 10MB download size, 40MB uncompressed size, 8 phys bone components, 64 phys bone transforms (that prevent you from uploading the avatar if you go beyond that), but I don't know if there's a hard limit on the triangle count
ah nevermind, it kinda shows the hard caps, but doesn't list all of them
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
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
aren't contacts something separate from physbones?
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
look for stuff with these scripts i think https://creators.vrchat.com/avatars/avatar-dynamics/contacts#vrccontactreceiver
https://creators.vrchat.com/avatars/avatar-dynamics/contacts#vrccontactsender
Contacts are a system that allows avatars to detect collisions with itself or other avatars. These collisions can then be used to drive the animation controller and perform all sorts of fun effects.
hmmm it must be something gogoloco is doing then
I have the preconfigured prefab installed, and it seems pretty heavy
gogo loco doesn't add contacts or physbones though.
yeah gogoloco never put contacts on my avatar when i used it
hmmmm, what else could it be?
something else on your avatar
put t:vrccontactsender and t:vrccontactreceiver in your hierarchy search
though is there a reason you want your avatar in a better perf rank?
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
no results
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
when uploaded in game
I'm guessing you're using VRCFury on this avatar
yea
what VRCFury components are on the avatar
I have some material toggles, and a bunch of toggles for animation clips and shape key control, and some gestures setup through VRCFury
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
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
screenshot your whole console tab
I need to see what your console settings are
did you select your object with the avatar descriptor then execute that method
oh, I'm dumb š
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
hmm, could some fo them be coming from the constraints?
some of what? constraints aren't contacts or physbones
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
If you turn on gizmos and click the avatar root, you should see them all show up in the scene view, that might help
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?
if you want to position them individually, you're kinda stuck making them separate objects.
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
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
Aha, that looks perfect, I should just be able to change which UV tile is yeeted in an animation?
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)
Just using poiyomi, custom shaders are probably a touch too advanced for me, lmao.
hi?
I am well? Did you need anything?
sorry for the late reply but yeah, Poi does this great.
All good, thanks for the help! Hopefully should work fine, lmao. I think I should be able to just have a line of simple objects and just.. shift em over to the right basically with this when needed.
And change which tile is yeeted
I have a feeling these stats are not good. I only have access to unity. Is there anything I can do to optimize? I've not done anything at all.
Is this an avatar you bought? It hits the limit for just about everything, particles, lights, and material slots are some of the biggest hitters, also having... A lot of separate meshes.
its a base
Particles and lights. I pretty much added to it.
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?
The base has damn near 175k
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?
Yea?
then where do these 175k come from? it surely doesn't from the base
did you check the mask poly count yet?
It has sub 2k
can i see the hierarchy of the avatar?
I'm obviously adding stuff to it but not enough to add 75 K.
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
way too much stuff
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
heh that's a whole lot of objects
Uploading a build that doesn't have gamble core or any of the clothes that I don't consistently use.
192k still
duh
Yeah like I said I already deleted everything that wasn't necessary.
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
I can't imagine a good beanbag is low-poly
nope
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
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?
..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.
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
i mean in your unity project
disable the shadows on all the realtime lights in the scene if they are
162k
is everything except the body disabled?
mhm
do the materials on the body have outline?
Quest version has 80k tris
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?
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.
Because freedom of speech š„
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
that just makes you seem sketchy "freedom of speech" or not
This is like what I just said lol
yea ik
(i dont remember)
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
Wait, then I got scammed.
wdym?
I sent 60$ to someone on discord a while back š
and?
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.
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
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)
You need an artist to make it done
Or learn how to do that in Blender.
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
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
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)
Well uhhh, Iām on quest; and everyone else sees the avatar as I see it. The problem is specifically with him
Is your avatar Poor ranked?
All my other quest buddies see the avatar as it is
(Just trying to rule out options here)
Is your avatar ranked Poor or Very Poor on Quest, and have your other quest friends used āShow Avatarā for you?
Heās extremely new to vr so Iām not sure if heās doing it right
Like he got it yesterday
My current guess is the avatar is probably ranked Very Poor for performance (as in the
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)
Oki Iāll make sure he has that on
People like this disgust me. For the love of God, optimize your avatars.
Making the game unplayable.
The absolute gall of some people
Haha
smh smh basically a crasher
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?
Biggest offenders are usually material slots, high res textures where not needed, and triangles to a lesser degree for VRAM. CPU wise lights are terrible while particles can depend but probably not great in most cases. Best thing to focus on is getting material slots to a minimum, atlasing your textures will help there if you have a lot.
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
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.
One last question. What about extra armature parts. I'm been helping someone with their avatar and it was a premade one. It had a lot of clothing added and they wanted more. And after I've added one set my friend would find another. I use the old unity way to add clothing like this but would it be better to use fury? Or add them together in blender and re import it.
Which is most optimized?
A) Regular mesh, Backface culling off
B) Above mesh, all faces duplicated and flipped in blender, Backface culling on
As long as you have material slots down to around 2-4 you should be perfectly fine, 1 with the stuff you don't need to be high res and one with the stuff you do is usually a good way to go. As long as you have a reasonable amount you should be good.
They're almost the same, the second option is just more effort
I would guess backface culling off, since then it is done in shader.
However if you are sensible and only duplicate faces that need to be dual sided then manual is way better.
for lighting purposes B would be better as you're able to have the front and back receive different lighting?
Like a bunch of separate clothing objects with their own meshes that you toggle on and off? I'm assuming they're static mesh renders here. The performance rankings suggest 4 static mesh's for excellent performance 16 would pop you down to Medium, and 24 is poor, so it depends there. Plus usually clothing has their own material slots and textures and all that.
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.
if you have too many clothing items, make multiple avatars
Mhm!
ALOHA
Yeah if I have a mix of geometry where some is solid and others are one sided, I will usually duplicate the one sided in blender. But maybe the cost of having backfaces for the solids is so low that it doesn't matter.
For Performance Rank, it's better to have less poly's and render backfaces though.
Depends on the shader, some support dualsided lighting.
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
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.
I'd just like to see ranks before I load an avatar
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?"
It's really only end spectrum of the performance ranks that need adjusting.
With most modern GPU architectures nowadays, they can handle a shit load of triangles
Yeah
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
The biggest issue is just that the performance ranks don't matter if they're so strict that everyone ends up ignoring them.
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
two disabled lights on an Excellent = Very Poor
oh lol
(one = poor)
Pixel/Vertex lights are just not separated entirely
That too, or models with lots of meshes where only a single one is ever enabled at once.
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"
I don't see how a company could survive with any other mindset.
You can still listen to customers whilst being profitable
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
sorry I was gone for a bit. one last question.
does it help when you toggle extra things off?
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
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
You can have some transparencies just don't go ham with em, and yep, that's about it!
got it
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)
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.
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.
I'd recommend poking through here if you haven't yet to see the vauge limits you should keep in mind
https://creators.vrchat.com/avatars/avatar-performance-ranking-system/#pc-limits
The Avatar Performance Ranking System allows you to see how much a user's avatar is affecting performance via analysis of the components on that user's avatar. You can also use it on yourself to see how performant your avatar is.
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.
Lmao, that is fair
Oh this might help
https://creators.vrchat.com/avatars/avatar-optimizing-tips#reduce-the-amount-of-material-slots-you-use
This guide is not meant to be the end-all, be-all of avatar optimization! Optimizing your avatar properly requires pretty wide knowledge of a ton of things. We don't expect everyone to know everything.
thank you very much for all your help, now it's sleep time
also you can get the atlasing plugin separate from cats
material-combiner I believe it's called. Cats just calls this.
So with mip map streaming now enabled, Is the texture memory usage still acurate?
yep, limits have not changed
Ah alright
Another question, can I use LODs on an avatar?
Like the unity LOD system?
I haven't looked into that. There's some stuff you can do with textures but I don't personally know the details.
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
Yeah LODs are a world only thing
I think most people (by default?) have avatars past a certain range just not visible?
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
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
I cut out like half the bones because of armature. But now I have to completely rework how clothes work.
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.
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~
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.
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
Got it. What about the alpha channel?
What does that do.
every compression option with an alpha channel will double the vram usage compared to one without.
So using Jpeg is better then PNG?
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
I'll check those.
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!
So if not using alphas, disable the alpha channel
yis be sure it says dxt1|bc1 for minimal vram usage
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
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.
many creators arent invested enough in the creation process to understand theres a pretty solid difference (which is likely why they're even making poor/very poor rated avatars)
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
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?
you could use UV tile discard with poiyomi and have everything on the same material
ohh I read about this not too long ago! I'll watch a guide on that thank you š
good place to start: https://www.poiyomi.com/special-fx/uv-tile-discard
UV Tile Discard provides an efficient way to toggle portions of a model on and off at runtime by placing portions of the Model on different UV Tiles.
thanks alot š
You can also use blendshapes and scale them down, but this (in my experience) is difficult to do correctly without getting weird artifacts
Nailed it
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
wouldn't that make all 3 sweaters display at the same time if someone is disabled the shaders on the avatars? I think blendshape toggles are better if you have an avatar below 70K tris
disable animation and you end up with 3 sweaters on too š
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.
check "read/write" in the first panel in the inspector for the model file.
Im already re doing it
that looks like a mesh object, not sure what you're trying to show me
Thats the 2,000,000,000 poly model mate
no, that's a mesh object possibly inside that model file
that's okay.
no worries, as long as you figure it out, you can do this along the way š
Was already halfway through doing it again š
Uv tile discard has nothing to do with disabling a shader https://www.poiyomi.com/special-fx/uv-tile-discard
UV Tile Discard provides an efficient way to toggle portions of a model on and off at runtime by placing portions of the Model on different UV Tiles.
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
sure, parent constraints
does it work on fallback shaders then?
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
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
i think using both at the same time would work the best
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?
No, but it seems pretty simple to swap avatar from one of the menu wings?
I think because switching avatars is easy enough they haven't implemented something like that. I'd call it avatar shortcuts. But they'd probably lock it behind a pay wall like they are with a lot of their new features.
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.
Yes, though it would be interesting if some states were shared between all avatars (e.g eye color or accessory enabled)
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
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
The one on the right?
The one on the right is the higher quality model (1.1m polys)
š
Maybe goes to show that maybe 1mil tris is a bit much lmao
What is it?
Is it a meat angel?
Living clothes type of thing. Some people compared it to Vaal Hazak from the monster hunter series
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?
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
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,,,
av3 emulator, gesture manager, literally what you have in scene when you go to upload
dont use a separate parameter list
that still shows you what it looks like as a pc upload.
there is literally no difference except for rendering like material detail levels
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.
sounds like a completely different parameter list or broken layers
still wish it was easier to see without having to boot up standalone itself.
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
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.
š¤·āāļø
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
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
thre are lots of decent tutorials though, if you wanted to learn.
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
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.
Do you need to unlock the shader after having uploaded or gone into playmode?
don't think i lock this shader at all
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.
gonna try that, ty
Poiyomi will lock on upload, this is desired
but I didn't think you could animate a texture swap on any shader...
hii can someone help with quest version my package is 2 big and i dunno know how 2 do
crunch some textures.
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)
There's also d4rk's avatar optimizer
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
The Avatar Performance Ranking System allows you to see how much a user's avatar is affecting performance via analysis of the components on that user's avatar. You can also use it on yourself to see how performant your avatar is.
limits are about halfway down
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 
oh you may mean the actual avatar package size limits
oh is that whats affected? sorry, i only skimmed over the updates yesterday
yea, do we know the size limit tho?
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
ohhh its that high huh
i think for pc its 200 compressed and 500 uncompressed
oh okay okay, i'll just stay within the performance ranks to be safe xD
and quest its 10 compressed 40 uncompressed
ty!
Somehow I do not think I will be able to make my current avatar quest compatible š
I think it's related to my coat-
collisions don't matter much, you can just disbale them for quest. Won't be to ground breaking other than people can't interact with it
other players can still interact with your phys bone components, phys bone colliders on other people has no effect on your avatar
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
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 ?
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
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
Is this a PC avatar?
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
It mainly PC, but i do try to make them quest compatible when i can
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
I didnt know about UDIM and never thought of scaling it like that, Thanks a ton
here's a good primer: https://www.poiyomi.com/special-fx/uv-tile-discard
UV Tile Discard provides an efficient way to toggle portions of a model on and off at runtime by placing portions of the Model on different UV Tiles.
If it's clothes then yeah UDIM tiles should be perfect for that
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.
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
Ok, makes sense. You want to minimize the number of meshes for the average case
Projectors, like caustics, make it appear too.
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
Is always a balancing act though, if everything is hidden with UDIM then anyone with animations or shaders turned off for your avatar will see everything visible at once.
That's fine in my case. I plan to use it to hide a duplicate hoodie hood that is mostly hidden by blendshapes anyways
If they have it turned on then thet should know and expect to see some unintended or broken stuff :)
idk i feel like 20k tris isnt enough tbh
Try 2mil, that should have enough resolution
(Don't actually use 2mil tris PLEASE š)
ill never be him š
N-no
What the hell
Is that
I've seen better topology from boolean modifiers
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
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
does anyone know any NDMF based tools to atlas materials together?
try TexTransTool, TTT Atlas Texture component.
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
You need to change the build target. When you go to upload, near the bottom it should say Build Target: Windows. Change this to Android. If it doesnt let you change it then you must install the Android package in unity
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
i need a bit of help - what tools do you guys use that can optimize avatars beyond d4rkavataroptimizer, AAO, and vrcfury's ?
Blender
Perfectly good for optimize, difficult: blender
Not perfect, easy: TexTransTool(for materials, textures), lilNDMFMeshSimplifier(for meshes)
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
blendtrees don't affect drawcalls
Welp cant argue against that. I am wondering what the complete thought there was tho
me too
@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.
We can't know unless you show us what it's saying
What's the process for inverting a shapekey in blender? For example, turning a "Enable Glasses" blendshape into a "Disable Glasses" blendshape
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
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
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
but you can make a new blendshape from whatever ones are active, that can often work
That effectively just copies the Worn Hoodie blend shape, since it's the only one active
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
You can use "blend from shape" to activate any you want though and make a mix of them
I don't scale them all the way to zero
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
Only shaders under VRChat/Mobile can be used for Android/Quest. (Also does not support transparent textures)
You can easily convert them using VRCQuestTools.
https://kurotu.github.io/VRCQuestTools/
thanks so much!
what are the best ways to lower upload size for quest
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)
removing unused blendshapes is another good one that not many do
mmhm vrcfury or d4rkOptimiser has a checkbox in unity* for doing the unused blendshape removal on upload. Makes exporting from blender not a chore
can I get an explanation on this so i could maybe have a lead onto how to upload my avi?
What unity/sdk versions are you using?
I'm using unity 2022.3.22f1
has anyone made an avatar optimizer that merges meshes + materials + makes a texture atlas?
because this is pain xD
D4rk's avatar optimizer can merge meshes and materials in a smart way.
But texture atlasing is something that I am not sure is easily doable in Unity unless you use the all-in-one solution https://markcreator.gumroad.com/l/Polytool
d4rks avatar optimizer my beloved
helps a ton with quest conversion too~
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.
When it was apparently so bad you can't click the create optimized copy with d4rk's avatar optimizer š
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
so much wrong here ,
feel free to explain
its really not tho
combined meshes is purely for draw calls
merging greatly benefit drawcalls , seperate meshes with blendshapes was a 2019 thing its barely any difference now
it still affects mesh memory
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
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)
^
read 2nd part
mesh memory for quest
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
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)
Join them?
That's a good idea
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
Build the avatar again. Those stats are only obtained from the previous build and donāt dynamically update
Bruh. Got ya, thx. No tests on this platform
swith to pc build and offline build
to get a refesh on last build
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?
at time of writing, unity considers shaders on skinned meshes to be unique no matter what. It is fine for them to be different
Locked poiyomi is basically different shaders of the GPU stack
it's basically minimal
it's better to have the materials separated if they are going to do different effects
material combining is mostly for materials that use the same shader
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
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.
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
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.
like, changing the collision checks??
yes
just remove the collision object from the list of collision checks in in the physbone component (sorry phrased this wrong at first)
where does one do that?
physbone component
you might be removing the wrong type of collision...?
they are all labelled "VRC Phys Bone Collider (Script)"
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
it's the combination of colliders and the number of bones in the physbone chain
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
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)
Merge the meshes in blender rather than removing them
could also use thry's avatar performance tool to check whats taking up space
Use VRCFury's Blendshape Optimizer component to remove unused blendshapes upon upload
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
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
The thing that it literally says "Quest compattible"
All of my textures are set to 32x32
the thing is a lot of avatar creators are literal scammers that don't care to actually optimize their shit
How do I make mesh in blender more shit?
I need to reduce trianle amount or what?
I found a thing called "Decimate"
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
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.
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.
unused blendshapes can take up a lot of space too
so what this does is group similar verticies into behaving as one. On skinned meshes, itll cause all sorts of unexplainable errata
import Thry's avatar performance tools
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
I fixed it already
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 š¤
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
tip for the future, you can use the VRWorld Toolkit package in VCC to check what is taking up the most space.
Once you have it open the "World Debugger" tab from the drop down menu and go to build report, it'll list everything in size order
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
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
what's AAO?
you got chatgpt in 2025, go try it
thanks, that's helpful
can someone help me it a mb for it
see this: #avatar-optimization message
Where can i find VRWorld Toolkit?
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
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.
I think it's possible for a product to be a scam purely out of incompetence, rather than malice. That's just how I see it. Also, separating by outfits is a good idea š
its a scam if its stating to be something its not
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
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)
you've also gotta realize that alot of the consumers dont have much of a clue on how avatar creation stuff works or else alot of creators wouldnt be making an income because more then half of these people would be creating their own stuff, its also why so many creators offer payed uploads despite it breaking TOS
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
I always tell people i know if they want to buy an avi make sure all these are checked.
- Avi must have a public sample avi so you can see it ingame before you buy
- Have the photoshop files or substance painter files
- Blender files
- 80% preferably higher should always be made by the creator themselves.
if one of these aren't there then stay away
if theres alot clipping in the showcases then its a hard pass
thats where the sample avi comes in, showcases dont show it all.
with a sample avi you can check everything
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
i would check if theres a public of it, i ofc dont promote using them, but its a good way to actually see what it looks like if u wanna buy it
big reason why i release free versions of my avis lately
u like the quality? then u can buy the paid if interested 
When I use the material combiner to combine all my materials, my avatar's clothes turn black. Any idea on how to fix this?
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?
This is the add-on that I am talking about. https://github.com/Grim-es/material-combiner-addon?tab=readme-ov-file But even when I try to bake it on my own, I still get the same problem
I switched all the materials to Diffuse BSDF and it still doesn't work
What it looks like before atlas vs after:
material combiner? is that some unity thing ?
also it does sound like the UV's dont share the same name
open blender and give them all the same name and it should fix it
I checked. They all have the same name
hmm odd, does some of them have multiple UV's ?
the only addon i know that works well is Cats.
Yeah, some of them have multiple UVs
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
Just tried that and the same exact thing happened
hmm mabey addon is broken ?
how many materials do you need to merge
manually atlasing might honestly be easier at this point
wait did you change the name of the Uv's after or before it turned black ?=
After
ahhhh
okay revert to a version with working colors, then rename the uvs
and then merge
A TON. There's already a medium version of the avatar but I wanted to challenge myself and see if I could bring the Very Poor one down to Good
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?
you can try
but im 99% sure the merge will work if you start with a version with working colors and then rename it.
Wdym a version with working colors?
one that dont have that black texture
Are you talking about the before pic I shared? That pic is the one before I try atlasing
That's what I did :(
hmm can you send me the blender file and ill take a closer look at it ?
Yeah, one sec
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
Are you using the unofficial CATS or the OG one that was abandonded and only works with older blender versions?
Yeah, that's OG CATS with an older version of Blender
yeah makes sense its been ages since i installed it. Do you know how to atlas manually ?
I got the same issues when I tried manually
Maybe the newer versions of Blender are just borked š¤·
i dont have your textures but ill add some random ones and try on the newest version , that sounds super odd
alot of the Uvs are super weird
but i dont get the black texture
Should I send you the textures as well?
Maybe the issue is in the textures
iirc that uses this plugin, maybe try to update it?
https://github.com/Grim-es/material-combiner-addon
Pretty sure that I was on the latest. Plus, @cosmic wave is using the OG CATS that was abandoned
yeah definitely use the right one for your blender version, but also you don't need cats if you just want to combine materials
How do I know which one is the correct one for my Blender version?
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
get it here: https://catsblenderplugin.xyz/
(this is all I know - I don't use it)
I'm sure I'm quite at that skill level yet. Plus, like I said, IIRC, I already tried doing it manually and got the same issue with the textures for certain parts disappearing
But I'm gonna try it in the older version of blender and CATS and see what happens
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
yeah sounds good
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
This happened when I imported the FBX 0_0
or blender ?
Blender
did you import with cats ?
Yeah
Just tried it and same exact thing happens
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
for Quest, yeah
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
It's the same for pc
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
With you there š
Okay one second I'll turn my pc on real fast, I'm to curious about that black shader
okay so i get the same problem here. but i cleared transform to fix it, theres alot of weird stuff in here
ohh nvm its a beanbag i think
right ?
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 ?
Bought it
There must be something wrong with my PC then š¤·
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.
likely better to just get a mod on it
<@&397642795457970181> file sharing a purchase required product :P
thanks
My bad.
I was also asleep when you sent this message š
When youāre free, can you show me how to atlas properly?
yeah im free now for an hour or two
Alright, let me take my morning pills and boot up my PC
Okay, first of all, which version of Blender are you using? I normally use the latest version off of Steam
i can use that one aswell so its easier to follow
highly recommend uvpacker for atlasing (better uvs, not actually atlasing)

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 :(
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
Everything in general lol, clothes, textures, materials, everything, I donāt really want to go into blender and redo anything bc I really suck at 3d modeling and I donāt understand how to use it, I know thereās different tools you can use to convert but none have helped enough so far
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.
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
yes
ok
yes but I will note you would want the dimensions of the texture to be a Power of Two because that's easier for the graphics card to work with
ah
What anisotropic filtering value is best for realistic textures in vrchat?
I'd think that depends on the material you're going for
Yeah but how much it will hurt on the performance?
probably not very significantly unless your avatar is already extremely well optimized
why does unity say to aim for less than 7500 tris but the docs say 32k?
you have android mode in unity, the doc is for pc
maybe it needs a kick, switch it to android and switch it back
yeah it sometimes gets stuck like that
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?
two
yeah, two materials
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?
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
Head alone is like 5.5k tris
Head plus everything else is... just about 40k? Yeah, probably best to keep them separate
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
same here
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
Ye, not an issue anymore. Drawcalls is the issue when youre optimizing for this, each mesh and each material is own seperate -1 point to performance
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
Skinned meshes are those which deform with an armature
You could join mesh objects in Blender.
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)?
.... I just said
Wouldnāt I have to rebuild the entire avi then
Also is there a way to convert them to a static mesh
if you didn't unpack your avatar prefab,it shouldn't be much of a problem.
Yes - make the mesh object not deformed by an armature. Probably not what you want in most cases.
Itās still a skinned mesh renderer but if I try to attach a static the mesh doesnāt show up as an option on the mesh selector
hmm ok I may be wrong, I haven't actually bothered doing this
Oh⦠I was asking just as I was leaving to go somewhere and didnāt see the previous message
Got it
Sorry about that
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
yup
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...
mesh objects * material slots on that object = total material slots
So each spawnable prop has its own set of material slots.
merge those meshes no reason to have ship having multiple
(if they are ment to be movable use bones)
hm... so I should merge the materials here into one and then re-export to unity?
ok
also, holy bounding box
fixed the bounding box by setting the scale tiny in unity with slider able to scale them all the way up ingame
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
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
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?
https://creators.vrchat.com/avatars/state-behaviors#animator-play-audio 1 source multiple audio / random / loop ect
This document is written with the assumption that you know a bit about /Documentation/Manual/class-AnimatorController.html">Unity Animators.
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
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
If you use literally the same avatar parameters file for both, yes
tysm
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
that's dynamic batching but with an extra step being that every vertex has to calculate its skinned mesh weights
not sure what you mean about single armatures? Sounds like separate mesh objects if that's the case
meshes that deform (either with an armature or with blendshapes)
I sent that question without reading that it was answered the message before
yeah just adding that blendshapes are a deformation too
so even if it's not deforming with an armature, if it has blendshapes it'll also be a skinned mesh renderer
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
nb?
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.
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
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
3 bones 4 joints
I stared at this for uncomfortably long before feeling like the numbers are backwards
i learned this the hard way
not comfortable with blender, so modeled in maya and went to import into blender to weight paint it after making a skeleton and
yea..
ā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?ā
@vernal reef hey bro I want to talk to you can we talk for a min?
@gritty terrace
U know him?
same as i put in this message
you're spamming them in multiple channels and breaking the rules
hey do you know if its ok to do a texture atlas yourself
is going into photoshop and just making one a valid solution
sure, why wouldn't it be?
texture atlases are good to do urself yeah, its a way better solution than using unity tools to atlas things
those are usually awful and waste UV space
do you have substance painter? u can atlas in that as well
even within blender too
best to repack UVs when atlasing, for more efficient UV space usage
Very late response but this is better than doing it in blender or unity
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
Can it like auto do it for you?
Cause I've been doing it manually and stuff
nah u have to create a template for it basically
No like auto packer?
Or something
for substance no
Dam
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
Is there a way to pack like 3 different textures on one image on the same uvs?
Yeah, you treat it like a sprite sheet
I've never used one of those so how would I do that?
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
yeah thats what atlasing is
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)
And these can swap the textures on the same uv map?
what i meant by this is that it takes this many to acheive the result of 1 by using substance
the substance part is just the atlasing process, u can have the final UV on the mesh thats packed afterwards
no, it's not swapping textures at all, it's just using a section of the textures instead of the whole thing
basically: take an image, split it into 4 sections. only show one quadrant at a time.
if u dont want to atlas it traditionally, u can mask the sections by vertex color
Oh that's what I meant really can I offset so it like covers the uvs?
and use rgba masking for each section
doesnt require altering UVS, and u can still have them all as a single mat
RGBA masking is great, but I probably wouldn't use it for this
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
Mine would be pretty big since I want the whole world on one texture it's not like a big world so it will be no bigge
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
im so half asleep i thought u were the other person
And yea
Lol
Bed time go to sleep