#avatar-optimization

1 messages · Page 27 of 1

heady smelt
#

audio sources should be OGG apparently

#

dunno if it's really that much of a difference

karmic condor
#

The answer is, it depends

#

I’m itching to make a video on the subject.

heady smelt
#

do it

#

honestly it's always helpful to get more videos and explanations

#

when you give info and reasons for why's and how's, people are more willing to care

#

will all those new rules about optimization

#

i guess the general FPS will go up in about 6 month 👌

sudden jewel
#

Unity re-encodes audio to OGG by default

heady smelt
#

oh nice

gleaming yacht
#

heh yeah

sudden jewel
#

it sets it to quality 5, which is tbh a bit high

#

OGG degrades really gracefully

#

you can go as low as 3 or so and not lose quality for ambient sounds

#

birds chirping, wind, etc

karmic condor
#

Unity also re-encodes any uncompressed audio to 24bit48khz audio

surreal topaz
#

I think Noenoe is pretty decently optimized

#

Forward pass, ForwardAdd and meta. I think meta is unused except during light bakes, and ForwardAdd is just an additive pass added per realtime light, which is pretty standard for shaders

heady smelt
#

when are you going to reveal the good stuff to us, tupper ? 👀

surreal topaz
#

Considering recent developments, it's a fair bet that it'll be optimization related

#

Avatar performance border indicators for example

#

And probably good SDK documentation too

sudden jewel
#

We're pretty focused on optimization during this development cycle.

#

You'll find out soon though

#

oops i meant soon

heady smelt
#

so never

#

feels bad

sudden jewel
#

I mean, if you believe that and then we deliver, that sounds like underpromise and overdeliver 🤔

#

which is a pretty great policy imo

#

works for me

heady smelt
#

i'm just shit posting as always
i'm really happy that we got this much info in such a short time

#

it's really nice

#

also the maximum dyn bone transform allowed is currently 30 bones and 1 colliders
would it be possible to have 50 dyn bone if there is not colliders used ?

broken relic
#

das allota bones

heady smelt
#

well, from what tupper said
if you have 30 dyn bone and 1 collider, it will roughly be similar to having no collider and 60 dyn bone
so if you sacrifice that collider, shouldnt the limit on the dyn bone be around 50 ?

#

i dunno, it kinda make sense to me

surreal topaz
#

I accidentally yeeted a foot while merging skirt bones

heady smelt
#

rip

surreal topaz
#

No worries, leg is intact

#

Can just place new bone

karmic condor
#

Be hard core and have the multiple of dynamic bones to (colliders +1) be less than 30

surreal topaz
#

Actually it's rekt because I merged the bone lmao

heady smelt
#

just mirror the intact leg

surreal topaz
#

Wonder if there's a way to weight all unweighted parts to a specific bone

#

Skirt now controls foot, nice

heady smelt
#

you can use a modifier

surreal topaz
#

Help

heady smelt
#

to transfer weight from a vertex group

#

to another bone

#

kung's video explain that

#

he is doing it to transfert neck weight to the head bone

surreal topaz
#

Ah

#

Will give that a shot, thanks

shut sequoia
#

rokk lemme DM you something funny

#

related to the public world list

heady smelt
#

Would be nice if people made tutorials on dynamic bone optimization

shut sequoia
#

they do

heady smelt
#

Too bad that will never happen

#

Really

#

Where

shut sequoia
heady smelt
#

A tutorial. Not a showcase

#

dude

#

stop trying

#

it's not hard to merge bones

shut sequoia
#

oh, he one of those?

heady smelt
#

you've been asking for days

#

Yea

#

we told you how

#

a lot of people did

#

Takes too long because the cats tool doesnt work with more than 10 bone groups

shut sequoia
#

Just merge them manually?

heady smelt
#

No

#

do it manually with "merge weight"

#

Too much work

#

we told oyu that already too

#

this fucking guy

shut sequoia
#

Wait, so you want a guide to teach you how to do a thing you don't want to do?

heady smelt
#

Lol

#

Well

shut sequoia
#

Kuro (send e-girls)Today at 4:22 PM
Would be nice if people made tutorials on dynamic bone optimization

#

gets guide

#

"Wait I don't want to though..."

patent leaf
heady smelt
#

Skirt and cloth is low resource so im not even going to bother with that... Its the hair that is the main problem

surreal topaz
#

Skirt is actually among the highest offenders

#

In a lot of cases

shut sequoia
#

skirt and hair usually

#

So, again, you want a guide, which you have, but you don't want to fix the issue?

heady smelt
#

especially long hair

shut sequoia
#

I'm not even trying to give you trouble, I just don't understand.

heady smelt
#

Yea but there arent any tutorials on skirt optimization

#

🤦

#

There is a showcase

#

Not a tutorial

shut sequoia
#

What? A Showcase?

heady smelt
#

Hello I need some help with an avatar.

#

So I have an emote that spawns a little duck in my hand.

#

Someone bragging about a 2 bone dynamic bone skirt

shut sequoia
#

Bragging? That's a pretty good guide.

heady smelt
#

However in game its either blinding bright or just colorless.

shut sequoia
#

I've watched it, haven't tried my hand at it though.

heady smelt
#

It shows the weight painting, how its set up... It's a good video

#

Like this.

#

Is there a known reason why it does this?

#

I've tried changing the textures a bit but it still does the same.

calm spade
#

This doesn't seem to be about optimization ?

heady smelt
#

I'm just trying to fix and thought this was help board.

patent leaf
heady smelt
#

since it's not related to an animation

#

just a fucked model/shader

visual dock
#

Alright i've got one question, i normally keep my bone rigs very simple and eleminate bones all the time but what is the "cause and effect" of say, leaving a few face bones intact?
For an example lets say 6 bones, what does that efect performance wise or add stress to and how much?
(I've read over that vrc doc and didn't quite understand that section of it fully so is why i'm asking, its out of curiosity.)

sudden jewel
#

Extra bones that aren't rigged, animated, and not affected by DynBones don't really have an affect on perf

visual dock
#

ah, i see. It just made me wonder was all since i normally make bones to do my blendshapes then delete them and wondering if something like that if shortcuts were taken would effect performance.
Thanks for the answer, tupper.

sudden jewel
#

Sure thing

shut sequoia
#

been having this problem recently while atlasing. I'll have something named "Stocking Red" then something called "Stockings.004" which would be a stripe in it stockings or something

#

When I atlas them, the colors just merge, which I'm guessing is because it's the same material/texture just with different color settings

distant forge
#

Might be a nice feature to add in the cats atlasing plugin: it should generate some 1x1 (or 2x2) color squares in the corner of the texture map and sample those for solid color materials

heady smelt
#

could always suggest that to shotariya

#

he is the one that wrote the addon

shut sequoia
#

Hm, I guess I see what people mean by discoloration now. When I atlas my hair, the colors mess up like crazy

distant forge
#

The color tints are a bit more challenging. It could be a good use of the vertex color channel but that will require shader changes to use properly

#

Oh that could be an error in material settings make sure color is white in blender. In unity is it fine

shut sequoia
#

oh good point, lemme check it out

#

I'll just uhhhatlas the whole thing into one material and check unity

#

nah, looks the same in unity unfortunately

distant forge
#

So the model probably depended on reusing one texture with two different colors on top. If it's a detailed texture one way to atlas it without doubling the texture is to use vertex colors but that requires a shader that supports vertex color

bold cedar
#

hey there, quick question. how big is the performance impact of using a lot of textures in a single material?

#

for example by using occlusion maps, details maps etc.

shut sequoia
#

pls someone know the answer to that, i'm curious too

heady smelt
#

a tiny bit extra

#

I wouldn't worry too much about it

safe swift
#

How do disabled objects or models with dynamic bones/skinned meshes get treated when it comes to approval? Would they take less priority over something that is on by default? (for instance like dancing/animated avatars or objects that are animated or have dyn. bones for extra coolness (or whatever else reason)) For instance I have a model that has 0 dyn. bones by default, but go up to 100 when enables dance, or I have another avatar that switches clothes through emotes and is multiple skinned meshes that way, or some wiggly props that have to have dyn. bones, but otherwise are under 50 with that being off

shut sequoia
#

we gettin that unity Unity 2017.4.15f1 LT optimization guide now ? :3

winter kernel
#

Not this soon xD

shut sequoia
#

i know, just messing around lol

smoky lantern
#

So will there be a VRC made dynamic-bone-like addition in 2017?

#

One with interactivity?

#

I think I saw a ghost of that mentioned at one point.

heady smelt
#

not until they talk about it in an official announcement

robust lava
#

I think they have to ask the original creator for his permission

sudden zodiac
#

To create their own dynamic bones? No as long as they don't "steal" code

shut sequoia
#

do they need to for any reason?

heady smelt
#

better optimization ?
more control over their own code
can adapt or add more colliders type depending on what the community ask for

pine flame
#

Oooooo

#

Hopefully

heady smelt
#

usually it's a good idea to have your own solution for stuff
you have way more control and can better adapt it to your own uses
it's one of the main reason they dropped playmaker to make their own scripting/node tool

bold cedar
#

thanks @heady smelt

heady smelt
#

np @bold cedar ofcourse it starts adding up a little, but if things share the same materials it won't have to load all the textures all the time and you can batch most of the drawcalls into a handful

fading rapids
#

I don't recommend using Poiyomi's shader. Here's a few of my reasons, and why it's not actually as optimized as people seem to think.

shader_features, and multi_compile:
First of all, unless something is meant to be changed at runtime, then you don't need to use "multi_compile"

The downside of the way this shader is using these is that you almost single-handedly end up making Unity error out. Unity has a limit of 256 keywords. Each shader_feature and multi_compile counts as one, multiplied by the amount of keywords that you add to it.

For instance : #pragma multi_compile _OVERLAY_OFF _OVERLAY_ONE _OVERLAY_TWO _OVERLAY_THREE takes up 4 different keyword slots.
In the entire shader, you have 32.

If you've ever looked in the console in VRChat and seen errors about "Shader Feature Keyword Limit reached" It's most likely due to this shader, and a few other select shaders.

#

Unity has a limit of 256 of these, and Unity internally takes up around 60 of those slots.
This means not only is the limit 196, this shader single handedly takes up a little over half of what Unity internally does. That's ridiculous.
To add to that, if you're using the "Transparent" version of the shader, and the opaque version on your avatar, you're now taking up 64 slots.

I don't think any more needs to be said on why that's not great.
If a shader is written properly, it doesn't need to take up 32 keyword slots, much less 64.

For comparison, my XSToon takes up only 7, and even that's something I'm trying to slim down.

So, next time you see your console spamming "Shader Feature Limit Reached!" You know at least one of the people you should be looking at.

Poiyomi - you don't need to skip a few calculations for rim lighting, nor do you need to skip calculations for specularity, or any of that, really. Most of your shader features are pointless. They should only be used when you need to cut out large, expensive chunks of code. Nothing you're cutting out is large or expensive, aside from the texture samples - which also don't need to be a multi_compile, but instead can be made into a shader_feature instead.

heady smelt
#

thanks for the explanation, appreciated

spring merlin
#

also lerping on a toggle value is mad cheap, saves the keywords too

sullen vector
#

Well, from what i know people usually use it because the GUI is easy to understand and use even for people new to unity, tho it's good to point that out.

surreal topaz
#

That's a downside to super-configurable shaders like those

#

If they're not implemented correctly

surreal topaz
#

Basically, I erase at least 50% of the rows by merging them upwards. If there's too many skirt bones after that, I find three close-by "columns", reparent the left and right columns to the center bones respectively, then merge them all into the center.

#

Gives good and optimized results with no manual weightpaint work required.

heady smelt
#

and it still looks really good with dyn bones

#

it may be a good idea to give those bones some blur t the end if you have hard red edges

safe swift
#

i did pretty much exactly the same, first or first two rows into hips and then leave 1 bone, and get rid of every 2nd row

#

I'm still interested how do disabled skinned meshes and dbones get treated, as my world is mostly about avatars having some little different things from eachother and all about some kind of animations

bleak swift
#

guys

#

help me

#

when i use the decimation in my avatar

#

some parts disappear

heady smelt
#

yes because you decimate too much

bleak swift
#

and

#

i can just use the custom or full

#

i can't use the safe or half

heady smelt
#

use the decimation modifier instead

#

you have way more control

thorn ginkgo
#

Yeah, the automatic decimation in Cats doesn't necessarily work well for all avatars. Try separating by materials (remember to join again afterwards!) and decimating each part individually.

bleak swift
#

wait

heady smelt
#

36 minutes mark

#

he explain how to decimate

bleak swift
#

the decimation modifier is in a new update of cats ?

heady smelt
#

no

#

it's native to blender

bleak swift
#

where i find it ?

heady smelt
#

36 minutes mark in the video i linked

#

watch it

surreal topaz
#

Oof, finally optimized all my avatars

#

Some were a lot worse than I thought

heady smelt
#

good job

surreal topaz
#

Took me 2 days lmao

#

Just merging bones on like half my avatars and atlasing 1 or 2

#

Oh I think the google sheets thing is acting up, I submitted my world and saw it appear in the list, now it's gone from the list

heady smelt
#

rip

bleak swift
#

i have used the decimate in everything in my avatar

#

and i still with 22,036 faces ._.

safe swift
#

you need tris not faces

bleak swift
#

really?

heady smelt
#

yes

bleak swift
#

...

#

my model it's with 19,325 faces and 30,827 tris

heady smelt
#

10'828 tris to go

bleak swift
#

and now for some reason

#

i have used the decimation of cats and my avatar don't have any parts missing now

sudden jewel
#

@surreal topaz almost enough D: you've got a few issues still. I'll DM you.

surreal topaz
#

Oof

sudden jewel
#

it isn't so bad

#

just a few fixes

surreal topaz
#

Yeah, I saw

karmic condor
surreal topaz
#

Alright, think I finished optimizing all my avatars

#

For real this time I hope lmao

#

I counted the transforms and it should be fine

heady smelt
#

its optimized now guys

#

i merged the bones

#

manually

karmic condor
#

that's more than 60 bones though

heady smelt
#

well

sudden jewel
#

You could merge all 60 of those into maybe 3 bones total and get the same effect.

heady smelt
#

wait what

#

wait

#

which bones

karmic condor
#

you got this!

heady smelt
#

do i just keep the ones at the top

sudden jewel
#

Nah, you'd choose 3 bones going down the center in a single chain, parent all of the bones in those "sections" to those three bones, then use the Cats "merge to parent" option

#

that's the easy way

#

something like that

#

Sadly 60 dynbone transforms is not "optimized"

#

3, definitely

heady smelt
#

the ribbon mode trail in unity 2017 is cool

#

oh

#

wait

#

o

heady smelt
#

cannot merge to parent with cats

#

refresh list button is broken

sweet mason
#

I use 3 bones for hair or other thing. no need for more

sudden jewel
#

@heady smelt Shift-right click the bones you want to merge to the parent, then click this.

#

Alternately you can select the parent bone, press Shift-G, click "Children", shift-right click the parent bone to deselect, then press that button.

tired badger
#

I'm starting my stream where I'll be optimizing for the next 2 hrs. Gonna get this girl down to like 4 dynbones or so.

#

If people want examples or ask questions in chat. Am I allowed to post link?

#

Eyetracking and everything to show what i'm doing

sudden zodiac
tired badger
#

Gotcha thanks

smoky lantern
#

@tired badger, good luck decimating. Amirite? 😏

#

I know that model very well.

karmic condor
#

Any way to preserve blender albedo data with the new atlas tool?

heady smelt
#

i love this newer unity

#

no unity lag at aall

#

so goood

tired badger
heady smelt
#

looks good

tired badger
heady smelt
#

you also parent them to the legs ?

tired badger
#

See the little bone below the full body fix bone?

heady smelt
#

yes

tired badger
#

they parented to that which is parented to the leg bone

#

so i can do physics on dress still.

heady smelt
#

nice

heady smelt
#

i reduced the bone count

#

how many bones do you have now ?

#

more than 3

#

LOL

#

in total ? just for the hair ?

#

less than 200

#

iuno

#

its fine tho

shut sequoia
#

its not fine if you've still got more than 50 lol

tired badger
#

Wish i could scan my own stuff so I can compare to previous

shut sequoia
#

ayyy

heady smelt
#

well

shut sequoia
#

damn she has like no bones now

heady smelt
#

game wont lag anymore in the next version

#

so its fine

shut sequoia
#

who said?

tender sundial
heady smelt
#

pardon ?

#

i tested a massive particle animation in vrchat beta 2017

#

no lag

#

doesnt make any sense

#

but okay

shut sequoia
#

did you test 20 people in the same room with unoptimized avatars while a mirror is on/

heady smelt
#

dyn bone isnt the same as particles

shut sequoia
#

if not t hen your test shows nothing except t hat your particles work fine alone

heady smelt
#

if you have more than 50 dyn bone, you are still not optimized properly

#

@tired badger just a little question, are they parented to the original leg bone or to the leg bone used for FBT ?

shut sequoia
#

also are you getting in game with that any time soon kareeda

#

wanted to see it

visual dock
#

I cringe when people say they have over 25-30 hair bones total...
I try to keep mine at 15-20 at best for the extremely detailed ones or i'll have no more than 10.

main horizon
#

Same. Because when a dynamic bone hits a collider, all heck breaks loose. And I definitely don't want to slow other people's performances down.

karmic condor
#

Brought 50 bones to 29, so nice

visual dock
#

My most recent model has a dynamic bone root parent of 9 bones and 1 collider in my neck for my entire hair atm.
I think my skirt has 12 bones. maybe 14.

#

One thing i should ask though is if anyone can give me a few good collider examples for hands.
I feel the way i do it isn't accurate enough.

sudden jewel
#

@heady smelt Big particle simulations don't accurately represent the load players put on VRChat. VRChat 2017 will definitely have lag, especially if you've got badly optimized avatars.

#

Remember: dynbones is the devil

#

@main horizon Actually DynBone colliders affect perf even when they're not hitting a bone.

tender sundial
#

though it does skip a bunch of logic if they're not hitting

#

I noticed when I was reading dynbone code that it was dividing by a square root and wondered whether they could get better performance by switching it out for fast inverse square root, or whether that optimisation doesn't pay off anymore these days

#

there's also a bunch of places where they calculate some stuff that could totally be cached

#

like square-of-sum-of-radii

polar bolt
#

Also a little extra step regarding dynbone colliders - 0 length is better as the collision checks are simpler for spheres than capsules (there's a check in the code if length is 0)

tender sundial
#

yes

sudden jewel
#

If you want, try doing some deep profiling of the DynBone code. You can do it with what you've got 😃

tender sundial
#

yeah ok, this paints a different picture. the biggest cost is their failure to reuse vector objects during subtraction

#

unless using the profiler has made .NET unable to optimise that away, which happens all the time in Java but I dunno about .NET

tender sundial
#

chipping away at this does improve performance but only a bit at a time, and I gather vrchat might have already improved whatever I'm looking at anyway

#

how can mere subtraction and addition be slowing it down this much lol

#

but anyway, about 30% of the total update cost for me is doing the colliders, and the rest is outside the collider stuff entirely

heady smelt
#

so

#

how are capsule colliders and cloth

#

compared to dynamic bones

marsh trail
#

Cloth interacts directly with the mesh, dynamic bones affect only the bones, collision-wise cloth seems more precise, but its applications aren't that vast

#

Performance-wise it comes down to how detailed the mesh is (polygons) for cloth and how many bones are used for dynamic bones

sudden jewel
#

@tender sundial Its refreshing seeing someone actually digging into deep profiling on dynbones, haha

#

But now you know our pain 😃

smoky lantern
#

I cringe at clipping meshes more than I cringe at frame loss at this point. But maybe the acceptance of frame loss is a learned helplessness. 😏

I used to worry about my avatar's level of optimization until I saw the wall of shame that is the Public World listing. I'm glad I've never been that bad. But I have a few models that would be ruined by the guidelines as they are. I'm glad you're doing something about the Hoppous with over a hundred meshes and the MMDs with a thousand dynamic bones, but it's still stifling to someone that was already being considerate. As long as you aren't imposing these guidelines onto the users just trying to make more out of a private avatar than a toony shader MMD, I guess it's okay.

#

Not that 10 materials = 10 draw calls anyway. 10 materials can still be 30+ draw calls.

#

Adds up quickly when you want models to be affected by lighting in a convincing way.

sudden jewel
#

The primary concern is DynBones and DynBone colliders. Skinned meshes comes third, and materials fourth. All important to optimize, but if I had to choose an order, that's it

visual tinsel
#

The bones and polygons on a SkinnedMesh?

marsh trail
#

I think they're honestly just guidelines, optimization has always been a big deal (even in 2017 when people thought avatars close to 20k were abominations since they thought such a lesser amount lead to lag), they've been mentioned as guidelines in the past up to this point, however i do hope they do stay like they are, guidelines if they turned into prerequisits for making an avatar... well that certainly wouldn't be pleasant for a large portion of the community, especially those that are already very conservative when it comes to lag inducing entities

jovial grail
#

In my defense, I hang out in rooms with 2-3 people at most

sudden jewel
#

What plugin thing is that?

marsh trail
#

If it's for personal private use, nobody can yank your chain over it, but that's alooota bones .-.

sudden jewel
#

"Collider affected transforms" isn't a thing.

#

The only thing that matters for colliders (generally) is the number of components, since each component = one collider.

#

ohhhhhh wait

#

I see

#

Sorry i'm tired

smoky lantern
#

Silly Tupper.

jovial grail
#

It's my own tool and that counts how many transforms are affected

#

Since you can exclude some of them

sudden jewel
#

That's neat. I've been thinking of whipping something up like that but I hate creating UIs

#

you should put that on a Github somewhere AnimeFace

jovial grail
sudden jewel
#

oooh. let me.. play with this a bit.

#

and scroll through the source to make sure you're not doing bad things 🙃

jovial grail
#

It's likely that there are off-by-one errors tho because I'm not sure how transforms are counted

#

Like I've noticed dynamic bones don't seem to work if there's only one bone in the chain

smoky lantern
#

Lul

sudden jewel
#

I can help you with that, its pretty easy.

#

If you're off by one per script it isn't a huge deal. but root is counted.

marsh trail
#

Oh neat new tools :o

sudden jewel
#

Oh. You don't have a license on this. You should establish a license.

#

Otherwise I can't link it places.

smoky lantern
#

Adding end length to dynamic bone scripts is counted, right?

jovial grail
#

Let me see

sudden jewel
#

Ideally a lot of this is functionality we'd like to add to our SDK.

smoky lantern
#

I do that for my tongues every now and then. Or ears.

#

So if I had a script with one bone in the chain but added an end length of 1, would that simulated bone be counted?

jovial grail
#

Feel free to use my spaghetti

#

Once I figure out how and which license to add

sudden jewel
#

The most permissive is MIT, but its your call obviously.

jovial grail
#

Yeah, that's the one I was looking at as well

#

Um.. can we not

marsh trail
#

Doesn't the end lenght sorta just, extend affected bones' lenght?
Pretty sure single bones don't work out so leaf bones are useful in those cases, although i tend to just make pivot bones for the appropriate sections

sudden jewel
jovial grail
#

👀

sudden jewel
smoky lantern
#

My understanding was that it simulated additional bones. I can see it affecting the weight of the bone on the hair.

marsh trail
#

Das some good spaghetti

sudden jewel
#

But yeah anyways. Like I said, your call on licensing. We'd likely implement our own stuff, we don't like copy-pasting things that users provide-- although we appreciate the insights. The existence of this tool (and other tools like it) indicate that our own SDK is lacking... which it is

marsh trail
#

Huh... i mean correct me if i'm wrong then, i've always seen it that way but i may be wrong

smoky lantern
#

Maybe it's a stretch to assume end length is that powerful. I thought it added additional simulated bones that took a portion of the weighting from the original end bone.

#

But that is probably a stretch.

sudden jewel
#

Unsure, might be worth digging into DynBone's source to see what its doing.

#

The tooltip seems to imply it adds a bone at the end of each chain

smoky lantern
#

^

marsh trail
#

Hmm, alrighty then

pallid abyss
#

Thanks to Tuppers advice I feel more confident and comfortable with blender 8D yay!! I am so proud of myself!

amber hemlock
#

General unity question if I have some assets imported like dynamic bones, but my avatar isn’t using them, they are not contributing to the download size of the avatar once I upload it, right?

worn lantern
#

@amber hemlock Correct.

#

If an avatar isnt using anything else in the project, then it won't contribute to the upload

amber hemlock
#

Because I noticed if I have multiple avatars in the scene, and another avatar was using dynamic bones, and I want to export the package of one avatar it includes all of the dependencies all of the other avatars in the scene

worn lantern
#

Thing is I have like 50 avatars in one scene and the file size is still only dependent on what is attached to a specific avatar.

#

I really need to clean up my scene

amber hemlock
#

Sweet thanks

heady smelt
#

How do I merge bones?

sweet mason
#

in cats there is an option to merge the bone(and the weigh) with its parent bone

granite finch
#

I just made this feature request on VRChat's canny.io

#

would be nice if its even possible to do

shut sequoia
#

This one's a bit rough to be honest. I feel like it would lead to hostility as opposed to "hey man, might wanna fix that." Maybe just preventing use of these in public worlds, or giving world owners an option disallow them when they create an instance, forcing them to be gray or red avatars instaed? I only know of 2 doing that currently. A few have stated that they might as well just sell avatars instead since they're, currently, not checked..

#

and in the case of commissioned avatars. there's nothing they can do about it since there's currently no incentive for commissioners to optimize avatars

granite finch
#

valid concerns yeah

#

I just want something to help me when i start gettgin 10-15 fps and then have to spend 5-10 minutes playing hunt-the-witch while getting dizzy/sick in VR

#

i don't get dizzy/sick when things are running 30 or above

#

VRchat gets super glitchy when it starts chugging that slow too, selecting people to turn of ftheir avatar does not work half the time

#

and you have to keep cliking on them over and over until the menu finally shows up

#

most of the time I have found that it's non VR users that never even know their avatar is killing VR users

#

becuase poorly optmized stuff impacts VR users much worse

#

like the non-VR people in the room are running at 70 fps while me and all the other VR users I am asking what their frames are are sitting at 15-20 holding upchuck away in a corner

#

sometimes we just run away and leave to a different room/world

#

but there are lots of times where we don't want to leave cause we like what's going on there

marsh trail
#

Yep, can see where you're coming from, VR is far more hardware intensive compared to the standard desktop mode, both implications will however lead to hostilities either by or towards not-so-well optimized avatars and their "creators", and may infact not motivate users to optimize (which i assume is the intention) but just stop altogether, it's double edged blade, it can both go well or go south, realisticaly speaking, people will definitively be more strict and constantly check for "who be thou that laggeth me gameth?" and possibly just resort to blocking them altogether at times

#

I agree it would be very nice to have statistics over what is being used and how much it affects in terms of performance, but i can still unfortunately see the negative implications of such aswell

#

There's already alot of people that straight up block people if they think a model is lagging them, even if it really isn't, and not just blocking them via the safety menu, straight up get out of my face and cease to exist untill i unblock you which does leave some feeling pretty... y'know, if you put such a system into play however it could actually sort of lesser the effects of such, as much as it could monumentaly excalate them

#

And preventing their use in public worlds... well that's another can of worms altogether, it'd not only make ehm' feel horrible for their creations to be blocked by others (which inherently is what it would do) but would also alienate their content to private areas

#

But this is just my opinion on the matter based on what i've seen and experienced myself from sep-oct 2017 up to this point

unreal jungle
#

I'd like to at least see how many materials and meshes someone has

#

Also i think most of the poorly optimized avatars are a result of the creator either not knowing or griefing

marsh trail
#

Don't take me wrong here though, i'm all up for more details on how performance intensive things really are, as i'd like some myths to be confirmed and/or debunked altogether, but i can again, also see the relatively negative implications of such

unreal jungle
#

When i was first starting i wasn't sure what i was doing and i made some pretty inefficient avatars

#

But with some elbow grease (and a little help from shaderforge) most of my recent stuff is only 1 or 2 materials

#

Although i have one in the pipeline that's gonna have to use 3...

sweet mason
#

I start with game asset and not mmd model so when I switch with more complicate avatar I wantes to keep my avatar as simple . I never pass the 20k and use few material

marsh trail
#

Some avatars are just more complex honestly, there's a norm that's usually followed, as the name states is considered "normal" however some avatars require more than the "norm" applies to, and i'm afraid that those cases, as optimized as they may be, and as well designed as they may be, they might end up being alienated if more restrictions are applied or if people stick too much to the norm

#

I personally joined VRC due to the freedom it allowed for users to upload whatever they wanted within reason, however it's turning more and more strict and alot of people like myself aren't really fond of that fact, limitations are a major detriment for me per example, as that literaly inhibits ones own "freedom" in said case

#

I'm not saying the norm is unacceptable or any shenanigans like that, but if you're too strict about it, alot of people will suffer over it, and may even be put out of it entirely

#

So all that i ask, is honestly, be reasonable i suppose, if it's not too much of a performance hit on your side, don't necessarily alienate somebody for not following the norm, this again, is all my own opinion, based again, on my own experiences with people and what i've seen or heard people do, it is in no way aimed towards starting an argument, but it is my honest opinion

shut sequoia
#

I don't think 10 materials and 50 or less bones is really a detriment at all, what scenario do you really need those 20 materials? WHy not weight paint the bones? Having a bunch of colliders definitely won't help either, i've seen hair clip through avatars with 10

marsh trail
#

At the moment, it is not, but more restrictions are being applied as patches are rolled out, those are what i'm talking about, at the rate that it is indeed going, it wouldn't surprise me if those numbers dropped extremely quickly

shut sequoia
#

the limits they've set seem very reasonable. if anything, to go forward with the idea of displaying avatar info like that it would probably better help to just put a symbol on the social menu if the avatar fits within the performance parameters set, and one that displays if it doesn't. Not above the name or anywhere near it, but on the social menu.

#

What's being restricted? And why would they drop when we're going towards a huge patch that will make them have less impact on us?

#

if anything, them raising would make sense come the 2017 release

marsh trail
#

Also those limitations are for avatar worlds by the way, i haven't seen any hard-capped information about avatars have said limitations

shut sequoia
#

Most likely because those are a lot easier to monitor and check quickly as opposed to personal ones.

#

People will likely go to personal ones via commissions and self uploads to try and circumvent that which doesn't make much sense since the logical progression is implementing something to monitor private avatars

#

as far as I know, they pop in the world ID and it spits the avatar info out

marsh trail
#

I think they're implemented since they're public-accessible and could in one way or another be used for ill-intentions

#

Easier monitoring seems... farfetched

shut sequoia
#

yeah, for the popular worlds there's more people using them than just that somewhat-unique avatar someone might personally have

marsh trail
#

Also mic, not to sound condescending in any way, shape or form, but how long have you been in vrchat exactly?

shut sequoia
#

At this point something like 10 months

marsh trail
#

So you've gone through the "creator crisis'" i assume?

sweet mason
#

creator crisis ?

shut sequoia
#

Not sure what that is actually? Like lack of inspiration for a new avatar?

#

I've only ever uploaded my own, but I don't quite get what you mean

marsh trail
#

No, things straight up not working, then being hard-capped like the audio sources per example

shut sequoia
#

Hm, besides trouble atlasing, not really.

marsh trail
#

Huh, i could've sworn it happened atleast less than 10 months ago...

#

Remember ONSP's audio component?

shut sequoia
#

i've only ever had audio on two avatars, but they worked fine. most trouble I had there was messing with the distance so it wasnt too large

marsh trail
#

Basically audio was extremely quiet, i found a workaround by messing with the audio rolloffs, the audio rolloffs were always free to mess around with, and i know such for a fact as i had tested them, extensively myself, but now they're hard-capped per example

#

That's one example of the "creator crisis'"

#

It's much more manageable now, even if the rolloff is completely capped, but hey, it works

grave crystal
#

the falloff is pretty terrible for anything not a voice though...still wish they'd remove that

marsh trail
#

It wouldn't surprise me if materials, dynamic bones or hell, even meshes got hardcapped, regardless of the change to unity 2017

#

As backwards as it may sound, after all that i've seen happen, it really wouldn't surprise me if it did happen

grave crystal
#

I can't remember the last thing added for avatar creation, only removals and restrictions. It can get frustrating...

marsh trail
#

Eyup

timber blaze
#

the unity 2017 update adds stuff

grave crystal
#

did I miss what the update adds for avatar creation?

timber blaze
#

custom render textures probably being the coolest thing

#

since you can have stateful shaders without needing cameras

marsh trail
#

Per example, anybody that used controllers for animations got scott free when legacy got nailed, so those people never complained about it, so if you've never gone through something, you won't really think anything bad can happen

#

Regardless of there being alternatives

timber blaze
#

maybe people shouldn't have used an animation system literally marked as "legacy"

marsh trail
#

It was used for loops, relatively simple, unity still supports it up to its latest version

timber blaze
#

but you can still do that

grave crystal
#

fair point, they also should have given a warning instead of "anything made this month now has to be converted"

timber blaze
#

really easily

marsh trail
#

Again, there's alternatives

#

Doesn't change the fact that those that used it, didn't apreciate it being nailed

#

I understand the reasoning behind it, but all i'm saying is, things got removed and are being restricted, new things may come and that's great, but i fear that more will vanish than will appear

#

But as with all things, time will tell now won't it?

grave crystal
#

there's a lot of history of removals and restrictions...and as much as I'd like to believe it'll get better, nothing has shown movement in that direction.

#

I'd imagine the custom shader renders are caused entirely by the update to 2017 and not them actually working towards it specifically

timber blaze
#

they are, but it's still a fantastic new feature

marsh trail
#

Anyway... that's enough of this as i need to go now, again all i've stated was based on my own experiences, hope i didn't offend anyone with my explanations, but yeah, i just hope it gets better, some new additions would be nice, the community really drives this game home to be honest

#

Have a good one peeps, happy avatar makin'

heady smelt
sweet mason
#

chose another model lol. that one is way to broken

wary relic
#

That his fault though for throwing the avatar descriptor' on all bones

sweet mason
#

how he accomplished that

#

if not ironic

shut sequoia
#

he what

#

lol

amber hemlock
#

I have been given a friends avatar and asked if I can fix it for them, I have no idea how it works but apparently it uses legacy animations. I don’t know anything about them other than the yes they do not work anymore. Is there a tutorial on how to fix it?

sweet mason
#

put the animator or animation on the bone. something like that

patent leaf
#

@amber hemlock #animation pinned messages, first one could help

amber hemlock
#

Thanks much. Sorry for wrong channel.

heady smelt
#

😄

shut sequoia
#

oof no please

#

that's actually really bad lol

patent leaf
#

How do you check that? 🤔

sudden jewel
#

a very useful tool!

shut sequoia
#

viewpoint dragging💞

karmic condor
patent leaf
#

Ty

tough warren
#

I have 2 skinned mesh renderers and tupper can't stop me

patent leaf
sturdy socket
#

!ban Urnsheme

surreal topaz
#

@marsh trail there's no reason to use legacy for looping animations

#

I'm just not very happy about the fact that they keep removing stuff but not offering anything in return

#

People overused legacy for sure. I only ever used it for blinking and world objects, although it had a few more non-exploit uses that are now gone

visual scroll
#

I'm not quite sure if I understand dynamic bone optimization well
if I have 2 bewb bone + root bone and 6 colliders:
3 + (6 * 3) = 21
1⃣ That's how it counts?
2⃣ Will it be more optimized if I use 2 separated dynamic bones without root bone?
3⃣ If I add some hair bone without colliders will it work like that:
1 + (3 + (6 * 3)) = 22
or like that:
4 + (6 * 4) = 28

surreal topaz
#

@visual scroll excuse me but

#

6 colliders?

#

Generally, you can assume

#

Every transform affected by a dynamic bone script is +1. For every collider this transform responds to, add +1.

#

With 6 colliders you will probably not get your avatar approved for putting into public

#

So in your case it's 3 + (3*6)

#

Same impact as 21 transforms

#

For just some breasts

visual scroll
#

i gave up on publishing avatars month ago, so that's just for making private avatars at least bit more optimized

surreal topaz
#

If you wanna make stuff more optimized, minimize the amount of colliders

#

Having just 1 collider on either your hand or middle finger gives similar results and only a fraction of the impact

marsh trail
#

I mean sure, there's no reason to use legacy animations for looping as there clearly is a viable alternative, but it was still very easily accessible even for relatively new users, myself included from back then
Overused? Definitively. Completely useless? Not entirely.
I'm "fine" with ehm being removed for a better cause but i'm not that happy about the fact that another thing is down the drain that i used alot myself

surreal topaz
#

Yeah, same

#

Arguably, legacy was harder to use though

#

The main use case for legacy is painlessly toggling animations on/off

marsh trail
#

I mostly used them for constant idles myself, be it a tail wag, pre-made animated blinking or even an ear twitch

#

Most of the time all in a single animation file all looped together properly

surreal topaz
#

Oh yeah, I guess

#

That's still possible with an animator on each individual root bone, or just on the armature

#

Minus the blinking which you'll have to put on the Body

marsh trail
#

And at times making it really easy to disable blinking when using certain face shapekeys

surreal topaz
#

Yeah, that's the main reason I pushed that blink prefab out the door so quickly

#

Since it's not exactly easy to set it up manually, but with a prefab it's a 3 second job

marsh trail
#

There's a blinking prefab for that?

heady smelt
#

yes

#

rokk made one

#

you just need a "blinking" blendshape

#

and you can use the provided animation file

marsh trail
#

Huh, that's pretty neat, my latest avatar just straight up doesn't blink, guess i subconsciously still reject the notion of it being long gone, even though there is an alternative, i just kinda refuse to learn it, since i feel like i'm being pushed towards it, irrational, i know, but that's unfortunately how i feel towards it

heady smelt
#

package made by Rokk

marsh trail
#

Many thanks

surreal topaz
#

"Blink" blend shape is needed actually

#

But you can change the animation

#

I just import the package, add an Animator to my body, then assign the BlinkController controller

#

And if I have to disable blinking in a gesture, I copy the keyframes from the provided SuspendBlink animation

heady smelt
#

you can always modify the animation file if you use another blendshape for "blink"

surreal topaz
#

Unfortunately, Unity's F2 system is dumb

heady smelt
#

it is

#

it's confusing

surreal topaz
#

And only allows you to alter the path, not the actual value or property

#

So you can't F2 Blink into Wink for example

heady smelt
#

yep, it's very annoying

marsh trail
#

Quite unfortunate...

heady smelt
#

it's just a small annoyance that's really unnecessary

heady smelt
#

@solid bane

#

thats inside

#

why do you post this here ?

#

is this for optimization ?

solid bane
#

oof 😂

heady smelt
#

this channel isnt for you random image dump

#

its not random

#

upload your picture to imgur and post the link to the appropriate channel

amber hemlock
#

@surreal topaz wait public avatars need approval now?

surreal topaz
#

Avatars are automatically checked for the amount of dynamic bones on them for example, as well as materials

agile gust
#

well public worlds with avatars get checked. the avatars themselves when made public dont

surreal topaz
#

More than 50 dynamic bone transforms could mean your world is denied

agile gust
#

30

surreal topaz
#

Private worlds and avatars not in worlds are fine still

agile gust
#

its 30 dynamic bones

surreal topaz
#

They start warning at 30

#

Not denying

amber hemlock
#

Hm... what stops people from putting in a private world portal in a public world that is later updated to contain all their public avatars 🤔

agile gust
#

not much but they do at own risk of a mod going yeah dont like this and banning that account from uploading

amber hemlock
#

Ok that Checks out

#

Good to know there is some quality control

agile gust
#

just same as you can also update avatars after world is made public but really doing it at own risk end of day

amber hemlock
#

Warning at 30 dynbones seems ridiculously lenient lol

agile gust
#

to be honest its colliders people really need to stop putting everywhere

amber hemlock
#

I’ve never read the dynamic bone scripts. If you even can; I have no idea how efficient they are

agile gust
#

not very efficient but other than cloth its all we have right now for that kind of dynamic movement

amber hemlock
#

We have rag doll don’t we?

agile gust
#

would be great long term with the new unity a vrchat official version comes in that is alot more focused on vrchat's setup and say allows them to add to security features with them

surreal topaz
#

@amber hemlock it's not that lenient tbh

#

This isn't about script counts

#

This is 30 bones affected by a dynamic bone script anywhere

agile gust
#

which in a lot of models with any long hair is pretty much the hair alone

surreal topaz
#

Yeah

amber hemlock
#

Yeah that’s pretty lenient if you ask me

surreal topaz
#

Skirts are a bigger issue too

#

@amber hemlock I'm assuming your models don't have skirts

#

Or dresses

amber hemlock
#

You can do whole skirts with only 2 or 3 fun bones

surreal topaz
#

Or they do, but have little hair bones

amber hemlock
#

Fun bones *

#

dYN bones

agile gust
#

you can eventually but not all skirts like that and some may require a complete redo of weight paint

surreal topaz
#

Yeah you can technically do that, but it's a pretty big quality loss

#

Compare texture atlasing, which is lossless and can even be automated

amber hemlock
#

At that point just use a cloth for the skirt

surreal topaz
#

Nope

amber hemlock
#

Instead of 30 dyn bones

surreal topaz
#

Can't do that either, too many skinned meshes.

amber hemlock
#

What’s the limit on skinned meshes

agile gust
#

1

amber hemlock
#

Oh fancy

surreal topaz
#

Besides, cloth is buggy, laggy, and doesn't fit all skirts

amber hemlock
#

Interesting that props can’t be skinned now though that’s gonna get awkward

agile gust
#

cloth on long skirts ive found is pretty much a no go. like only skirts ive ever seen really work with cloth are the Shimakaze skirts

surreal topaz
#

Apparently you get more leniency with regular mesh renderers. Even though that only encourages more lag tbh

#

@agile gust yep

amber hemlock
#

That means you can’t have a single prop that follows more than one bone. Right?

surreal topaz
#

Yeah, so I guess people will now split up the meshes, increasing draw calls.

amber hemlock
#

Since if it’s not skinned it just follows its parent

surreal topaz
#

Yay.

#

Although I think only active renderers are counted

agile gust
#

well tbh this is just public world avatars

amber hemlock
#

Something like say, a stretchy accordion wouldn’t work

surreal topaz
#

Props can be skinned if they're disabled by default

#

But my cloth sleeves are rip

#

Interestingly, dynamic bones are still counted if disabled

amber hemlock
#

Oh ok that’s fine then

agile gust
#

yeah props arent hit as hard since they arent there 99% of time anyway.

amber hemlock
#

1 always on skinned mesh per avatar sounds fair, any more need custom animations which might be disabled by people’s trust settings so that avoids always-on animation abuse to an extent

#

Or at least discourages it

surreal topaz
#

I think you can go up to 2 skinned mesh renderers though, so that at least allows cloth

surreal topaz
#

Some guy on reddit got mad about the optimization limits lmao

surreal topaz
#

I think the collider and skinned mesh renderer limits could use a few tweaks.

#

How about a max of 2-4 dynamic bone colliders, but every affected transform counts as an extra bone? This means you can have two colliders on your avatar, but you have to keep the affected bone count extra low. If you have 5 hair bones and they respond to colliders on your left and right hand, that will count as 15 affected transforms.

#

Because right now I can have 50 dynamic bones that respond to a single collider, but I can't have 5 bones that respond to 4 colliders.

#

Similarly with skinned mesh renderers. We can have one renderer with 10 materials, but not two renderers with 2 materials total.

#

Perhaps the limit should still be ~10 materials total, but every extra skinned mesh renderer counts as an extra material, or perhaps even two. This means 2 skinned mesh renderers with 1 material each counts as 3-4 "materials". To offset the overhead of an extra skinned renderer

heady smelt
#

Rip

#

This only applies to public avatars right

still perch
#

you should optimize any

heady smelt
#

still trying to find excuses to not optimize ? vrpill

amber hemlock
#

1 texture, 2 materials, No dynbones... only thing bad about my avie is vert count and the fact that the single texture is 4K by 4k

#

Any automatic, lossless UV packers?

#

Preferably with the option to downsample specific islands

still perch
#

single 4k x 4k atlas is fine aint it cirThink

#

if thats all.

amber hemlock
#

It feels needlessly huge though lots of unneeded detail and empty unused space

still perch
#

i mean if you can pack it the same in lower then sure..

amber hemlock
#

Oh I can’t pack at all. It’s just what cats autoatlas spit out.

#

That’s why I’m asking if there’s any tools to pack for me

still perch
#

that was more a general thing "if you can pack something into a smaller texture without any downsizing then sure"

amber hemlock
#

Ah yeah I could move stuff around without downsampling anything for sure. It’s just I’m ocd and moving UV’s around tends to blur textures a little no idea how to do it losslessly

#

Like I assume I’d have to move the UV’s in perfect pixel-length distances

jovial grail
#

There's surely better solutions than dynamic bones

#

It saps cpu resources regardless

#

Wouldn't a gpu solution work better?

heady smelt
#

it use the CPU

jovial grail
#

VRC and unity are usually bottlenecked by cpu, afaik

#

VR does use a lot of gpu but I'd think with it being unity it still has more free resources than the cpu does

heady smelt
#

help plz

#

anyone?

#

this isnt related to optimization ?

#

also google it

#

yh i just need help

#

but thx

heady smelt
#

did not help

#

im fucked

karmic condor
#

Can’t help you the text is illegible

heady smelt
#

nvm

jovial grail
#

Are you trying to ads VRC_AvatarDescriptorEditor instead of VRC_AvatarDescriptor

#

Also that's not how you add components. Click add component in the inspector

safe kayak
#

im doing something wrong

#

when i go to upload

#

my upload thingy wont create the camrea for vrcsdk

#

:/

heady smelt
#

not optimization related tho

safe kayak
#

which one would it go in though

#

avatars isnt for advanced users

#

so its either this one, mmd or rigging

heady smelt
#

it's for everything general

tired badger
calm spade
tired badger
#

It's longer then it took to pin. You sure man :P/

grave crystal
#

it's about even if watched on 2x speed though 😛

tired badger
#

Alvin and The Chipmunk VRChat Tutorials

grave crystal
#

Often times I wish I could make some of them reach that point (4x speed)

mossy solar
#

they limit the bones but they won't limit meshes and draw calls -_-

#

or rather materials I should say

tired badger
shut sequoia
#

@mossy solar they do though

#

50 DynBones, 2 DynBone Colliders, 10 Materials, 2 SKinned Meshes

tired badger
#

hat/coat/hair still have physics

dark dirge
#

xps models have the most bones you will ever see

tired badger
#

ya i work with those the most

#

and get them down as to basically nothing usually

static sky
smoky lantern
#

You can't sacrifice the xps boobs. They are the top tier. Please no.

silent slate
#

ahahahha

surreal topaz
#

I wonder, would it be possible to use joints to decrease the amount of dynamic bone transforms a bit?

#

Suppose you have a skirt with like 16 columns and 4 rows of bones. Normally that's too many

#

But what if you drop one "line" of either empty game objects or just regular ol' bones down the middle? Like a line of bones going from your hips straight down toward the ground

#

And then only apply dynamic bone to this extra line of bones, move the rest with joints?

#

This is an avatar optimization channel, your question does not seem to be about optimization of avatars.

#

@pallid abyss

#

Literally the last messages in #vrchat-general-2 are about the server issues right now

heady smelt
#

cant upload my avatar Oof

#

Upload servers seems to be borked, might take some time to fix

#

yeah hope so

#

Is it many others that have that problem?

vocal river
#

everyone

heady smelt
#

ok thx for the info

plush star
#

Yep i have that problem too

#

Even Clearing cache in the VRC settings didnt help

north sand
#

unactive

sudden jewel
#

I've added a new section to the bottom of the Avatar Optimizing Tips that includes recommended counts/numbers.

shut sequoia
#

They say if you've been a good optimizer and you leave warm prefabs and atlases, Tupper will leave an extra collider in your stocking

calm spade
#

That would be counter intuitive 🤔

still perch
#

The numbers look good cirPrise

twin atlas
#

VIDEO PENDING

jovial grail
#

👀

misty jay
#

the hair keeps falling off in the back yet its moving the way i like and there are no other bones that I can exclude so any ideas what I can do? QnQ

calm spade
#

How is it attached to the head ?

misty jay
#

i put the dynamic bones on the head. I am not that good at unity so I have most likely done something wrong

calm spade
#

Oh, that's a lot of bones

#

You should probably check the last video pinned

#

You'll be able to reduce the bone count by a lot with some weight painting

#

Joining your meshes might also prevent things from floating away

misty jay
#

ohh! Thank you so much for the quick reply dear, highly appreciated! ❤ ^^

woeful crescent
#

Why so many bones in just the head?

jovial grail
#

Hair usually has the most

#

When in mmd it would give more possibility for movement

#

And mmd doesn't care about optimization because it's not realtime

karmic condor
#

Siblings move the same so all those bones can be combined and it would move exactly the same

jovial grail
#

For vrc yes, for mmd with rigid bodies it would be like putting dynamic bones onto everything separately

lost stirrup
#

DID they increase it from 30 to 50?

smoky lantern
#

Those prerequisites for avatar worlds is actually lenient enough for some of my more complex avatars. I'm pretty relieved actually.

#

Especially the skinned meshes part.

#

That's gold. I appreciate it.

knotty mortar
#

l,pk

shut sequoia
#

30 is suggested, 50 is the max

surreal topaz
#

Auto weights are king now

smoky lantern
#

Auto weights?

#

The only practice I'll need to adjust is the way I handled colliders on my hands. It bothered me seeing a gap between what I was touching and my hands so I used two on each hand for fidelity/immersion purposes. But I'm sure I could get a decent effect with an empty with the collider component if I position it properly and get the right length/radius.

#

I've only used the above with a couple models anyway. It should be an easy fix.

#

Anyone know whether IK scripts have a significant enough impact on performance? Probably a hard or silly question, but I have a model with a lot of pistons taking advantage of Aim IK to make them work properly..

surreal topaz
#

IK is pretty CPU-intensive

smoky lantern
#

It is?

still perch
#

Yes.

smoky lantern
#

My understanding was that if I wanted to rig up an entire model with Final IK, it'd be more performance friendly than VRC's current IK. But I don't think we're allowed to do that anymore, thanks to a few bad eggs ruining it for the bunch (which seems to be the overall trend right now).

#

If I could do that, I probably wouldn't need a bunch of individual scripts, but that's okay.

surreal topaz
#

@smoky lantern a few things

#

The game already uses Final IK for their IK, that's the reason it's even allowed on avatars.

#

As far as I know, the game uses the VR IK component for your avatar, and Full Body Biped IK if in full body.

#

It uses a few Limb IK solvers if you don't have finger bones mapped(?)

#

We're still allowed to use all the Final IK components. The "bad eggs" you mentioned were people using the "footstep triggers" on the VR IK component, which allowed you to do some malicious stuff.

#

Those footstep triggers have been removed, but the components are all still perfectly fine and useable.

#

A lot of people only used Final IK for footstep triggers, which is why people keep mistakenly saying "Final IK is removed"

#

There's no way to properly do your own hand and head IK right now. And even if there was, doing it yourself would almost certainly not be more performant.

smoky lantern
#

A more optimal IK is the topic though.

distant forge
#

I feel like this became a bit off topic

smoky lantern
#

Silly.

distant forge
#

(People were basically using that footstep trigger exploit to swap out your own avatar's animator with a custom one after load.)

smoky lantern
#

Oops, edited it.

surreal topaz
#

If they only swapped out their animator, the exploit would probably not have been fixed

#

They were also spawning any object and unparenting objects from their avatar

#

I've seen people spawn their own world inside Presentation Room

#

Anyway, a more optimal IK is probably more up to the devs. One of the devs (I think hackspanner) has already said that he'd like to see customizable IK at some point in the future.

#

Hope that makes its way into the game soon

#

I heard they're already reworking the current IK anyway

agile gust
#

is there a quick script or something i could run in unity that shows how many bones affected by dynamic bone components etc. i can remember seeing one a while back

heady smelt
#

check the documentation about optimization

#

it's pinned here

#

and there is a link to a tool that does that

#

at the bottom of the doc

surreal topaz
#

Friend of mine never joined his meshes

#

Now his world got denied and he has to rework hundreds of avatars

heady smelt
#

nice

agile gust
#

wait meshes damn. can understand maybe bones lets face it 99% of us have been pretty lazy with bone merging but meshes are literally 1 click in blender

surreal topaz
#

Yeah

shut sequoia
#

I can see how people forget

#

But i never get past unity when i forget

#

But there's no excuse once you know, and it's one thing Tupper says like 100 times in his video.

sudden jewel
#

I've added videos to the Avatar Optimization docs, as promised. 😃 https://docs.vrchat.com/docs/avatar-optimizing-tips

heady smelt
#

:PogChamp:

sudden zodiac
#

Woop woop new tutorials from the tutorial master himself tupper tupper

sudden jewel
#

they'd be a heck of a lot longer without the tools you and cats provide 😄 thanks hotox!

gray wing
#

awesome! more Tupper tutorials!! 😄

wide breach
heady smelt
#

it's a bit bugged currently

wide breach
#

ahh, ok

heady smelt
#

for me, it will just make my dyn bone script stop working 🤷

wide breach
#

so i should remove the plugin then?

heady smelt
#

if it doesnt break anything, no need

wide breach
heady smelt
#

open the console to check

wide breach
#

i removed it and it works now

#

lol

heady smelt
#

yep

wide breach
#

im watching weight painging tutorials and it seems so complicated lol

heady smelt
#

a bit in the beginning

#

but you get used to it pretty fast

#

Just finished watching the new videos
Great job Tupper
Short, straight forward, well explained and very easy to follow vrclike

sudden jewel
#

There's a few editing mistakes and a unrendered "tip" in the atlasing video that Primere didn't save so I'm encoding a new version now. it'll be up in a bit. No real appreciable changes

#

thanks svel 😃

amber hemlock
#

When sliding islands around in a manual atlas, is it possible to move in exact pixel offsets so I don’t blur the textures?

sudden jewel
#

G-(X/Y/Z)-number-enter

#

G for "translate", X/Y/Z to choose axis, number to choose pixels, enter to confirm

#

You might have to mess with settings to get the units down to pixel size? Unsure

amber hemlock
#

Thanks. It’s a different non-power of two on each axis sadly

heady smelt
#

will the dyn bone settings get tweaking a bit btw ?
For example, we can use 50 dyn bone max and 2 colliders, which would roughly = ~150 dyn bone transform

#

if we don't use any collider, should the number of allowed transform goes up ?

sudden jewel
#

we kind of accept the fact that 50 transforms + 0 colliders != 50 transforms + 2 colliders

#

its just how it do

#

I mean ideally you don't use any colliders because they're awful and terrible

#

the "i guess you can use two" is a concession

heady smelt
#

i see

#

yeah, only 1 was allowed

#

now we can have 2

#

for public worlds that is

wide breach
#

sorry for the dumb question im still new to unity but why are coliders awful?

sudden jewel
#

it isn't a dumb question 😃

heady smelt
#

i guess there isnt anyway to check for personal avatar yet

amber hemlock
#

Dynbones colliders specifically are bad or are capsule collisders on avatars also bad?

sudden jewel
#

Basically each DynBone script checks a bunch of transforms (bones) and moves them around based on how you're moving. This is already pretty expensive due to the math involved and due to how DynBone is coded.

#

Colliders add on more "cost" to that calculation because every time DynBones runs (60 times a second), it also has to check if its within the radius of a collider

#

which is also expensive

#

which takes up tons of CPU time, which kills your frames

amber hemlock
#

I tried to imagine how dynamic bones work when I was setting it all up with colliders and all I kept thinking was wow this is a lot of crap to check it most have insane overhead

heady smelt
#

wasnt dyn bone bound to only 1 core ?

#

which make it awful from the start just because of that

sudden jewel
#

calling it "bound to one core" is a vast oversimplification of the problem

#

multi-threading something is not a magic wand, nor does it solve all problems

heady smelt
#

it's the best way to explain this to the average users

#

but i know that you can't really use more core for dyn bone

#

unfortunately

sudden jewel
#

well, there's simplifying an explanation, but then there's also simplification to the point of incorrectness

heady smelt
#

🤔

amber hemlock
#

Seems like it makes its own collision layer matrix with every bone/ collider

wide breach
#

ohh that makes alot of sense, thanks for the explination Tupper!
dam dident know dynamic bones ran 60 times a sec nowonder alot makes peoples computers lag badly

heady smelt
#

a thing to add, adeon, is that dyn bone collider are doing th calculation all the time

sudden jewel
#

yes, it has a max of 60, which is what most people set it to 😃

heady smelt
#

even when they are not actually colliding with anything

wide breach
heady smelt
#

well

gleaming yacht
#

Can my dynamic bones and your dynamic bones run on separate threads?

heady smelt
#

you could follow Tupper's tutorial, loli

#

you could merge half of those hair bone

wide breach
#

let me take a look at it sec

heady smelt
#

and it will still look really good

#

from what i can see

sudden jewel
#

You could merge those down into two or three bones and be fine.

heady smelt
#

you could also take 3 bone from the sides, and merge them in the middle

sudden jewel
#

Who is selling commissions that badly optimized??! vrpill

heady smelt
#

the self claimed jiggle god

sudden jewel
#

More like "my OC'd i7 is crying" god

heady smelt
#

true

#

but he started to optimize them i believe

#

he don't really have a choice tbh

amber hemlock
#

what is the impact one one cloth vs say, 6 dynamic bones with a collider

heady smelt
#

i would honestly like a comparison with values about that

#

take like 10 dyn bone from a skirt

#

and then compare it to cloth component with 100/200/300/400 vertices

sudden jewel
#

You can profile it yourself in Unity Play Mode with the profiler open 😃

amber hemlock
#

Like in the hair above I just think “delete the bones, make it a cloth with a capsule on the skull”

sudden jewel
#

Hair using cloth is usually pretty awful.

#

Both for appearance and perf.

#

For one, they have to be a second mesh. For another, hair tends to be complexly modeled, so is usually 500+ verts.

heady smelt
#

ptsd from those avatar from the dance world

#

using cloth on the hair

barren jungle
#

cloth used on anything with 3D volume tends to make it inflate and deflate like a balloon when moving as well

amber hemlock
#

Yeah I only use cloth on very low poly stuff

heady smelt
#

well, tupper

amber hemlock
#

Long hair strands tend to work well but I don’t know the performance impact vs dynbones

heady smelt
#

i tested cloth a bit

#

with like skirt that went up to 1500 vertices

sudden jewel
#

I wouldn't consider cloth an alternative to DynBones unless you've got like... <150 verts on the mesh

heady smelt
#

and there is barely any difference

#

so that's why i don't get why it's so awful when compared to dyn bone

sudden jewel
#

Well consider the situation in which people start swapping from DB to cloth

#

its an entirely different set of problems

#

plus, its harder to set up properly

heady smelt
#

yeah it is

#

it's actually simpler when you have very few vertices

amber hemlock
#

Makes sense. My cloths tend to be 20 to 100

sudden jewel
#

Its much easier to use DB and just optimize your bones a bit (and do some trickery as noted in the videos pinned in here)

#

Kareeda's video has some really clever stuff in it

#

as does Bananers' video

heady smelt
#

something different from your video ? i should check it i guess

sudden jewel
#

yes, the videos I provided are dead simple stuff

#

intended to be short, to the point, and simple

shut sequoia
#

"Who is selling commissions that badly optimized??! " Everyone.

#

Since private avatars "get around" the limits (for now ?)

sudden jewel
#

well the limits are intended specifically for public avatar worlds, since anyone can wear them

#

if I could choose to be in a room full of people wearing avatars they made themselves vs a room full of people wearing public avatars, i'll probably have better FPS in the first instance

#

because people take a lot more care with their personal avatars.. usually

heady smelt
#

nothing is said about the polys in the doc, future change for sdk planned ? SalitySaltySenpai

sudden jewel
#

The doc focuses on things that currently adversely affect performance the most 😃

heady smelt
#

nice

shut sequoia
#

yeah unfortunately at least one world i was happy got declined plans on just distributing more packages, likely without any attempt to optimize them

#

but i guess there's not much you can do there. since we know they're not optimized, it's easier to just block them i guess since they typically have a watermark

wide breach
shut sequoia
#

that looks like you loaded the FBX into blender and not the .blend

wide breach
shut sequoia
#

ah

sudden jewel
#

Imported FBXes sometimes have issues with bone rotations

#

thankfully it doesn't really matter

#

it just looks dumb

shut sequoia
#

hitting "fix model" usually fixes that look for me

wide breach
#

before i continue do i need the .blend file to be able to fix the issues or would i be able to try and edit this one?

shut sequoia
#

I think you'd open the fbx in blender, then save that somewhere and the defautl should just be a .blend since that's what blender saves things as normally

#

yeah just checked and it works

#

So just load the FBX in, hit "Fix Model", then go to File and "Save As" and it'll let you save it as whatever and it won't overwrite your FBX

wide breach
#

oh, ok

shut sequoia
#

then you've got a .blend and you're basically free to do whatever you want from there

wide breach
#

sweet, thanks for the info!

safe swift
#

Would it be possible for a mod to drop me a spreadsheet for my ava world? Want to be sure that it doesn't get denied and doublecheck if I haven't missed anything. (Also 4 of them should show 52/54 dyn bones, but 4 are off by default/enabled by fingerpoint)

sudden jewel
#

DM me your world ID and i'll slip it in the next time I do a run

#

@safe swift

safe swift
#

oki, ty ❤

sudden jewel
#

The profiler looks at all bones, even if they're disabled-- those still count 😛

heady smelt
amber hemlock
#

They still are animating even if they have no vertex groups

shut sequoia
#

whaaat

safe swift
#

what i mean is that the script is disabled and it doesn't do any calculations, right?

#

but the profiler still takes those into account, unless they do make calculations when script is disabled

amber hemlock
#

Disable your dynamic bone hair, run to the right, stop, then activate your hair - you’ll see it whip the side like it would have as if it was always active, because those bones were still being simulated

#

The scripts are on the bones not the model

jovial grail
#

But scripts don't do any calculations if they're disabled

#

They might keep the old values from before being disabled

#

Otherwise what would be the point of being able to disable them

amber hemlock
#

I mean if you are disabling scripts ok. Can’t tell you about that, I never see people do it. Everyone just deactivates the prop and leaves the bones doing their thing invisibly

safe swift
#

i use it for tongue

jovial grail
#

Bones are attached to the armature, it's just that their additional movement gets changed

#

In addition to the movement from the armature

#

I've been thinking of making a toggle for my dynamic bones myself

#

Disable by default and enable when needed, instead of making a separate avatar altogether

#

I guess it wouldn't be very reasonable to go through each animation and check the enabled ones so they're just all assumed to be enabled

amber hemlock
#

Too bad bool animation toggle dsoent work on avatars

jovial grail
#

Doesn't matter, people have figured out ways how to make toggles

amber hemlock
#

You’d have to hold a hand pose

#

Really? Send me the details please

jovial grail
#

Just look for toggle props

#

animator parameters would be wonderful and simplify everything

amber hemlock
#

Is it synced? Late joiners won’t see it backwards?

jovial grail
#

It's not quite synched, it has to be rendered too

amber hemlock
#

I would love fully featured state machines for avatars

safe swift
#

it will be desynced, but you can have double animator setup where first enables 2nd animator that enables bones every N sec

amber hemlock
#

Instead of just time based states

#

Turing complete time to program in state machine

jovial grail
#

I do wonder why don't we have triggers to set animation parameters for avatars

#

You have it for worlds, but not avatars

amber hemlock
#

No idea, given even udon doesn’t sound like it will be enabled for avatar scripts by it would be a nice bone to throw for more complex avatar content

#

Just some animation bools is all I need

#

Maybe because it’s all local?

#

Desync would eventually become a problem for complex states

jovial grail
#

Not any worse than the current options

smoky lantern
#

Toggling animators is a bug anyway, but it works. You just need to figure out how to make those keyframes or copy and paste them from somewhere else and change the directories.

#

I think toggling animators will probably disappear with 2017. 😭

#

It's one of my favorite tricks.

mossy solar
#

I wish I knew how to toggle 😦

smoky lantern
#

Toggling props is pretty easy. Toggling animators is also easy enough. There's a prefab for the former, but the latter is more something you plan your entire model around and it'll only work for that model.

amber hemlock
#

ok i just moved all my islands around to texture atlas, and now my avatar's all miscolored... how to i bake the texture to the new spots so it looks normal again?

sudden jewel
#

sometimes colors in blender don't match the colors in unity all that well

#

try importing it into unity and setting up a basic shader for it to double check

karmic condor
#

yes if you redo textures in blender it will more likely change the uv map which is what determines what part of a texture goes where.

sudden jewel
#

Oh I see what you mean. You have to click the camera next to the old UV map in the Data section of the mesh object in Blender.

#

Then you have to bake. Of course if you were just shoving around UV islands without creating a new UV map... well, then you just borked the model. 😛

woeful crescent
#

@sudden jewel When we gonna get the 2017 update?

shut sequoia
silent slate
#

i just download a avatar and appaer like this, there is a way to fix?

heady smelt
#

this is not related to optimization

#

(also check the outline on the materials)

silent slate
#

ty, removing outline fixed it

sturdy socket
#

try removing the knuckles

#

tanabae jk

bold cedar
#

got an optimization question: let's say i grabbed the source for the standard unity shader, and i use that instead of the pre-compiled version. would there be any performance difference?

gleaming yacht
#

Depends on the changes you make. And if you don’t make any, why do that? 🤔

heady smelt
#

pretty sure the standard shader is already well optimized
i don't think it will make any significant change in performance

distant forge
#

One common reason to duplicate standard is to set Cull Off for certain materials or cloth that need double sided rendering

wide breach
smoky lantern
#

There's already a double-sided standard shader on the Unity Asset store for free.

#

Sooo.

wide breach
smoky lantern
#

There's just not a version that handles specular maps properly that's double sided.

wide breach
#

ah

smoky lantern
#

I was responding to another comment.

wide breach
#

ok ok xD i

smoky lantern
#

There may not be emission. I know a few people that won't add emission to their custom shaders for performance reasons.

#

I've seen that one before, but I haven't tried it. It's surprising how different an effect all the toony shaders can have.

#

I'd use that one for a cel chading effect, but you can do the same with the right light ramp settings.

wide breach
#

yea, i really like how it look on the avatar just my ahatar normaly has emissions and it looks bad without it :/

smoky lantern
#

You could always try Reflex Shader 2. It's free on booth, I think. It has really nice settings for emission if you like that.

wide breach
#

hmm, ok. is there a way to make a diferent like material and just cut put the parts for emision and put it over the shader?

smoky lantern
#

Yes.

#

Some shaders just have emission masks, but you could easily make it a separate material. Though, it may impact optimization, so I can't really recommend it.

wide breach
#

wait what i added the reflex shadeer and it changed all the options for the anime shaders? is it supposed to do that?

sudden jewel
#

Xiexe's handles both culling and emission. And it is free/open source 😃

wide breach
#

oh sweet, thanks. let me go check them out