#avatar-optimization
1 messages Β· Page 14 of 1
won't help me with polygon count
that is a lot of polygons that can be cut down
yikes yea that probably needs a retopo lol
yea that could definitely use a retopo
I can do those pretty quick, the main time consuming part would be to re-unwrap and copy blendshapes, oh and baking old textures if you want to re-use them
face is a seperate mesh so no blendshapes in use
body is mostly solid texture so I don't mind unwrapping and fixing that
I could even re-use the body I made for my friend's orc and just shrinkwrap it to your body 
I have the voxel heat weight painting plugin so I can run that if needed, getting great results out of it
are you just running that quad remesher software or whatever it was on it? would you care to retopo it?
no, I do it by hand
oh well then I'd feel bad
and yea I could potentially do that for you
currently playing sea of theives with friends lol
could always do what I did when I was testing stuff and just let polytool do its thing and babysit the shit out of it (mostly joking but actually effective at times)
I'm one of those freaks that enjoys doing retopo lol
and UV unwrapping
polytool is great but I'm just running into lack of geometry around the joints
cut geometry everywhere else that will never commit bend
put more in the inside of the join than outside
body's already only 18k tris
to be fair
I mean, could cut more honestly
thats not that bad
the main problem is hands and feet -- I am kinda tempted to just put socks over the feet and delete the feet
does the toes ever bend?
going to be funny when you put swim shorts on the avatar and you go swimming with socks
nope
then you could probably just cut down the toes to the bare minimum
can do crocs or some equally awful shoe
nah, it'd be just a solid skin foot inside the croc
I wonder if I could depth/texture map socks onto a solid foot
that would allow me to take the socks off and make it a solid foot shape if I needed it for shoes
actually not quest friendly
hmmph
blendshapes on the legs to give the socks that rough edge when you wear the socks
or do very specific uv mapping to cut off at a tri's edge for sock texture
and then in unity
material swap
oh damn blendshapes would work
@stray tangle wait, if I have the original untouched high poly body mesh would it even need re-topo'd?
I mean you'd probably want to retopo that one and then bake the details
just feel bad having you spend time on it
when you say retopo what do you actually mean? like say I'm using the original high poly mesh, where do I start?
is it just manually deleting geometry?
unsubdividing?
start with a single quad, add:
- mirror (clipping on)
- shrinkwrap
- subdivide 1x
- shrinkwrap (0.002 offset)
then extrude faces until you've covered the whole mesh in new topology
using face snapping helps too
oh huh
I've only used the shrinkwrap thing once for a face mask and that didn't work out well, I guess this'll be a learning experience π
wait, does the shrinkwrap cling to all geometry? would I need multiple quads?
Shrinkwrap projects the whole mesh the modifier is on to the target mesh
(you can use a vertex group to mask it)
yea a plane
then go to edit mode, scale it way down, move it to one side, and then snap it to like the chest using Face snapping with "Project individual elements" enabled
this look right?
or wait should I just be mirroring on X to make identical geometry and not Y
ok yeah hold on
this is gonna sound really dumb but how do I extrude a face sideways only
I feel like I started this wrong with the mirror since there's some duplicate geometry in the center
you can use E to extrude an edge to make a new face, or do ctrl + right click
it's mirroring the plane into itself
you likely moved it in object mode, not in edit mode
was wondering why it didn't seem even and then realized I was working on decimated geometry
go back to object mode and do ctrl + A > all transforms
done
didn't realize there was a difference -- I guess that's why clipping and merge is on
okay cool this seems doable π
try to add as little geometry as possible
the subdivision will quadruple the face count
but it will make it a lot quicker to cover the body
and it will ensure your final mesh is all quads
oh I should've used a subdivide modifier
triangles, when subdivided, become 3 quads
let me fix that
and pentagons become 5
yea pretty much
try to follow the contours of the body
and make sure you consider how you'll unwrap it
try to get edges lined up where T shirt seams would be
is the goal basically just not have anything clipping thru the mesh? (know it won't be perfect but)
try to use as little geometry as possible, and add more using loop cuts or knife cuts where needed
sort of, you want to use as little geometry to get a good wrap around the whole body, while leaving enough for deformation
should I be using simple subdivision instead of catmull-clark? simple results in a square, catmul clark looks odd
I'd use catmull clark, it will look fine once you have more geometry
kk
oh god I screwed something up already
I think I have duplicate geometry again
when I select one side of the cube my mouse is mirrored
I have no idea what's going on with this center mesh but the rest looks normal, I think this is duplicate
just delete faces and remake that part
alright, looking like a solid starting point π
Onwards!!
how do I use face snapping?
magnet icon, top middle opf viewport
trying to get this to sorta line up
oh, it's not working because I'd make a triangle unsubdivided
fk
actually wait no I could make a quad
can you screenshot again but zoom out
it looks like you're adding too many edges
I see
don't forget to use Looptools to help
you should start by making one loop around the base of the neck, then extrude that entire loop upwards
hmmm
this hurts my brain
just want to make a quad like this
I guess there's no vertex there for me to connect to in top left because it's an arbitrary point
argh okay I think I see where I'm messing up here
alright I'm lost π
I guess I can just extrude entire loops upwards but is there no way to connect them like above?
just gonna watch a video on this
dont you just love decimating polygons and it gives your hair poofy curls
so the F2 addon was designed for precisely this problem and it's built into blender
I can select a vertex and press F and it will extrude a new face out of the 2 edges connected
why this functionality is an addon I do not know
like actually
alright, found a really nice tutorial that showed bsurfaces addon, looptools and F2 and I'm starting to feel like I can get somewhere now π
I can see how this would be enjoyable
slightly scared of will I have enough geometry on the joints but I can always subdivide or add more loop cuts
you don't really need those circular loops around the nips and belly, those details can easily be faked by baking the normals from the original mesh
hmmm
I'd worry more about the loops around the shoulders, neck, etc
I'll dissolve em, thx
also, keep track of how many loops you have around the limbs
and remember that subdividing will double it
how many should I aim for around the limbs?
so if you have 8 edges around the arm, you will have 16 when subdivided
reference :3
does that deform well ingame?
yea that topo is good, but a little high for my liking
I guess I can just look at my old mesh too
looks like itd be alright to me
so this should be able to be faked right? I guess doesn't really matter that much honestly won't be seen most of time
Quick #gamedev #gameart tip: A really good exercise in learning where your topology should go to get great low poly deformation is to imagine your mesh as a Starwars Stormtrooper suit- made of rigid plates and rubber.
The outer shape of the plates (blue) are the important bit
2913
347
alright -- just gonna delete that part
The super mecha suit strategy
I have not got my head around the perfect topology for human flesh deformation but now that I think about it, you can probably figure it out by studying what topology would be good for an isolated joint of the body, do that for the ankles knees hips shoulders neck etc and THEN you can painstakingly figure out a way to connect it
yeah pretty much
okay I have some weirdness going on by the neck
should I even worry about what the unsubdivided result looks like if I'm just gonna be applying the subdivision after the fact?
also, should shrinkwrap modifier go after the subdivision modifier? seems to cling a lot better to mesh when doing that
Youβre changing the order it runs in, so Iβd say yeah
Zero ass 
Triangles are your friends
unless you want clean loops
friends don't often make me want to throw my computer out the window π
they shouldnt. triangles can be useful
when subdividing, triangles become 3 quads
"Your model should only have quads" is the most harmful thing I even learned when I started out
i agree but i also think its useful to focus on quad topo when youre starting out. once you have a better understanding, you start to learn that tri are not all bad and youll start to incorporate them to optimize further
Triangles are lifesavers, and your model will be triangulated on export anyway, so make good use of them in correct places
Totally agree!
3d art can certainly be frustrating. even now retopo makes me want to never touch it again at times and somehow its still my favorite part
every time i finish a project i just see where i couldve done better on the topology, but i guess that means i learned something. just sucks because i never feel satisfied with my work and it makes me want to redo it all
Seeing the mistakes mean you've grown since then
The only time I'm ever really bothered by mistakes is when it's a process problem that keeps getting me there again and again
mhm. for me its annoying because i see so many flaws with the base model im using now and fixing them would be backtracking so far in my progress that i dont consider it worth it
but i know every time i look at the topology ill wanna slap myself lmao
its just poor planning on my part. better luck next time
yeah, it happens Β―_(γ)_/Β―
pretty happy with how this is coming out, I can see why people enjoy this part (smooth shaded)
do you know how to use the Looptools addon?
yeah got an overview in a tutorial I watched earlier, I guess right now it's just a case of not knowing when to use it yet
select that open loop where the arm is, and use the Relax function
or Space
then select every loop around the torso and use Relax
oohh that looks useful
are there keyboard shortcuts to switch between vertex, edge and face selection modes?
1, 2 and 3
i didnt know it until recently either
its sped up my process so much
np :3
Did not know that, I've been clicking on the buttons like an ape for years
Mmh, doesn't seem to work with my 2.79 layout 
rip
you on 2.79 for any reason or just it works don't touch it? just curious -- I see a lot of old version blender holdouts and the only reason I can really find is addons, but so far every addon I've found works on 3.6
I just started blender very recently, been no life-ing it
I'm on 3.6, but with the 2.79 key mapping layout, because that's what's intuitive for me
oooh interesting, that's a first
if you're starting out, it's best to be working on the latest version. Some people are just used to the 2.79 workflows as they started with that
my keys are stock 3.6 but I had to change the stupid 3d view rotate/pan to be sane person defaults
middle hold to pan, right hold to rotate -- just like most other programs
I ended up fixing a few addons to make them functional in higher blender versions, but it doesn't work for very complex ones unfortunately 
Also this might work on 3.6 ?
https://github.com/Ruuubickk/NotEditingBasisShapekey
Ah yeah it does, I used it yesterday
out of curiosity what did you ask gpt4 to get it to help extensively? or did you just ask it a bunch of questions
they nerfed it so hard π
I was able to get it to do code analysis and tell me what might need to be updated by telling it I'm writing a fictional play and the main character is changing some code on a blender plugin to work with 3.6
It was a gradual process! One functionality after the other, up until it worked fully at the end, it took over 80 prompts and code exchanges
you can get it to do so much previously denied stuff by just telling it it's a fictional play, it's kinda funny
oh damn, that's a process
Were you using OpenAI or Bing?
ahh - might be less resistant to doing stuff like that, or maybe it wasn't nerfed as hard, man time does fly
Bing absolutely will not look over any code, at least when I tried it the other day unless you trick it -- it's been pretty sad seeing it get nerfed since launch
idk how anyone retopo's without the F2 plugin enabled, it's so nice
ill have to look into that
it's pre-installed to blender
just enable it
you just click a vertex and click F and it makes a quad connected to the 2 neighboring faces
oo nice
there's also something in addon settings that hints at making triangles but I can't figure it out and the docs don't mention it
I guess you can just select 2 faces and press F too to make a triangle -- I think that's native blender
Learn a full retopology workflow in Blender 3.0+, using only free tools and add-ons shipped with Blender by default.
β¨ Master 3D Sculpting in Blender course: https://bit.ly/b3d-sculpting-course-6
β¨ Project Files + Blender Shortcut PDF (email required): https://bit.ly/cgboost-resources-14
β¨ Blender Secrets E-book (affiliate): https://gumroad.com/...
this was the tutorial btw -- actually surprisingly good, wanted to post it before I closed it out
Idk if retopoflow still has a free blender add-on thing but that seem to have all the main tools
When I used it like 10 months ago
It has proper UI buttons
I want to optimize my joints, can my avatar rig in unity support an extra bone in between my lower arm and upper arm?
Same goes for knees
Yeah of course, those are called twist bones 
I thought twist bones were bones that could only be rotate and βtwistβ the arm. Like twisting a towel. And their only movement is that rotation
But if unity lets me upload it, than perfect 
Oh I'm sorry, I didn't actually see the tiny bone in your screenshot!
I don't think the Unity humanoid rig will like that at all no 

yep it's still free on github
if ur gonna b making avatars for moneys though i recommend payin, since it's only free for non commercial and educational use, but if ur just making personal avatars it's perfect :3
retopology more like retopo oh geez
retopoflow had terrible stuttering for me and the view clipping got on my nerves so i decided to go for topogun
not perfect either but pretty nice
Hm I never had that issue
You must have had a coincidencally really conflicting blender version that should have been in the 2.9+ range of compatibility
the only issue ive had with retopoflow is it gets a teeny bit laggy when working on super high poly stuff
but its no issue, just needs some patience
could try adding an unapplied decimate modifier to the high poly mesh
yeah
Trying to make an optimization with elbows, I know there are many ways to do joints, but does this type of rotation constraint work in unity?
ignore the right arm
yes, those constraints do work in unity. I would add a rotation constraint to B3, with the source set to B2 with a weight of 0.5 on the constraint
you can tweak constraint weight to get the look you want
Ty 
Note to self: Be careful while using polytool..
you gotta do it in steps rather than just cranking it
and a lil tip that I learned
dont use smart link
and then have these enabled
would it be better to put bone joints up further here in red or keep them in the center?
I feel like it bends better up there
your arm should ideally be straight
green would be a better spot imo
I'll leave it then
gonna also try out retopoflow later today, it looks sick
currently using bsurfaces from that tutorial to help manage stuff but doesn't look nearly as refined
guys looklooklook
huh
What's the next better topo arrangement
I bet you don't know
i dont
i just shared the gif bc i thought it was helpful
I don't either I was hoping you knew
ill try it lol
be careful, you're using subdivision
you don't want to use the exact same topology as in that image
first image is with it off
oh wait I see what you're saying
hmmph
yeah that's gonna give me 3 quads for each triangle isnt it
oh well that's straightforward enough
pentagons are your friend when doing subdivision
you essentially have two knees in that image
would that not make it more flexible? or is that just gonna make it look wonky / worse
actually lemme just get out pose mode and I can look
you will end up with weird topology and it won't help you
correct as usual
think it's just the weights and not the geometry?
for the most part it's the weights yes
also, you should intend for the leg to clip to some degree
oh my joint is like in a weird place too, I think that's why auto weights are messed up
auto weights won't work very well, but it is a starting point
using voxel heat diffuse skinning plugin, the blender auto weights suuuck
moved the joint to be more centered on the leg and ran voxel heat diffuse auto weights again, looking much better
you should try to concentrate the geometry a bit more to the knee, and maybe add an extra loop
you definitely did
nevermind then
or at least, you did not apply it
you should do your weight painting after the retopo
wait did or didn't
the mesh looked subdivided in those pictures, but I'm not sure whether or not it's with the modifier applied
with it applied, there will be 4x the amount of geometry
meaning more control over weights
okay yeah it was I'm dumb lol
it was with modifier applied
I just undid it all to see
I see
I'll add 2 more loops
this looks weird
I guess it'll be stretching, may add another line for the outermost center ones
You should follow some topology guides, it'll be easier
ehh, one sec
Also this would fit the #3d-modeling channel more
ah look at that, didn't even have it in my channel list
kek optimized the atlas directly from blender π .
2k atlas instead of 4k.
I probably could reduce the shoe texture further and eliminate the need for cutout on the head so I could combine the head texture into this π€.
And I did just that. Hopefully it all works now.
Hi, Quick question is having 9 Materials still considered as "good" Ranking? or will it make the rank of the avatar medium ( vrchat doc says 8 mats max but wondering if 9 will pass ), cheers
Okay 8 it is then lol
Medium is the lowest people can select to auto-show/auto-block in performance settings. If their safety settings blocks your avi, it shows good/green if it's fallback.
So this is fine! Yet, the material amount can be better, but don't go crazy trying to optimize if it ruins your workflow
the way current ranking works isnt well designed and just takes the lowest rank. so no your avatar is considered medium. all through you can easily get it good rated by having a max of 4 materials.
whatever that red and black thing is could probably be cut down into like a 256x256 square
and a couple others really
the red and black thing are for the leather choker on the model.
you can just pick up uv maps (& chunks of them) and re-arrange them freely on the texture btw
@waxen estuary
this is my entire jacket texture
That part can be made even smaller than that with that uv lol.
then I just added some generic fabric normal map to it to add very fine detail
wait my part or yours? I know mine can but I had to leave some extra whitespace in there for the stitching & just for future fine details if I wanted to add anything, it's already only a 1024x1024 & this texture gets re-used for shoes and pants as well
you could prob make the choker and like half your other parts really small if you just take them and scale the UVs really small into a blob of solid color
probably could.
also has the advantage of making the lines extremely crisp since you're actually cutting the UV -- no weird anti aliased edges
my entire avi only uses like 10 MB vram, 5 MB ish download size, jacket has an even more crisp texture than when I started and it was 4k originally
Hey, quick question. Does having 2 packages, one for quest and one for pc. Use the same shaders and textures.
Cuz i spent too much time yesterday compressing everything every time i needed to switch from quest to pc to pc to quest.
if you use the same shaders & textures for both there's no reason to have 2 packages
also -- are you importing your package to unity every time you make a change?? / seperate unity project
import them both to the same unity project and then you can just switch the build target in like 30 seconds
No, its 1 avatar. When i upload to quest, i have to change the shaders and compress EVERYTHINGGGG. And then when i go to pc i change the shaders and turn everything back to normal or high quality and it takes too much time. Itβs starting to piss me off everytime i have to do it
Or should i just make a whole separate unity project for a pc and quest upload
I just have 2 prefabs added to my scene, one with quest materials and one with PC
or you could just split it to 3 materials based on color and then use the atlas texture feature to generate 10 x 10 px on each color.
π€
Yessssss
I just enable the one I want to use
switch to android build target takes like 30 seconds or less (on second time, first time takes a whiiillee)
I know, but i was wondering. If i make both of them, will they use the same mats and textures and meshes.
I mean, could also just do that with an image editor & UV change too but yes you could if you didn't wanna edit the UV directly
Because the main point of this is so i dont have to spent 30 minutes compressing the shit out of my avatar and wasting time
I used to be terrified of editing the UV directly but its actually really easy if you're in face select mode
not if you don't set them to
I just duplicated so I could use poi shaders on PC and standard lite on quest
the quest prefab has quest materials set
idk why half of them are blue I think its just cuz the shader is locked in
let me guess, you can also use that mode to split those faces onto a different material too?
Now its time to figure out specular highlight on fur via texture maps
you can remap them however yeah, can have different items use same parts of the texture or split them off into whatever
android quest build switch time (ignore the blue color, thats from skybox being stupid)
since it's material slots based and not material based you don't really need to atlas them either if it's a seperate mesh
so for my shoes I could totally get away with a 32x32 texture for the entire thing
true
then just normal map on a fabric
or just map most of it to color nodes and use normal maps for it all?
most of my entire body is a solid color too, so that could be crammed really small
wdym by map to color nodes?
you could, but that'd require different material for each color
that the material atlas plugin in blender can generate 10 x 10 px parts of an atlas on.
Yeah
but it could be simpler then to atlas per mesh then.
oh yup you totally could
however, it's quicker and easier to just do it manually than fiddling with the material atlaser plugin in that case
True, that could be a thing that can be done too.
But then again doing it the rgb node way and then atlasing them later could improve texture memory significantly as well.
wouldn't improve it at all over doing it manually but yeah
Because there would be minimal texture size too.
also, download size for plebs like me stuck on DSL β€οΈ
ye
nothing more fun than loading into a world and downloading 2 GB of avatars on a 20mbit connection
Also helps keep quest file size way under 10 MB too.
Yeah I like to have my pc and quest models exactly the same if possible.
it sounds like the manual editing still scares you a bit so just rgb node mapping them and texture atlasing would work great
same
I can't stand it when they're different
Then I could have single project that I can switch between the configs on.
I could get away with one prefab for my project for both PC and quest, I need to set up EasyQuestSwitch to swap materials and enable/disable vrcfury presets on target change
Not just that, I am still fairly new to blender and never taken any 3d modeling classes other than using autocad in high school π .
I was terrified of UV maps starting out too
but as soon as I started playing with them I was like oh this is dumb why was I worried
I wonder if say one could take a texture for which normal map was never made for and make one from it.
you can easily, you can also just tile the normal map over the material too
(or in other words a way to keep the details on them while using the color option.)
hmm interesting
I wonder how the normal maps are used on the vram though.
or are they just a little like the shader stuffs.
same amount as reported in unity, basically nothing
normal map is a shader thing yeah
the lowest I gone was like 8 MB before I switched the eyes and added the shoes.
also -- something to be aware of on quest, it doesn't really like 2k/4k atlases very much
But if I do the whole normal maps and use rgb nodes for all of the meshes that I can I can see it drop significantly.
yeah
I crashed a friend of mine with a 4k atlas
you should try editing the UV π
Hence why I am considering doing it on the base as well π
if you screw it up, just hit file -> revert to load last saved copy
it's super easy to edit
you're gonna wonder why you were scared of it too
for me I normally use the save as in blender to save under a different name before changing something that might not work.
So I can easily revert it by delete of file.
I just don't save it till I know it worked
you can also set up blender to autosave every couple of minutes and increase the undo buffer by a ton
yeah hence why I use save as instead
I would increase the undo buffer indefinitely if I could.
you can π
fair enough
change it π
edit -> preferences -> system
don't be scared to just make a copy of your blender file purely for screwing around
shouldn't have to be scared of learning new things because it's gonna screw up your project you worked hard on
just copy it, screw around and when it's totally broken and unusable delete it and make a new copy π
yeah π
it's super easy to edit this stuff manually
literally just go to UV editing workbench, enable synced selection in top right, change to face select mode and then just pick up and drag stuff with G, S to scale, R to rotate exactly like you're used to
What value for the undo steps reprecent no limit at all?
just set it to 1000
if you have to undo more than a thousand steps you got other issues you need to work on
lol
yeah
backups~
That's an interesting way to benchmark your ram
paging to the rescue...?
You mean virtual memory?
64 GB of RAM be good
just start a render at 800% resolution
With a million grass particles w 10 children each
Hello, pretty new to avatar making. Can I get help with optimizing a vroid model? I tried following tutorials but like so far, alot is outdated and the menus are different.
short one , does not explain how to seperate parts you want to be alpha/transparent (can be done before atlas - set that material as nr 2 for transparent stuff or after by finding the mesh - seperate and then make a material for it)
you need blender -> cats+vrmaddon+materialcombiner
I assume there is no way around losing my visemes if I decimate my model like this?
Is it easier to decimate with Un-subdivide or Planar?
use CATS addon decimation tools, they preserve visemes
I tried that to begin with, tells me it can't decimate to the target unless I use full, which kills visemes anyway
I'm pretty sure the issue is my 130k poly shoes.
If I whitelist the shoes after decimating them with collapse, can I upload with "apply modifiers" and the visemes will still be there?
They're very neat shoes
...select the shoes with ctrl+l and go to mesh > cleanup > decimate geometry
open up the popup in the bottom left and lower the ratio just like the modifier
I'll check that out now, thank you!
np :3
Hey there, I have a quick question about Audio Sources and rank optimization.
Is it possible in any way to use fewer Audio Sources to play multiple audio files? I currently have 9 audio files (music files, one looping), and that already instantly puts me at Very Poor rating. Only one of these will ever play at one time. Is it in any way possible to utilize one (or less than 8) Audio Sources to play these music tracks? I already found out that the Animator cannot modify the audio file reference, and I didn't find any way to seek to a timestamp via animations either (short of playing it quietly until the right time, which may be imprecise anyway and take a long time).
(I know this technically shouldn't impact actual performance that much, but it just sucks that the avatar is left at Very Poor when all other categories are Medium at worst)
I dont believe there is another way other than just using a soundboard and playing the music through your mic
ah yes, the classic bypass to all audio restrictions (and with free audio quality scrunkling)
Welp, unless VRC add a sound swapper component, I guess I'm stuck with Very Poor.
Thanks though!
matcombiner error? 2.93 lts nvm restarting fixed
reduce polygons, skinned mesh, materials, bones. the usual routine.
i need some help optimizing for quest
ive already removed some stuff from the model and used crunch compression and turned down the texture quality
It is related to missing scripts that are attached to the rig
If you bought or downloaded the model and itβs old, it may use dynamic bones, which are a separate Unity Package
And have also been superseded in VRChat by physicsbones
Youβll have to search for the object names referenced, select them, and remove the components from the inspector
Rindo uses physbone, so no clue where you got yours from
The fact its entirely unpacked
Whered you get the model may I ask
What type is it rgb or dxt1 or something else?
Hello, So im trying to make my avatar crossplatform to atleast medium rank, Heres the stats so far from Unity.
Im below 70k poly - 15 Mat slots ( which is acceptable for medium rank as ive seen apparently ).
im thinking to remove 64 phys bones Only from it. Would that make it Medium rank & ready for upload? That would bring down bones under 150 and phys bones at 64
70k and 15 mats are ok for PC medium, not Quest
Medium on Quest is 15k polygons.
Take a look at the actual rank specific requirements https://creators.vrchat.com/avatars/avatar-performance-ranking-system/#quest-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.
Using cats bake tool will be the easiest, but you'll still probably need to fix it up. Merge a few bones in the hairbecause physbones. When you want to make 70k to 15k, you typically need retopology (fance word for spending a bit of time remaking it). But here's a tutorial covering some other methods. https://www.youtube.com/watch?v=8MkgXcidxg4
If you're Unity-bound, then D4rk's avatar optimizer can remove extra materials, and you can use physbone ignore list to remove some physics from Quest.
But you deleting bones probably won't work, as it'll mess up weight paint and that needs a Blender-fix. You might want to accept it as is, but still check out some of the suggestions I gave
Opinions on the weight painting and topology?
You should look up finger topology!
i did, that is my attempt doing so
There is no topology for where the finger phalanxes bend?
this part?
careful, you should probably not havbe a subdivision on there
otherwise you will end up really high poly
not applying, that would be bad
can always remove loops once the subdiv is applied
tbh, for fingers, there's a case to be made for having the same amount of edges on top (knuckles) and under. if you bend your finger, the skin will bunch up a little bit, and you need more loops to make that happen
Oh, you know how to use triangles?
Please show me some readings about it, would love to propperly know hoe to use them
Use them anywhere!! Triangles are your friends
Your mesh gets triangulated anyway, might as well use them where they'll get you better looking deformation
and/or normals
that is true. It all gets converted to triangles, if you know how to place your friends where they excel the best, we all gain from it 
How can I make particles work on my avatar on quest?
Make gloves over hands always it makes life easier and ur hands are seggs now
Black gloves like link
I'm making an animation for my avatar's animal ears to twitch every minute or so on loop, how impactfull that is to be playing constantly to performance?
Insignificant 
nice! thanks!
anyone got a idea how i can mix bones in blender
like if i applied a outfit
is it possible to mix the bones together using blender?
Assuming you're using cats, you can use it to automatically merge the models and it'll do that.
If there were some bones not merged, you can click the armature (it'll highlight yellow), then switch from object mode to edit mode, then click one bone, then click another, and use Cats' merge to parent. If that's what you mean
closer to
i applied the outfit already by just dragging it under the bone its supposed to be and idk how to merge it together so it lowers my bone count
Which one is more acceptable (for quest users at runtime)?
- an avatar with only a single 2k atlas texture that combines all the textures of the other materials and a few color materials (non textured) with a single color material separate for a shader to add fur to it.
- an avatar with 4 1k atlas textures that combines all the textures of the other materials and a few color materials (non textured) with a single color material separate for a shader to add fur to it.
Less number of material is better.
quest dont to alpha so 4k can get really small vram size (10.67mb) with dxt1 , mine usually 2k dxt1 format (2.67mb vram) -> exsample
Kind of annoying, I was using blender to lower poly counts on my avatar but for some odd reason, after using decimation, unity thinks I have more polygonesβ¦ not sure whatβs going on here
it's just unity being unity π .
Ohh! Got it! The usual Unity shenanigan lol
Any way to make sure particles do not render in mirrors?
You should be able to make the particles use a Poiyomi shader and toggle the Mirror visibility option on it
Iβm trying to make this avi green and Iβm struggling really bad π does anyone have any tips on what I can do?(I posted this in the wrong area at firstβ¦)
Iβve almost completely done it but Iβm seeming to be struggling :(
the poly count on that thing is over double what you can have for a Good rating
you'll need to do some work in blender to cut that down
the first thing I would do is remove any additional accessory
crap- I have no idea how to work blender π’
you will need to use it to do any kind of work on the model
Unity is not a 3d modeling program
This is an avi I bought that came with a medi-opti, but I need to make her green for what Iβm actually trying to do haha,
I appreciate the help!! Thank you!
You would need to:
- reduce polycount by dissolving loops in blender manually
- combine materials in blender using atlasing or remapped UVs and texture baking, or remove extra objects you don't need
- remove any extra objects with bones, or remove their bones and make them static
- Combine materials/objects or remove extra objects that are skinned (weighted to body bones or physbones)
It requires a lot of trial and error, as well as well informed/educated decisions on what to change or remove and how.
tytytyt!!! i appreciate it sm!
for sure. it is a lot of work, but hopefully this gives you a good outline if you're going to try to tackle it. It isn't horrendously difficult, just requires research and practice
This works on mine
This topology 
I don't think those triangles were manually created, that's the difference
but the irony is there and it is funny π
I remember reading somewhere that someone said to use TGA files instead of PNG
because its better for VRAM usage?
Is this true?
unity does its own image format, dont matter
so use whatever is lossless (never a jpg for exsample)
vram you can check with vram checker and set it to different format, anything with no transparency can get small then
exsample dxt1
my avs usually 1 4k then bunch of masks/decals
if it came with a medium variant, that medium variant would already have to be under the 70k poly limit, so it'd be easier to get that version to a good rating. would probably require much less blender work
give 2k BC7 a shot for your main tex
will be half the vram
on the topic of this, i also have a 4k main body texture, because it includes both head and body, which is working great, but i did consider two 2k textures. is there enough of a difference performance-wise to warrant me splitting them up and adding another mat slot?
try simply doing 2k BC7 (high quality) before trying other things. you'd be surprised
my 'body' texture is outfit(s)/skin/everything on it baked - 2k looks terrible so main is never that low , anything alpha is on a 1k one or doesnt exsist if i dont need it
the difference BC7 makes over DXT1 can make it look comparable to higher resolutions
i'll check that out rq, thank you. i'd figured it'd still be too low quality, since my texture includes the head
go in the settings of the SDK and enable "Show All Avatar Performance Details"
the builder tab should show the outlier now
what was it may I ask?
Idk if someone responded but lower your texture resolution
quick question about the Feet and hip tracking.
I am trying to optimize the tracking, mostly the foot, how can i place the foot bone to have better looking tracking in game?
eh
I just kinda found it good to test around with the model to get the foot to rotate good
and then worry about the tracking later
Okay so. The more HORIZONTAL the foot bone is, the more its immediate response to rotating will be to lift the foot up and down. The more VERTICAL it is, the more its immediate response will be swinging forward and back. You are probably already max compatible/correct with what you have, which matches more or less what an actual foot bone is like.
Though now that I think of it this is prolly more of a βseries of constrained bones thingβ so possibly nm
Any tips when it comes to using CATS & it's decimation settings? Feels like I'm not using it to its full potential
can't answer the foot bone question, but most bad-looking foot tracking in game i've seen comes from bad tracker placement mostly. Foot placement is the most finicky thing about calibration imo and I have to use Adjust Move on pretty much every avatar. ideally the tracker ball would be in the same place as your avatar foot as irl. depending on your issue, you might be able to get good results from just using Adjust Move to tweak placement
using Height based avatar scaling should ensure that the foot is in a good spot when calibrating
it also depends on your User Real Height. if it's set incorrectly, the avatar won't be scaled correctly.
8K PNGs 3.6 GB VRAM __(8K Textures for demonstration purposes) __
8K DDS Textures (2.8GB VRAM)
DDS is just a container. you likely didn't have mipmap generation on when encoding your textures
nvidia texture tool does that automatically for me
a BC7 texture with mipmaps should be 21.3MB in vram regardless of if it was encoded in Unity or nvtextools
is the Texture memory stat the same for both avatars?
2K PNG | 2.8 GB VRAM | 10.75 Download | 33.33 Texture Memory
also, textures are not PNG's when they are uploaded to VRChat. when you import any texture into unity (besides .DDS), it gets completely reencoded into a more GPU friendly format like DXT or BC7 to name some. the original file type is irrelevant
you just want something that doesn't do lossy compression
2K DDS | 2.7 GB VRAM | 9.73 MB Download | 26.67MB Texture Memory
yea it just sounds to me like you didn't generate mipmaps
2K TGA | 2.8 GB VRAM | 11.18MB Download Size | 33.33 Texture Memory
A 16-bit 1024x1024 .JPG image requires 2.4 MB of graphics card memory.
The same image stored in .DDS format using BC7 compression would require only 630 KB. So you could use almost 4 x 1024x1024 .DDS textures for the 'price' of 1 .JPG texture.
The advantage of using .DDS textures for your materials is that this file type makes it possible to reduce the amount of memory that textures use by lowering the quality a little. This is useful if you're trying to cram as many textures as possible into a limited amount of graphics card and system memory, and is especially suitable for organic/nature textures where precision is not vital.
PNG or JPG images are smaller, but are actually quite slow to decode, and way slower to compress into a GPU friendly format if that's possible at all. So reading a PNG from disk into memory might be faster than a crunched texture, but the crunched texture be in a GPU friendly format ready to be used, and likey even uploaded to the GPU, before the PNG has even finished decoding.
TGA being a uncompressed format with more color data plus alpha maps all being stored in a single file allows for better memory management
if you import a texture into unity as a PNG, it gets immediately re-encoded. the version of the image included in the avatar assetbundle is not the original, but the "imported" one that is stored in a container file like DDS. the filetype of the original image has nothing to do with the vram footprint, only the resolution and compression format used
indeed it gets re-encoded but you also have to see how different 2015 unity vs 2019
this isn't something that would have changed
When the whole vram size thing first started I came across a funny that pretty much had images with an alpha channel taking up double the vram in their game ready format, gotta specify when ya dont want it
yes, that is true. there are indeed many engine changes between versions, but how texture importing is handled is largely the same
Yep
if a texture has alpha, and it's set to normal quality, it'll use DXT5 (RGBA) which is twice the size of DXT1 (RGB)
DXT5 (also called BC3) is just BC1 + a BC4 channel tacked on
yeah i was trying to figure out why my testing was weird compared to others, they were just switching from normal to high quality on an rgb texture while i was testing on an rgba
yea, BC7 (default for High quality) is the same size as DXT5
Tips and guidelines for optimizing texture memory (VRAM) and filesize for VRChat creation.
^ great place to know more info
that is indeed a good resource I link people to often
@heady smelt either way, I'd double check that you really had mipmap generation on in nvtextools, otherwise you'd be exporting your textures without mipmaps which is a bad idea
there enabled by default i don't touch it
are you able to view the mips in unity?
I think it's a reporting issue on VRChat's end then
yeah
should still do it, it will get looked at eventually
got it
I can help push it
call it something like "Texture memory not calculated properly for DDS textures"
either way through, the texture memory should be the same regardless of the file type the image was imported as in unity, as long as the compression format, channels, and resolution are the same
When I am making animation for toggling a clothing that uses PhysBones, should I also toggle the PB Component (or the object that contain the PB) in the animation?
If your not using the component it's best to not have them on.
how are you supposed to atlas a texture? i tried using cats but it looks wrong
or rather it seemed to not do a job of creating a texture of every albedo
just the first one
even gettting an older version of blender to match the one cats expects does not make the texture look correct
before and after attempt
does cats only work on atlasing avatars? now im curious since im not even getting a file picker on that prop for said avatar
done it with objects, but mostly just bake them into an atlas
seems like cats specificly fails on this specific object
well i dont have other objects to try
You could always manually atlas. There're some tutorials on the interwebs
i guess
yo, I needa combine all 4 skinned mesh renderers on my model so I can get my avatar on the quest. what's the best way to do it?
Because using cats to fix my model fails spectacularly in ways I have no idea how to fix (weird blotchy shit all over my model textures no matter what I do) and doing it in unity costs like 30 bucks
combining meshes is just ctrl + J in blender
you don't need add-ons for that
what you might want add-ons for is reducing material slots
the dev version of cats works with Blender 3.x FYI, though I agree with others, I don't use cats for this, I'd just bake textures into a new combined UV map.
i know thats the one i meant
i guess i will try to do the job manually
even though its like so many maps i will need to fix
matalic etc
Check your uv maps. This tends to happen when an object has multiple UV maps
Make sure the uvmap names match exactly
After turning my normals into an atlas, some of the clothing now has a weird blocky look to it now, anyone know what could be the cause?
nvm, it seemed to be due to the resolution on the normal map being low / got compressed when I did edits externally
set your normal map's compression format to BC5 for best quality
oh no that screenshot was from blender
ah
and it's because gimp had compression set to max for some reason lol
in that case it looks like the color space is set to sRGB and not Non Color
maybe, either way I got it fixed somehow lol
Hello, I **really **need help with the textures of my avatars, please.
Could someone tell me how to make a texture look good without losing quality but with reduced size and texture memory? I've tried every app to reduce the size of my textures (diffuse, normal, and so on), but the results always look very bad.
Please, I need useful tips!
vram checker dxt1 - dxt5 -bc7 (lowest to highest) , easy way to check entire avatar what its using - then change it to see difference https://github.com/Thryrallo/VRC-Avatar-Performance-Tools
I'm not sure what you mean by "used every app to reduce size", but anything* you do outside of unity will not do anything. you should import the highest quality version of your textures into unity, because the textures get completely re-encoded based on the import settings you choose.
you should give this guide a read, but I'll try to outline the most important things https://www.poiyomi.com/blog/2022-10-17-texture-optimization
Tips and guidelines for optimizing texture memory (VRAM) and filesize for VRChat creation.
- when judging quality of textures, stay a few feet from the model. getting too close is not an accurate representation of how others will see you.
- #1 thing to do is to lower the Max Size (resolution) of textures. 2k -> 4k might look like you're only doubling the size (because 4 is 2 * 2), but it's actually four times the amount of pixels.
- if you have any textures with alpha, set it to High Quality compression. it'll be the same size in vram, but will result in drastically better results. any texture with smooth gradients should also be High Quality.
when optimizing a texture, do this:
- lower resolution a lot. if it's 4k, go down to 512. if you can go lower, do it.
- if it looks bad (remember, judge from a distance), first try using High Quality compression on it. if it still looks bad, go back to Normal quality, and turn up the max size by one step. repeat this process until you find a decent middleground
I meant that I reduced the size externally not in Unity, but I did not knew that
Thanks a lot for the tips, but should I use Crunch compression?
Crunch will only work on Normal quality textures (DXT1/5), not High quality or other modes. it also has 0 effect on vram usage
Crunch is an additional, lossy compression applied on top of the existing compression done to make it GPU friendly. crunching/decrunching happens on CPU, which can cause a lag spike when loading in if you have a lot of crunched textures. the point of Crunching is to reduce download size, but how much it helps depends on how low you can set the Quality slider, and how much detail the textures actually contain
Ok so I don't have to touch the actual texture but I have to set what it is best on Unity only, did I get it right?
when you import any asset into unity, like a model or texture, Unity will process that asset and store a copy of it in its Library folder. the original asset still exists under Assets, but that's not the one that actually gets used in the project or in the content you upload
for textures, all that matters is how you configure the import settings in unity, you don't need to do any kind of downscaling outside of unity
Ok crystal clear, I'll try everything you said and I'll follow the guide in the links, thanks a lot!
One last thing, how do I check if a texture has Alpha channel?
click on the texture in the project window, and look at the inspector. in the bottom you see a preview of the texture, where you can see the channels (RGB, R, G, B, A), and a slider to go through mipmap levels (another thing, never turn off mipmaps). if you see RGB, R, G, B, A instead of RGB, R, G, B, you have alpha*. you can also click that little A to see the alpha channel, and see if it's anything other than pure white
(*High quality textures using BC7 will always have an alpha channel, no matter what. it doesn't matter though, BC7 is smart and allocates bits depending on what information each 4x4 block of pixels needs, so no bits will be used on alpha if it's not needed)
Okay thanks!
do you have any kind of masks, like things for metallics, smoothness, emission mask, etc?
Ignoring VRC's Avatar ranking system; Which is more optimized?
Multiple Skin Mesh Renderers for clothing that can be toggled on and off
OR
All the clothing merged into one skin mesh renderer that uses shape keys to 'toggle' the clothing on and off (shrinking it into the mesh)?
absolutely different meshes. if you shrink something with shape keys, not only are you still doing armature deformation and running the shaders, you're also adding shape keys skinning on top of that
there's also an in-between option, bone scaling and shader based methods
by shader based I mean like Poiyomi's UV Tile discard
with disabled meshes, not only are you not rendering those meshes at all, but the associated assets like textures don't need to stay in vram
I see, thank you, I was about to make that mistake
another thing to consider, are those things you want toggle using the same or different materials?
In some cases they use the same one ( Bought asset ) across multiple meshes and I thought I'd be able to get the mat count down by putting them together
this is where it gets a bit complicated. ideally, you'd want to combine them to reduce draw calls. to keep things simple, draw calls = meshes * materials
regardless of if it's the same material
how often will all things using the same material be visible together?
So in which case, would utilizing things like CATS to take all the clothing down to one material, and one Skin mesh renderer; would that outweigh the shape keys vs just hiding the mesh?
I'd imagine fairly likely, though I'm thinking to just force it to an 'all or nothing' toggle since it's essentially the same thing
is this for just PC or for quest too?
Ideally both, but the Quest version can't even render it correctly due to the shaders not supporting alpha channels as far as I'm aware
I'd like to keep it in so that the user knows if it's on or not, and maybe substitute the material for something similar ofc
quest avatars can't have transparency or custom shaders
Right, which is what I mean by substituting the material for one they can use, so the Quest version would look a bit different, but the same rules apply
if it's something like one outfit that can have parts of it toggled off, but it's all using the same material, using Poiyomi's UV Tile discard is probably the best option
I will say that if a world is using SSAO, it won't work well with UVTD
but it's rare
basically my rule of thumb is that you should make sure the outfit looks fine when all pieces are shown, aka when nothing is discarded
Though this shader isn't Quest supported, I assume? Which method would be ideal for the Quest variant?
Currently, I force toggles if someone say, turns Shorts on and they've already got Jeans on, it'll turn the Jeans off automatically
for quest, in general you should just avoid toggles as a whole if you're worried about performance. for simple things like props, bone scaling toggles work
but if you're not worried about performance rank, mesh toggles are probably the best way
the ranking system will hate you for it though lol
One more thing, if your avatar has Shape keys that you're not even using at all, do they still impact preformance?
they impact VRAM usage and download size
so if you have a lot of them, your mesh will be pretty bloated
I don't use VRCFury for much, not a huge fan, but one feature of it I do use is the Blendshape optimizer
it'll get rid of any unused shapes on upload
I have VRCFury, where do I access this feature? The avatar I'm working with comes with a TON of shape keys, and I use like - 4 tops
Add a VRCFury component to the root (so above (the parent of) the body mesh and armature and it is one of the options.
And that is all that needs to be done. If your avatar has MMD blendshapes make sure to check the toggle to keep those.
So when you say root, would the same exact location as the Avatar Descriptor work?
yes
Yes I have, is there a different method to use for them or Normal maps?
That is the root of the avatar.
And it would have been a better way to describe where to put it.
if you have multiple masks, channel packing them into fewer textures will greatly help too
I'm sorry, what do you mean by packing them I to fewer textures?
you can fit four different black and white (or gray-scale) masks into a single texture, by using the four different channels (R, G, B, A)
Ok, thanks for the help, very appreciated π
The avatar I'm working on has Horns on it's head, I want to create a radial for selecting different pairs of horns
They all use the same material and are static meshes.. Is there a way to combine these so I'm not stacking material slots? Mesh renderers don't seem to be able to change in animation
This needs to be quest friendly, so special shaders are off the table
join them into the same object into Blender (or similar)
I'd need to toggle them on and off seperately, would that still be possible?
weightpaint them to bone each, shrink it to 0 to hide - 1 to show
Static meshes can be weight painted to armatures?, are they also able to use shape keys?
nope if you were to give them weight painting that would become a skinned mesh renderer
So in this case, would it be better to just have a lot of materials and static meshes that use that same one material
Or go with the skinned mesh route?
OR; can static meshes use shape keys and I can just have each design through shape keys?
static means static, you don't have per-vertex deformation
also can't use blend shapes as a static mesh
Glad I didn't go through that process yet to find out the hard way; So in this case do you guys think one skinned mesh beats x amount of statics? Knowing only one static mesh would be rendered at any given time though
Why is my avatar rated as medium? I mean, it is pretty big, but it's only 20 polys!
the orange statistics
your overall perf rank will be your one worst stat on the avatar
if everything is Excellent, but your bounds are massive and counts as very poor, your avatar will be rated very poor
kind of a weird system tbh. they should find the average and rate it on that
yeah like if u ranked them from 1 - very good to 5 - very poor then got the mean my avatar would rank 2
not counting unranked
not every stat is equal, for example bigger bounds doesn't cause worse performance*
(*heavy shader effects may be worse depending on % of screen space)
and not everything will have the same effect on different computers
true
i think vrchat is still in beta tho so they'll probably think of a better ranking system when its finished
eh u never know
the only time it would probably be "finished" is when they stop updating the game completely for whatever reason
Thinking abt it, no modern software or game ever finishes, and if they did want to finish cuz they have all features they can offer already, unless all operating systems, firmware, and APIs stopped being updated and no new hardware would be planned to be released on the future, they'll still have to update it for compatibility
It's all an endless circle 
just resize the avi till it's inside the bounds, then use the in game avatar scaling
did I do something wrong along the way, or is this just something I have to account for? The bounding box of my meshes remains at their starting location, instead of following the mesh or the bones it's attached to. If I physically walk too far from the center of my playspace, or use OVR to manually rise above this bounding box (especially an issue when the avatar height is shrunk down and I've adjusted to be on top of furniture or somebody's shoulder and such), accessories or my whole body will start to vanish, because the bounding box is out of their view.
Edit note that this box surrounds the character while in tpose, but it doesn't move down when it goes to the neutral pose during previews. It carries over this behavior on upload, so I need to take things like glasses and give them the same massive box
should I be doing anything to combat/correct for this? I assume slapping Update when Offscreen on every mesh is rude as heck for people's performance
Edit the bounding box?
yeah, but they're asking if the bounding box should be moving with avatar, or if they have to account for it themselves by making the bounding boxes bigger
the solution I was given before was to just make the bounding box huge, which immediately makes anything list as 'very poor'
I have not seen people run into this issue to this extent before personally, but I'd need to see how the meshes are configured on the model. If it's a matter of being able to toggle things on and off, scaling a bone done might be preferable to avoid this problem
there's also the issue of scale. I think I can correct that so scale is 1 instead of an (automatically adjusted on import) 100 by setting my scene units to m instead of cm in blender, correct? I should eventually do that, but I'm so scarred by adjusting scales in max that I've been putting it off lmao
If you need to adjust the scale of anything, it should be the model scale settings themselves, in the Model tab of the asset in your files in Unity
afaik the 100 scale of meshes themselves is standard and the same from Blender exports too iirc
And the reason I seem to be running into this issue more is a weird specific niche case, I'm sure- my circle used to run with smaller avatars, and hold parties in an old venue that's basically like a 5-8 ish person small rooftop patio/bar, but as they host 30+ people regularly, everybody scales down to sub-1-meter and hangs out on the huge furniture, often using OVR to lift up so they're on top of the bean bag chairs or whatever. If you make yourself particularly small, by the time you reach the chair, the above bounding box is presumably left well below you, as it's still the root position of your vr space I think. So, unless someone also happens to be looking down at the box, parts/all of you starts flickering out of existence where your body is.
I think the solution I'd be looking for is tying the bounding box to the player hip instead of the root? But I'm unsure if that's hard-coded into vrc, given there's no value exposed for it in these settings
I've been advised that just increasing the scale should account for this, but bringing the bounds of any mesh up to 0.025 or so results in it yelling at me that my avatar is over 5 meters and marks it very poor quality. Not cool if I plan to release it, I suppose it'd be better for the end user to make that decision hmm
Scene units in blender are meters by default.
However, when exporting an fbx, the default export setting is to rescale everything to the default fbx unit scale, which is cm.
You can change the export settings to adjust the fbx unit scale, but many people forget [including a bunch of those who make base-models]
But if you reexport over the existing fbx model with that change, it will break the humanoid avatar.
I'm making my first base, so that's important to know lmao
Because unity doesn't regenerate it
also oof. Not too hard to fix that, I've broken it more times than I can count by re-exporting without the skeleton on accident
In effect, it'll look fine, until any humanoid animation starts playing, at which point eh avatar will collapse into a ball
The fix it to change the rig type away from humanoid, hit apply, switch it back to humanoid, and then redo any of the bone/muscle setting-adjustments the model had before
Not to mention any animations made in unity that directly set transform positions or scales will have to be rescaled
Oh, and any already set up constraints may break due to offsets being off by a factor of 100
the bounding box is relative to the root bone defined in the skinned mesh renderer. usually that would be the hip bone as that is roughly on the center of your avatar. if it is set to something else try to put the hip bone in there.
so i'm planning to world anchor some props, but my avatar is Medium (or better) except for bounding box. is the only way to satisfy VRChat to scale my avatar as small as possible then avatar scale in-game to get back to proper size?
Have props shrunken by default and animation resize them
Side note: bounding box doesnβt affect auto auto show and hide based on performance rank
ahh that's good to know, also animation is a good idea. trying to make it so the most amount of people will have the avatar shown
The bounding box goes to the minimum of the biggest object you have whether or not its shown
Which includes an object being moved away from the origin of your avatar
With Unity 2022 it's no longer better for optimization to use a different mesh for your head, right?
yes they got rid of the blend shape bug so having less draw calls should be better?
Does anyone know the actual overhead of using final ik components like grounders, Fabrik, limb/aim ik?
Is it as significant an impact as constraints???
You can adjust your bb size iirc
yes and no
you can edit them but then run into the issue of stuff not rendering when its supposed to be rendered
there is also the issue of each object having their own bounding box which then gets calculated all together into a bigger bounding box depending on the location of said object's bounding boxes
Does VRchat support LOD's?
As in having the ability to have a low poly version of your models display when far away.
on worlds yes but not avatars
Ah thank you
Unfortunately, it would not do much for avatars. Often LODs are good when you are compute limited. But because vrchat is often recourse limited all it would do is add to the problem.
Worlds are different because they are the reverse of avatars.
The closest thing is the display range (forgot actual name) people can set but thats a vrchat thing and not avatar specific as you would just turn people into diamonds
real
So I have a project in front of me where it has outfits with a lot of components. Meaning a lot of material slots.
Is it better to create blendshapes to hide them, or deal with separate skinned mesh objects and mat slots with toggles? I've heard stories where going either route is bad and to just go with the other one.
The best approach right now is to move them to separate bones and then scale those down
Moving clothing items to separate bones when I'm using the one armature seems.. odd..
especially for attempting to keep bone count/transforms down and under the acceptable limits. Doesn't make sense to have several duplicate humanoid armatures under one avi
also as i understand it, wouldn't that require each bone to have a constraint to parent motion to the body armature?
Will this outfit practically always be used?
If it will be then it should just be part of the avatar, joined to the main mesh, which I guess would be the blendshape approach.
If it is just one of the options and isn't always going to be in use, then make it a separate avatar (which I suppose means that if you really need it to be part of this avatar, then have it be a separate skinned mesh).
No matter, the best approach is to just not have the option and leave it as separate avatars.
can you be a little more concise ? what kind of components and how many outfits are we talking about etc? because getting the material count down is one of the most important things. and there are several ways to deal with toggleable objects. you can as feilen mentioned add one bone to each object. which will make unity create it as a object. which you can then toggle the scripts/components on/off however it wont be able to remove it from being rendered. you have three options. A - Which is still considered a bad choice. use blendshapes for each. B - use Uv Discard to control what is being rendered. - C - the worst option. keep everything as is but performance will be hit heavily.
the best approach to a problem like this is. add a bone to each object. then change the UV to be able to do uv discard, then merge everything. and finally convert materials into appropriate atlases. you kinda want 4 materials max. anything over that isn't to good
I have an outfit set that came in 5 components and have been requested to add it to an avatar. I can reduce it all down to 1 material slot and 1 skinned mesh object, and create corresponding blendshapes to hide it
and while this doesn't stop it from rendering, this method would kill multiple drawcalls and save texture memory by removing extra maps for all these various components.
while technically not the best methodology i believe it's the least i can do to improve performance, going from 5 materials and 5 skinned mesh objects to 1.
use uv discard instead of blendshape
Isn't that only useful to keep performance rank down? Since you stull gotta render it so it takes up performance
Maybe i'm wrong but if it's opaque, all occluded polygons are discarded by the depth test
(but it's my assumption)
Kinda the point of av3 to be able to do multiple outfits though. It's kinda meh having to swap avatar constantly. But obviously don't have the entirety of booth on your avatar. Keep it reasonable.
I currently have 17 different designs controlled by shaders on my avatar via matswaps
All only a whopping 30MB texture memory
Ah that's stuff that unfortunately exceeds my knowledge
I can't tell much about meshes. I'm rather a shader person. I don't do blender etc
Maybe it's the case because it would only need to draw the screen once, in difference of transparency which needs to redraw everything
These realtime graphic renderers are usually programmed to be as performant as possible
That's why the skybox is actually drawn after the opaque geometry and not before
Is this number given by the sdk or by a 3rd party tool?
17 materials is quite alot for a single avatar
It's material swaps. So for SDK it's only a single material
And technically it's far more than 17. Since some designs require the change of eye mat and bracelet mat too. Though for SDK it's still only a count of 3 materials
But that specific folder in my unity project has more than 30 materials in it
Little bit older image so it's not completely up to date but that's how it is basically
All
performance rank
Also do have a
version simply cause it has GPU particles
But if i would split that with the image above in different avatars I would have well over 100 different uploads for all colors with
and
version if i want to update my Public avatars
Essentially what I do
I'd love to see what the vram for this mat swap avatar is on something like Thry's Vram Calculator. I'm sure the sdk says it's 30 but I wonder what it actually is.
I checked and it's 60MB including meshes
if the 17 mat swaps is 30 then what does the sdk say it is?
SDK counts all that as 3 materials max
i meant like, texture memory.
sdk is counting slots over material count after all
Oh yeah it says 30MB
then you might want to run the avatar through Thry's again. The sdk doesn't count textures from mat swaps but Thry's does
Well yeah in thry it's 60MB including the meshes
what was it without the meshes?
Mesh is around 12 MB so 12 MB less
Maybe i can find an image
I'm not at home right now but I posted these stats in servers
I see I see, sorry for the ramble then.
Max of 2k but nothing above
Some textures are only 32k
I wonder how vrchat actually even calculates it
Since it doesn't even fit the narrative of it counts it with no mat swaps
My fallback without all the matswaps is far below the 30MB
But i have some additional things on my avatar like some render textures too
I imagine it checks for renderers; mesh, skinned, particle, trail... and then gets guid maybe? checks size from that but misses materials in animations... i don't really know how it all works in general
It doesn't include meshes at all
yeah but, mesh renderer is a type of renderer that holds materials
like all the others listed
Ah yeah thats what you mean
i wish it counted mesh memory
Also
at least an estimate
It's pretty inconsistent in what it reports
The server side perf check has different results than the client one lol
49k poly w/ 900 blendshapes. No way to see this in game
Can't wait for gpus having 269,36GB of vram
I might have to make another avatar to just prove a point. Some smol character that's like 6gb vram but the rating says it's <1mb texture memory
Also
When unity 2022 sdk releases
Be prepared for 16k texture resolution
People surely gonna use that like they already throw 8k at everything
oh I didn't even know... uh oh
eh u cant really do material swaps without it costing anything. and even then you still have 17 materials. since it all needs to load in at runtime even if the sdk only sees 1 or 3 its still 17. so whatever your doing is most likely something the sdk does not count in or it might just be a bug
eh. you cant have 17 materials without 17 slots.
Sdk doesn't count it cause it does not affect performance whatsoever besides more vram usage and download size. If your entire avatar would be 1 material and you would have 200 mat swaps, it would still only be one material slot. So only one material can be displayed at all times
And no
Mat swaps don't need more mat slots
It simply changes what material is in the current mat slot
material swaps require more slots lol. you cant have 17 materials in one material.
Yes you can, entire point of mat swaps
it's called a 'swap' because you exchange one material for another
My avatar does not have more than 3 slots
within the same slot that is
which still requires 17 slots. your avatar may have 3 only but those other 14 has to be stored on another object. with a mesh render
you're not disabling/enabling objects, you can animate what material is assigned to each renderer's element.
If im home i can show you it does not need more slots
all 17 materials with all assigned textures are uploaded and stored but it'd only render one at a time as only 1 is assigned at any given time
which still requires 17 slots. a animation that swaps them still needs a object it comes from.
maybe the word slot is getting mixed up here
a material requires a slot in a mesh render
if you want to swap a material
you need another object that stores that material you wish to swap from.
since the animation it self cannot hold a material without a reference from where it comes.
there, that, you don't need another object to store the material
it isn't so. There isn't a need for another obect or another slot to store it
the materials are uploaded and the files are stored but you don't need to have it actively referenced anywhere
you do
if you dont assign a material to a slot somewhere on the avatar or any child object
it wont be uploaded.
since it does not exist on the avatar
or any objects that it hold
It just changes whatever material is referenced in the slot
it does, try it out.
Upload a cube with a single material slot that has a red material, make a material swap animation to change to a blue material and upload it. When toggled it'll change to blue
a animation requires a object to change from.
I do this stuff for 3 years already, i definitely know how it works
nothing outside the avatar is uploaded lol. never has done that
You simply put in a animation saying change slot 2 on this mesh renderer to this material and that's it.
it's been like this since even 5.3
try it out
I'm sorry but you're wrong
eh no
yep, been doing this since early 2018, so like almost 6 years
Try it out before discussing any further since you don't know what you're talking about right now
mate..
matswap dont count in vrchat
the textures aren't counted in texture memory, but we mean matswaps in general don't need the material to be actively referenced on a mesh to by used in an animation
Yeah and he thinks it requires additional material slots on the mesh renderer for every mat swap lol
it does how are you otherwise going to reference it
the discussion is that they do else the animation can't use them
Per Animation
any material in fx animation will be uploaded 
have one av wich say 1 mat, its actually 6 matswap when moving the slider
My entire thing about my avatars main feature is essentially mat swaps since 3 years. Always has worked that way
You're not gonna prove me wrong on these 3 years of experience
In fact i can show you per video how it actually works if I'm at home again
Currently at work
1 material / swaps
Or he does it
show where the materials come from.
Show how it changes mesh renderer lol
quite old av, somewhere
you know i stand defeated. your right. i guess i always did it wrong then lol
did not know that any materials in the animation would be uploaded and actually well do what it does.
ye, problem is, those textures then aren't in texture memory
well, the perfermance rating
that is
i do wonder what the cost is then. considering it has to redraw everything
and do another drawcall for it
The cost is mainly more vram usage and download size
But the amount of drawcalls is always exactly the same
Unless the shader does more expensive things
yeah that
think it goes into ram when not used, shown back to vram , the old mapswap one just break vram calc
So yeah it's not entirely free
what version is this?
But can be very cheap depending on what you do
1.3.2 vram calc
Update it
it is
and that's the avatar root or another object?
'casue I think it's doesn't show if you plug in the mesh's object but does if it's the avaatr root
also i never really knew that everything in the animation in vrc would be uploaded. guess you learn something new all the time huh
same one just updated
I can most likely reduce my vram usage even further
shove anything that uses alpha on its own atlas/bake you can get vram pretty low , i use that + 1 4k with everything else
