#avatar-optimization

1 messages ยท Page 59 of 1

proper grail
#

Would need to be sure the UV map it was atlased to is in slot 0 and remake the blender material as a unity shader

prisma tiger
#

?

radiant shadow
#

If you have multiple uv's and then atlas you get some odd results, so id check that before atlasing

prisma tiger
#

is there anyone here who'd be able to help me?

#

cause all my materials when just moved into unity from blender turn white and brown

prisma tiger
#

What and why

#

I can't

#

three days of work is not paying off

scenic summit
prisma tiger
#

I'm really struggling

#

I want to cry

scenic summit
#

dont cry ๐Ÿ˜„

prisma tiger
#

I'll have to DM a screenshot to you

#

cause I can't send them here

scenic summit
#

okey! lets see if i can help!

vast pecan
#

I learned that people say that using decimate for a character you are eventually gonna rig causes issues, is that true?

solid smelt
#

Decimating is automatic and messy, if you set it too low you can have long polygons that cover a joint. Polygons cant bend over joints like that so youll end in bad clipping and the like

#

For skinned meshes, retopologization and edge dissolving are the preferred methods for getting a clean topology

vast pecan
#

Ah okay

solid smelt
#

IIRC it doesn't matter, pretty sure you can do stuff like .Left and .Right

stoic shell
#

Is there a common method for smoothing an avatar out in blender after decimation? I really want to get mine optimized, but it always looks scuffed afterwards.

calm spade
#

Depends how much you decimate it

#

you can smooth it in sculpt mode

stoic shell
#

Is there a tutorial on doing that?

calm spade
#

you enable sculpt mode, select smooth brush, and use it on the mesh

#

but i'm sure there's tutorials

stoic shell
#

Okay, I'll give that a try later. Thank you!

sweet mason
#

There a brush that relax the topology

heady smelt
#

well i finally made an excellent avatar without compromising quality, which isn't much but hey i'm happy about it lol

torpid lagoon
#

been working on my own tool (RAT) for automatically prepping my avatar model for baking through CATs all inside of a single button for PC and Quest. it automatically joins the meshes (and applies modifiers), deletes unused or debug models, and as a bonus - the baked textures and model are exported to unity automatically so it's even easier to update the avatars! been working on a smooth non-destructive workflow for avatar creation in blender ๐Ÿ™‚ soon i want to add automatic curve to mesh and then join into the workflow as well (for hair/tail curves) so i don't have to do it manually

normal nova
#

Oh! I've actually got the curve stuff kicking around somewhere

#

Is this inside Unity or Blender?

torpid lagoon
#

it's inside blender

normal nova
#

Meshes are already joined with Cats bake, but applying modifiers not so much. One suggestion: we actually use Subdiv modifiers for normal baking and then discard them, so it's best to leave those alone? (I think I also account for multires somewhere...)

torpid lagoon
#

yeah i avoided using CATs for that specifically because i needed to apply specific modifiers to certain objects (lowering my subdiv levels for quest version maybe? :-) i also have to smart uv the whole mesh too, but that's because im not doing any texture painting yet

#

i have to do a lot of object and edit mode changes so i thought i might as well join everything to while im there ๐Ÿ˜„

normal nova
#

Works!

#

For future reference, 'Reproject' in Bake does that (smart project stuff) but the dev version does some magic to detect bad uv maps and reproject them regardless of option

torpid lagoon
#

oh yeah i should probably use that :> i have been running the dev version as well

calm spade
#

What's considered a bad UV map ?

normal nova
#

@calm spade eitner no UV map, or (need to finish this) tris that are at 0,0:1,0:0,1. That's where blender puts them by default if you create a uv map but don't unwrap anything

#

It stops e.g. you have hair that has a material that doesn't care about texturing, but when you try to bake it it turns gray or something

languid dust
#

Why is my fbx like 25MB big, and how would I reduce it? I tried to minimise materials, remove blendshapes, ...

torpid lagoon
#

are you embedding textures in there?

languid dust
#

I hope I am not, the unity import is without texures - where would I check that blender?

austere condor
#

I'm having problem with animating a part of my model that has dynamic bones. When I try to move the bone, it wont move. Does anyone know how to solve that?

solid smelt
#

The dynamic bones script prevents movement from the outside, you should animate without the dynamic bones script, then add it later

sweet mason
#

I use currently 2x2k texture on quest avatar and below 10k tris. I could make them good by having instead one 2048x4096. Is that better ?

radiant shadow
#

'quest' shouldnt have very high texture resolutions, one i got is 1k (1024x1024)

#

recommended is 1k, but thats quite awhile ago, might be higher now

sweet mason
#

If I remember the quest have a lots of video memories so it wont be an issue I think

normal nova
#

It's still reccomended to do 1024x1024 iirc

stray tangle
#

memory is shared between CPU and GPU

sweet mason
#

I can still drop the rez to 2k by 1k for the quest version.

stray tangle
#

4gb total on quest1

#

6gb total on quest2

normal nova
sweet mason
#

why would one to use one and not the other

normal nova
#

Huh?

sweet mason
#

box vs kaizer

normal nova
#

Box is the simplest scaling algorithm possible, averages the four pixels in the previous mipmap. Very blurry, but extremely consistent

#

Kaizer is much sharper, so you can see way more detail from a distance

sweet mason
#

I think the the current rez of headset box is better overall then dancing pixel in the distance

normal nova
#

It's not like, no mipmap

#

Its just a different scaling algorithm

#

It's pretty impossible to tell if anything shifts as it moves

potent pulsar
#

Kaiser can sometimes give you texture smudging

#

So try out both

#

Looks like kaiser was updated in unity 2020.1 ๐Ÿค”

jagged sigil
#

Im going to restart my avatar how would I put pants on

dire slate
#

Me debating back and forth to what degree I want to care about avatar stats and optimize
So with a lot of toggles I'd eventually reach the mat limit and before that the poly one
But if I dont and switch avatars a lot that can be negative for performance too and when VRC decides to mess up, I'll be stuck with whatever I have at the time
No way to have a lot of clothing toggles with fairly high poly models without the stats going vrcPerfVeryPoor but actual performance wouldnt be nearly as bad as it looks because most of it wouldnt even be enabled

old star
#

the performance rating is like the theoretical performance meanwhile you dont know the actual performance. If most of the things will be hidden, likely your actual performance will be far better than your theoretical.

dire slate
#

Yeah is true, though people jus looking at my stats wouldn't know that and I may very well get hidden by people or auto hidden due to the perf rating, even if the actual performance wouldn't be nearly as bad as it looks like if the max amount of things I can have turned on at the same time would never exceed those limits

#

And the opinions about that go all sorts of direction, from people telling me I should absolutely optimize it as much as possible to those telling me I shouldn't worry so much about it so long as I'm not going into absolute extremes where my actual performance impact is really bad

unreal plover
#

Just have a fairly good optimized one for publics and the one with all the toggles for privates

tawny gale
#

Are there any issues using shaders under the mobile category for a desktop avatar?

dire slate
normal nova
#

It's an algorithm for like, super good automatic unwrapping, it's been sloooowly starting to be integrated into Blender for forever, but it hasn't quite landed yet

#

But they have a standalone program that does it. And I've worked out a way to hack it into blender as an addon kinda?

normal nova
#

So here's the result, with as few seams as possible, to turn my entire mesh into one giant island

#

If I can work out how to wrap this into Bake it'd be amazing... but also a lot of work -w-

normal nova
calm spade
#

Their unwrapping method seems to make so much sense you start to ask yourself why that isn't the default

buoyant holly
#

because that's basically impossible to paint manually and most of our uv techniques came about before substance painter was invented

normal nova
#

@buoyant holly it's actually probably better for painting manually... but not when you've got one giant island like I do

#

@calm spade Probably more expensive, big deal 10 years ago, not so much now. I'm a little sad it isn't already in blender, but I suspect it may be in Substance Painter? (does it do uv unwrapping?)

calm spade
#

Substance has the option, but to be fair I've never used it, because why would i

#

You could go even further and expect the software to place seems for you in places of interest, since you detect weight paint groups and places where the mesh bends, shapekeys etc

normal nova
normal nova
calm spade
#

It might only do it if you've got no UVMap on the model, I'll give it a try later

normal nova
#

If I end up integrating this somehow, I'm totally gonna add a 'PS2' preset for avatar generation

buoyant holly
#

not sure if anyone would use that as they probably be good enough with the new Quest limit but I suppose that's handy if you have a model that's not behaving with the normal tools

normal nova
#

Well, more just for fun x3

buoyant holly
#

definitely interesting to look at

round cairn
#

Just decimate it in blender

stray tangle
#

many different things go into determining the performance rating

round cairn
stray tangle
#

polygon count is one of them

#

but things like dynamic bone collision count is another

stray tangle
#

use the decimation options in CATS plugin

#

more beginner friendly

#

if however, you know what you're doing, then using the default blender decimation function is fine

#

the main thing to look out for is shape keys

#

decimation of a mesh with shape keys is risky

normal nova
stray tangle
#

yea I've heard about that

#

which is why it's a lot more beginner friendly

#

however if you're serious about optimization, getting in there and doing some more manual work can yield better results

#

since you might be able to clean up geometry better than an algorithm could

#

using both is probably an even better idea

normal nova
#

absolutely yeah, Bake is intended to be a 'one size fits all' sorta deal

honest lotus
#

bruh

untold glacier
#

Anyone know how to optimize materials?

obtuse grail
#

is there a way to check in unity how many poli's my avatar has?

calm spade
#

In your asset, you can open the asset, select the mesh object, it'll show the poly count in the preview window in the bottom right corner

unreal plover
untold glacier
#

When ever i create an atlas i get it purple like a normal map

#

anyone know why?

fading leaf
#

Shader?

round cairn
#

No material?

pure thicket
#

Is there any way to profile the performance of an avatar other than the stats the are listed in the SDK and client? I would like to do some experimentation and see if things have an actual impact.

upper yacht
#

Intel GPA, just find a world (alone) and benchmark in an empty avatar then swap to your actual and there should be a minor discrepancy

pure thicket
heady smelt
#

@pure thicket

You want to test avatars in game without having to upload them and trial+error alot?

#

I believe the prefabs servers database has a unity plugin for that

pure thicket
#

There is the local testing. That will work fine for this.

#

I assume the package is not too different. Prolly gets linted on the server to strip non allowed scripts. But id think tye rest is the same

dire slate
#

So some time ago, it was talked about how active blendshapes can impact performance quite a lot with high poly models, but I haven't really been able to figure out how to "bake" blendshapes to the mesh so that I can remove the blendshapes that are always active and never change ingame. I was also wondering if there is a difference in performance if I combine multiple blendshapes to be just one. The amount of stuff that moves would be the same but it would be controlled by a single blendshape, which might be better? (I dunno but it'd be good to know if that is the case)

stray tangle
#

it will take whatever you have selected on the mesh, and apply those vertex positions to every other shape key

#

and yes, I do believe that combining blendshapes would also help performance

#

you can do that by activating both blendshapes in Object mode, and then going to the drop down menu on the right, and clicking "New shape from mix"

dire slate
#

Yeee I know how to combine it, am jus not sure if that would be nearly enough since it still affects the same amount of everything

#

I havent been able to actually see that option pop up

stray tangle
#

shape keys store the position of every vertex on the model

#

that's why they are so bad on high poly meshes

dire slate
#

Oh

stray tangle
#

every little thing you add is one more thing that every shape key needs to keep track of

#

you see the problem now? xD

dire slate
#

Yeah xD

stray tangle
#

recently I've been working on a sugar glider nanachi for a friend

#

the wings are fairly high poly

#

I decided against merging it into the main mesh, since doing so would most likely be terrible for performance due to all the shape keys

dire slate
#

I guess I could test it in Unity, place a bunch of unoptimized versions of the model with active shapes, then place a more "optimized" version that has all of these shapes combined and see if that makes a difference in performance

#

It wouldn't seem like that there is what I'd need

dire slate
stray tangle
#

also you need to go to the Vertex tab at the top in Edit mode

dire slate
#

I will take a look at that in a bit
But that also means that I might just make some expressions in Blender and turn each expression into a single blendshape instead of, affecting like dozens of blendshapes with every gesture I make

stray tangle
#

that could be a good idea yes

stray tangle
#

๐Ÿ‘Œ

dire slate
#

Yeah I read about that specific setting online but I couldnt find it

#

But yeah that is basically pretty much what I'd want, now it stays like that

normal nova
#

The seam is more visible on Quest than on Desktop, though

dire slate
#

Oh I see

untold glacier
#

Anyone know how to decimate a particular part of a model? it decimated the whole model even when i have just one mesh selected

calm spade
#

With what tool ?

stray tangle
#

@untold glacier select what you want to decimate in Edit mode, hit f3, search for Decimate

#

click it, it will show up in the bottom left

#

reduce the value to decimate

#

you can enable symmetry too

tawny gale
#

I have an avatar with one material shared between two skinned meshes. How come the performance display tells me I have two material slots? Is this an SDK bug?

#

There is only one material slot in the materials tab.

proper grail
#

While the textures will be shared, two separate skinned meshes still need to be rendered.. seperate. Two is correct

wary heron
#

so uhhhh i just uploaded my vroid model into vrchat and it isn't quite the best,how can i optimize stuff

#

bcuz issues

#

like hair being rigid and following head

calm spade
#

Well adding dynamic bones would make it less optimized

wary heron
#

i have like 3 errors and 2 poor things (overall preformance and too many material slots)

#

aaaaa pain

calm spade
#

Fix the errors first, then you can fix the materials in Blender with the help of the Cats plugin

wary heron
#

problem is i'm an idiot unity newborn that knows nothing

calm spade
#

Time to learn !

void mortar
#

Quick question: is there a method to be able to work on both the quest and PC versions of an avatar within the same project, or is it best to keep the two seperate?

solid smelt
wary heron
#

wait uhhhh how do i make an avatar both quest and pc compatible

charred bane
#

Just upload it as windows and then switch to android and upload it there too

verbal surge
#

Do AvatarMasks have an effect on performance?

stray tangle
#

for quest, you need to set your build target to Android in unity

#

Unity needs to recompile a ton of shit when you do that though, so you probably want a second project

crystal plume
#

I'm not sure where to put this since it has to do with quest shaders. I have an avatar with material textures that utilize alpha transparency to display correctly. However, when I set the shader to any of the supported quest shaders, the transparency gets discarded. Is it possible to retain alpha transparency for quest avatars?

buoyant holly
#

nope transparency is not supported on the quest as it's too expensive for mobile Hardware

modest spear
#

oh, does anyone have bananer's discord?

#

they removed the video for the skirt

wary heron
#

ok how do i make an avatar quest compatible?

placid matrix
#

Bananers is boomy now

stray tangle
#

@wary heron remove what you can't have, reduce polygon count, combine materials and textures

wary heron
upper yacht
radiant shadow
#

Suggest another project instead of switching between pc<>android, it likes to set all your material crunch back to default (could just be a me issue) and bigger projects takes awhile to switch even with cache

tribal marsh
#

hey im making an avatar in unity but having a bit of trouble ? i have imported using vroid. i get my avatar into vr chat but with 3 main issues : when walking my legs go to far in front where it looks very stupid, my avatar stands on his tiptoes however i can fix this by changing height but half my shoe is in the floor and finally when i move my arms it sometimes reveals a gap on either side making my hoodie disappear in parts on my chest is there any one who can help i have been working on this now for well over 24 hours i just want it done ๐Ÿ˜ฆ

fading leaf
#

after all my optimization and whatnot I went from 1.85mbs to .71mbs. I got bored and attempted to see how well optimized I could make my avatar using nearly every tip and trick I was provided.

#

I felt like I went on a damn pilgrimage.

tawny gale
#

glances to my friends avatars with a bajillion polys, bunch of small, useless toggle meshes with a dozen materials and dynamic bone counts in the triple digits
Please instruct our brethren, they have strayed the course

#

๐Ÿ™

fading leaf
#

I'll get my stone tablets with the Optimization Commandments.

#

"Tupper has bestowed upon me these fifteen.." -drops one stone tablet- "Uh... TEN! These ten commandments on optimizing avatars!"

#

Things you can do on any avatar anytime that you should make sure to do.

Make sure Legacy Blend Shape Normals is checked on

Disabling Streaming/Generate Mipmaps

Adjust the size of your textures as well as turning on crunch compression.

#

Use Blender 2.79 to 2.8+'s inbuilt baking/atlasing instead of using Cat's Blender Plugin.

#

While it may be helpful for beginners, it can create unnecessary empty space that makes your texture bigger than it should be. Aim for 4k or less.

#

Adjust sizes of avatars and in extension, bounding boxes. While big avatars be pretty cool. It adds up at the end. The smaller the avatar/bounding box, the smaller the download size.

tawny gale
#

Wait what? Since when does bounding box affect download size?

fading leaf
#

Something I tested

#

Not sure how and why, but it does

tawny gale
#

You're saying if I edit any avatar's bounding box to be supermassive it will increase the file size sent over the network?

#

Where none of the vertex data is changed, added or modified...

#

All the textures are the same...materials etc.

#

That just doesn't make sense.

fading leaf
#

Most likely yes.

#

All I did was copy an existing avatar and made it smaller

#

I don't know the technical jargon, but it's a thing.

forest fable
#

that doesnt sound right, do you have a comparison of the build report?

tawny gale
#

The filesize actually shrunk with the bounding box, not just the performance ranking?

fading leaf
#

Download size, not performance

tawny gale
#

Was generate lightmaps enabled or something? I'm floored.

#

Nothing changes in terms of data layout, the bounding box is just a few numbers.

fading leaf
#

While the performance system prefers smaller bounding box, the download size for some reason is affected. Further testing will occur with that to give a better answer

forest fable
#

looking at the build report should tell you exactly what affects the file size so that'd be interesting to see

#

maybe some unity builtins that's dependent on that?

fading leaf
#

As of right now, I have two models that are identical in every way except for size for some reason it affects download size.

#

How significant, im unsure

tawny gale
#

Something is being generated based on that space, like lightmaps or something, but lightmaps are usually turned off by a warning in the plugin window...so what else could it be?

fading leaf
#

I don't know, but what I do know is this means we can increase VRChat's performance 10 fold if we shrink everything and everyone. vrcAevSlap

#

Time to recreate Honey I Shrunk the Kids.

forest fable
#

doesnt make sense though, you can dynamically scale meshes which will affect the bounding box size, by that logic you could "compress" avatars by uploading them as tiny and restoring their scale at run time

fading leaf
#

Im not sure, again further testing may help

forest fable
#

yeah test and get the build reports

tawny gale
#

That's worthy of a bug report

#

a big, hairy, bug report

forest fable
#

if I had to guess, something related with shader variants and the smaller avatar got compiled with less variants thus reducing file size, unless you're already using a shader that has shader locking

fading leaf
#

Because as far as testing went; I have two avatars completely identical in everyway except for size. The download size showed that the smaller avatar had a smaller download size than the average sized avatar. They both have same animations, controllers, materials, everything.

#

How much of an impact it makes to performance and download size, im not sure. It could be pointless to do for all I know.

#

But yeah, possible bug

tawny gale
#

How much of a difference did it make are we talking a few megs here or just off by less than a percent?

#

You should test it on a barebones avatar with a single small mesh and one material.

forest fable
#

okay i just tested it

#

results are inconclusive

#

regular avatar 13.6mb

#

scaled down 13.5mb

#

built regular avatar again

#

13.5mb

#

first build slightly larger?

tawny gale
#

Inb4 rounding error ๐Ÿฅด

forest fable
#

a diff check of the entire build report shows them all identical

#

except for the tallied file size

fading leaf
#

Could be a rounding thing.

#

Or it could be special cases with each avatar.

#

I'll try with my .71mg avatar and see if the results are the same.

#

Later though, Im on mobile and require sleep

#

I'll keep people updated on what I find out.

#

But the other stuff however. Significant difference.

forest fable
#

If I had to guess, some small amount of meta data as part of the asset bundle that changes every build is just small enough to create a size difference because of rounding

fading leaf
#

Possible vrcFPaulSip

#

Need to access that to see all the individual stuff like that.

#

Right now as I stand, im at 0.71mbs. I still have animations to work on.

sick relic
forest fable
#

unity editor log

sick relic
unreal plover
#

Small changes might result in the asset bundle being less compressible

#

I wouldn't worry about 100KB of file size difference tho

fading leaf
#

Alright, so now that I have time I can see where both avatars are standing with the height/bounding box difference.

#

The small avatar is 1.69mbs

#

The average sized avatar is 2.31 mbs

#

I'm not sure what may be causing this big of difference

#

everything is the same except for size of the avatar and bounding box.

tawny gale
#

These are different avatars now?

fading leaf
#

nope, identical in every way

tawny gale
#

Okay so you're importing the same avatar twice, where are you scaling it?

#

There are a few ways to do so.

fading leaf
#

simply scaling it

tawny gale
#

It's transform?

fading leaf
#

yep

tawny gale
#

Okay instead of scaling the transform, try scaling it in the importer.

fading leaf
#

See if that thing you mentioned can happen?

proper grail
#

yes scaling the one in the viewport will add lotsa weird animation data when it packages

tawny gale
#

What thing I mentioned?

fading leaf
#

not sure if it was you or someone else, I think it was mentioned that this could probably get abused via animation or something.

#

do keep in mind, this is just more me fooling around with download size

tawny gale
fading leaf
#

yeah

tawny gale
#

Okay so what happens if you perform the scaling through the importer instead of the transform?

fading leaf
#

about to find out

tawny gale
#

The third option is to scale it in Blender before exporting.

#

I'll check back later

fading leaf
#

Alright so..
Average size - 2.31mbs
Small size - 1.69mbs
Uploaded average, but scaled the size down before upload. - 2.31mbs

#

So it can't be tricked, but maybe it can with the animation thing that was mentioned.

tawny gale
#

Have you made a bug report for this yet? These numbers are significant.

fading leaf
#

also I did something to go from .71mbs to .67mbs, but not sure what..
I passed my target goal of .69mbs

solemn condor
#

Do game objects that are disabled count towards lag? I know they count against avatar performance rank but do they actually cause extra lag when disabled?

solid smelt
#

There is a non zero cost since they still technically exist, but you dont have to render it so you remove that performance hit

normal nova
#

They're counted against your performance rating (since perf rating tries to cover worst-case) but in practice you avoid most of the cost

solemn condor
#

Thanks, that's what I was guessing

modest slate
#

I'm looking to have a pinned root dyamic bone, where it's 3 children rotate around their roots and the root bone does nothing. Is that possible?

sweet mason
unreal plover
tough warren
#

Does anyone know if you can use LODs on avatars?

unreal plover
#

LOD Group isn't a whitelisted component

tough warren
#

Aww

#

I mean it works in worlds at least

modest slate
fringe axle
fringe axle
#

wow 24 hours and no responces

tawny gale
#

This isn't an official support line, we're players just like everyone else.

fringe axle
#

yeah i know just hoped somone would have responed

calm spade
#

All you have to do is type material atlas vrchat in youtube and you'll get many more recent videos

fringe axle
#

i tried the miost recent thing i could find dint have voice or text just "do this " kind

tawny gale
#

If that tutorial isn't helping, you'll have to look up how to do whatever step you're stuck on in the latest version of Blender.

fringe axle
#

that guid dose nto relly explan what he is doing thats the problem , and seemse like all the full guides i find are for blender 2.8 or older wich is just difrint enugh to make it hard from me

tawny gale
#

Idk man, what step are you stuck on?

fringe axle
#

well the problem i am having is kinda at 10 seconds in that vid or anything past it, i dont understand what they are doing or why or how they are able to move the uv map with out things getting messed up

#

when i try it distorts the thing

#

i tried following the vid but feels like i am missing a step

tawny gale
#

Make sure you have the second UV map slot selected. That'll be the new one you just created.

#

If you're seeing your avatar's UVs get all messed up with you go to move them around for atlasing, it means you're editing your first UV map.

fringe axle
#

OOH i feel dumb now, thanks

#

i sware i had the second one clicked

tawny gale
#

All good, glad it worked out in the end

fringe axle
#

sorry if i seemed snapy with that"24 hour" comment, just i normaly try everything i can befor i ask

tawny gale
#

Nah it's cool, you could argue I was snappy in my reply. ๐Ÿ™ƒ

silver raft
#

can anyone help me set a toggle to a object on my avatar please help

tawny gale
silver raft
#

its not sdk3

#

@tawny gale

stray tangle
# silver raft its not sdk3

if you're planning on implementing toggles or other things you can control on the avatar, I HIGHLY suggest using SDK3, as it was literally built around that concept. for help with SDK2, you can go to #avatars-2-general. if you're for some reason dead set on using SDK2 and still want to do toggles, then search up "vrchat inventory system"

silver raft
#

i might have not been specific i want to have an animation to pull out a hammer. for example when i make a fist

tawny gale
#

Okay I don't have experience doing object toggles on hand gestures but if you follow and understand that tutorial, I'm willing to bet it's the same principle applied to a different animator.
So, instead of playing the toggle animation through a layer in your FX animator, you would run it through a layer in your Gesture animator instead. (I assume)

#

In both scenarios, you're just playing an animation in response to a state change. And yes that tutorial is most certainly SDK3.

split parcel
#

Why textures become white after making an atlas with CATS? I have all base color textures connected in Blender...

heady smelt
silver raft
#

My teaxtures kept breaking in cats

#

I switched to the older version on blender and it seemed to work better

glad beacon
#

How do you reduce the material slot count of an object in unity?

#

I placed a custom material over an object and each one seems to count for 2 slots now

tawny gale
#

It's because you're rendering multiple meshes with multiple materials. mesh x mat = total material count

glad beacon
#

I have 8 meshes that use 1 mat each

#

dont even know how to use multiple mats on one mesh

tawny gale
#

Uhhh okay that's weird, can you send a screenshot of your material import settings?

glad beacon
#

like, for the avatar's main blender file?

tawny gale
#

No in Unity, select your imported model in the asset window and click the material tab on the right.

#

That's your material import settings page.

glad beacon
#

cant post imgs here, put it in av3 help?

tawny gale
#

Yeah

glad beacon
#

Just going to post an easily searchable variant of the question here if ppl have the issue in the future:

#

When importing a blender model or unity default they have 1 extra material slot assigned

graceful sleet
#

no you don't?

#

I was a user when I was able to upload avatars

lone tiger
#

?upload

#

vrcThinking was it this command?

solemn radish
#

How much of an impact would an avatar with 300 bones have compared to an avatar with 70 bones. Not dynamic bones, just regular bones.

calm spade
#

Significant, since all those bone transforms need to be received other players

unreal plover
#

Depends on how deep the bone chains go as well

calm spade
#

Bone amount is part of the avatar performance ratings

solemn radish
#

If an avatar had a total of 500 bones (none are dynamic bones), but only say, 50 bones were shown at any given time, and the other 450 were toggled off, would this mean that the avatar's computer resource utilization for those bones be 1/10th that of an avatar with 500 bones shown with 0 toggled off?

unreal plover
#

You can't turn off bones

#

Internally it still need to calculate the transform of those bones so it can apply the transformation to the skinned mesh

solemn radish
unreal plover
#

Example, if you want to render a mesh you need to know the location of the vertices. So for every vertex you get the top few weighted bones as transformation matrix and apply the average transformation to the vertex. However even if a bone is "disabled", you still need to get the transform to calculate the final location of the bone.

silver raft
#

how do i get into the incpector part of my avatar where it says rig and animation and stuff?????

unreal plover
silver raft
#

????

solemn radish
silver raft
#

the hiarchy

#

??

unreal plover
unreal plover
solemn radish
unreal plover
#

Avatars performance stats tell something, but not the whole story. It's not that hard to make a "good" avatar perform better than a "very poor"

solemn radish
solemn radish
unreal plover
#

Go ahead, shoot :P

solemn radish
#

@unreal plover My common sense is telling me that if I want to be able to toggle between 3 outfits, it would be better if all 3 outfits were tied to the same bones. Compared to the idea of giving each outfit its own set of weighted bones that toggle on/off with the mesh, which of these two methods do you think would perform better? My question based around a concern that a weighted bone could become too heavy and thus cause performance issues, especially while being toggled on all the time

unreal plover
#

First method would probably be faster. Since you basically just disable the mesh renderer for the disabled outfits

#

Personally dislike avatars with multiple outfits, since you can always just change avatar and keep download size low

#

Also hard to differentiate between optimized "very poors" and true very poors lol

solemn radish
#

Well i feel like multiple avatars reloading all their skin, blendshapes, materials, and everything else may end up costing people more download time overall compared to having to just switch between outfits

potent notch
#

odd question, is it more or less optimized to attach everything to an armature via parent constrants, or directly to the armature bones?

#

or no difference

solid smelt
#

Constraints have a CPU cost, albeit cheap

unreal plover
#

Directly to the bones is prefered, otherwise it looks a bit funky in the camera

obtuse grail
#

is combining materials done in blender or unity?

#

this one i bought has soo many

calm spade
#

blender

obtuse grail
#

ah okie, time to youtube and google.. I asked the creator if i could pay to have it more optimized but they didn't know how

calm spade
#

Not surprised KEKW

unreal plover
#

I hate it when sellers don't list performance stats

fading leaf
#

Well there are things that even they forget that aren't necessarily important enough to update. vrcFPaulSip

#

Polycount and whatnot, yeah understandable.

heady smelt
#

Best plugin for atlasing?

stray tangle
tough warren
#

cats bake is better imo

#

because it gets rid of stuff from the textures that you didn't use on the model

stray tangle
#

that's good

sullen lotus
#

Can you atlas multiple meshes together?

calm spade
#

you mean textures ?

#

You just join meshes, it's the textures that need atlasing

wet harness
# tough warren cats bake is better imo

it looks really promising, but I still never got it to work proberly, it always fucked up some stuff, I probably have to take a closer look how to use it properly

unreal plover
#

it doesn't work well if you have self-overlapping UVs

gleaming vector
#

So uploading an avatar to quest.. any tools available that help you see what's taking up most of the size of the avatar to help pinpoint what's eating up most of 10MB limit?

left cove
#

So im trying to texture atlas, is it possible to do this in unity cos im having nothing but issues trying to do it in blender

gleaming vector
#

ohh if that works that'll be perfect.

left cove
#

and i looked at multiple guides on blender(they where great) i was just faced with constant technical difficulties for like an hour or two

gleaming vector
#

when you run that build size viewer and find out the model itself takes up probably just about the full 10MB.. doesn't leave much room for texture reducing.

#

๐Ÿ˜“

unreal plover
gleaming vector
gleaming vector
# unreal plover Look at `Total Compressed Build Size` which is the file size VRChat actually rep...

Uh, yeah, basically, I've made almost all the textures around the size of 88kb to 682kb according to the list on that. basically two 682kb textures, a 341kb texture, and a 170kb texture, the rest are 80kb and below. Dropping them all to that size basically still has the model at 12MB. With the model showing it takes up 83.7% of the uncompressed size in the list. So I'm not sure if reducing any more textures could even just barely get it there. lol

unreal plover
#

What is the poly count at?

gleaming vector
#

uhhh, I don't really see the poly count listed

unreal plover
#

Should be in the VRChat SDK Builder

gleaming vector
#

it says 206k verts, 169k tris for the model

#

ยฏ_(ใƒ„)_/ยฏ

unreal plover
#

That's not even going to get rendered on Quest :)

languid quartz
#

So, uh. What is the reason you wanted to upload it to Quest?

wet harness
#

that's about the amount of 4-5 of my PC avatars combined have

gleaming vector
#

I wasn't doing it for me. :o Was attempting to help a friend get their model quest compatible. I was sitting here going "damn, reducing textures size sure isn't doing much..." which is why I asked a bit ago (which Nara helped with) to see if there was something to show what's taking up all the size. lol

#

But yeah, it's pretty much a no go. xD

wet harness
#

the tris limit on quest is 20k I think >.>

languid quartz
#

Probably going to have to reduce the poly count. Meshes don't tend to take up a lot of file size but can when you have a lot of polys.

gleaming vector
#

There a simple way to do that, or is that me going into blender and manually merging stuff together to form a single poly

wet harness
gleaming vector
#

Cause probably isn't really worth me reworking the whole model for that. xD

wet harness
gleaming vector
#

got a good video on it? :p

unreal plover
#

170k tris to 20k tris is not really doable without retopology

languid quartz
#

Could give that bake feature in CATS a shot

unreal plover
#

Quest bake would probably still struggle with that amount of reduction

languid quartz
#

Well can't really lose anything by trying it, and if it works they'll have a lot less work to do on getting a decently optimized Quest avatar in. ยฏ_(ใƒ„)_/ยฏ

unreal plover
#

Could also try Mesh Compression in the FBX import settings in Unity

#

You could at least upload it, but (Quest) people will struggle rendering it

indigo portal
#

Hey can i get a little bit of help with a shader issue? I'm looking to optimize my avatar for quest, and need to limit my shaders to mobile versions. I need to find something that is in the mobile category, and allows for transparent alpha to render as blank. The mobile/particle section works, but the sdk decides that doesn't work. Does anyone have any ideas for this to work?

languid quartz
indigo portal
#

ah beans....

#

i'll just remove the toggleable items from the model for the quest version

indigo portal
languid quartz
#

It'll likely work. Main thing is that you'll have users on one platform seeing something but the other won't see that happening, which may lead to some confusion.

indigo portal
#

Right, i won't bring it to attention, as it's really only blush, or eye hearts/stars.

buoyant holly
#

then you should be fine maybe if you have geometry budget leftover cut those into geometry

lyric briar
#

Trying to minimize draw calls by having everything on my avatar use the same mesh, but I keep running into an issue where things cannot be moved by their bones in Unity unless they're all parented to the same armature. Considering I want one set of objects to be floating next to my avatar and not parented under the hips or whatever, should I put all of those things I want under a second mesh?

calm spade
#

Why can't you animate bones parented to the armature for floating objects ?

lyric briar
#

I'm not sure, actually. I thought it was an intended effect I didn't know about

proper grail
#

That is odd, animator grabs everything in the object.. armatures and meshes, lights, audio

lyric briar
#

for example, only the highest item in this list below the mesh actually moves around when I transform bones, everything else is static

#

ahh, cant post images here, whoops

calm spade
#

Can through links

lyric briar
#

it looks like
gameobject:
-Mesh
-Hips
-Item1
-Item2
(where each item is their own armature)

calm spade
#

You should be able to have everything on a single mesh

#

and in the same armature

#

One thing i'd expect would be necessary for an animation of these objects would be to set the masking of all other bones to off in unity

lyric briar
#

I tried exporting from blender in slightly different ways, and for whatever reason only the armature highest in that hierarchy receives transforms (e.g. dragging around the bone in unity and actually seeing it move)

calm spade
#

Are you animating in blender ?

lyric briar
#

no animations, just moving items in the window

calm spade
#

Ok i guess i'm confused by what you're trying to do with those items

lyric briar
#

yeah, I'll try and explain it better

#

Under the prefab/gameobject, I have one mesh, the armature for my avatar, and the armature for multiple other objects that I want to position in Unity. But, unless the content of those item armatures are bones parented somewhere on the first (avatar) armature, they don't move in response to anything and stay static at 0,0,0

calm spade
#

Can you post a screenshot of your hierarchy ?

lyric briar
#

sure thing, putting it on imgur now

lyric briar
#

everything shares one mesh, texture, and material, so I'm trying to have everything on one avatar and toggleable via shapekeys and bone transforms

calm spade
#

yeah there's no reason to not combine all that

#

you can scale the bones of the items with an animation

lyric briar
#

ah, so I should join all the armatures?

calm spade
#

yeah

lyric briar
#

is there any way to have the static movement that comes with being an object outside of the main armature while still being parented to the hips, chest, etc. ?

#

I tried it on a different avatar, but had the object jittering around like it was on a bone, rather than floating

calm spade
#

Do you want objects to follow your or not ?

lyric briar
#

yeah, not planning on any static/world-based rigidbodies or anything

calm spade
#

Then if the armatures are merged it'll do that automatically

#

per the bone it's parented to

lyric briar
#

I'll give it another shot then, I feel like every hour I spend in blender is another several things that click and I look back and want to kick myself for not understanding earlier

calm spade
#

That's the way lulw

lyric briar
#

thanks a bunch for your help, it's pretty nice to have an admin help you out vrcEretNice

heady smelt
#

Are there any better ways to prevent legs from going through long skirts? Dynamic bones has the "bead curtain" problem and Unity Cloth kills all detail on the mesh.

calm spade
#

Weight painting with bones + constraints

heady smelt
#

Constraints on the leg bones?

calm spade
#

skirt bones on the leg bones yeah

heady smelt
#

Thanks, I should give that shot. Would it be advisable to have a dozen constraints on an avatar (performance-wise)?

calm spade
#

Yeah, not a big deal

proper grail
#

Ive been workin on a method, it pretty much involves making a duplicate body and bridging the empty space between the legs with fill or bridge edge loops. Than putting the skirt on a temp shape key just to smooth and scale it back to where it was. And finally using the data transfer to grab nearest face interp vertex weight data. If ya want it to be dynamic bone ish can just duplicate each leg bone and rename them skirt and give them an end bone and rename the skirts vertex group legs to skirt and parent the skirt bone to the leg bone. It looks alright and with a decent dynamic bone stiffness and downwards force itll even look like the skirt catches the leg. Also it counts as like 4 dynamic bones.

#

Shrinkwrap is a pretty good visualisation of what face vertex group data will be grabbed, can be used to check for problem areas

#

breath skirt.

heady smelt
proper grail
#

Than its just crazy ive been in blender too long rambling!

tawny gale
#

That's some genius rambling tho', how does it look in action?

ruby isle
#

@heady smelt I would strongly advise against using constraints. Unfortunately VRChat doesn't count them against performance ranks but they actually take up a surprising amount of performance resources

lone tiger
#

But I guess constraints are still better performance-wise than rigidbodies + spring joints in scenario where you simply want to "lock" 2 objects together?

ruby isle
#

In some ways yes. Rigidbodies can at least run on GPU as opposed to Constraints being locked to CPU

#

In that case Rigidbodies would be better on people who are CPU-bound for performance

languid quartz
#

As constraints use a very small amount of the CPU and runs on multiple cores, the CPU-bound issue is very rarely an issue unless the CPU is at 100%, in which case they would have more problems than the tiny processing power needed for constraints (in most cases)

solid smelt
#

Its a stretch to use rigid bodies instead of constraints if you're worried about optimization. If you care that much your can compare them in the profiler.

lone tiger
#

I asked that question because yesterday I purchased a booth item which is essentially a personal selfie camera that is stuck to your viewpoint via rigidbodies and spring joints. Having just 2 of these already puts your avatar at medium perf rating, so I thought they're way less performant than constraints, which I already use a lot to reduce the amount of dynamic bones used to move hair.

solid smelt
#

If you want to do testing, open the profiler and look for the physics/constraint manager under the scripts section. Less ms the better

lone tiger
#

But I guess for just having a plane being visible in my viewpoint I could just replace both rigidbodies and spring joints in that with constraint(s).

#

And yes, I want to make all of that as a toggle anyways.

solid smelt
#

What exactly are you trying to do? Stuck with your viewpoint how? World object?

lone tiger
#

It's not a world object. I am not at home atm, so I can't look at it in Unity, but iirc that item is essentially a plane with a camera that you're meant to put on the root of your avatar, in front of your avatar's head so it will show you a small preview of your upper body in the corner of your view. Here is the link to booth page for it: https://booth.pm/en/items/1124131

#

That plane is then supposed to be 'tied' to your viewpoint/head via rigidbodies.

#

What I am thinking of is if I could simply do that thing with constraints instead and get rid of rigidbodies altogether.

solid smelt
#

Yeah if you want a screen to just be in front of your face there is no need for rigid bodies. Just place it where it needs to be and parent constraint it to your head bone

#

Fixing things in place with rigid bodies + fixed joints is the pre-constraints method of fixing it

lone tiger
#

Yeah, that asset existed for quite a while before SDK3/Unity 2018 and I guess author didn't look into switching to constraints.

#

Even though there is a version specifically for SDK3 avatars.

solid smelt
#

Constraints are not an SDK3 thing, they were once we got to 2018

#

Just a case of "if it ain't broke don't fix it"

ruby isle
#

@languid quartz Constraints actually use a suprisingly large amount of CPU time which is why I say to avoid them

#

To give you an idea, 1 single constraint = about 10 dynamic bones worth of frame time

#

And yes while they can be multithreaded, they still add up dangerously fast

solid smelt
ruby isle
#

I profiled a lot of things in Unity a while back to count frametimes of my avatar

#

I ran Dynamic Bones alongside constraints and counted the frame time of each

solid smelt
#

Well constraints are no where near as bad as dynamic bones, even though the frame times of small quantities may seem similar, dynamic bones has a much steeper cost the more you add

ruby isle
#

How so

solid smelt
#

Here are the profiler tests I just did, lowest vs highest of each:
10 dynamic bones: 0.03 - 0.22
1 parent constraint 0.02 - 0.08

100 dynamic bones: 0.20 - 0.92
10 parent constraints: 0.08 - 0.24

1000 dynamic bones: 2.52 - 4.75
100 parent constraints: 0.4 - 0.8

ruby isle
#

10 parent constraints are .2

#

100 would be 2ms

#

Which is an insane killer

solid smelt
#

I mean thats not what im seeing

ruby isle
#

Where are you seeing yours

onyx harness
ruby isle
#

Here's the profiler screen

#

10 dynamic bones and 10 constraints in the same scene

solid smelt
#

What about the other dynamic bones processes?

#

Dynamic bones uses FixedUpdate, Update, and LateUpdate

ruby isle
#

It only uses Late Update

#

It can use FixedUpdate, but only if the Update Rate on the script are set to Physics

solid smelt
#

I cant post pictures here apparently, but using default dynamic bones settings uses all 3

ruby isle
#

The other two are negligible then

#

Of course they run, but only to do the if (UpdateRate == Physics) check

#

Which would return false in 99% of cases and not calculate anything

stray tangle
#

could be different versions of the script too

ruby isle
#

VRChat forces the same version over all users

#

No matter what version you use in Unity

solid smelt
#

Yeah Update is about 1/3 of LateUpdate so it gets worse the more you have

ruby isle
#

That's still miles below Constraints

solid smelt
#

But it isnt though thats what im trying to tell you

#

If youre testing 100 dynamic bones, do you have 1 strand or 10 strands of 10?

ruby isle
#

Do you actually know code-wise what the Update function is running?

#

I had 1 strand of 10 in this test

solid smelt
#

I'm just looking at frame times, why does it matter what the code is actually doing?

ruby isle
#

I know multiple components adds to performance hits

#

So the thing is, Dynamic bones are garbage performance I agree. Constraints are way worse though when used in excess

#

If used sparingly, they're still really bad but of course not as bad as 1000 bones (which I hope nobody uses)

#

Have you ever gotten your FPS tanked by someone with 1000 bones?

solid smelt
#

It depends on how much excess though that's the thing

#

1000 bones doing what exactly? Skinned, constraints, ect

ruby isle
#

Well each constraint is a linear hit to frame time. .02 is a pretty big amount considering most people would use a ton of constraints for certain things

#

Imaging a lobby of 24 people, each with 5 constraints active. That's 2.4ms of frame time JUST to calculate constraints

#

Only 5 constraints per player

#

I've seen people with an entire skeleton of constraints (the ones who clone themselves while still doing movement)

solid smelt
#

I mean there is no other way of doing it, its really just a fight of how to do things the most optimized way

ruby isle
#

Rigidbodies

#

They can run off GPU

solid smelt
#

Too bad they dont work in half the worlds, jitter constantly, and drift over time

ruby isle
#

Not in my experience

#

If you're using joints, raising the Mass scale in the joint settings reduces jitter. Essentially 'stiffens' the joint connection

#

I do agree though VRC's physics are kinda scuffed sometimes. But they're much better than if you had to use a ton of constraints

#

I mean ideally if you wanted to attach an object to your avatar, you should really combine the mesh and use a bone on the main rig

solid smelt
#

I don't think constraints are as scary as you say they are, from my tests they are more optimized than dynamic bones and they are much more stable than the fixed joint / rigid body system everyone used to do before the constraint system showed up. Nothing costs nothing

ruby isle
#

The scary part is they can't be blocked

solid smelt
#

I'm not against them being added to the safety system, but I usually have non friends not shown

#

We've needed a rework of the performance ranking for a while now, but I doubt it will ever come

ruby isle
#

It's coming soon. They're working on adding blendshape penalties which will be great

solid smelt
#

You dont think that will just be a single addition of that and nothing else?

ruby isle
#

They'll hopefully tweak some numbers too

solid smelt
#

I know they want to work on the whole performance ranking but other things are more important. They didnt talk about it all in the dev stream

ruby isle
#

I just try not to follow the ranks anymore. They're not representative enough of actual performance

#

I know they've said they're very rough metrics, but they're extremely rough to the point you can have an fps killing excellent and a really performant very poor

solid smelt
#

Its hard to count for every edge case, especially since shaders are a black box

#

If you know what you're doing then yeah the performance ranking does not mean nearly as much as it seems

ruby isle
#

There's so many ways around the perf system without shaders at all though

#

Constraints, jacking up vertex counts, certain SDK bugs that allow for insane fps drops with small perf rank hits

#

Not even to mention VRAM usage with texture sizes

#

Which is why most people crash often

solid smelt
#

Only way I crash is slow memory leaks tbh

ruby isle
#

There are no memory leaks

#

I haven't crashed in like 6 months and I play 8+ hour sessions almost every day

solid smelt
#

World hopping or same instance for the 8 hours?

ruby isle
#

World hopping every 1-2 hours

#

Fridays though are minimal world hopping. Typically only around 3 instances over the course of the session

solid smelt
#

Changing instances clears RAM usage so thats probably why you dont have iit. Also my ram iis probably fucked

ruby isle
#

I have 16gb of ram which according to most people isn't enough

solid smelt
#

same

#

After 4-6 hours in the same instance I'm usually at 99% ram usage ๐Ÿคทโ€โ™‚๏ธ

ruby isle
#

Technically your ram is never full unless you have a ton of users in the instance and they have huge file sizes

#

By the way, it seems that dynamic bones actually aren't affected by multiple scripts

#

Constraints still show a major hit over bones, even if I doubled the bone counts

onyx harness
# ruby isle https://cdn.discordapp.com/attachments/808131675962998825/834209835145887754/unk...

I've been using constraints on some avatars to reduce the number of dynamic bone scripts without leaving things as stiff as concrete. Seeing you say constraints are potentially worse is quite surprising because I haven't spoken with someone who shares this opinion before. Thus, I went and tested these numbers myself but the results I'm getting differ significantly.
Here's 100 parent constraints, 100 dynamic bones on 1 chain
https://gyazo.com/64d8b0c5c428cdc875ff539ccdf786d3
and this is 100 parent constraints, 100 dynamic bones on 10 chains also with 10 each
https://gyazo.com/cb8121135ab89aecc1a7c2f394004f7d
I imagine there aren't a lot of different ways to set this up. Is there anything that comes to mind as to why the results are so different?

ruby isle
#

Hmm maybe there's some sort of Unity setting that changes something?

#

I've observed my test's frametime hit in VRC itself though. Turning on a single constraint took exactly .02ms of frame time off my game

#

(Tested using an overlay with frametime counters)

onyx harness
#

Hmm I see, if it were a unity setting that sounds like an endless rabbit hole. I wasn't too concerned with it before but I'll do more testing myself and see if the changes I made are actually helping at all.

ruby isle
#

Trust me, I did the same you did. I started using Rotation Constraints to mimic dynamic bone chains to stay in the "Good" perf rank. Once I figured out constraints are oddly unperformant I trashed that entire setup in favor for more optimized bone chains

sweet mason
#

All the different constraints hit the same? I usually have up to 10 rotation constraints for twist bone.

ruby isle
#

Yes they all hit the same and add up

void mortar
#

I went ahead and seperated my head from the body as its own object in blender. After ensuring all the blendshape information was still safe, I exported it, but when brough tinto Unity, the head now acts all broken, but if I use the blendshapes, it will put the head into the right spot and pose

#

has anyone run into this before? It's like the basis blendshape is broken only to Unity, but not blender (2.79)

calm spade
#

Make sure the list order is correct

#

and that the shapekeys in blender don't move the mesh

void mortar
#

yeah... blender just broke the blendshapes. It didn't even import its own fbx correctly. Just reloaded a backup and fixed it

heady smelt
#

How tf do I reduce my avatar polygons my m optimizing it for quest

heady smelt
#

Is there a specific version of Dynamic Bones I should be using? The newer version has no issues within Unity Editor but ingame I get that twitchy flapping glitch (whatever it's called). Older versions of DB glitch both in Editor and ingame.

#

Occurs when a bone with Stiffness >0.5 touches a collider.

solid smelt
#

Using too high of a stiffness and then also a collider is always going to give you problems since they will fight. The actual version of dynamic bones does not matter since VRC replaces your scripts with their own

heady smelt
#

Got it, guess I'll use the older versions in Editor so I can tell when they glitch.

calm spade
heady smelt
heady smelt
#

@calm spade thank you I love you now you are my friend Iโ€™m not asking I claim you as my friend now lol jk tysm yayyyyyy!!!!

fierce talon
#

how many dynamic bones can you have before you start to lag peoples systems?

unreal plover
#

Less is always better. If you need more than 100 then you're doing something wrong. I try to aim below 16 transforms for avatars i use in public instances. Also please don't go excessive on collision checks. You really don't need colliders on every single bone

buoyant holly
#

wow that's very nice and even more stupidly efficient when physics Bones come out

calm spade
#

Did someone say constraints

unreal plover
#

I also started working on an in-unity material optimizer ๐Ÿ˜„

calm spade
#

Does that only work if the meshes are joined ?

unreal plover
#

Shouldn't be that difficult to add. I'm focusing on atlassing first tho

unreal plover
buoyant holly
#

does it handle PBR material Maps

unreal plover
#

It's on my todo list. The plan is to extract that from the materials of the unoptimized object and atlas those textures too

#

The same is with applying hue-shift/saturations/brightness from shaders like Poiyomi

buoyant holly
#

would be an interesting question though to figure out what to do when dealing with mask textures

hot spruce
#

I got something I wanna ask, I was looking intro draw calls, "on average how many draw calls should an avatar have? been vrcPerfGood , vrcPerfMedium , vrcPerfPoor" obviously as little as possible, but I wanna know some approximations about it I was unable to find much material talking about this in particular and since I haven't messes up with many models in particular to get an idea I was wondering about it.

unreal plover
#

In general every material you render is a draw call (sometimes more if it needs multiple passes, e.g. outlines). For most of the avatars you really don't need more than 1 material, unless you have extra props you want on toggle.

#

There is a small catch that it might be preferable to split the face with all the visemes from the rest of the body to reduce the load of computing the visemes. This would cost another draw call but with high polygon avatars it should actually be more performant.

#

I would say you should aim for:

1 / 2 materials for the body + clothes
1 material for all the props with instancing enabled
VRCLens/Virtual Lens cameras add another 6 materials + 1 for the mesh
#

Particles always add two slots, but you might only use one. Obviously the disabled one has (almost) no performance cost

hot spruce
#

That's not what I was looking for, I already know how it works and how to optimize, but I wanted in relation to the the performance ranking system as it "if this avatar is vrcPerfMedium i would expect between x and y draw calls"

#

as I was wondering because, in the end you can have tons of things on your avatar and be seen by the performance system as "optimized" i managed to add 13 toggles on a good quality avatar, but it has around 35 draw calls

calm spade
#

Lots of things aren't taken into account in drawcalls so it's not a relevant measure for avatars

#

it also doesn't take enabling/disabling things into account

hot spruce
#

๐Ÿค” I was just wondering, i mean aren't the draw calls the easiest way to see how optimized your avatar is in a more "raw" way, like the more draw calls the harder on your system the lower your framerate

calm spade
#

for meshes and materials yeah sure, but not the rest

hot spruce
#

ok, i got another question, let's say i have an avatar that is ranked as good vrcPerfGood but it has everything i could possibly add on to it before it gets to medium vrcPerfMedium wouldn't that make it overall less optimized in comparation with a vrcPerfMedium avatar that only had 1 thing that get over the overall good performace?

#

I know is kinda dumb, but since a lot of people are only looking at the performance system that is in vrc, is there a better way to see how "hard" an avatar is on your system beside draw calls?

unreal plover
#

Best way to check is with the Unity profiler

#

There's no easy way to determine performance except for testing everything out or just making an educated guess. To be fair, the most I've seen people block (on PC) is vrcPerfPoor and that happens rarely.

#

Heck you could fit a really shitty fur shader on a vrcPerfExcellent and it would probably perform worse than vrcPerfPoor

#

I usually just put a random dance animation on and check how many times I can duplicate the avatar before I drop below a certain fps

#

It also depends on system specs. If you're on an old CPU dynamic bones are going to hurt your FPS way more than a more intense shader or more polygons

proper grail
#

dance animation and put AA to 1!

autumn plume
#

I just wanna have a skirt without dynamic bones or cloth physics maaaaan

supple anchor
#

i have were i have decimated a model to 5000 polys in blender but it is still showing up as 90000 in the vrchat sdk. Is there any way to fix this?

#

everything else is excellent

supple anchor
#

never mind i fixed it

shut ivy
#

?

#

Uh

sweet mason
#

Instancing work?

willow sentinel
#

Hey, does someone of you know how much blendshapes affect the size of the Avatar? i want to have a lot of blend shapes but still a decent avatar size

languid quartz
#

Are you referring to the file size?

#

Or size as in how big / small the avatar is when looking at it

willow sentinel
#

file size

#

i'm currently working on an idea for an avatar keyboard which works with shapekeys/blendshapes

fading leaf
#

Depends on the polycount, otherwise doesn't matter too much.

#

If it's only facial shape keys and you're above 32k, it's a good idea to split your face mesh from your body.

willow sentinel
#

Its a 900 poly mesh with roughly 900+ shapekeys

#

30 characters with 30 polys each. And 30 shapekeys each character

unreal plover
#

It would probably be better to do it via a shader instead of shapekeys

#

It's still going to be a lot of data. You're essentially storing mesh verts * shapekeys * 3 floating point numbers (might be more cuz i think each transform also saves normal data).

fading leaf
#

I don't think 900 polycount mesh is going to effect much, but is 900+ shape keys necessary?

#

The most I've seen on avatars is like 60 shape keys in the face alone. So I couldn't imagine why you would even have 900.

proper grail
#

In my testing on a 10k vert head each unique shapekey added about 100kb to the packaged, compressed model.

unreal plover
#

assuming 900 verts, it's going to be ~10MB of data (900 * 900 * 12 bytes), not sure how much compression will help

sweet mason
#

I can get up to 100 easy

#

1/4 is for morphing the face

#

As in rpg

lone tiger
#

It's only the face, there are other meshes with shapekeys (far less on them tho, but they modify almost all faces of model), but entire avatar is way below 10MB. It also has 6 2k textures.

empty geyser
#

What are the current avatar requirements for quest (poly count, shaders, animation limits)?

empty geyser
#

I've uploaded an avatar with 60k polys on quest and it worked fine.

lone tiger
#

It's not outdated and your avatar would need to be manually shown by each Quest user individually, because it's very poor perf rating.

solemn radish
#

Does using a high amount of the Parameter's total memory impact performance in some way?

thorny garden
#

You can raise the poly count to 20k and the material count to 4 but then it becomes a Poor perf level

#

meaning most Quest players will have to enable it unless they have their safety settings set to allow Poor avatars

lyric briar
#

I've got an mmd-imported model in Blender where most of the many, many materials are actually just single colors, rather than images... is there a way to quickly convert those to single-color image textures (or any method that will let me atlas) other than individually making a color-picked image for each one?

unreal plover
#

CATs autoatlasser can do that

#

I think

thorn rampart
#

You can combine same materials with cats blender plugin if thats what you mean

pure arch
#

I'm a lil confused, in blender there is only 19000 polys on this model I'm working on. But in unity it claims 37000. Is this tris or something?

unreal plover
#

a poly (polygon) isn't necessarily a tris. You can have faces with 4 edges (i.e. making it a quad) wich will be converted to 2 tris

pure arch
#

So, in lamans terms. Just times the poly value by 2

unreal plover
#

if your model is in quads you need to multiply by 2

pure arch
#

Rest in peace to my plan of makin it my fallback then xD

unreal plover
#

Blender should give the tris count too though

pure arch
#

It does, i just didn't know what it meant till now lmao. Thought polys or quads were just what vrc used

unreal plover
#

Unity/VRChat converts to tris, else it needs to render your model separate for tris and quads (therefore doubling your drawcalls)

pure arch
#

Wow, makes me wonder why creators even model with quads

#

I wouldn't know the difficulty though, I don't create models myself

unreal plover
#

Modelling with quads is easier since it's easier to see what aligns and whatnot

stray tangle
#

and because you can only use loop cuts through quads

#

modeling in quads is usually cleaner and easier

unreal plover
#

Also going from quads to tris is easier than the other way around

pure arch
#

Fair enough.

unreal plover
#

unless you mean just uploading a quest version

frigid raven
#

I was messing around with dynamic bones and optimization. Is it true that if I just add one dynamic bone the pref level jumps to poor?

proper grail
#

you may have 32 dynamic bones, 16 dynamic bone scripts, or 8 colliding bones before poor is hit

frigid raven
#

Hmm. Weird. My avi is rated good and if I add one dynamic bone to the hair (12 bones, no colliders) the rating jumps to poor

#

Iโ€™ll relook at it. Thx

#

Maybe my dyn bone script is buggy

inland granite
#

how are textures stored in VRAM, after they've been downloaded and unpacked? are they compressed at all when they're sitting in video memory, or are they something close to as they are in my unity project?

wintry mortar
delicate urchin
buoyant holly
#

looks very handy have any gifs of it in action

unreal plover
normal nova
#

Astc works very well for 'less vram footprint while still looking good' imo

heady smelt
#

im making an avatar whose upper right arm keeps twisting like 90 degrees to the right when using it in desktop mode, but it appears fine in the avatar preview and when using it in vr. anyone know what causes this?

gleaming topaz
#

Can someone help me with something I need someone to join as a collaborator and try to make my avatar quest compatible because whenever I do it my application just crashes, I also need help to see if my drawing finger gestures will work dm if your down

heady smelt
#

what would cause cats blender plugin to make a model's material darker after baking it?

frigid raven
#

If I have a lot of dynamic bone elements on my avatar, but I create a toggle to disable them in game, will that save frames?

Iโ€™d like to have a way to optimize my avatar without uploading multiple versions

#

Kind of like if I disable particle effects on my avatar it saves frames

#

The game shouldnโ€™t run the dynamic bone calculations if the object is disabled correct?

old fiber
#

Disabling the dynamic bones will save frames, but they'll still count towards your performance ranking.
The Rex avatar does this on the tongue, for example

woven fable
#

Which way of making avatars more detailed is better. Making avatar higher poly but no transparency or alpha channels

#

Or create avatar lower poly with alpha channel to achieve higher detail

#

As in instead of making a curve parasol we achieve same round shape with alpha channel on the texture

old fiber
# woven fable Which way of making avatars more detailed is better. Making avatar higher poly b...

Depends what you're going to aim the avatar at
For PC they can take the higher polys and it'll probably look better, but it'll likely make your avatar suffer for performance
If you use alpha channels and transparency then your performance ranking will be a heck of a lot better but you'll basically block yourself from Quest compatibility since the Quest version doesn't handle transparency too good

woven fable
#

The standards are one thing. But what does actually impact more the game?

#

I think i should check how much does it take for gpu

#

I mean the pure time to render. If model takes 1ms to render with alpha and takes for example 0.8ms with higher poly but no alpha i will go with one that impacts the game

frigid raven
#

My thoughts exactly. VRC should also add two pref ratings. One for if everything is on, and one for whatโ€™s actually enabled. My Avi is labeled Very Poor, but I have stuff disabled to the point where it should really be labeled Medium

lone tiger
#

Another thing is Avatar Performance Ranking system allows you to block avatars if their ranking is poor or very poor, but they're only going to be completely replaced with robots only if their: polygon count, mesh count, material count or bone count are too high.

#

In other situations, such as if only dynamic bone components render your avatar very poor, then only dynamic bone components will get disabled.

frigid raven
#

I see. But people can still Show Avatar Iโ€™m assuming

#

If they want to

lone tiger
#

yes

frigid raven
#

Thx

sleek flare
#

what's the best way for going about optimising avatars for full body?

still perch
#

Proportions

sleek flare
#

like, my legs are too long, with my feet being off by about 15cm

sleek flare
still perch
#

Well, your actual ones would be the ideal

sleek flare
#

ah, I see

#

so just, literally measure myself?

still perch
#

That's one way.

#

You could also use a photo of your self t posing (from a distance) and try to overlay that and correct by that

sleek flare
#

yeah, I'll look into it, cheers!

lone tiger
#

You can use Y-bot/X-bot avatars as an approximate reference, their proportions and rigs are usually fitting most people. You can download those from Mixamo.

tranquil dune
#

Does anyone have a good workflow for handling shape keys with modifiers in Blender for avatars?
I found an addon for apply individual modifiers, but I'm trying to add an option to apply all the modifiers, I'll still finish it, but their has to be an easier way... https://github.com/przemir/ApplyModifierForObjectWithShapeKeys

calm spade
tranquil dune
#

@calm spade AHHH THANK YOU! The repo needs better SEO...

calm spade
#

Yeah that's github in a nutshell CryingWeeb

#

If you have suggestions i can send them to her though

tranquil dune
#

Include the words "apply modifier and keep shape keys" the read me somewhere and repeat it in different ways :3

calm spade
#

fair enough !

heady smelt
#

I will start making a PC Avatar to Quest i will ask stuff here soon

calm spade
heady smelt
#

is there a way to combine skinned mesh renderers and what are ways i can do that?

ashen spindle
#

In blender, join the meshes

steep axle
#

does anyone know how to change the material slot order for unity?

lone tiger
#

You can't do that in Unity.

#

Need Blender for this.

steep axle
#

how can i do that in blender

lone tiger
#

Unity orders material slots based on vertex number (the order the vertexes were placed in.) In blender you can delete and re-add vertices belonging to your material slots, readding them in whichever order you want the slots to appear in in unity.
#avatar-help message

normal drum
#

@lone tiger could you help me with some of the Cats/Atlasing stuff?

#

I dont know how id go about atlasing the model with the eyes not being offset? and even then I still dont know how to animate it

#

im losing it over here

amber hemlock
#

Quest not having simple cutout is so painful. Is it really so intensive?

acoustic haven
#

Hey whatโ€™s the best way to reduce the polygons on toggle-able objects on a model? I have this Giant Wrench I made. That is supposed to go into my avatars back. but Iโ€™m worried about the avatars quality. Itโ€™s green so it meets the requirements. But when I put the wrench on my avatar it doubles or triples in polygons and goes into the red. Is red not that big a deal? Iโ€™m knew to this so forgive me.

buoyant holly
#

a PC VR setup is like a order of magnitude more powerful then essentially a cellphone slap to your head

nova hornet
#

I saw these 2 videos
https://www.youtube.com/watch?v=lqe8JRiYuu0 and https://www.youtube.com/watch?v=sZzq-D0DNic
I'm trying to use what was shown in them JUST to unmirror a face and when I do the texture that the bake gives me looks fine
but when I actually apply it by changing the texture on the material and switching to the other UV map
there are seemingly random black spots on the face that aren't there in the UV and I don't know what I'm doing wrong..
Any ideas?

buoyant holly
#

this is a pretty handy tool for auto generating lower polygon count versions of models

#

but mighty handy skill to learn how to dissolve Edge loops in addition

tender cipher
#

Do disabled meshes and stuff impact performance?

stray tangle
tender cipher
#

I know that, but was wondering about impact on frames mostly

#

I'm putting props on avatar and It kinda pushes over 16 mats now x)

#

potentially wanna use it at certain events (but these require medium avatars)

#
  • particle systems seems to count as 2 material slots even if trails are not used
austere raptor
#

so im trying to upload a avatar, but when i went to upload, the sdk is stating that the "avatar is too large to upload on this platform" and stating that its 15 something MB. I know its the animations are causing the size, because when i remove the action layer, it uploads fine. I have legacy blend shape normals on, and i lowered the texture resolution and also compressed them. But ive had all these animations with the exact same action layer on other avatars and its worked fine. So im not sure why VRChat is bugging now.

solid smelt
#

Pc does not have a size limit, are you trying to upload it as a quest model? You may have accidently set your build target to android.

coarse vine
#

What's the difference between a mesh and a skinned mesh?

unreal plover
#

A skinned mesh has bones that allows for deformation (arms, legs, etc.) and shapekeys. Normal mesh doesn't allow this

austere raptor
coarse vine
#

oooh, so if I'm going for a better performance rating I'll need to merge all my body parts together

coarse vine
#

can I save space on a texture by having multiple parts of my UV overlap if I want them to have the same/similar appearance? Or does that cause problems

#

I guess same question for if the texture is symmetrical, can I texture half of it and flip the other UVs over without having Unity scream at me?

buoyant holly
#

yes that's perfectly acceptable to overlap textures game studios do that all the time

coarse vine
#

Woo that saves so much space, thank you

modest garnet
coarse vine
#

Even more space!

modest garnet
#

Hooray! :)

proper grail
#

But do be careful to have about 32 pixels of padding if the seam is in a noticable location, mipmapping might pick a different color at medium distances

coarse vine
#

I did not know about that, that changes things! Thank you

brazen knot
#

i try'd to optimize my avatar by cleaning some unnecessary stuf from it
and or just to decimate it

what ever i do i get the same result

why is that happen and how to prevent triangle explosion
https://streamable.com/qq56sd

lone tiger
#

don't decimate areas with shapekeys on them, such as face/head

brazen knot
#

so even the "safe" decimation will not work
and if i clean something from avatar face that will be the same result

ok then ty

proper grail
#

that and blender things rule that you must tab between edit/object mode a few times for the blender gods to bless your shape keys with non explodey

lone tiger
#

You can also dissolve edge loops, that shouldn't destroy shape keys.

#

You would need to convert your model from tris to quads first to do that though.

brazen knot
#

yeah i quadralize it already
and thank you @lone tiger@proper grail ๐Ÿ‘

heady smelt
#

looking for someone to optimize an avatar for quest and upload it and let me clone it dm me for link its 60k polygons

buoyant holly
heady smelt
buoyant holly
#

oh dear that does make things a lot more complicated for you

daring pumice
#

i'm trying to remove polygons remove some materials from an avatar but i don't know what im doing wrong can simone get on a call and walk me trow what im doing

desert dagger
#

its much easier than it sounds

lapis parrot
stray tangle
#

check amount of material slots

#

and amount of meshes

lapis parrot
#

everything is green, I can't put pictures here

stray tangle
#

your SDK is outdated then

lapis parrot
#

alright ty, haven't messed with quest project in a while

plush kestrel
grand ermine
#

just wondering, for optimization/performance rank reasons is it better to have multiple outfits on one avatar or multiple avatars of the same character but with different outfits?

nimble shard
#

Latter If u up for optimization different outfits are always different meshes

onyx harness
# grand ermine just wondering, for optimization/performance rank reasons is it better to have m...

There's a lot of things to consider with this.
Having multiple avatars means you'll be switching between them which can cause issues for others; I see people at single digit fps or crashing completely because people change avatars constantly. However, you'll have less polys/materials/meshes per avatar and the performance rating will reflect this so you'll be able to get into events and whatnot. On the other side, having 1 avatar with multiple outfits will have a heavier impact on it's initial load and your rating will be an accumulation of all the outfits + body so the polys/materials/meshes will be pushed into the higher ratings. With that being said, this isn't a 1:1 with optimisation though as you'll only have 1 outfit rendering at any time (Assuming outfit toggles disable meshes) so the number of polys/materials/draw calls will be relatively the same on both (+1/-1).

#

I have dump test avatars that are well and truly in the very poor rating that perform like medium. Hundreds and thousands of polygons with 50+ materials and 40+ skinned meshes total but you only see ~50k polys, ~10 materials and ~4-8 skinned meshes at any given time. Still a lot, yes, but by the Rating's standards it'd be PC Medium.

heady smelt
#

@sand jackal why did you remove the swaria 2 avatar form your world

sand jackal
sand jackal
frigid raven
#

Is there really a hard limit of 10k tri and no dynamic bones on Quest avatars? Iโ€™ve seen some avatars that look pretty detailed that are quest compatible

calm spade
#

They're rarely under that threshold, but the limit was recently doubled

frigid raven
#

Iโ€™m running SDK 2021.02.23.11.41 and the Build and Publish button for Android is greyed out. I have 30k tri which I guess is over the limit...

But it is good to know I can stop at under 20k and it should work... maybe ๐Ÿ˜‚

calm spade
#

It will

onyx harness
frigid raven
#

Yeah. I probably will eventually. Itโ€™s always a pain when the new SDK breaks FX layer stuff like going from Decemberโ€™s version to Februaryโ€™s.

I plan to update for sure once the dynamic bone update drops

frigid raven
#

Got a Quest version of my avi uploaded. Thanks!

ocean urchin
#

Hey! I was able to publish a PC avatar, then a Quest avatar, but Iโ€™m struggling on figuring out how to publish the same avatar for cross-platform performance. Any pointers?

lone tiger
#

Publish them to the same blueprint ID. You can see that ID on Pipeline manager script under avatar descriptor.

nova hornet
#

Hey, how do you connect polys/quads
like for example sometimes people will split a face in half
then merge the meshes
but there will be a seam visible from far away
how to fix?

nova hornet
proper grail
#

Easiest way to get a nice smooth on an organic spot youd wanna split would be to
1; add the seam vertices to their temp vert group
2; make a duplicate of the mesh and hide it
3; add a data transfer modifier for face corner data, custom normals. Set the vertex group to the temp group and the source the hidden duplicate
4; perform the split
5; apply the modifier for each split piece, delete the duplicate mesh, delete the temp vert group.
But a seam far away seems to be an entirely different problem, alpha in the texture. Alpha will show up as white as mipmapping does its thing.

nova hornet
#

When I hit Ctrl L it still only selects one side

unreal plover
#

higher the distance when you merge by distance

nova hornet
#

how?

#

My god by changing it to faces instead of vertex it works

#

Thanks

unreal plover
#

Ah you might have not selected all of the "double" vertices

lilac sequoia
#

Hi, is it possible to combine all materials on a mesh in unity?

#

i have an atlassed texture and tried applying it but it adds 8 materials with that texture

#

removing any of them makes part of the mesh invisible

#

i'm not able to post an image to show it

#

ideally i want to just have one material with the atlased texture

stray tangle
#

if the entire model is already using a single texture, then all you need to do is assign all of the faces the same one material

#

and delete the other ones

lilac sequoia
#

i have blender open right now, how do i do that?

#

the mesh is all one object but parts of it have different materials

stray tangle
#

okay, that makes it easier

#

click on the mesh in Object mode, then switch to Edit mode in the top left (or by hitting TAB). select everything by hitting A, then go to the Materials tab in the bottom right (looks like a red circle).

#

in that tab, you should see all of the materials used on the model

#

before you do anything though, is there anything on the model that requires transparency?

lilac sequoia
#

yep

stray tangle
#

because if so, that should be its own material

lilac sequoia
#

no

stray tangle
#

alright

#

in that case, click on one of the materials, and then click "Assign" below the list

#

that will assign all selected vertices (everything in this case) to that material

#

then, you can just delete the other materials by clicking on them and hitting the minus sign on the right of the material list

lilac sequoia
#

alright, the whole thing is just black now but the uv's seem to be intact

#

how do i put the texture on it?

stray tangle
#

click on the material in the list, then look for "Base color" in the material properties below. select "Image texture", then browse for the image by clicking Open

#

or, if the texture is already in the project, there is a list button you can click to the left of "New", which is to the left of "Open"

lilac sequoia
#

ok, that works

#

thank you!

stray tangle
#

๐Ÿ‘

chilly breach
#

how can i reduce the poly count on my avatar?

#

mantis lod editor ain't free anymore

#

any other decimation tools?

onyx harness
#

and I believe CATS has a tool to assist that too but don't quote me on that

chilly breach
#

Looking for something to use within Unity. My dumbass deleted the blender file

#

Wait, nevermind.

#

Ty

#

It fuckin massacred my avatar lmao

#

Also, there's something really wrong with it now. Idk if it's just lighting but the avatar is half glowing white.

onyx harness
#

I should check it so you don't have a blind person directing you

chilly breach
#

I know. I was fucking with the slider and tried to get it to look acceptable and be under 20k faces

#

And it looks, blocky

#

It's like 15 hundred faces now

onyx harness
#

yo, sounds like a quest avatar, nice

chilly breach
#

Would I be able to post imgur links here?

onyx harness
#

Links maybe, iirc straight up images don't work but I'd move to the help channel tbh. Sounds more helpy to me

onyx harness
frigid raven
#

How can I use Blendshapes to hide parts of my avatar's base to prevent clipping so that I do not have to separate the skinned mesh?

#

Scaling just Y and Z works kind of, but my avatar's hands still show

#

Ugh I can't post a pic...

lone tiger
#

post a link to image instead

calm spade
frigid raven
#

Well it's that or have separate meshes for each body party that needs to be hidden

#

Since my avatar's clothing is layered

#

About 8 extra skinned meshes

#

Or 8 blendshapes on the torso skinned mesh

#

Honestly, idk which one would cause more lag, but the blendshape method makes my avatar's pref rating better XD

frigid raven
#

What's the maximum materials for a poor rating?

calm spade
unreal plover
#

just delete the clipping geometry and have two veresions of your avatar

#

one where it has the clothes (but without the body clipping trough) and another without the clothes

grizzled charm
#

Any guides for optimizing material slots? Got something online but the view is too high, and I figured I'd might as fix that too. I managed to make a texture atlas (?) and apply it, but doing such sorta messed with the rig so loading it in game just wound up with it being invisible. I have basically no knowledge so uh, yay

#

Idk if I can just take the rig from the original model and put it on the other imported one w/ just the one material slot

calm spade
#

Texture atlas should in no way mess with the rig

#

You probably messed up on the import/export at some point

grizzled charm
#

Well it didn't mess with it

#

But i couldn't find any way to delete material slots, so I was hoping I could just re-import the model and use the old rig, or I guess just delete other material slots

#

Like I said, basically no unity knowledge lmao

calm spade
#

Material atlas would require a full reimport

grizzled charm
#

Okay so that's what I did, would I have to rig it from scratch, or is there some way to just.. take the rig from the old one?

calm spade
#

The rig is part of the model

#

Where did you export it to ?

grizzled charm
#

Well I'd downloaded the same model that was used in the unity package from elsewhere, since like I said I couldn't figure out how to use the rigged model w/ the atlas

#

Again I must stress that my actual experience with both blender and unity basically doesn't exist. Not for this, anyway

calm spade
#

Did you follow a tutorial or went in blindly ?

#

Please don't try to bypass the bot, it's doing that for a reason NepOkay

grizzled charm
#

...what reason? The site is just poorly named

calm spade
#

Getting models from random places kinda leads to those results though

grizzled charm
#

Would it not be more on topic to ask here or some other Avatar chat? Again im just trying to take a pre-existing model and reduce the amount of material slots.

calm spade
#

In Blender, just import the fbx from your existing unity project, and then export back to the same place, that shouldn't break anything unless you do anything extra

grizzled charm
#

So do unity packages just work like zips? After adding it to the project I can just open the project location and take the fbx directly from there?

calm spade
#

yes

grizzled charm
#

Ah okay

#

It didn't really click that I could just take the model from the project after importing the package until you said to take the model from the project itself

#

Knowing that I should be fine thanks ;p

calm spade
#

FYI that only ever works when you're only editing the mesh

#

any changes to the armature would require a full reimport

grizzled charm
#

Kk

#

I don't even technically need to do this but I want it to be as optimized as possible. Its just the one model anyway, afterwards I'm going to learn more about making them myself

brazen nebula
#

onto my avatar, I don't know how to map it. After I uploaded it, I saw he was T-Posing and wanted to map the model.

stray tangle
#

the SDK should have warned you about that

brazen nebula
#

I'm aware. I DID actually.

#

anyways, how DO I map models?

stray tangle
#

I have no idea what you mean by that. no such term

#

you can map bones in the rig config, which unity should do mostly automatically. there's weight painting, there's rigging, you could be talking about many things

strong quarry
#

Just a quick question that may not have a concise answer but should I work on cleaning up my model after all is done or try and get all my assets cleaned up before I put them together?

stray tangle
strong quarry
stray tangle
#

I see

#

good question

#

so for example

#

you have your model, and separate models for a coat and a hat

#

you're asking if you should optimize the coat, hat and body separately, before putting them together?

#

or if you should do the optimization after they are together?

buoyant holly
#

that's probably an easier editor experience to modify them separately for doing like polygon reduction

stray tangle
#

^

buoyant holly
#

making everything a texture Atlas would go towards the end of the project if you using already existing models

#

and not that I would recommend it but if you were using the decimate modifier to reduce stuff would give you a little more control if they're separate objects as far as how much reduction is done on each

coarse vine
#

Which is better as far as performance is concerned?:

  1. Having props be separate meshes and using parent constraints to move them around the model, or
  2. Combined mesh, using shapekeys to move props around (let's assume the 1frame animation isn't an issue)
buoyant holly
#

probably the first one as you're not having to do blendshape calculations constantly?

coarse vine
#

That makes a lot of sense, wow. Thank you!

#

I'm not sure why I thought blendshapes would be mathematically free.

buoyant holly
#

typically over a certain polygon count it's recommended to separate the face from the rest of your model as that's less vertex calculations for the blendshapes

#

which is probably why VRoid Studio exports with the face separate from the rest of the combine stuff

coarse vine
#

I figured that was a good idea in general so that you wouldn't break your shapes if you edited stuff--oh wait you mean after yeaaaaaaah...

#

I'm still kinda new to this, you just gave me two small but very significant revelations, thank you again!

#

Gatta make a new plan!

buoyant holly
#

glad to be of help and if you're wondering doing the sliding like different sets of eyes on anime avatars typically that works fine because that's like a hundred polygons on all of the special effects not like adding the entire polygon budget of a decent sword

coarse vine
#

That makes sense! My current project calls for optimizing as a top priority though especially if I want props and toggles, so I'm trying my best~