#avatar-optimization
1 messages · Page 70 of 1
new animation weighting in CATS is now working better, in which I mean that it works at all
quite delighted that it will just... preserve edgeloops as a matter of course
obviously you will still get better results doing it manually, but this takes seconds so... tradeoffs!
Overlapping weight paints between every pair of deform bones!

It used to push this to the decimate modifier but it would just mess things up for decimate. So now it deselects however many vertices you slice off, then decimates everything else
Is deform bone based on naming scheme ? I assume cats would complain about it
Or it's literally the deform checkbox
It's 'any bone that has an identically named vertex group', in my implementation

It can also do shapekeys! (normalized vertex movement, in that case)
cool
@buoyant holly Alright, I'm home now
Cool
okay your main problem is too many materials
you need to combine your materials together in like blender
Is there an easy way to do that without breaking the toggles?
how would that break the toggles
Well, the other time I tried it, it broke the toggles for the avi
Alright, can you do VC?
I wanna screen share Unity to make things easier
not really up for walking you through step-by-step
Okay, well, should I use the FBX from the Unity Package or the OG FBX?
@buoyant holly I used CATS and it breaks the avatar
that's not quite enough info for me to help
and are you able to reload the blender scene
Yes
good
@buoyant holly Before and after using CATS
okay so looks like it messes up the material settings on the hair and and the pants
Yeah, exactly
like maybe it was the material given those color instead of the texture
like maybe change the texture in image editing software to be the colors you want
Nah, it's still red in the texture
Idk what the issue is
maybe try playing around with the material settings in unity?
but does the Avatar work okay minus the color being weird
I copied and pasted the material settings from the OG and it changed nothing
question what shaders are you using
Looks like Poiyomi Toon
maybe check the original materials settings to see if the pants and hair had the Shader provide the color?
Not sure how to check that
you still probably have the folder with the materials somewhere in the unity project
that's not the pants or the hair material
The hair is on that texture
good to know
but yeah like do some sort of modification to the combined model to make the red reappear
@buoyant holly Yeah, no, it's the same exact material used by the OG model
So I don't have any clue how to fix it
myself I don't use toon shaders so I don't have any helpful suggestions
Guess just give up then
have you tried doing any modifications to add the red
as all I was just trying to say is I'm out of suggestions
I don't even know where to start
I know only the basics of modeling
then perhaps we should both take a break
Now my animations are broken
oh dear
Fixed it
cool
Heya, guys; just dropping a quick line to let you all know I just got a new automatic texture-packing tool working for Blender--it's a fair bit more advanced than CATS', and, unlike a Cycles bake, supports variable texture quality and non-PBR materials.
You may find the current version here: https://github.com/nights192/fast_pack/releases/tag/Alpha
Instructions on general usage are available on the main Github page; godspeed!
easy auto star lol
it's time to become powerful.
8 material limit?
Nope!
No material limit whatsoever.
It works with any shader node available in Blender.
👌 🧑🍳 thats sick
(It should be noted that this doesn't combine materials for you, as it's meant to be flexible; it'll pack all of your textures, but you will still need to choose what should be its own material vs. a shared material.)
Heeey, thanks a ton, dingus; I appreciate it. ^^
Oh, also--I forgot to mention, it requires having Python's "Pillow" library installed. This is required by CATS' material packer, so if you've used that, it should work fine, but otherwise you'll need to install it onto Blender's Python install. An auto-installer will be present in the next update.
I may take a peek under the hood when I get some time to see if I can learn anything lol.
Sure, goof! If you feel like you need help with following any of the internals, let me know.
I've tried to keep the code fairly clean.

got this error message when I try to install it
Mhm! Sorry about that, friend; it requires that you install the "Pillow" Python library onto Blender.
Here's how ya do that:
Ya go to your Blender install folder, go into the folder labeled with the Blender version name, then the Python folder.
Enter bin, and run the following command in your console:
(Using my path as an example.) cd "C:\Program Files\Blender Foundation\Blender 3.1\3.1\python\bin\" python.exe -m pip install pillow
After that's done, you should be good to go--thanks for letting me know about the issue. ^^
so do I click on like the python exe
You've gotta open cmd.exe with administrative privileges; so that's, like. Just search cmd in your windows bar, right click, run as administrator.
Then copy-paste the commands I wrote in the quote box in.
(Replacing the path I put next to the cd with the path to your version.)
It'll be a bit easier to install for the next update of FastPack, but works flawlessly.
the with or without the quotation
With the quotation. ^^
Yeah, I know the console can be a bit intimidating; I'm sorry that I didn't manage to slot in the automatic installer for this release.
It's a one-time thing; you'll never have'ta do it again. ^^
"Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases."
Ah, sorry:
.\python.exe -m pip install pillow```
I forgot to include the .\ at the start of python.exe.
I have to go run some errands real quick so I'll have to try this some more later
Haha, sorry for the extra work.
yeah might be a good idea to get the automatic installing working next version
not quite sure if this means I have it installed or not when I try to put in that command
Ah, I ran into this; if you go to where it lists the thing as already downloaded, you can copy its folder (pillow) and paste it into the Blender 3.1\3.1\python\lib\site-packages folder.
It's because you have another copy of Python installed for something else; for some reason Blender doesn't default to using the normal Python install, and it confuses the system.
Just means we have to copy the folder is all.
okay don't have the missing module error but I have a different error
What’s your blender version, friend?
@buoyant holly This thing’s built for the latest version of Blender, but making it compatible will only take a few moments; I’ll go do that.
Here, the latest version--should support 3.0 as well.
Thanks for going through this with me, Rain; this really demonstrates the points where an install can go wrong.
it installed correctly now
Glad to hear it, Rain! Lemme know how it works for ya!
about to eat dinner so it'll be a little bit before I can report back
Hey, no rush; I'm fairly certain you'll find things satisfactory. ^^
probably a good idea to put a required Blended version in the add-on description
Good call.
I get this error when I try to make the combined texture
blend file not saved.
thanks
Alrighty! Just got a release out that that'll greatly simplify installation.
You should now be able to install Pillow from within the addon if necessary, pending a restart.
Trying to atlas my model with cats. For some reason in the atlas area it is showing some of my material textures as 32x32 when they are not, and when I run the atlas it just ends up turning those areas white. Any ideas?
Cool
To my knowledge, CATS does not properly support post-3.0 versions of Blender; it may well be an issue with the addon.
I'd use FastPack for it if I were you, honestly--biased though I may be. 😛
you need to use the Dev version if you plan on using anything past the latest LTS release (2.93.X)
for maximum UV efficiency, the Bake option in CATS is miles better than the Atlas tool
Not necessarily; baking tools will result in uniform texture density between different areas, which means prioritizing certain features over others is not very feasible without manual intervention.
Furthermore, sampling errors will impinge upon the image quality. (Not to mention the lack of support for non-PBR materials.)
CATS' atlasing tools are just fairly limited, unfortunately.
the name "Bake" is a little misleading I admit. it's basically re-packing the islands (pretty sure texel density is maintained, but would need to double check). it then samples from the original textures to create the new ones. the only actual "baking" it does is AO and normal, if you select it. it also handles any PBR textures like metallic, roughness, and also emission
I'm reading through CATS' source code, and it's definitely using Blender's inbuilt baking system.
This is why it doesn't support non-PBR materials.
(Blender has no analytical texture baking features, to my knowledge.)
you can provide your own UV unwrap for the cats baking tool
Yeah, but at that point, wouldn't it just be better to bake using the Blender features CATS is already using?
that requires more button presses to use the blender baking
More power to ya, friend. ^^
and when I was testing your packing tool it was about 50-50 about whether it would actually process the model and turn it into an atlas
If the maximum res you specify is below what it would be possible to fit the atlas into, it won't pack.
that'll definitely be helpful next version some indication as to why the packing failed
Mhm! There's actually a branch of code that recognizes that the packing failed, but I wasn't able to fit it into the current release without making things kinda clunky.
It'll be in 1.0.
(Along with non-square texture atlases and a couple other goodies you may find useful. ^^)
got this error message when I try to use a viroid by the texture combiner
Ahhh, I see the problem; I hadn't imagined that anybody would use something other than the default UV map selector.
Would you mind sending me the model so I could take a look at its shaders and see what's happening, @buoyant holly
Okay, I found the problem for real; VROID, for some reason, uses the same blank image for nearly every material,
which ties them together in the system and causes it to misunderstand what UV-islands are related to what images.
The next feature update of FastPack will allow you to exclude a set of material input labels to work around this.
wow
just wow
quad remesh eboy avatar at 160k tris
drops to 50k with no discernible change in quality
do people even know what optimization is
like bruh
I would personally not use quad remesh on a model, but hopefully it doesn't turn out too bad 
turned out fine for what i was using it for
also why is it 160k is the question
like basic decimation modifier would probably be better than just letting it burn your pc alive
50 different separate meshes 🗿
hi, would an avatar with just an 8k texture + normal map be a little too performance sapping compared to most other avatars? the poly count won't be any higher than a human character model from a 2011 game
You really should avoid the use of 8k textures, as the VRAM cost of them is very high. For PC you shouldn't go higher than 4k, ideally use 2k if possible for what you're doing.
It's not a huge problem when talking about a single avatar, but think of how problematic it could be if everyone you were with was using 8k textures. Even people with like 12 GB of VRAM could run out quickly in such a scenario.
also you can get away with a really small normal map
without much visual loss if at all
and you can also use tiling normal detail maps to help out with the perceived detail level
Single material, 3.3k △, using RGBA masked 256px normals in @poiyomi's shader. 🧵👇
278
Back to shader: Can use seamless tiled normal maps per RGB area - tiny (128/256px) normal maps, but tiled around 50-100 times in the shader, giving you a higher effective TD.
You can combine these with an base nrm map for creases and baked normal details etc: (Blend with Base)
I have a question about avatar optimization, is it possible for a pc avatar to be qeust compatible? [Probably by changing the materials etc, right?]
yes
sure. just make sure that it follows all of the performance requirements for quest, which are much stricter than for PC
chances are, you will need to do work on it in blender to get it down to an acceptable level
Okay thank you, I need to watch some YouTube and Google about how to do it, ^^
Can anyone tell me why the Humanoid shape avatar I put in says it's Non-Humanoid?
Did you tell unity it’s a humanoid in the file’s Rig import settings?
Okay, when you select the model file in the Project window it’ll give you a bunch of settings you can modify about have unity handles the import. The categories are Mesh, Rig, Animations and Materials iirc. For this you’ll need to select Rig and set it from Generic to Humanoid.
Okay.
Found it, Thanks.
anyone know what i could do?
Delete extra mesh or decrease texture sizes is usually where to start
i tried doing the texture size thing, but i think i did something wrong because the number didn't change
Yeah I'm not sure the best way either, I mostly got lucky, I guess.
Sometimes the number can be larger than the texture's dimensions so changing it down a step or two might not actually decrease the size.
I have this (Image) set to 1k but the texture's dimensions are actually 256x256. So even if I changed the setting to 512 nothing would change.
If you want a tool to help see what is using the most memory then I'd recommend Markcreator's Size Profiler for the compressed and Thrys Avatar Evaluator for the Vram. Both are available on GitHub last I checked
Quest users don't accept 4k textures, so lowering it to 2k doesn't change it, try going even lower with some parts that are not really visible, or barely noticeable.
Okay I will give that a shot
I am trying to upload an avatar with many animations to compensate for an Euler equation.
Long story short I am animating a parameter and the final result is that it desyncs quite often since for different people, the parameter doesn’t updates for others at the same time
Any tips to sync everything?
Anyone who tested the performance difference between many materials and many objects can tell me, if it's better to reduce the amount of objects or the amount of materials for a avatar which toggles these?
Also does the material not drain any performance anymore when you disable the object which uses the material?
Please @ me or write me a direct message if you can answer me that.
Currently the avatar toggles just turn the visible material to a transparent one. The Avatar takes some time to load in.
Man I just started typing and never stopped. This is how I understand it, things could be wrong. Lets be real, things probably are wrong
Each mesh generally has at least 1 material. 'A single mesh with 8 materials' and '8 meshes each with 1 material' is about the same. If you can, try to merge meshes and then also merge materials. You'll do better as it's decreasing draw calls.
Yes, when you disable a Renderer it stops the calculations for those materials. Material swapping to a transparent material still renders every polygon. We can't see it but the Pc can. If you're not merging materials, one could argue that above, 8 meshes each with 1 material has the potential for better performance as you can disable them.
Another option is the shader you're using. Recently I've been looking into Poiyomi v8 which has UDIM Discard. For multiple toggles, this seems better than any other method I've tried/been told about. It takes a little bit of setup using the UVMap but it's capable of toggling up to 16 things individually all through 1 material. The Silent Cel Shading Shader also does this if you want another option (It's been linked before so if you search for it you'll get a lot of results). I'm not sure how many toggles it can handle as I've never used it before.
Other common methods are Blendshapes and Bone scaling. Blendshapes are known to get expensive pretty quickly so I'd try to avoid them. This is why people recommend separating the face mesh from everything else; so you're not calculating your visemes on your toe verts. Bone scaling is exactly as it sounds. Things like a hat, necklace, armband, those that are weighted mostly to 1 humanoid bone using an individual bone to scale up/down to toggle them on/off respectively. Both of these methods allow multiple toggles on 1 mesh with 1 material but those affected polygons will still render even if they're hidden below the skin.
Bone scaling in combination with mesh toggles is what I've been using till recently.
.
I'm pretty sure there's a webpage that explains it better than I can but I don't remember it so we're just gonna have to wait for someone to drop by and go, "oh yeah check this out Link"
Thank you, I will have a look at the Poiyomi v8 UDIM Discard.
I think I heard there's a site for poi now
yeah, check out https://poiyomi.vercel.app/special-fx/udim-discard for the option. I'ma read this too lol
UDIM Discard, or UV Tile Discarding, provides an efficient way to discard portions of a model at runtime. This is done by placing portions of the model on different UV Tiles, and then discarding specific tiles at runtime.
Is this a hard limit? or a vram thing?
Hard tex res limit is 2k for quest, so better use low quality for items not really needed in HQ, such as weapons, glasses, accessories, just use normal quality and 1 res grade lower for better results.
Heck. I just worked out a way to cram a 4k ASTC into the same vram as a 1x2k default Android compression
would that be still helpful knowledge for PC avatars
Nah, ASTC is specifically for ARM devices
good to know maybe that would be helpful for worldbuilders with their atlases
Testing on Quest 1, 4k ASTC 12x12 appears to be fine? Unless its only loading up to the 2k MIP, which would make sense
is there a texture you could make that you would be able to tell the different MIP
I could buuut
I am also tired |3
but yeah, it was decisively lower
alas
A shame cause it wouldnt really harm performance since the VRAM footprint is identical, but gotta cover 'actually I just crunched an 8k, have fun' case
out of curiosity what settings did you do for that so I could keep a note for when I try worlds on Quest
ASTC 12x12, you can only do it by forcing an android override compression in the texture settings
'Low' just makes it 6x6
It ends up 2.7mb
that's not too bad size-wise for a 4K texture
Yeah, like I said its the same as a 1x2k ESTC
so I could stuff like 4 4k Textures in the space of a regular 4K texture
8, but yeah
Quality is pretty blocky but acceptable
In general I would always set the project to use ASTC by default anyway, on average its half the size with no major quality loss
what settings menu would I use to do that
Its ESTC by default for compatibility, but VRChat targets only Quest which is fine
Project settings, file menu
I don't see a file menu tab
Hi, do anyone understand how to use mantis Lod editor?
do all blendshapes have a performance impact, or just ones that are not zero?
Don't think so, unless you have many blendshapes that'd make your avatar turn into a huge mess, that would weirdly lag the game, so far 1 avatar caused me to lag when it spiked. xD
Only blendshapes that are not 0 will cause performance decrease
cool, thanks
Blendshapes can inflate your Vram if you have a lot of them. Generally it's good to remove any you're not planning on using.
Is there a way to combine meshes in Unity?
why would you use CATS to combine meshes? can just do Ctrl + J in blender
if you're trying to combine materials though, that's a different story
cats does both so its easier
and ctrl+j sometimes just doesnt work for some reason
No offence but that's probably user error. Shortcuts don't just not work
Is there’s a way I can make my character have outlines without it being pc only?
lots of the popular vrchat toon shaders have outline options
shortcuts in blender depend on where your cursor is on screen
if your cursor is over the modifiers, ctrl + A applies a modifier. if you're over the viewport, ctrl + A is to apply transforms
ctrl + J only works if your cursor is over the viewport
for your quest version, use Matcap Lit with this matcap
for your PC version, do whatever you want
i would recommend use cats plugin in blender and go that route.
it can combine mesh + material + make it a atlas.
A thing what I don't understand in VRChat, why are more audiosources = worse performance?
Are they in case that the player would run all the audiosources at the same time?
- Because in most cases, the peoples would have a bunch of audiosources for a bunch of audios, but they enable/disable them mostly not at the same time!
Like a avatar with 8 songs in 8 audiosources would not make sense to play them all at the same time. so what would be, if VRChat would make a feature into the SDK, that would allow to change the audio-file inside of the audiosource? so that I can play for example multiple songs with the same audiosource?
(just not at the same time...)
I know that is possible to change the audio inside a audiosource via code, so why they don't intergrate it into the expression menu for example, where you can select in an array your mp3 or ogg files and play tghem with the same audiosource. like a radio changing his channel...
more resource intensive. both networked and well for a user.
and total avatar size.
this would just increase your avatar size, so no safety issue...
but you would be able to play more than just 8 audio files without having a very poor avatar with more than 8 audio sources
what exactly? I mean, there is just one audiosource playing...
and they can make a 5 seconds cooldown or something or avoid spamming the audio files though the audio source to avoid lagging.
or to make it more pleasant, make a cooldown, after you spammed 5 audios in 10 seconds so you have to wait 30 seconds, before you can change the audio again from the audiosource...
I personally see no issue there, you can proof on this way, that the peoples are not playing more than 8 audios (at the same time)
download size. is just troublesome. 8 audio files can increase it quite abit.
nobody actually cares or pays attention to download size
but there is already a safty feature to avoid to large avatars...
stop spouting garbage, i'm right
it's to do with how unity handle audio, and garbage collection etc. there are a few other issues related to it.
i have my download size way bigger than it should have to be and still 80% of avatars end up hidden from the size
if some guys make 200MB avatars, they just will get performance blocked or something if you have your safty only allowed under 70MB Avatars
there is yep
i block anyone above 100 mb lol.
typically because if someone is that high in mb. it very much reflects to many materials etc. or something else. that i rather avoid
so the players have still to play attention to not overload they avatars with 1000 audio files, because this would explode your avatar size and even IF! vrchat can make via code, that you are only allowed to have max. 16 songs for example for every audiosource in a array
well it's also to do with compression etc.
like your pc has to uncompress audio and so on
takes time.
10 audio sources for example will be still enough for every audiosource. and noone would be able to have more than 80 audios. and you can still avoid this peoples with a avatar size limit in your safty
that's don't make sense, because we are already able to have 8 audio source ( at the same time). and the part of changing the audio source is just a tiny moment and even this would be still possible without spamming, if you make a cooldown, that happen if you changed your audios to much into a short time.
so where is the problem with this idea?
tbh not fully sure. could also be part of the older restrictions. and how vrchat handles audio sources etc.
older restrictions? the new sdk3 and just a year old
and tbh. why 8 audio sources? you can just change the audio in animation. with one audio source. unless you want different ranges, pitches etc
they already made even larger inpacts than this
eh some of the ranking stuff has not been changed in a long time.
they are allready filled up with small single sound effects.
and if you also want to make a few animations with songs, there is no space left without getting into the very poor area
8
more is not allowed without being very ppor
wait you got 8 sounds? in total or more? since u said its filled up with sound effects
they are not enough and only a few do sometimes play at the same time, but never all or even the half
things like a knife stab sound, triggered by a contact resiver
well the thing is even if they are not being played. those 8 sources are still active. well sorta. they take up resources and memory etc.
but you just change the audio file inside of the audio source, where is the performance inpact? the tiny moment of changing will be avoidable with cooldown to avoid spamming
even having just 5 array slots for every audio source would be way enough to make really sure...
thats going even further into how unity works in general.
how it allocates memory, how it uses it
how it finds it and such.
audiosource.clip = Resources.Load<AudioClip>("PlayMyAwsomeMP3FromTheResourceFolder");
audiosource.Play();```
Thats how to change a audio inside of a audio source
not that hard....
nothing to do with how hard or easy. and doing that way is intensive. as it needs to find the Clip first. of that type and then it creates a object. which it well attaches it to etc.
and thats just a simplistic way to look at it
and in case of VRChat, a 5 slot huge array script instead of a resource folder should be good enough.
VRChat can make a script, where you can extend your audiosource Audios... The script have 5 arrays for the Mp3 you want to play and a serializefield, where you have to put your audiosource in, then just attach it into the avatar descriptor or something and you good to go.
it would also be possible to build some cooldowns into it to avoid spamming the "change song button".
always through animation you can do a delay if needed. same for worlds.
but I am talking about a spam protection to avoid peoples to spam the button the lower the performance with infinity times pressing the change song button because the changing would take for a second performance
eh. tbh they could but i sadly dont think its on their agenda to do atm
I think I am not the only one that want more than 8 audios, the most peoples just give a F about it and just upload their avatar in very poor with 1mio poligons 200 materials and 67 audiosources
and 40k particles
Today I modified my avatar again and today is the day, I can't no longer avoid using less then 17 materials. thats why I am now "poor" ranked instead of "medium". otherwise, I don't want to change always my avatar, only because I missed a feature on there...
SO I want to ask here, how bad is this downgrade from "medium" to "poor" ?
even with atlasing, I can't no longer avoid 17+ mats
Because I fear that most player can no longer see me now and such stuff because of the "Medium" --> to "poor" downgrade...
for avatars? its completely not necessory lol.
i can't see a single usecase where you want more then 1 audio source even
if a ambient music is playing, and now you are also some other soudns playing like a stab sound of a knife, so you need one active audiosource for the ambient music and a second for the sound effect and if you have even more stuff like walking sounds, you need a third or more. (and this in case, if we would able to change the audios inside the audiosource, what we currently not can) currently, you need for every audio a special audio source. you want a second song your your second animation? thats need a second audiosource because YOU ARE NOT able to change the audio clip inside of the audiosource.
thats still only one. on the person. and the world.
and you can change the Clip via a animation. unless you need different pitches,volume levels for each sound. but even then all of that can be animated.
never heared of it that you can cahnge the AUDIO CLIP inside of the AUDIOSOURCE via animation...
The only way I would know was C#
hmm. seems like they removed that ability
but to my other question, how bad is the downgrade from "medium" to "poor" because I have now 17 mats instead of 16
eh. the ranking system in general is kinda shit ngl. because each part has different levels of performance hit. and going 1 up in materials may not hard hitting. But it all depends on the complexity of that material. but in general 17 materials is far to many. and causes alot of issues in general frame wise.
I mean, in case of the censore. like if someone have minimum "medium" allowed in his safty, he will no longer see me, right?
true
I try to stay with medium because then no one has my avatar hidden unless they specifically manually hide my avatar. If your avatar is rated poor then it's possible that they may automatically not see you
I'm actually curious how you got 17 materials and can't find a way to reduce it. I would assume particles
https://github.com/vrchat-community/LazyOptimiser interesting a avatar Optimizer has popped up in the vrchat GitHub
Seems interesting, I mostly like the blendshape cleaning 👀
and also cool to have something official so more folks easily notice it's there
People making their entire avatar in unity 😩
blendshapes are not really a issue. and wont give more performance. even in unused. plus they dont take that much memory. its mostly Textures that takes up all of it. just one 8k texture is 64 mb and for the download size i dont know 8-12 mb per 8k texture it seems.
Do you want your avatar to be efficient and be loved by everyone because of all the frames you're saving them? Follow these tips and you should be good! Any recommended numbers or limits in this document are subject to change at any time. Although some of the descriptions provided below are not prec...
note it says Can be. it's true to an extend. however unused once do not use any important resources. as nothing happens. also more Meshes > way worse performance wise then having blendshapes
To be honest it's less about performance for me and more for just getting rid of shit I'm not using
that would depend on triangle count if the the blendshapes or the extra draw call would be worse
Have a model with everything, then before upload you clean a duplicate and upload that instead
Extra draw call is always gonna be worse. but blendshapes do not create more draw calls.
as that is determined by Materials and well lighting etc.
plus majority of models in vrc has below 128 Blendshapes.
you should care about both lol 😄 but i do agree i clean up my avatars alot. and remove anything unused.
I doubt the vrchat developers are going to be completely wrong with their benchmarking to make the face separation suggestion
eh.
they are
very wrong
the reason why blendshapes can be expensive is if its dynamically adjusted by bones, or animations etc. if that blendshape is in use that is
I DO care about performance, but honestly I favor organization more than optimization. But that's in cases like having a bunch of extra gameobjects for hierarchy order. Mostly micro-optimizatoons
yuh.
well that optimization tip was about active blendshapes as it was talking about the Visine
From what I'm aware, blendshapes are fine, active blendshapes is where the performance cost comes from. Having 100 blendshapes at 0 doesn't matter
exactly.
only cost is memory.
which honestly.
eh.
does not matter to an extend.
hoooowever
big if
good point the one that tends to be the performance killer is using blendshapes as toggles
if you have a blendshape affecting a million polygons yeea.. you might be looking into alot of extra memory use
Where my bone scalers at 😔
Blendshape as toggles is a really good way to cut down on material use.
which is why its the best way to combat draw calls
it's spikes the CPU cost compared to just doing bones
eh. barely
as you're having active blendshapes constantly so you're having to calculate per triangle every frame
The only time you should use blendshapes to hide something is if that thing does not have a common root bone, but there are shader methods that are more optimized than the blendshape method for that
a blendshape is not really active or not.
its weight based.
but once the weight has been set it does not recalculate it again and again.
it acts as if it was normal.
commonly used for clothes. which is wise.
I tried out the whole "split face from body" thing for a while and it was 100% not worth the effort 😭
i am not sure i recognize or know any methods via a shader that is worth doing.
yea dont lol.
you get odd light behaviours 😄
could maybe do a benchmark by making a 1mil poly mesh and animating shape keys on it
like different colored head and body
see if the perf impact is only when changing it or if it's always tanking performance
ehm no?
you need a light probe anchor so it looks good
thats their inactive state.
You can fix that via anchor or something in the mesh, still annoying
Why would the anchor cost performance it's basically moving the origin point?
Not more than an active blendshape, ie above 0 
okay only a little bit. due to recalculating the origin point etc.
Yeah everything costs something. It's really just a battle to cost as little as possible
yuh.
I say this while using Final IK on every avatar so just ignore those costs 😎
At the very least it kicks the shit outta dyn bones
considering its not using Jobs/Dots
well Dyn bones were not ment for that kind of scale 😄
Trust me I am very used to the "that's not how you're supposed to use that" statement
cant Jobs were not a thing til 2020.3
It is using the Job system, and the burst compiler
nvm its just not supported. says on unity's documents
2019 gang ✊ 😔
Now that physbones is out and good I can't wait for the Final IK replacement :))))
lol
Is there a way to make transparent textures? For quest
nope
trying to lower my physbone transforms for quest, any help?
what kind of help do you need? and how many physbones atm?
i do have 2 of these, but idk if itll fuck something up, they both have physbones on them
thats how it came when i bought it
8 PhysBone components
64 PhysBones affected transforms
16 PhysBones colliders
64 PhysBones collider checks
16 Avatar Dynamics Contacts
right.
ehm you might not only be limited by bones.
but also polygons
materials etc.
https://docs.vrchat.com/docs/avatar-performance-ranking-system go bottom almost you can see the actual requirements.
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. This system is provided to inform users what is likely the most perfor...
and the transforms
well
i found the standard shader but I cant edit it in anyway
you would have to do some blender work to remove alot of bones or limit what you want to have physbones on.
i recommend removing the hair physbone components fully.
seems like its taking alot
other then that depending on what else the avatar has physbones for. well.
i removed all the other physbones but the ears and hair
the thing thats most concerning me
its the standard shader, what do I do there? I cant edit the shader?
can you not remove them
you can put on a new material or change the current materials shader to what it says
vrchat/mobile
how its all greyed out
uhm try and remove the hair physbones. cause that one seem to be taking up all your budget
Right. you want to make a new material and put it on there.
how do I do that
right click anywhere in the folder in your project and there should be a New Material option.. should be under Create > Material
ah ok
is there anyway for me to expand my entire hierarchy without manually clicking them?
one way to get material out of fbx if is has one (ctrl+d) , other one is inspector -> click fbx , extract texture & materials out of it
Hold down alt when clicking on the group.
when you make a new material you should be able to just drag it on the avatar
ah you see heres thing with that
for example with this cross bag, its all one thing
and it wont let me drag anything onto my avatar anyway
replace the Metal material with the new one.
ehm? per chance when you imported the fbx. did you import with the embedded materials?. all through even then it should be replaceable
and are you sure you made a Material?
https://docs.unity3d.com/2019.3/Documentation/Manual/Materials.html @fickle stratus 😄 that should tell you how
ye iv made a material
i just cant apply
it
i was able to before I closed unity earlier
plus if i was able to apply it, itll change the entire bag to that material
well no. cause the Metal one is just a standard shader. it seems to be doing nothing.
its the metal shader you want to replace
but the most likely problem you have @fickle stratus is that you need to extract the materials.
cant atm sadly. somewhat busy
right, well idk what im doing, its not letting me drag nothing to the mesh
this is what i am talking about. the imported file
if you click on the actual top object for the avatar.
how do I get there
you should see Animator in the Inspector
and you can click the Avatar in that animator which shows you were the Fbx is located.
found it
no need to be in the muscle section just make sure the inspector shows material section instead
just click Done/Apply or whatever it says down below the inspector.
The Unity Manual helps you learn and use the Unity engine. With the Unity engine you can create 2D and 3D games, apps and experiences.
thats because you need to be on the top object in the FBX. it needs to be a actual object file.
should be in the XO folder
in the FBX. make sure to make the icons smaller
i can already tell that that avatar wont be able to do quest. to many materials. but u can try. but you need to extract materials.
yee
right theyve been extracted
should be able to change em all now
right, the standard materials dont show up anymore, but the error is still there
nevermind it shows up on "plane"
hmm?
yea
oh thank god its gone
the onyl thing im struggling with now
is an eye texture
i put one on but its just a solid color
i dont want to wear you out like, but the help would be appreciated
was that eye texture made for that model
VRChats viseme detection is kinda sucky, particularly if you have a high voice or are a performer... they're jittery and don't always respond too well. But hey, it is what it isss~
But what if they could be better? Well, then an unnecessarily complicated animation controller will fix all of your viseme woes that you didn't even know you had!
The most noticeable difference is at around 2:05, where high-pitched sustained notes just aren't even detected at all. While still not perfect, I think this is big improvement.
Test of a better viseme controller for VRChat.
This fixes a couple of issues that the standard VRChat viseme system has - namely jittery movements, and inability to detect higher pitched sustained notes.
In addition, complete control over how your visemes appear using anims instead of plain blendshapes.
soz. its a bigger project. if you want that avatar to work for Vrc quest. you have to look for a quest version of a avatar. cause i can tell you that avatar willl not work
Where do you see that
Ye it didn’t lmao, I got rid of all the problems but the file size was 3x over the allowed amount
This seems a bit broken, as the VRC visemes never use the Ah viseme. Either configured wrongly, or a bug in VRC?
Each of the visemes have a detection range, so if the audio falls into that range, it triggers the viseme. Audio that doesn't fall into ANY of those ranges, just has you sitting on the SIL viseme 0. I noticed the problem when looking at the debug menu, and that it sat on viseme 0 a lot of the time.
I made another demo video... this shows that happening even more:
Quick demo of the VisBetter controller using an old public v8.1 Corpse Shiba. This model doesn't have all of the visemes, but the viseme response is still improved.
Anyone available to learn with me/teach blender and unity avatar optimization and things.
https://www.youtube.com/playlist?list=PL2EEbgwoJzdt5kFVDyY2lliNqf7cWJeD3 this tutorial is an excellent place to start
Thank you Tristan. I have watch videos for a few weeks now. I was really interested in a guiding hand or someone who is an eager learner too. You know. . .Liked screen shares and working together on stuff. . .
quest av good or better, upload as fallback, get a pc avatar good or better use the same blueprint as the quest uploaded one , now you have a quest+pc fallback you can use on any other avatar if their setting i strict they will see those instead
holy cow this is great! thanks so much
probably , all my quest fallbacks are good+ rating
Setting up a cross-platform world or avatar is actually quite straightforward! In short, all you have to do is use a duplicate project to build an Android version of the asset, and upload it to the same content ID as the VRChat PC asset. The client will manage which version it needs to download. If ...
Think this'd be the right area to ask. I'm being requested to make this for an avatar model. I don't think it's feasible to model all these shapes so I was going to pursue using alpha textures. I believe I heard that alpha textures won't actually work because of mobile shaders not supporting see-through textures like that. Is this true and if so, is there a better way around this? Or should I just say no to that request
Yes, Quest does not support the use of any kind of transparency.
Modelling it is the only way you could do something this detailed on Quest.
Hmm, for PC, what's likely to happen if I expand my current personal limits of 40k triangles to the 75k cap? Is it likely to start breaking for some users between those two points or is 75k the point where things start degrading enough to be a problem?
The cap is 70k which is when it instantly turns to "very poor" ranked, which means unless a PC user has changed it then it won't automatically be shown. There is nothing that starts breaking at that point or even over it, but the avatar is just ranked "very poor" (the line for "very poor" on Quest starts after 20k polys).
Performance wise however at some point, which I think was 50k, you should separate the face mesh (basically the mesh which has blendshapes) from the rest of the body because at 50k or something the performance gained from having only 1 skinned mesh is outweighed by having blendshapes in use on the skinned mesh.
I do not know why the cap is at 70k, hopefully it is increased at some point, but it is verry common for creators to jump past it by 2-3 times, having a "very poor" avatar is incredibly common in VRChat, I don't, but it is what it is.
I see, I appreciate the detailed response
I think I'll stick to my current limits and reject that request as I'd rather have something that can be shown off to many people than something that can only be used in Blender
Found the actual count, at 32k polygons is where you should keep a separate mesh for shapekeys https://docs.vrchat.com/docs/avatar-optimizing-tips#-except-when-youre-using-shapekeys.
Do you want your avatar to be efficient and be loved by everyone because of all the frames you're saving them? Follow these tips and you should be good! Any recommended numbers or limits in this document are subject to change at any time. Although some of the descriptions provided below are not prec...
So I was having an issue where parts of the face were whited out, I figured out that I could assign the texture to that separate material. But now the teeth, tongue and eyelashes are all gray for some reason. I'm a noob with unity, any ideas?
Texture must be making them gray.
Also wrong channel for this, #avatar-help is where questions like this should go.
Oops! I didn't see what channel I was in
I want to add some textured orbs to an avatar but I dont want to need to use a large number of polys just to include a few small orbs. Is there some fancy way to achieve this with maybe a shader? Ive seen shaders add a lot of fake depth detail to objects but not sure if I could do something like make a low-poly cube appear like an orb/ball? (with semi-detailed texture on it)
One side of each orb needs to have a little face textured on it, so it cant just be like, a 2d sprite that always faces the camera (i think...)
(this feels like an optimization question because im trying to find some way to be super reserved with polygon usage)
You can just make a low poly sphere and use that
How low poly can you make a sphere and it still look like a ball?
And not a squarey/blocky hexagon-like object. (That's a legit question - how low can you go before people tend to notice it's not really a sphere shape)
Depends on the orb size but you can get away with very little
There's a low poly sphere object you can create in blender with Shift + A
Ooo really? Nice I'll try that out!