#avatar-optimization

1 messages Β· Page 14 of 1

spring sun
#

then use blendshapes

#

to hide the certain parts that need hidden

ripe shore
#

won't help me with polygon count

spring sun
#

that is a lot of polygons that can be cut down

stray tangle
#

yikes yea that probably needs a retopo lol

ripe shore
#

sorry I just realized that had decimate on

#

one sec

stray tangle
#

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

ripe shore
#

face is a seperate mesh so no blendshapes in use

#

body is mostly solid texture so I don't mind unwrapping and fixing that

stray tangle
#

I could even re-use the body I made for my friend's orc and just shrinkwrap it to your body emoji

ripe shore
#

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?

stray tangle
#

no, I do it by hand

ripe shore
#

oh well then I'd feel bad

stray tangle
#

and yea I could potentially do that for you

#

currently playing sea of theives with friends lol

spring sun
#

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)

stray tangle
#

and UV unwrapping

ripe shore
#

polytool is great but I'm just running into lack of geometry around the joints

spring sun
#

cut geometry everywhere else that will never commit bend

#

put more in the inside of the join than outside

ripe shore
#

body's already only 18k tris

spring sun
#

to be fair

ripe shore
#

I mean, could cut more honestly

spring sun
#

thats not that bad

ripe shore
#

the main problem is hands and feet -- I am kinda tempted to just put socks over the feet and delete the feet

spring sun
#

does the toes ever bend?

stray tangle
#

going to be funny when you put swim shorts on the avatar and you go swimming with socks

ripe shore
#

nope

spring sun
#

then you could probably just cut down the toes to the bare minimum

ripe shore
spring sun
#

oh god

#

socks with crocs

ripe shore
#

nah, it'd be just a solid skin foot inside the croc

spring sun
#

just

#

commit mannequin foot

#

who needs toes

ripe shore
#

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

spring sun
#

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

ripe shore
#

oh damn blendshapes would work

spring sun
#

idk why but I instantly thought of this part of a video and quickly made a gif

ripe shore
#

@stray tangle wait, if I have the original untouched high poly body mesh would it even need re-topo'd?

stray tangle
#

I mean you'd probably want to retopo that one and then bake the details

ripe shore
#

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?

stray tangle
#

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

ripe shore
#

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?

stray tangle
#

Shrinkwrap projects the whole mesh the modifier is on to the target mesh

#

(you can use a vertex group to mask it)

ripe shore
#

when you say a single quad do you mean a plane?

#

hold on, trying it on my own rq

stray tangle
#

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

ripe shore
#

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

stray tangle
ripe shore
#

it's mirroring the plane into itself

stray tangle
#

you likely moved it in object mode, not in edit mode

ripe shore
#

was wondering why it didn't seem even and then realized I was working on decimated geometry

stray tangle
#

go back to object mode and do ctrl + A > all transforms

ripe shore
#

done

#

didn't realize there was a difference -- I guess that's why clipping and merge is on

#

okay cool this seems doable πŸ™‚

stray tangle
#

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

ripe shore
#

oh I should've used a subdivide modifier

stray tangle
#

triangles, when subdivided, become 3 quads

ripe shore
#

let me fix that

stray tangle
#

and pentagons become 5

ripe shore
#

should it look like this?

#

well, easier to see like this

stray tangle
#

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

ripe shore
#

is the goal basically just not have anything clipping thru the mesh? (know it won't be perfect but)

stray tangle
#

try to use as little geometry as possible, and add more using loop cuts or knife cuts where needed

stray tangle
ripe shore
#

should I be using simple subdivision instead of catmull-clark? simple results in a square, catmul clark looks odd

stray tangle
#

I'd use catmull clark, it will look fine once you have more geometry

ripe shore
#

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

stray tangle
#

just delete faces and remake that part

graceful condor
#

yeah

#

remember to have clipping enabled

ripe shore
#

alright, looking like a solid starting point πŸ˜„

#

Onwards!!

#

how do I use face snapping?

stray tangle
#

magnet icon, top middle opf viewport

ripe shore
#

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

stray tangle
#

it looks like you're adding too many edges

ripe shore
stray tangle
#

I see

ripe shore
stray tangle
#

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

ripe shore
#

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

spring sun
#

dont you just love decimating polygons and it gives your hair poofy curls

ripe shore
#

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

ripe shore
#

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

stray tangle
ripe shore
#

hmmm

stray tangle
#

I'd worry more about the loops around the shoulders, neck, etc

ripe shore
#

I'll dissolve em, thx

stray tangle
#

also, keep track of how many loops you have around the limbs

#

and remember that subdividing will double it

ripe shore
#

how many should I aim for around the limbs?

stray tangle
#

so if you have 8 edges around the arm, you will have 16 when subdivided

graceful condor
#

reference :3

ripe shore
#

does that deform well ingame?

stray tangle
#

yea that topo is good, but a little high for my liking

ripe shore
#

I guess I can just look at my old mesh too

graceful condor
ripe shore
#

I can't imagine that would deform well but maybe I'm wrong

#

hmmm

graceful condor
#

looks like itd be alright to me

ripe shore
#

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

stray tangle
#

you should just follow the pecks

buoyant holly
ripe shore
#

alright -- just gonna delete that part

buoyant holly
heady smelt
#

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

graceful condor
#

yeah pretty much

ripe shore
#

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

heavy knot
#

You’re changing the order it runs in, so I’d say yeah

calm spade
ripe shore
#

getting there I think

#

exciting seeing how little triangles there are πŸ˜†

calm spade
#

Triangles are your friends

digital thistle
#

unless you want clean loops

ripe shore
#

friends don't often make me want to throw my computer out the window πŸ˜†

digital thistle
#

they shouldnt. triangles can be useful

stray tangle
#

when subdividing, triangles become 3 quads

calm spade
#

"Your model should only have quads" is the most harmful thing I even learned when I started out

digital thistle
#

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

calm spade
#

Triangles are lifesavers, and your model will be triangulated on export anyway, so make good use of them in correct places

digital thistle
#

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

graceful condor
#

retopo's like a puzzle imo

#

super frustrating, but also super rewarding

digital thistle
#

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

ripe shore
#

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

digital thistle
#

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

ripe shore
#

yeah, it happens Β―_(ツ)_/Β―

#

pretty happy with how this is coming out, I can see why people enjoy this part (smooth shaded)

stray tangle
ripe shore
#

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

stray tangle
#

or Space

ripe shore
#

oooh

#

I guess I should do for legs too then, space them out more evenly

stray tangle
#

then select every loop around the torso and use Relax

calm spade
#

EdgeFlow is my favourite addon, please look into it prayforspruggis

#

(looptools is also great)

ripe shore
#

oohh that looks useful

#

are there keyboard shortcuts to switch between vertex, edge and face selection modes?

graceful condor
#

i didnt know it until recently either

#

its sped up my process so much

ripe shore
#

that should be on the tooltip lol

#

thank you so much

graceful condor
#

np :3

calm spade
#

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 cryingrn

graceful condor
#

rip

ripe shore
#

I just started blender very recently, been no life-ing it

calm spade
ripe shore
#

oooh interesting, that's a first

heavy knot
#

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

ripe shore
#

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

calm spade
#

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 cryingrn

#

Ah yeah it does, I used it yesterday

ripe shore
#

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

calm spade
#

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

ripe shore
#

you can get it to do so much previously denied stuff by just telling it it's a fictional play, it's kinda funny

ripe shore
#

Were you using OpenAI or Bing?

calm spade
#

OpenAI

#

That was almost 6 months ago now damn, time flies

ripe shore
#

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

graceful condor
#

ill have to look into that

ripe shore
#

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

graceful condor
#

oo nice

ripe shore
#

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

ripe shore
#

this was the tutorial btw -- actually surprisingly good, wanted to post it before I closed it out

heady smelt
#

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

stone prairie
#

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

calm spade
#

Yeah of course, those are called twist bones catthumbsup

stone prairie
#

But if unity lets me upload it, than perfect iris

calm spade
# stone prairie

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 sweat

stone prairie
graceful condor
#

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

ripe shore
#

Damn retopoflow looks good

#

I'm gonna have to try it tomorrow

graceful condor
#

retopology more like retopo oh geez

digital thistle
#

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

heady smelt
#

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

graceful condor
#

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

stray tangle
#

could try adding an unapplied decimate modifier to the high poly mesh

graceful condor
#

yeah

stone prairie
#

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

stray tangle
#

you can tweak constraint weight to get the look you want

stone prairie
#

Ty vrcHappy

stuck mist
#

Note to self: Be careful while using polytool..

spring sun
#

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

ripe shore
#

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

stray tangle
#

green would be a better spot imo

ripe shore
#

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

graceful condor
#

guys looklooklook

ripe shore
#

huh

heady smelt
#

I bet you don't know

graceful condor
#

i just shared the gif bc i thought it was helpful

heady smelt
#

I don't either I was hoping you knew

ripe shore
#

ill try it lol

stray tangle
#

you don't want to use the exact same topology as in that image

ripe shore
#

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

stray tangle
ripe shore
#

oh well that's straightforward enough

stray tangle
#

pentagons are your friend when doing subdivision

ripe shore
#

I can just totally delete the triangles in the back then

#

not quite same but

stray tangle
#

you essentially have two knees in that image

graceful condor
#

yeah

#

i was about to say

#

should do it down the middle there

ripe shore
#

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

stray tangle
#

you will end up with weird topology and it won't help you

ripe shore
#

correct as usual

ripe shore
#

think it's just the weights and not the geometry?

stray tangle
#

for the most part it's the weights yes

#

also, you should intend for the leg to clip to some degree

ripe shore
#

oh my joint is like in a weird place too, I think that's why auto weights are messed up

stray tangle
#

auto weights won't work very well, but it is a starting point

ripe shore
#

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

stray tangle
# ripe shore

you should try to concentrate the geometry a bit more to the knee, and maybe add an extra loop

ripe shore
#

I'm not 100% convinced I had subdivide on looking back at that

#

sec

stray tangle
ripe shore
#

nevermind then

stray tangle
#

or at least, you did not apply it

#

you should do your weight painting after the retopo

ripe shore
stray tangle
#

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

ripe shore
#

okay yeah it was I'm dumb lol

#

it was with modifier applied

#

I just undid it all to see

stray tangle
#

I see

ripe shore
#

I'll add 2 more loops

#

this looks weird

#

I guess it'll be stretching, may add another line for the outermost center ones

calm spade
#

You should follow some topology guides, it'll be easier

stray tangle
ripe shore
calm spade
ripe shore
#

ah look at that, didn't even have it in my channel list

waxen estuary
#

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 πŸ€”.

waxen estuary
#

And I did just that. Hopefully it all works now.

stable sage
#

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

heady smelt
marble rain
ripe shore
#

and a couple others really

waxen estuary
ripe shore
#

@waxen estuary

#

this is my entire jacket texture

waxen estuary
ripe shore
#

then I just added some generic fabric normal map to it to add very fine detail

ripe shore
#

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

waxen estuary
#

probably could.

ripe shore
#

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

azure vector
#

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.

ripe shore
#

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

azure vector
#

Or should i just make a whole separate unity project for a pc and quest upload

ripe shore
#

I just have 2 prefabs added to my scene, one with quest materials and one with PC

waxen estuary
# ripe shore

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.

#

πŸ€”

ripe shore
#

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)

azure vector
#

I know, but i was wondering. If i make both of them, will they use the same mats and textures and meshes.

ripe shore
azure vector
#

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

ripe shore
#

I used to be terrified of editing the UV directly but its actually really easy if you're in face select mode

azure vector
#

Do di make de duplicate

#

Yea

ripe shore
#

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

waxen estuary
azure vector
#

Now its time to figure out specular highlight on fur via texture maps

ripe shore
ripe shore
#

so for my shoes I could totally get away with a 32x32 texture for the entire thing

waxen estuary
#

true

ripe shore
#

then just normal map on a fabric

waxen estuary
#

or just map most of it to color nodes and use normal maps for it all?

ripe shore
#

most of my entire body is a solid color too, so that could be crammed really small

#

wdym by map to color nodes?

waxen estuary
#

as in rgb nodes

#

in blender

ripe shore
#

you could, but that'd require different material for each color

waxen estuary
#

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.

ripe shore
#

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

waxen estuary
#

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.

ripe shore
#

wouldn't improve it at all over doing it manually but yeah

waxen estuary
#

Because there would be minimal texture size too.

ripe shore
#

also, download size for plebs like me stuck on DSL ❀️

waxen estuary
#

ye

ripe shore
#

nothing more fun than loading into a world and downloading 2 GB of avatars on a 20mbit connection

waxen estuary
#

Also helps keep quest file size way under 10 MB too.

ripe shore
#

for sure

#

yeah you should do that if you get bored

waxen estuary
#

Yeah I like to have my pc and quest models exactly the same if possible.

ripe shore
#

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

waxen estuary
#

Then I could have single project that I can switch between the configs on.

ripe shore
#

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

waxen estuary
ripe shore
#

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

waxen estuary
#

I wonder if say one could take a texture for which normal map was never made for and make one from it.

ripe shore
#

you can easily, you can also just tile the normal map over the material too

waxen estuary
#

(or in other words a way to keep the details on them while using the color option.)

ripe shore
#

my jacket normal map is 256x256

#

its tiled over the whole jacket

waxen estuary
#

hmm interesting

#

I wonder how the normal maps are used on the vram though.

#

or are they just a little like the shader stuffs.

ripe shore
#

same amount as reported in unity, basically nothing

#

normal map is a shader thing yeah

waxen estuary
#

oh

#

nice

ripe shore
#

my entire avi is 10 MB vram use, confirmed ingame

waxen estuary
#

the lowest I gone was like 8 MB before I switched the eyes and added the shoes.

ripe shore
#

also -- something to be aware of on quest, it doesn't really like 2k/4k atlases very much

waxen estuary
#

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

ripe shore
#

I crashed a friend of mine with a 4k atlas

ripe shore
waxen estuary
#

Hence why I am considering doing it on the base as well πŸ˜…

ripe shore
#

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

waxen estuary
#

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.

ripe shore
#

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

waxen estuary
#

yeah hence why I use save as instead

waxen estuary
ripe shore
ripe shore
waxen estuary
#

I do not like autosave at all

#

so I would change only the undo buffer instead.

ripe shore
#

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 πŸ˜†

waxen estuary
#

yeah πŸ˜…

ripe shore
#

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

waxen estuary
ripe shore
#

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

waxen estuary
#

yeah

ivory sluice
merry swift
#

paging to the rescue...?

ivory sluice
#

You mean virtual memory?

waxen estuary
ripe shore
ivory sluice
#

With a million grass particles w 10 children each

lavish dock
#

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.

radiant shadow
#

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

smoky trench
#

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?

graceful condor
smoky trench
#

I'm pretty sure the issue is my 130k poly shoes.

stray tangle
#

sorry, 130k poly shoes?

#

what the hell

smoky trench
#

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

graceful condor
#

open up the popup in the bottom left and lower the ratio just like the modifier

smoky trench
#

I'll check that out now, thank you!

graceful condor
#

np :3

fiery thorn
#

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)

spring sun
#

I dont believe there is another way other than just using a soundboard and playing the music through your mic

fiery thorn
#

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!

floral mica
#

matcombiner error? 2.93 lts nvm restarting fixed

tranquil glen
#

reduce polygons, skinned mesh, materials, bones. the usual routine.

alpine rose
#

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

sick timber
#

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

radiant shadow
#

Rindo uses physbone, so no clue where you got yours fromvrpill

spring sun
#

Whered you get the model may I ask

spring sun
stable sage
#

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

cold yarrow
#

70k and 15 mats are ok for PC medium, not Quest

zealous wigeon
# stable sage Hello, So im trying to make my avatar crossplatform to atleast medium rank, Here...

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.

heady smelt
# stable sage Hello, So im trying to make my avatar crossplatform to atleast medium rank, Here...

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

stone prairie
#

Opinions on the weight painting and topology?

calm spade
#

You should look up finger topology!

stone prairie
calm spade
#

There is no topology for where the finger phalanxes bend?

calm spade
stray tangle
#

otherwise you will end up really high poly

stone prairie
#

not applying, that would be bad

sturdy fossil
#

can always remove loops once the subdiv is applied

stray tangle
# calm spade

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

stone prairie
# calm spade

Oh, you know how to use triangles?
Please show me some readings about it, would love to propperly know hoe to use them

calm spade
#

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

stone prairie
#

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 vrcHappy

rose mountain
#

How can I make particles work on my avatar on quest?

heady smelt
#

Make gloves over hands always it makes life easier and ur hands are seggs now

#

Black gloves like link

junior brook
#

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?

calm spade
#

Insignificant catthumbsup

junior brook
#

nice! thanks!

heady smelt
#

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?

heady smelt
# heady smelt 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

heady smelt
#

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

waxen estuary
#

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.
sick relic
radiant shadow
#

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

glossy pumice
#

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

waxen estuary
glossy pumice
#

Ohh! Got it! The usual Unity shenanigan lol

upper veldt
#

Any way to make sure particles do not render in mirrors?

ruby isle
heady smelt
#

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 :(

stray tangle
#

you'll need to do some work in blender to cut that down

#

the first thing I would do is remove any additional accessory

heady smelt
#

crap- I have no idea how to work blender 😒

stray tangle
#

you will need to use it to do any kind of work on the model

#

Unity is not a 3d modeling program

heady smelt
#

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!

velvet crow
# heady smelt I’m trying to make this avi green and I’m struggling really bad πŸ˜” does anyone h...

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.

velvet crow
#

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

lapis prawn
calm spade
#

This topology KEK

stone prairie
#

And you used triangles too. Used them everywhere πŸ˜†

calm spade
#

I don't think those triangles were manually created, that's the difference

stone prairie
#

but the irony is there and it is funny πŸ˜†

river jay
#

I remember reading somewhere that someone said to use TGA files instead of PNG
because its better for VRAM usage?

Is this true?

radiant shadow
#

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

sturdy fossil
stray tangle
#

will be half the vram

sturdy fossil
#

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?

stray tangle
radiant shadow
#

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

stray tangle
#

the difference BC7 makes over DXT1 can make it look comparable to higher resolutions

sturdy fossil
#

i'll check that out rq, thank you. i'd figured it'd still be too low quality, since my texture includes the head

heady smelt
#

I'm new to this does anyone know how to help fix this?

heavy knot
#

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?

thin spoke
stone prairie
#

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?

spring sun
#

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

south whale
#

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

shy charm
#

Any tips when it comes to using CATS & it's decimation settings? Feels like I'm not using it to its full potential

modest oyster
#

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

stray tangle
#

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.

heady smelt
#

8K DDS Textures (2.8GB VRAM)

stray tangle
heady smelt
stray tangle
#

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?

heady smelt
#

2K PNG | 2.8 GB VRAM | 10.75 Download | 33.33 Texture Memory

stray tangle
#

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

heady smelt
#

2K DDS | 2.7 GB VRAM | 9.73 MB Download | 26.67MB Texture Memory

stray tangle
#

yea it just sounds to me like you didn't generate mipmaps

heady smelt
#

2K TGA | 2.8 GB VRAM | 11.18MB Download Size | 33.33 Texture Memory

heady smelt
#

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

stray tangle
#

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

heady smelt
#

indeed it gets re-encoded but you also have to see how different 2015 unity vs 2019

stray tangle
#

this isn't something that would have changed

heady smelt
#

2022 is different which is different from 2019

#

engine improves are made

proper grail
#

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

stray tangle
#

yes, that is true. there are indeed many engine changes between versions, but how texture importing is handled is largely the same

heady smelt
#

Yep

stray tangle
#

DXT5 (also called BC3) is just BC1 + a BC4 channel tacked on

proper grail
#

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

stray tangle
#

yea, BC7 (default for High quality) is the same size as DXT5

heady smelt
#

^ great place to know more info

stray tangle
#

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

heady smelt
stray tangle
stray tangle
#

I think it's a reporting issue on VRChat's end then

heady smelt
#

yeah

stray tangle
#

your usage seemed about the same

#

might want to make a bug report post on Canny

heady smelt
#

doubt it will be looked at XD

#

last time i made a post it wasn't even addressed

stray tangle
#

should still do it, it will get looked at eventually

heady smelt
#

got it

stray tangle
#

I can help push it

#

call it something like "Texture memory not calculated properly for DDS textures"

heady smelt
#

noted, ill post it here once i do that

#

lemme gather all my data

stray tangle
#

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

near elk
#

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?

tulip rose
#

If your not using the component it's best to not have them on.

humble atlas
#

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

humble atlas
#

even gettting an older version of blender to match the one cats expects does not make the texture look correct

#

before and after attempt

humble atlas
#

does cats only work on atlasing avatars? now im curious since im not even getting a file picker on that prop for said avatar

radiant shadow
#

done it with objects, but mostly just bake them into an atlas

humble atlas
#

seems like cats specificly fails on this specific object

#

well i dont have other objects to try

upper yacht
humble atlas
#

i guess

dark kettle
#

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

stray tangle
#

you don't need add-ons for that

#

what you might want add-ons for is reducing material slots

dark kettle
#

ah, see that's what I was afraid of

#

guess I'll do it the hard way

cold yarrow
humble atlas
#

i guess i will try to do the job manually

#

even though its like so many maps i will need to fix

#

matalic etc

willow dock
willow dock
heady dust
#

Make sure the uvmap names match exactly

fluid wadi
#

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?

fluid wadi
#

nvm, it seemed to be due to the resolution on the normal map being low / got compressed when I did edits externally

stray tangle
fluid wadi
stray tangle
#

ah

fluid wadi
#

and it's because gimp had compression set to max for some reason lol

stray tangle
#

in that case it looks like the color space is set to sRGB and not Non Color

fluid wadi
#

maybe, either way I got it fixed somehow lol

plush charm
#

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!

radiant shadow
stray tangle
#
  • 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
plush charm
#

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?

stray tangle
#

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

plush charm
#

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?

stray tangle
#

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

plush charm
#

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?

stray tangle
# plush charm 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)

plush charm
#

Okay thanks!

stray tangle
shy charm
#

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)?

stray tangle
#

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

shy charm
#

I see, thank you, I was about to make that mistake

stray tangle
#

another thing to consider, are those things you want toggle using the same or different materials?

shy charm
#

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

stray tangle
#

regardless of if it's the same material

#

how often will all things using the same material be visible together?

shy charm
#

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

stray tangle
#

is this for just PC or for quest too?

shy charm
#

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

stray tangle
#

quest avatars can't have transparency or custom shaders

shy charm
#

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

stray tangle
#

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

shy charm
#

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

stray tangle
#

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

shy charm
#

One more thing, if your avatar has Shape keys that you're not even using at all, do they still impact preformance?

stray tangle
#

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

shy charm
#

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

zealous wigeon
shy charm
#

So when you say root, would the same exact location as the Avatar Descriptor work?

stray tangle
#

yes

plush charm
zealous wigeon
stray tangle
plush charm
stray tangle
plush charm
shy charm
#

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

cold yarrow
#

join them into the same object into Blender (or similar)

shy charm
#

I'd need to toggle them on and off seperately, would that still be possible?

radiant shadow
#

weightpaint them to bone each, shrink it to 0 to hide - 1 to show

shy charm
#

Static meshes can be weight painted to armatures?, are they also able to use shape keys?

buoyant holly
shy charm
#

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?

stray tangle
#

static means static, you don't have per-vertex deformation

buoyant holly
#

also can't use blend shapes as a static mesh

shy charm
#

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

wide meteor
#

Why is my avatar rated as medium? I mean, it is pretty big, but it's only 20 polys!

stray tangle
#

if everything is Excellent, but your bounds are massive and counts as very poor, your avatar will be rated very poor

wide meteor
#

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

stray tangle
#

(*heavy shader effects may be worse depending on % of screen space)

#

and not everything will have the same effect on different computers

wide meteor
#

true

stray tangle
#

it's not an easy problem

#

trust me, I'd love for a better system

wide meteor
#

i think vrchat is still in beta tho so they'll probably think of a better ranking system when its finished

stray tangle
#

VRChat is always in development

#

it won't ever be "finished"

wide meteor
#

eh u never know

spring sun
#

the only time it would probably be "finished" is when they stop updating the game completely for whatever reason

ivory sluice
#

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 vrcRat

dire lava
twin aspen
#

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

sturdy fossil
# calm spade 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

twin aspen
#

the solution I was given before was to just make the bounding box huge, which immediately makes anything list as 'very poor'

calm spade
#

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

twin aspen
#

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

calm spade
#

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

twin aspen
#

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

robust anchor
#

But if you reexport over the existing fbx model with that change, it will break the humanoid avatar.

twin aspen
#

I'm making my first base, so that's important to know lmao

robust anchor
#

Because unity doesn't regenerate it

twin aspen
#

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

robust anchor
#

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

night inlet
crisp ermine
tardy granite
#

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?

spring sun
sick timber
tardy granite
spring sun
#

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

strong knot
#

With Unity 2022 it's no longer better for optimization to use a different mesh for your head, right?

buoyant holly
#

yes they got rid of the blend shape bug so having less draw calls should be better?

timber marten
#

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???

timber marten
spring sun
spring sun
#

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

woeful pecan
#

Does VRchat support LOD's?

#

As in having the ability to have a low poly version of your models display when far away.

buoyant holly
woeful pecan
tulip rose
# woeful pecan Does VRchat support LOD's?

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.

spring sun
graceful condor
uncut tree
#

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.

normal nova
#

The best approach right now is to move them to separate bones and then scale those down

uncut tree
#

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?

zealous wigeon
# uncut tree So I have a project in front of me where it has outfits with a lot of components...

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.

marble rain
# uncut tree So I have a project in front of me where it has outfits with a lot of components...

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

uncut tree
#

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.

marble rain
#

use uv discard instead of blendshape

jagged dagger
ivory sluice
#

Maybe i'm wrong but if it's opaque, all occluded polygons are discarded by the depth test
(but it's my assumption)

jagged dagger
#

I currently have 17 different designs controlled by shaders on my avatar via matswaps

#

All only a whopping 30MB texture memory

jagged dagger
#

I can't tell much about meshes. I'm rather a shader person. I don't do blender etc

ivory sluice
#

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

onyx harness
marble rain
jagged dagger
#

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 vrcPerfGood performance rank

#

Also do have a vrcPerfVeryPoor 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 vrcPerfGood and vrcPerfVeryPoor version if i want to update my Public avatars

#

Essentially what I do

onyx harness
jagged dagger
onyx harness
#

if the 17 mat swaps is 30 then what does the sdk say it is?

jagged dagger
#

SDK counts all that as 3 materials max

onyx harness
#

i meant like, texture memory.
sdk is counting slots over material count after all

jagged dagger
#

Oh yeah it says 30MB

onyx harness
#

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

jagged dagger
#

Well yeah in thry it's 60MB including the meshes

onyx harness
#

what was it without the meshes?

jagged dagger
#

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

onyx harness
#

so around 1mb/swap

#

you using 512 or 1k?
idr which one is 1mb xD

jagged dagger
#

From a few months ago

onyx harness
#

I see I see, sorry for the ramble then.

jagged dagger
#

Some textures are only 32k

jagged dagger
#

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

onyx harness
#

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

jagged dagger
#

It doesn't include meshes at all

onyx harness
#

yeah but, mesh renderer is a type of renderer that holds materials

#

like all the others listed

jagged dagger
#

Ah yeah thats what you mean

onyx harness
#

i wish it counted mesh memory

jagged dagger
#

Also

onyx harness
#

at least an estimate

jagged dagger
#

It's pretty inconsistent in what it reports

#

The server side perf check has different results than the client one lol

onyx harness
#

49k poly w/ 900 blendshapes. No way to see this in game

jagged dagger
#

Can't wait for gpus having 269,36GB of vram

onyx harness
#

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

jagged dagger
#

Also

#

When unity 2022 sdk releases

#

Be prepared for 16k texture resolution

#

People surely gonna use that like they already throw 8k at everything

onyx harness
#

oh I didn't even know... uh oh

marble rain
marble rain
jagged dagger
#

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

marble rain
#

material swaps require more slots lol. you cant have 17 materials in one material.

jagged dagger
#

Yes you can, entire point of mat swaps

onyx harness
#

it's called a 'swap' because you exchange one material for another

jagged dagger
#

My avatar does not have more than 3 slots

onyx harness
marble rain
#

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

onyx harness
#

you're not disabling/enabling objects, you can animate what material is assigned to each renderer's element.

jagged dagger
onyx harness
#

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

marble rain
#

which still requires 17 slots. a animation that swaps them still needs a object it comes from.

onyx harness
#

maybe the word slot is getting mixed up here

marble rain
#

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.

onyx harness
#

there, that, you don't need another object to store the material

marble rain
#

then you need another slot.

#

you cant material swap from nothing

onyx harness
#

it isn't so. There isn't a need for another obect or another slot to store it

marble rain
#

there is.

#

how can you swap from nothing to something?

onyx harness
#

the materials are uploaded and the files are stored but you don't need to have it actively referenced anywhere

marble rain
#

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

jagged dagger
#

It just changes whatever material is referenced in the slot

onyx harness
# marble rain it wont be uploaded.

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

marble rain
#

a animation requires a object to change from.

jagged dagger
#

I do this stuff for 3 years already, i definitely know how it works

marble rain
jagged dagger
#

You simply put in a animation saying change slot 2 on this mesh renderer to this material and that's it.

onyx harness
marble rain
#

eh it has not in vrc

#

maybe in unity it self but not vrc.

jagged dagger
#

I'm sorry but you're wrong

marble rain
#

eh no

onyx harness
#

yep, been doing this since early 2018, so like almost 6 years

jagged dagger
#

Try it out before discussing any further since you don't know what you're talking about right now

marble rain
#

mate..

radiant shadow
#

matswap dont count in vrchat

onyx harness
#

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

jagged dagger
marble rain
#

it does how are you otherwise going to reference it

onyx harness
#

the discussion is that they do else the animation can't use them

jagged dagger
radiant shadow
#

any material in fx animation will be uploaded ratl

#

have one av wich say 1 mat, its actually 6 matswap when moving the slider

jagged dagger
#

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

radiant shadow
jagged dagger
#

Or he does it

marble rain
#

show where the materials come from.

jagged dagger
radiant shadow
#

quite old av, somewhere

marble rain
#

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.

onyx harness
#

ye, problem is, those textures then aren't in texture memory

#

well, the perfermance rating

#

that is

marble rain
#

i do wonder what the cost is then. considering it has to redraw everything

#

and do another drawcall for it

jagged dagger
#

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

onyx harness
#

yeah that

radiant shadow
#

think it goes into ram when not used, shown back to vram , the old mapswap one just break vram calc

jagged dagger
#

So yeah it's not entirely free

jagged dagger
#

But can be very cheap depending on what you do

radiant shadow
#

1.3.2 vram calc

radiant shadow
#

it is

jagged dagger
#

Odd

#

Cause my screenshot i posted earlier does show matswaps

onyx harness
#

and that's the avatar root or another object?

radiant shadow
onyx harness
#

'casue I think it's doesn't show if you plug in the mesh's object but does if it's the avaatr root

marble rain
#

also i never really knew that everything in the animation in vrc would be uploaded. guess you learn something new all the time huh

radiant shadow
#

same one just updated

jagged dagger
#

I can most likely reduce my vram usage even further

radiant shadow
#

shove anything that uses alpha on its own atlas/bake you can get vram pretty low , i use that + 1 4k with everything else

jagged dagger
#

Some things are on 2k even though they don't need to be. But 60MB texture usage is still pretty alright

#

With 17 mat swaps