Re auto atlassing it should only be checked by default if the material count is above medium performance rating, idk how many people do this but I painstakingly spend hours manually atlassing and creating control textures that get everything just the way I want it. And I usually use 4 materials to do that that absolutely need to be separate
#avatar-optimization
1 messages · Page 42 of 1
I manually atlas everything and then make the emission maps and other maps manually
I've been experimenting with getting multiple toon ramps on the same material using an RGB mask texture
I usually end up with 2-3 materials. One opaque, one transparent, and one misc material
Usually the "misc" material is for metallic objects or glasses
My shader just supports unlimited toon ramps
It’s based on a mask texture but instead of different color channels as different ramps mine just uses a channel as a sort of “selector”
Knew dynamic bones toggle was being added but didnt expect a dynamic bone hard limit :o
Soo many avatars will need to be redone now :3
I'm interested to see how people react with the 32 dyn bone limit
another kick in the nuts for avatar creators that have public worlds, what else can you say 😛
hard limit? 🤔
@shut sequoia new dyn bone limited 32 for all players by default else disabled
Oh, that's only locally.
Unless there's another article somewhere, I'm assuming you mean the DB Limiter.
Only locally :3, yeah it can be changed but it'll be a mess imo
A mess? why? Just change it to the number you like.
I doubt many people will bother changing their limit
hopefully certain aspects of it will be changable if they do a settings ui overhaul
Ah, well that's kind of on users. We'll probably see a flood of people here who, despite getting the @ everyone announcement, didn't read the blog post at all that'll be added with the patch notes. Then it'll normalize once people realize they can set it however they like or flat out turn it off.
The performance menu is getting kinda complicated now for an average user imo
I'm guessing most people will turn it off and continue to complain about lag lol
i'll probably increase the limit enough that most things look good but the over done stuff gets the cut. No need for them 500 dress bones 😛
Heheh I'm just going to be laughing people being mad at the new 32 dyn bones limit
I'm glad I bothered to optimise my dyn bones before
It's not a limit though 🤔
Simply a way to not show them locally. YOu'll see them on your end, if you like, I just won't see them
But it's not a limit in the sense that you're limited to that amount on your avatar. That would suck
Im not going to argue on the definition of a limit silly
Pretty sure you understand what I mean
I think so, just making sure we're on the same page 👌
Okii all goods
Someone did mention in the beta channel that it'll definitely make some people want to optimize. People want to be seen, that's just the nature of a lot of avatars.
That was the whole thing with the trust system. People wanted a rank so they could be seen (by default)
I just want to have it only enabled at like 5meter rather than 15meter
15 meter enable by default is silly
Yeah, a modified culling distance would be nice. I always wondered why we can't adjust that.
Sucks not being able to change the distance
Though I'm not sure if it's as bad as it seems since I'm fairly sure they cull when you're not looking at them anyway
The culling is broken
So even if you're right behind me, assuming your bounding back is correct-ish, they'll still be culled
You only get a tiny perf improvement even if theyre hundred meter away
Really? I figured people's hair adjust when i look at them was the DB un-culling
Oh that's that's what I mean,t DB culling specifically
Yup my bads
I feel like he distance isn't too bad unless it's mirror related because if they're behind you they won't cull the same obviously
but it does still suck we can't adjust it on our own for larger rooms
that and the refresh rate, that'd be nice too I think
Well at least it has a toggle now
Will be nice once we can customise each user group
Should have a seporate option for public/cloned avatars in the perf menu though
Yeah that's true, there seems to be a lot in store for the performance system in general. Once we're able to adjust the number ingame and let friends have more permissions for things like that, it'll be pretty good
Pretty happy they added it overall
I'm sure we'll get way more optimised dyn bones now ^^
and if not, it won't matter since i cant see them lol
Thinking about it, it’s a limiter that works like a compressor. Lol
so just simple question so all my avatars say there in the green with the new sdk on upload but in game there medium or poor so how come the old sdk shows that there red and orange and the new one ignors dynamic bones and cloth?
The sdk has a error in AvatarPerformance.cs with some versions of DynamicBone... you can fix by searching for DynamicBoneCollider and changing to DynamicBoneColliderBase -- you can also download Pumkin's tools linked from the docs
Rendering out a video on the dynamic bone limit and customizing it shortly.
do the safety settings disable cloth too? I feel like if they don't that's a way for people to get around it that's even more expensive than db
No they don't touch cloth most liking down the road
Cloth hair oh no
Dynamic bones are not even that heavy.. mostly Shaders,particles etc is gonna cause problems. and the badly coded way to handle it
real physics is much heavier than dynamic bone and theoretically still usable to achieve the same visual result
I'm having an awfully hard time getting below 8. getting below 13 seems easy though
maybe someone will figure out a shader-based dynamic bone replacement soon :V
real physics is not gonna happen lol. its predictive.. but that said the game should easily be able to handle 128 + dynamic bones. and far more then that. and as long as they dont bind Shaders and particles to gpu we wont see much of a performence increase
I have over 200+ avatars with 15 or lower Dynamic bones. It's not to bad and i create tutorials on how to do it. https://www.youtube.com/watch?v=I7sAPfGrHns
This Tutorial will show you how to merge bones effectively and bone weight to help with the new Ranking system. It will let dresses move with fully body and ...
they don't block physics yet
if they block physics your going to get a mindless game. platform with nothing special. all avatars are build around having physics interaction
also their networking is not exactly great. they are using Photon API which is horrible
VRChat released a video showing the impact on the CPU that dynamic bone scripts have. It's always running checking for collission even if not touching.
they could block it on avatars if they cared about the performance enough. my point was that it isn't blocked for now so we can still use it
the collision checks wont run unless it gets hit. but in their case it might always hit something
the cost is about half when it's not touching from what I found
but I also found that most of the cost was just unnecessary object construction which could be replaced by reuse
it's always running, but when it's not touching it costs about half
once it hits it does a bunch of additional computation
So many avatars have so many unneeded bones, collissions, everything. Why have 30+ bones on the back of your head linked to hand colliders? Who the heck is reaching back there for example
lol? i wasnt spamming
there is that. at the moment I'm just trying to get the twintails not to intersect the arms
so far I'm down to 4 per side
the fact is that the networking Api slows the game down alot as well.
many things slow down the game
so many CPUs sitting around doing nothing still though 😦
to many things are bound to the cpu rather then gpu.
also i heard the UI causes alot of performence problems.
The only big fix they have left is the IK fix then it's up to the players/community for better performance
I dunno, the biggest performance issue I have here is the distance from the server
the IK fix will send your IK data to everyone instead of calculating everyones IK on your end
fixing that is too hard to do myself
dont really need closer servers. the game isn't that needy in sense of low latency. but it would be nice
for some use cases it would be very nice
that said i heard alot of good things is gonna happen this year to VrChat.
I thought dividing the bone chain up and having only some bits of it collide would pay off, but actually, it doesn't work correctly once you do it :/
it's like an exclusion from one script is somehow causing it not to work in another script
on top of that the count being computed by VRC doesn't seem correct either, it's about double what I expect
the bug in how it's being counted was filed by someone else 3 days ago so I guess I'll just suspend optimisation effort until it's fixed
i have ~4 similar tda face textures for different parts like eyes, eyebrows, etc.
is there not manual way to combine them into single texture of same size?
i tried atlas generator in cat's plugin it just puts textures next to each other, that makes output texture size twice larger
Manually atlasing @visual scroll
That will get rid of all unused parts of the textures
This isn't an optimization question so you're just spamming chat for no reason lmao
Oh he already yeeted
@elder mulch thats a lovely way to get banned. I for once Applaud @sudden jewel for this change. All you kids need to learn a little respect about hardware limitations.
And this change forced me to take a second look at my shiba avatars.... which im in the process of fixing and re-uploading them.... all 70 of them... it's gonna take me a while. It's my personal goal that my stuff looks good on default settings. So I gotta step up to the plate and set an example for y'all
you have to understand, this is not g-mod where a bad asset makes people lag and thats it. This is VR lag can cause serious physical discomfort, even VOMITING in vr users. there is a lot at stake forcing players to optimize their content.
Collision checks do run even if they don't get hit, otherwise they would have no way of finding out if there's even anything being collided
Shaders and Particles are already on the GPU the CPU cost for particles is just from them being initialized and other things calculations
Just to confirm, do i add the code snippet inside the block for particles or under it?
{
"betas": [
"particle_system_limiter"
],
ParticleSection
}
{
DBSection
}
or
{
"betas": [
"particle_system_limiter"
],
ParticleSection
DBSection
}
Second one
Alrighty, thanks
@zealous spire It took me a whole month to optimize everything and learn things several months ago but I strive to have the "best" run avatars so it's great to see others do it too. Honestly there is only so much VRC can do. The game everything around us is made by players. What is VRC without the content players make? A few basic maps with base avatars. It's a sandbox game and everything is making castles outta gold instead of sand. The world only has so much gold....
here's why we have to optimize:
The avatars we're using are originally models designed to be pre-rendered, with no regard for performance, like a pixar movie. We're taking those and trying to run them real-time in virtual reality no less. You're going to run into issues if you don't optimize them.
And for real physics:
Nothing's actually stopping you from setting up real physics, the models actually come from their origins with joints and rigid bodies already set up, however they're incompatible with unity's physics, and the cats tool removes them automatically. If you want you can try to mimick the settings you see in pmxeditor for the rigid bodies and joints. Keep in mind though your avatar will be marked as a poorly performing avatar
I assume this is related to MMD models
Yes MMD is short for MikuMikuDance which is a rendering software for creating music videos of models dancing in high quality. I work on a ton of game models and MMDs have tons of materials, way to many tris, and way to many bones.
yeah they're not being ready models in the slightest MMD
Had to confirm, since not every model is a MMD
One of my favorite models to work on are Dead or Alive models. the hair/chest/butt have tons of bones but when you play that game at most you'll have 2 fights on screen at once. If the game was a 2 vs 2 game every model would have less bones and detail to maintain the same performance because the engine and system can only do so much. When a game is created and developed there is a goal and level of detail you aim for with game assets and can't pass the limit. VRC has no limit and everyone is basically a guest developer with no standards to go by so they can do and upload whatever they want.
And keep in mind VRC running in VR has to render everything twice for both lens and that doesn't help things. I'm sure you've all notice the FPS difference between VR and Desktop mode
yep definitely a difference between VR and desktop mode the frame rate
Of course, just stating that not every model is a MMD, and not every model is held to the same standard due to such, if we were to talk about source games per example in which the models are rendered in a large amount, use quite a few materials, i'm not comparing engines here, but nothing is setup the exact same way
Not every model will have bones for dynamic effects, whereas many will, not every model will have a unholy amount of tris, whereas many will, and not every model out there uses HD textures for their materials, whereas many do, and not every model out there has preset dynamic setups, whereas many others might
Optimization is important, don't get me wrong, but not every model has the exact same standards
yep definitely a difference between VR and desktop mode the frame rate vrchat we do have to be a bit more concerned about that
I wish there were some tutorials in terms of unity based physics related to VRchat, it could be a relatively good thing to go for, since dynamic bones are akin to the devil in terms of performance hits from what i keep hearing
In other news, they don't bother me
oh dear that's terrible
Worry not, it's just me that'll suffer from those absolutely horrible dynamic bones
Putting these numbers in doesnt make a single point of sense.
Set your self a higher limit to use for when it gets awfull and turn it off for normal playing.
Oh i don't really care about the general lag that DB's could cause my way, so i put it to a ridiculously high value, so weither it's disabled or not, won't matter, unless somebody of course has such a ridiculous amount
If somebody were to actually use something that'd cause me lag due to an obscene amount of DB's, i'll just block their avatar altogether, so it's all good
Why take away the option to have it available in case you might need it for what ever reason and insted set it up like that doesnt make any sense to me.
But your choice ¯_(ツ)_/¯
I just don't really care about the system is all, so i just removed the option from my client essentially
Das all
Ignorant i would say :p
Well that's quite rude, i simply chose to do something that solely affects me
Use mobile phone lvl of details like me. :p
@marsh trail if you were a model maker I'd ask you to think of OTHER PLAYERS and not just yourself.
I don't get what you're on about
He doesn't care for the system and just input some random values into his own limiter, who cares?
@surreal topaz if they continue to make avatars with more than default setting number of dynamic bones and coliders. Every other player is going to see that avatar as stiffy-McGee.
That's not what they were saying though
Most players aren't aware of the change.
Lemme take a better screenshot...
I don't get why you wouldn't just turn the limiter off entirely though, if the values are that high anyway
The limiter is a bit of a hasty implementation
Just doin' it for shit's n' giggles my dood
Since it doesn't really impact me in anyway shape or form, i simply altered it, i planned on making the text bleed out of box but just kept it at that
I set my limiter to 256/128
On a related note, I sent a moderation report about that world that keeps using portals to try and get their 2000 collision checks models public but they haven't done anything :/
Ouch
We need a newgrounds type button of "BLAM THIS PIECE OF CRAP!!"
Actually I wouldn't mind a system like that for labs worlds
Ew
according to avatar stats i have 29 transforms and 7 col checks
with default limits of 32/8 my bones are disabled
hmmm
I've seen some other people saying there are issues
My avatar with 30 transforms/8 collision checks is working for people and myself
If you reuploaded it today somebody told me they ended up on the old version of their avatar so be on the lookout for that too
@vrpill snaps fingers.
"Mr onichan... I don't feel so good...""
The weeboo dissolves into 200 disabled dynamic bone transforms with no 5000 collider checks...
Does that mean Antman is gonna crawl up.... nevermind
Don’t do it kareeda!!!
@tired badger that would only happen if the team decides they want everyone to optimize for occlus go and Google cardboard
Though by setting the values that high and enabling the system he will see a slight bit of performance degradation as the system is scanning for bones constantly
I am gonna purchase an Oculus Quest. 1 reason so I can use it at office and bedroom but main reason being in case the Quest version is separate servers. If they are separate then I'd imagine PSVR will eventually happen and it'll be crossplay with Quest. I just wanna make sure everything I make and do runs great on both PC and quest.
@zealous spire I'd take optimizing for those as a challenge.
hey kareeda you want me to test anything on my toaster?
how the hell do i fix this
i have no experience in modeling before except for making a boat in blender
u need to decimate the model
@boreal escarp
u must also rearrange the bone structure
decimation tutorials on YouTube
k
by following the story of titanfall 2
i managed to chop shop BT to fit the requirements
thanks, Respawn writers
@boreal escarp please merge your meshes while you're in blender, there's no need to have 40 meshes and it'll just kill performance
again
no experience in blender
so i just cut that shit off
We need a tier above excellent for Quest, “It just works”
Lol
This would fit right in https://www.thingiverse.com/thing:2164071
Looks like it's straight out of Superhot
I wonder if anybody made a superhot themed map yet...
Destructible entities, slow-mo animated effects, and lowpoly looking models, actually curious if such is plausible
Not worth making a playable version until Udon
We need gibs support lol
I would love an udon event/function list
That’ll be available when udon is ready most likely
Though don’t get your hopes up just yet as it’s not likely to be released anytime in the near future
You're likely right, but why do you think so? Heard any news? I'm excited for making a world which isn't purely VLC triggers
Hello. Sometimes when i make a gesture, the gesture takes a few seconds before switching to another and slowly turns off as the other slowly turns on in those few seconds. Is there a way to fix this?
for refernece this is how i usually set my gestures up
Gesture need to be on frame 0 and 1
When you activate something
Drag the last frame to 1
like this?
Should work
❤ thanks
76 avatars to go through and optimize the dynamic bones.....
the original avatars had 38 transforms and 20 collision checks. so it's not to much of a fix. i can get it just below the threshhold im proud of that.
How did you get your SDK to show the dynamic bone count?
vrcsdk shows dbone count right?
Not for me. It only seems to show if you have an older version, generally that only happens if you pirated it
Or if you haven't updated your project in more than a year
idk, I came back to VRC scene just this past week and my last open of unity is last December.. but I deleted VRCSDK folder before opening and installed the latest SDK
use this in unity https://github.com/rurre/PumkinsAvatarTools/releases/
oh! I had that installed 🤣
drag your model from the scene in the pumking tab and you have a bunch of option and you can have the stats like dyna and transform
in cats you have the option to parent a bone to the parent or child
so try and error some merging to see
Nice that your SDK picks up the dyn bone counts properly. Mine always reports 0 and I don't know the real numbers until I upload and inspect it in-game
I think something's bugged with my scene
It has never worked for me. I just use pumpkins avatar tool
@karmic condor @amber hemlock edit AvatarPerformance.cs and change DynamicBoneCollider to DynamicBoneColliderBase . I don't know why it's broken with some versions of dynamic bone but this fixes it
I need to see if there is a canny for this. Would be nice if they fixed it
I use the official version freshly downloaded from the asset store
Ironically, it might be the one that gets passed around that works properly ._.
Quick question about Skinned Mesh Renderers. Since the limit for avatars in an avatar world is 3, would that mean that theoretically they have to be limited to two gesture overrides that reveal objects?
Also forgive my ignorance, but on the wiki it mentions that each SMR requires its own draw call. If they're both using two separate materials, wouldn't that be roughly the same thing as if they were on one SMR?
No, most objects are not skinned
Also there are ways to merge objects together and hide and show individual ones out of a single skinned mesh renderer
By scaling bones to 0
I see. I'll keep that in mind
What about the material/SMR draw call thing though? That's something I don't quite understand
Why do you need skinning on your props?
I have a modular setup for some avatars so they can be personalized easier. A lot of pieces have custom vertex normals as well and merging their objects together with those that don't have any will break it. The main chunks like the skin/head that use one material are together, but the variety of clothes I use all pull from their own respective set of textures. I also use unique shaders for the clothes and skin, so I can't really merge the textures together
For clarification on the shaders, there's one for hair to mimic how it appears from the game its from, one for the skin to set the skin tone and highlights, then the clothes have one to apply "team coloring" since their clothes change color depending on their team.
@distant forge You'll want to scale to 0.0001 actually otherwise you'll cause NaNs and probably other issues.
what if you like NaNs
👺
how to get past poly limit??
Why would you ask how to break the tos in the official discord
Another question is, why do you want to break the poly limit? its 70k thats legit plenty my dude. Way better than 20k, THAT was horrible back in the old days :' )
Gotta Decimate hte model my man
You won't need more than 70K polygons. Unless you want something to look absolutely perfect, and plan to use it in private worlds only. But I really doubt that this is the case. You will likely know how to do it once you get in a situation where it would actually be acceptable. The entire point of this channel is optimization by the way, not stealing frames from others
Hi babes
@amber hemlock yeah, only the pirated one works lol
@knotty trail the material limit for public worlds is 10
Or 15 I dunno
Anyway, even if it's 10, that's plenty
You can have a material for the skin and one for the clothing if you want separate shader configurations
One skinned mesh can have as many materials as you like
"Modular" setups and optimization don't go well together. Merge everything together before exporting to Unity, you can leave it separated in Blender as much as you like.
You can fix it yourself @surreal topaz, it was posted above on how to fix it, open the file Assets/VRCSDK/Dependencies/Scripts/AvatarPerformance.cs and change DynamicBoneCollider to DynamicBoneColliderBase. I got fed up with doing this so many times I wrote a script to do it. Devs really should fix it. @distant forge did you find a canny for this?
Thanks for responding, but that's not exactly I was curious about. I've read the documentation and was moreso confused as to why the skinned mesh renderer limit was so low since it seemed like the reasoning was because of duplicate draw calls
If you don’t know what you’re doing you can have two meshes with the same material(s) on them, duplicating their draw calls. If you do it correctly you have unique materials for both
They won't fix it unless themselves update the dynamic bones in the client
They could because they already lookup the type dynamically using reflection so they should just check the different type also. (also, is there a way to obtain older versions from the asset store?)
You can't obtain older versions
It's weird that a collider component name would also cause this to happen for the regular counting
@pine flame That's what I was saying before though, what's the different between having one SMR with two materials, and two separate SMRs with their own unique materials?
Well it’s a whole nother set of vertices to grab the bone weights on really. There’s an option for how many bones can affect any set of vertices in unity so I’m guessing having twice the number of weight groups connected to any one bone could halve the performance of the avatar.
This isn’t really backed by any hard evidence but skinned meshes are I would assume much more of a performance hit than a regular mesh
@knotty trail VRChat is using GPU skinning so there is a skinning draw call for each skinned mesh renderer.
hey is anyone else having audio issues when uploading an avatar?
Whenever i try to upload my model, it keeps automatically setting it to this very quiet custom rolloff. Nobody can hear my avatar unless they are inside it.
Disable onsp but keep the component
what does ?
when i press build and publish
it changed my settings to that custom rolloff posted above and it reenabled onsp
did you try in client ?
you mean the state its in after i press build and publish?
like the buttons above turn blue?
I mean in VRChat
i can hear my sounds just fine, but my friends couldnt
@heady smelt set the max distance to 30
Thanks 👍
it helped only a tiny bit oof
should i just go back to an old version of the sdk?
one without the volume restriction?
It won't help much, it's enforced ingame
Set min distance to 2, max to 30, volume to 0.9
Remove ONSP component
If that's still too quiet boost the audio file itself
i dont know if this belongs here, but can anyone help?
make sure you use the right unity (2017.4.15f1)
and follow the steps in #vrchat-support
and no, this doesnt belong here. #user-support-old
Does anyone know if there is a way to optimize into one mesh a swappable hands (where both hands are swappable separately and all hand meshes use the same set of bones)?
I know you can't just pop it onto its own bone like props otherwise scales and bone weights become a problem (have it weighted normally to hand bones in addition to a scale bone).
What is the limit on rigidbodies to remain Good?
You shouldn't be really be needing to use rigidbodies; a singular Rigidbody at the root and a capsule collider (which VRChat automatically adds) is more than good enough.
If you mean for Dynamic bones, then "as little as possible". The "Good" threshold AFAIK is 2, but for the most part, you probably don't need them at all.
@empty pier Thank you for the explanation!
Applying dynamic bone into vrc avatar are challenging
So the default dynamic bone limit is 32 right?
Why, then, do people who have the limiter enabled not see my dynamic bones at all, when I have only 30. These people haven't edited their limit either
is this a bug?
how's your collision check count?
hmm
I had a model with about 200 dynamic bones and I optimized the hell out of it, to get it down to 30
only to have it not work
kind of disappointing to say the least
Hmmm
You know, I haven't actually checked that
but it says 30 for me
when I check
and also when using the sdk to check
as well as pumpkintools
but even still, if I did have slightly more than 32, is the behavior of the limiter SUPPOSED to disable ALL dynamic bones??
yes
I kind of understand that it'd be impossible-ish to distinguish which dynamic bones to disable but damn, that sucks
And I was wrong, I do have one collider
in my offhand. It's an inverse collider to two-hand grip my sword
but it's only the one
and it only affects that one bone
i really recommend going in game and have someone (with disabled filter) check the counts other clients get to rule out wether or not the error is with the limiter or the count reading.
yes
ok so it registers as 31 dynamic bones on their side
is there a limit on different dynamic bone components
only transforms / collision checks should be limited (and counted)
on their end they get a dynamic bone component count as well (I have 10)
yes there is a count but i mean for the limiter
ah ok
so I guess the only thing I can do is somehow get rid of a few more bones? Even though I'm below 32 (by one but still)
I'll submit a bug report too
thanks for your help
might wanna try to excluse one single bone (to get to 30 count) on their side
and see if its off by 1
yeah I'll try that first
@tribal ruin do you use End Length or End Offset at all?
End Offset is unfortunately still affected by the limiter
I think they're not accounted for in the avatar stats but are accounted for as actual transforms
End offset and end length generate additional "virtual" transforms, which can make you go over the limit
But they won't show up in perf ranks
That's silly that they don't show up
but it would explain it
for some reason, even though I have bones some of them don't work unless I add an offset
like I have a ring that dangles but the bone in it doesn't work unless I add an offset
any idea why?
If it has a single bone it won't move, dynamic bones work on the basis of a root pivot and then an added bone for movement
so for every single pivot it requires two bones
Eyup
that's incredibly frustrating
Yes unfortunately, that's why end length was so useful
Which end offset is mostly used for, i still don't entirely get why though, it is still a transform
Virtual or not, it is essentially a bone, are there any differences between it and a unskinned bone even?
It should atleast show up in the performance checker
The virtual transform made by end length isn't "applied" in the end.
On top of that, this game counts transforms incorrectly. The root bone doesn't get calculations upon it, so it shouldn't count.
If that were fixed, one bone with end length would add one transform
Hakanai pointed this out to me.
If the virtual transform does not get applied, how would db even function?
Pardon my lack of knowledge in regards to the topic, but they had to have applied the end length specifically, for some reason, and if again, it does not enact as an actual transform (assuming that's what you mean by applying, or existing after build per example) why does DB not function with a single root in said context?
Applied to the limiter system*
I know dynamic bones are inconsistent but jesus christ
anyway thanks guys for all the help
I'll just have to make due with like 4 less dynamic bones
The virtual transform added by end length is simulated just like the other transforms
But it doesn't belong to any game object
After the dynamic bone is simulated, the particles are applied to their respective game objects which does not apply to the "virtual" transform.
Dynamic bone is just spheres connected by rigid lines. Without end length, the last transform in the chain has no reference of "rotation".
Why would they have added it to the limiter?... some clarification from the mods would be neat
Because they're just counting a variable in the dynamic bone component
That shows the total number of particles, including the virtual ones
@tribal ruin dynamic bone are complex isn't it?
If you're asking me if the plugin is complex yes. If you're talking about my avatar, not really
Why are they not counting such on the avatar stats?
Completely different reading method?
I have a skirt with 12 bones, hair with 4, a ring with 1, a sleeve with 4 and a belt with 4
but because of the end offsets on the hair and ring, it went over the limit
yeah the avatar aren't that difficult
Yes, they're manually counting each transform in the stats menu
For one, that's probably so they can give a stats reading without instantiating the actual avatar
Because the dynamic bone particle count can only be obtained on a game object actually existing in the world
And that's why values differ between client and external client
That too I guess
It's just a clusterfuck all around, but it's technically implemented and therefore unlikely to change
Same with the limiter in general
you guys notice how standard shader loses its cutout value when blocked?
it's been driving me crazy
Yes
@tribal ruin yes it's annoying. It blocks Transparent and emission. I take pride that I only use unity standard shaders. Cause I value my stuff looking good on default.
In that case it probably isn't copying the keywords correctly
I also encourage people who use Standard to give something like Rero Standard a try. As good as Standard is, it isn't really made with VRChat in mind
It's literally an edit (or as he calls it, a "hack") for Standard, it works the exact same way and uses the same properties and math.
Only patching up some things here and there, such as the lack of specular in baked worlds, or the ability to use a "fallback" reflection if the world has no probes
@surreal topaz oooohhh???
@surreal topaz im googleing this rero standard right now
Unity doesn’t know how long a bone is supposed to be if it has no children, it’s just a point.
@marsh trail
Transforms have no lengths of their own, only a distance to their children, which is different for each child.
Oh right, unity doesn't read tail positions
I keep forgetting that, since i position my bones in specific orientations for movement
Yeah tail is converted to the transform’s rotation, which loses a concept of length
So unity does use tail, just only for direction
So dynamic bone end lengths simulate a bone's root to allow it to pivot based on that location, however it does not actually simulate the bone existing in it of itself, hence not applying it, if such is indeed the case then the dynamic bone limiter system is completely backwards on what it should and shouldn't account for
If i am understanding how it functions correctly that is
I believe the limits were set assuming every component had an end length already
So, use them to your advantage they are already assuming you will
But, from what was mentioned, end lengths aren't actually applied, hence don't actually use transforms
And that sounds like a really horrible way of going by it, if we think about it then we literally have even less dynamic bones available than the limiter entails
Especially if you have multiple components instead of the absolutely horrid single roots
Not to mention that end length varies a lot
It's not designed with end length in mind clearly, that's just a side effect of their implementation.
If it were, that would mean someone with 33 or 64 transforms would be treated the same way
Hi, I'm having trouble installing the blender tool for shotariyah. I'm on mac laptop, and when I enable it, it says to restart blender. Even when restarting, It says the same message. To run as admin, I even opened blender on terminal and when I click enable, I'm stuck in a spinning wheel infinitely. Does anyone know what I can do to enable this tool at all?
@serene flower You have to somehow run Blenders integrated python, install PIP with it and then Pillow with PIP.
can someone give me a hint?
I counted the child elements of each dynamic bone on my avatar manually for optimization purposes and get exactly 32. however ingame it shows 57 for some reason. even if I'd count the root element it would only be 44. what is going on here?
@analog idol you don't have a dynamic bone component for every bone, right?
You only need one for the "root"
no just the root components of the dynamic parts. lets say root of hair, root of ears, root of breast, etc
then i would not have different values
Alright
So in that hypothetical scenario, you have three dynamic bone components total
For affected transforms, the root bone and every bone/game object below it is counted
Maybe you accidentally have another dynamic bone component somewhere
hm already double checked that but can do it again
Try disabling the ones you currently have and move the avatar around in play mode, see if you still see white lines or moving bones
For what it's worth, many people have said that the game counts end length as another dynbone
end length? ok went over it and found another component 46 then. I already counted the last element if that is the "end length"
It's the end length/end offset option that some people overlook
Many people don't even know it exists
Duplicate your avatar and upload a copy with all the dynamic bone components removed (all the ones you could find). See how many it reports then.
This is also not an optimization question so please post them in #avatars-2-general
i apologize.
uhh ok. disabled every component and uploaded it. from the looks they are definitely disabled but the stats system still shows 57 transforms
could it be that it counts disabled ones as well and this isn't really the case for the limiter?
It counts disabled dynbone components, which is why I suggested making a duplicate and removing all the components on it entirely.
transforms refer to ordinary bones as well, not just dynamic ones, right?
ah, missed that part of the description 😛
The stats system selects every dynamic bone component on an enabled object, goes to the root bone, then counts it and every bone below it. Exclusions are skipped and children of exclusions too
ok nice to know. i might be totally able to get it down to 32 if it counts disabled ones as well. it just sucks that it counts the root of the bones as well. I don't want to use the same values for all the dyn bones
The limiter selects every dynamic bone component on your avatar, enabled or not. For every enabled component, it asks the component how many transforms are currently active. If over the limit, it sets the update rate to 0. It does this every frame, so animating your dynamic bone or changing the root bone won't work
The root bone is counted even though it shouldn't
There's already a canny on it
It's counted for collision checks too even though those don't matter on the root either.
if they fix that Id be totally fine *sigh
I'm sure you could drop the end off of something.
likely i got a chain that has 13 child bones. that one i could definitely reduce ^^^
How would dropping the ends help?
you mean exclude right?
I prefer leaving the ends alone if anything
Nah, he means merging bones in Blender probably
Manually reducing bone counts
doesnt that have pretty much the same effect as exclude
Well you could add exclusions too, yes
But if one chain is 13 bones, exclusions won't help too much and you should merge every other bone in the chain instead
So instead of 1,2,3,4,5,6,7,8 you are left with 1,3,5,7
not too familiar with blender. either i might just cut it or try to exclude for now. but even with the chain i should be able to make it work
ty for the hint that the disabled components are counted in the stats system
hm @surreal topaz So I removed the chain for testing and all disabled dynamic bone components. this yielded 38. when counting manually it was 29 including the roots. Later I removed all left over components and got all values to 0. so i have not overlooked one.
you mentioned an end offset?
need some details on that eventually
I'm not well versed on it, but any bones with an end offset parameter essentially count as two
Not really
Someone who knows more can probably correct my naive take but that's the gist of it
End length or end offset (they both do the same thing but offset takes precedence if you specify both)
Adds an extra "virtual" transform to the end of the bone chain
If you don't use it, this isn't the issue you are suffering from
Avatar optimization hmm
🤔
Creates stick but intends for the stick to become 100k polys
well I bought the model it might be the case
does it do anything special?
I dont really see any use for that
By default, the last bone in the chain of dynamic bones doesn't rotate or move at all, only its parent does
End length fixes that
You don't have to worry about that at all if you don't use it or don't know what it is
Bought models.... >~> from where
yuumi directly
well still have to find the cullprit then. I checked that there's no end length used
ooo
@west maple why do you ask?
Im bored so i feel like asking ouo
@surreal topaz I'm trying to reduce the amount of roots now. So I have 2 chest roots that are a child of the chest. So I set the chest as the root and excluded everything else. But now the 2 previous chest roots are counted as well so it gave me +1 overall instead of -1
could I exclude them without the actual children
As using one root bone for multiple bones chains what the curve of the stifness would need to look like for only the chains to move and not the root ?so the top wont balance offset
@sweet mason that depends on the bone amount
The easiest way to get the curve is to set a negative Y force that's very high so the skirt stretches out and drops down completely
Then in play mode, set stiffness to 1, then adjust the stiffness curve until the skirt no longer stretches at all.
Then copy the component, exit play mode, paste component values, and set the force back to 0.
not really working. maybe i dont have enough bone
not helping that they are one bone. I would like to only have rotation not translation
am not going to put rigid body that would be stupid
@sweet mason you need end length
Or end offset
Then stiffness curve will work
With only one bone in the chain, the bone can only ever move and not rotate
We really need unity 2018 so we can use rotation target component, no more rigid bodies
so Im trying to use the material combiner, but it keeps messing up the atlas when I use it. some parts of the model combine fine, but other parts have their atlas screwed up when i hit combine.
and the only time it does work, it creates a miniscule color image
instead of a full sized atlas
I think those buckles may have their face normals facing the wrong direction
its not that. I double checked that and they are fine
its not just the buckles either it's all the clothing items
except the laces, which instead create a tiny image
mind you when I check the folder it asked me to save in, I find nothing in it
drag down the top of the blender screen to see the console ... there might have been some errors that have not been visible
in blender 2.79 it is the top at least
reduce vertex number on the cloth mesh
ty
Why do cloth physics just break bound boxes? The bounding box was fine before adding the cloth component.
Cloth is very buggy. It won't be a problem ingame and in play mode
If you want it to look correct in the editor you can check “update while offscreen” and the bounding box will stay to the correct position. But that has a performance impact.
It is using the model’s bounding box as if it were not skinned
(Usually horizontal face on floor if made in blender)
Probably related to Blender FBX exports being rotated
Cloth >~>
Do cloth even use rig/skinned/weight data?
~>maybe
Yes
Constrained cloth on your arm for sleeves for example
Cloth runs after the bones do their thing, I think
The "max distance" will take into account the position of your arm on a sleeve
idk what settings on my cloth physics so it i won't leave default
why does my cloth physicss have mesh colliders?
i have cloth physics but when i try to upload the model the vrcaht says it has mesh colliders and wont' let me upload
oh
You can't use mesh colliders
Only capsule colliders
Yeah stupid I know
Wish we could use mesh colliders, but basically why is because performance reasons
i didn't add any colliders yet
If they're on the model you can't upload
my model right now has 328 vert count is that fine so far because i am gonna be addiing more
well it's fine with tris it's just with the cloth physics
is it a okay settings for my model?
owo links not allows
These are my settings @random sparrow
You really need to test them depending on the model
when i test them in play mode
Cloth constrains are really important
they go all over the place spazing out
Make sure you set the end of the skirt constraint to around 0.2
Is your skirt colliding with something?
i'd also suggest removing tethers and gravity, then use external y at -2 to -7
and paint verts at 0.09-0.2

Oh I haven't tried just using external force to emulate gravity seems interesting
Tethers I think generally are essential, since they keep the verts from stretching too far
Though would be interested to see how those settings would perform
in my world there's plenty of avatars with cloth
but yeah, most important part is actually painting everything, or else it'll get stuck/spazz /look weird
from my experience i always keep stiffness at 1.0, or else it would do weird stuff like stretching when you're idle and then resetting to original position
I don't get about the dynamic bone transformation even though I have 43 bones in blender and use those bones as for dynamic bones. Need Help
@quiet widget Do you have multiple scripts acting on the same bones?
Can you give me an example?@visual tinsel
Say you have a script acting on your hips, then you have another one (or few) on your hair, the hair bones is counted twice because there's 2 scripts touching the hair bones
I only use root bones to parent each bones that I want to use for dynamic bones
@visual tinsel
soo the hair will take twice of dynamic bones
Could you show screenshots of your setup in Unity?
@safe swift I have the same ears on my model. But I cant get the ears at all close to them movements. I was wondering if you could share the values you have on the ears.
this is going to be “fun” to optimize ( body materials combined: 267 421 tris )
Damn, retopo time
can somebody explain to me why my model dynamic bones are being disabled with the default limiter when it has 6 collision checks and 28 transforms.
does it actually have 6 collision checks and 28 transforms when you check the stats ingame? the unity ones can be pretty bad
28 seems to be the point it actually disables (must be some weird value bug)
same as being able to shoot a gun in some games with 0 bullets left
i have a model with exactly 32 it it works also so
not sure
seems scuff
32 with no collisions btw.
i think the collision value is broke.
@ripe egret do you use end length or end offset by any chance?
yes i do.
The virtual transforms added there count too unfortunately
actually they still are blocked with my offsets removed lol.
@surreal topaz with retopo do you mean decimate or snapping etc
So um
When I imported my model into vrchat, the face is all messed up and the wrist joins too
It isn't as smooth as I'd like
that happen
How fix?
Sadface.jpg
Uh, I don't have one right now.
But imagine this, but with Thanos' chin.
Um. I specifically removed that
As I do with all my models
It looks fine in blender and in unity
Don't know why it looks like loli thanos in vrchat
redrag the fbx in the scene
You mean, the mmd file I downloaded?
Or the fixed blender file.
fixed
It'll just import the same model
I'm not on my computer right now, but I'm looking to fix it
Hmm u forgot I was asking a question @surreal topaz
About the dynamic bones transformation
Alright so the face looks like this in blender and unity:
Cant wait to see loli thanos
You're gonna be fukin terrified
It looks worse under better lighting
Your soul.
Give it...
Looks like something with normals
One of my test models i uploaded wihtout normals because i knew they were broke and she goes completely black in some lighting and then in others or bad lighting is perfect
Normals?
What is a better option to reduce lots of tris decimate modifier (planar) or limited dissolve
need to reduce about 200K of tris
Normals to my knowledge is basically shadows. And To reduce something cats is suposidly good
But i dont know much about blender
guess i have to seperate by parts and start deleting stuff covered by the skin mesh first (> 20 minutes to seperate ~_~’
@clear bison some mmd have a shape key key that have a transparent mesh. It can make issue in vrchat nor set corectly. Idk if it was the problem. Like blush or discuss
if its Xiexe's shader you have to edit the shadow ramp color too so it doesn't go pure black, if i remember correct the default ones are set as black
if you go into an world with ambient shadow as black it will have that effect on the shadows
the default ramps that follow the Xiexe's Shader is black if i remember on the darkest part.
there may be other shaders that follow the same principle, so just be warry about it in the future if you see strange shadows on avatars.
Question: Since one face on a mesh = one polygon, why does VRChat take every quad and turn it into a triangle for an even higher polygon count?
Because the graphics card actually renders in tris. (Technically unity supports having meshes in quads format, and you can unpack extra polygons in geometry shaders, but even then your graphics card will ultimately end up with a list of triangles and draw Each one)
Performance metrics are tricky and some of the expensive stuff is done per vertex rather than per face. Also number of pixels drawn might matter more than number of polygons, overdraw etc. for this reason, having your avatar opaque or at least cutout can help performance compared to transparent.
So ultimately it's just a proxy or approximation for a performance metric. There are actually fundamental upper limits of the number of polygons a given graphics card can draw in the 5.5 milliseconds you are allotted per eye to achieve 90fps VR.
So is there anything VRChat can do to make it render quads instead of tris?
Thank you for answering in depth too
@grim kiln Default ramp for XSToon is a soft gray thing.
there is a few defaults that is attached if i recal
i had problems with that the first time using it
It's better now
So since someone elsewhere has a stick up their ass does anyone here have the time to explain to me how the hell I'm supposed to combine materials and actually get Unity to properly read them and not give me Pink Blob Man?
I just create a new material using the shader I like best and drag it to the bits of my model the corresponding texture is for.
Why the hell did it just completely break when I tried to combine all the materials
I give up, this tool is useless
Dunno, I model my stuff by hand so I can plan out the materials myself. If you know how to bake textures you could just make copies and combine the meshes you want to share a texture, adjust the UV map and do it that way.
It's literally all one piece, like it SHOULD be since that's what they tell you to do when optimizing
I am so done with this that I honestly just want to upload it as is and damn the consequences
Just because it's one piece doesn't mean it's all on one texture. A single mesh can have any number of textures.
Oh, yeah it's got tons of textures
And there's this pin in the main channel for avatar creation that says "hey here's this tool to make atlases for you"
with no instruction on how to use it, troubleshooting, etc
So I really appreciate being told to do something that I can't do using a tool that doesn't work (or at least has no proper instructions written to make it work)
A lot of tools are community created so that's not too surprising. Honestly everything about VRChat lacks good documentation, I've found. You definitely want to have experience with 3D art and the unity pipeline in general when creating stuff
Like, honestly
I'm just going to upload it and not care
Unless someone can explain to me how the hell I'm supposed to combine these things
there are lots of ways honestly
A way that won't make me consider brain surgery with a soup spoon?
Because I've stayed up till almost 5:30 am and I started working on this YESTERDAY
baking textures to a model with UVs is one. You could also, with a little precision tweaking, just lay the textures next to each other in an image editor, then just scale down each UV map and position it in a sort of grid pattern
wouldn't surprise me if that's what the automatic tool is doing really
I used the tool and it gave me this
hah yep
And then I tried putting that on my model in unity and it refuses to actually wrap correctly
define wrap
It seems to have doubled textures which is strange in general
Well uh
Don't wanna discuss where it's from but it has two sets of textures yeah
for the face
I dunno why actually
well, from what I'm looking at, you could probably combine it down into like two or 3 materials if you know how to manually scale and reposition UVs. I'd do one with the face, and all the denim stuff, and another with the purple shirt, hair, and any other non-alpha materials. Then have the stuff that requires alpha on its own material as you're probably gonna need a separate shader for that anyway. You can get rid of doubled up textures too that way.
You could also manually atlas
The fear is the time that will take to not work
Heck, they don't even appear in unity as extra materials
anyone know how to make bones collide with the world trying to get a tail not to clip with floor
Make a huge dynamic bone collider on an object, and put it very far down into the floor.
Then add that to the tail's collider list
It should be so large that it's essentially flat
Oof
I have a particle system that i am putting at the end of one of my hair bones. in unity it looks fine, but for some reason the particle system is getting duplicated in my head in vrchat
how tf does that even happen
This is a very newbie request. May I have someone guide me through discord's screen share on how to add sounds to my gestures. I've watched tutorials on YouTube and followed like every step and after uploading it, there is no sound to my gesture. The items (like VR Headset for example) in my gestures are working perfectly fine. I just can't seem to do it when adding audio. (My audio is in .ogg format). Thank you in advance! 😁
idk for ogg but you only really have to drag the sound to the scene and move it where you want. Put it on the bone you want it to follow or object in the hierarchy . Turn it off and in the gesture turn it on frame 0 and 1. that pretty much it. You can play with the volume and so on .I put mine in general around 0.3 max
Okii I shall try it thanks @sweet mason 😁
X-posting from #avatars-2-general because this is more optimization related. I'm a bit concerned that people no longer put snail markers on avatars because they think that having an always-on trail affects performance. To those who are concerned about performance, there is a fairly simple fix to make sure it takes no resources until you start drawing:
Basically you put the snail pen in a VRCInventorySystem. To avoid wasting emotes, copy the keyframes for enable into hand gesture that writes, and copy the keyframes for disable into the hand gesture that clears it.
that will make it work like before, but it will only start rendering the trail when you activate the hand gesture and it will stop rendering it after you clear the trail
the downside is it adds 2 animators (always disabled, but vrchat still counts those in the stats, so it might bring you to medium if you have two inventory objects
https://github.com/Xiexe/VRCInventorySystem
If this doesn't work for you, I'd like to know why.
I'll give it a go. I'm not so much worried about what VRChat's performance ranking SAYS my avatar is so much as how performant it ACTUALLY is, but from what it sounded like people were saying that it lagged their animations and such which I'd like to avoid if possible. Hence why I was wondering if anyone had found a better way etc.
well it's not entirely wrong actually. if your snail pen is active, it does have certain effects on performance: it does affect the bounding box and it is always rendering a trail extremely far away
the thing I posted allows you to not incur the performance hit unless you are writing something and using your pen (in which case it's worth a minor performance hit because it allows you to communicate)
Cool cool. I will give this a try. Thanks for the tip!
as far as pens go, it's the best solution, IMHO. any pen is going to have the same fundamental issue of bounding box. the only thing you could maybe improve is the bit about always drawing
bounding box is fixed if you put it under game object (I think?) if not then use dual gesture to draw (this 100% fixes bounding box + you dont have annoying trail in mirror when object is not active)
having emote toggle for marker is just annoying imo
What I'm suggesting isn't an emote toggle. It's putting the animator toggles on the draw and erase hand gestures directly
So same performance gain but no need for dual gesture or emote
And none of the desync issues that happen with emotes
@safe swift does this make sense or is there a reason not to do it this way
sry I didn'tread it through, havent slept..
having a dual gesture works well too - doesn't add two animators, and trail is disabled while pen is not active
so in the end is up to person, I guess
Yeah dual is pretty easy to use. I like it too
How would I do it that way?
So dual gesture is easy. Turn off your pen. You have your usual snail pen gestures. Now you take a hand gesture you aren't using for the pen and you toggle the whole pen on in that gesture
make game object and put marker under it, have the object disabled, first gesture enables the game object, 2nd does the regular -10000 to 0
or yeah, marker works too
i think I have it under game object since long time ago and i keep duplicating and replacing mesh filter with others
just ignore me and follow Lyumas advice
im too tired rn
I can understand that. It's after 5am for me because I'm anxious to get this done lol
I don't like putting markers in an inventory due to the desync
Yuumi's method of doing it behind two gestures is preferable to me
@surreal topaz I wasn't suggesting to put it in an emote-based inventory system. rather, doing the inventory enabler in the same hand gesture that does writing. the emote will keep the "enable" animator active as long as you are writing, and so if someone looks at you, it will run that animator.
disable on the clear/erase gesture
Ah, right
That's actually a pretty neat idea.
I might do that instead.
Should be seamless
so what you mean is set it up in the inventory, but have the inventory enable and the draw properties on the same animation?
You set up the inventory but use the animator keyframe properties on your gestures
Rather than emotes
So the draw gesture toggles it on, and the erase toggles it off
yeah but you also have to move the marker to 0,0,0, so you'd combine that with the enable, right?
or rather the emitter
either way I don't seem to be able to get this to work in general :\
You still move the marker to 0,0,0 on your gesture yeah
hmm, now I've got it to write but when I let go it doesn't stop writing, and hitting erase all hides the writing but it reappears when I activate it again
@coarse summit you need to move the marker back to it's original position like -5000 and the inventory item is unchecked so it won't count
so i'm curious as to whether or not there has been discussion about
performance related to the method being utilized to scale down the geometry for the head for first person
i've conducted tests and experienced issues with it with certain sets of geometry more so than others
aka the "culling" being utilized to hide the head from pov
uniform scaling is pretty efficient though. And from there on it's just matrix math being applied to each vertex just like normal skinning
this isn't really a question as to whether or not it's performant
i've conducted tests with it resulting in clear loss
nor does it seem to be a simple scale from what i've witnessed
ideally you would scale to 0 but that breaks stuff. It's a clever way to do it that has wide applicability to all kinds of avatars. It's like 0.001 or 0.0001 scale.
I think it's exact because I wanted to test seeing from my avatar's eyes and I was able to set up cameras at either 1000 or 10000x the distance and they matched up nicely with my eyes
there is other possible solutions i would imagine like simply culling verts instead of collapsing
or resorting to forcing users to make the head itself a separate object to cull for first person fov
i've associated performance loss with it and it varys depending on a factor that i'm unsure of as of this time
might be quantity of verts or something else
the loss of performance is quite minimal under ideal circumstances but other than that it can be fairly noticeable
simple way to test this yourself is to move the verts for the head away from their respective bones
weighting
Zero scale shouldn’t have any more of of a performance hit as seeing the head normally unscaled
i ain't no expert but i've definitely correlated loss with it
nsight might be a little tricky to find the loss it's pretty easily noticeable on GPA
but granted i've also ran tests in VR without anything additional running
while bottlenecking the GPU
the loss isn't very apparent with an ideal or minimal neck&head**
test while looking at someone else wearing the avatar
If you don’t want my suggestions I can’t Help then
test while looking at someone elses wearing the avatar? how does that correlate when the issue is the collapsing of geometry for first person view
Because you will find the same loss when viewing the avatar as so one else is wearing it
Meaning the head scaling is unrelated
It’s just how laggy the avatar normally is
i've moved the verts away from the head bone entirely without any other changes and got major improvements for an avatar that was experiencing this issue
i've also moved the head bone slightly and gotten improvements aswell
due to the origin of collapse changing
You moved verts? Or you moved unity game objects? There is a difference.
verts
Does your shader have an outline set? I wonder if outlines don't like a lot of verts near each other
Nope i tried this with standard and a simple shader
ill probably try more tests to actually conclusively determine what exactly causes performance loss
but currently taking a break
and yeah performance for shaders can vary
your question is better for rigging @heady smelt
the best way to check the performance for the shader is to actually profile it
generally a shader should be fine assuming you aren't using an abundance of materials
Poiyomi did some testing and most lit shaders had similar performance requirements as Standard
Outlines and extra passes or geometry shaders may have some impact
Transparency/alpha blending and fill can affect things, as can possibly Cull Off (disabling backface) for the same reason
So unless the shader is doing complex math it's less about the code and more about how many pixels you draw or overdraw and how you use it than which specific toon shader you pick.
From my understanding, 2 materials: one for base opaque/cutout and one for transparent blushing is very good as far as optimization.
Hey kind of new to the group. Was wondering if anyone knew how or knew where I could find out how to change my AABB in unity so my avatar isn’t all wonky or crashes Unity. Or do I change that in blender? It’s saying it’s to big
@leaden carbon if I had to guess, you have a finger pen (e.g. snail pen) on your avatar. You should set up a gesture to toggle the whole pen (dual gesture) or a gesture based inventory toggle. Scroll up 1-2 days back to see the discussion in this channel about inventory toggles for pens. If not a pen, maybe you can explain what is at 4252 away from your origin
It's probably a shape key that deletes the glasses by putting them 4000 meters below the floor.
The YYB vocaloid models all do that
Snail marker isn't the cause because snail is turned off by default
Bounds size will be visible as "Very Poor" ingame, but not in the SDK
@leaden carbon delete the glasses if you don't use them
Separate into a new mesh and delete, or edit the shape key so the glasses are closer by
you can just set the bounding box manually though couldn't you?
center at 0
extend 1.25 on all 3 axis
should fix that
bounding box are very weird, i still don't really understand how they get calculate ingame
very different from what i set in unity (also other peoples see different numbers from what you see)
It’s the box around my avatar with the white lines when you double click it
How do I fix this? ( i saw the neck, fixed it)
🍿 ↑ also interested in fixing the weight painting on the top/under shoulder...
however i think this is avatars not optimization.
Hey guys
Any idea how to delete the feet mesh
Whenever I try to merge the materials the feet show up out of the boots.
so hide the boots, then go and click on the feet, press tab on the body section and wait for the mesh to come up
Kk
then I think c or v to get this like circle and use scroll wheel to get it bigger and click on the feet
then press x and click the first one (Vertices) and click delete
just do that to the shoes and then merge the shoes to the body
Alright it works! Thanks!
alright good luck with it
Okay so
I found out that her default eyes are wrong and one of the skinned mesh renders have the correct eyes.
How do I set that as the default?
if its a texture you can always re adjust that in unity
Uh
A little help
I accidentally made the main model in animation mode
Deleted the files, but she's still positioned that way
How do I make her stand up straight?
@clear bison see pin in #animation "help I fucked up everything"
Basically you can right click revert to prefab on your bone rotations
Uhh
The images and instructions aren't exactly clear
Revert to prefab?
Like it says to copy the key frames from the file, but where?
I can't exactly select it from the animation folder
wow that really cool
Alt click your armature. Shift click everything blue that is a bone (don't click any other objects you added manually to your avatar armature). In the transform component in the Inspector, right click the word Rotation and select Revert to Prefab @clear bison
Alt click the arrow to expand the armature I mean
Alt just activates an eyeball that doesnt let me touch anything
This is me holding the alt button
Alt click the expand arrow in the Hierarchy panel @clear bison
Oh
Then shift click everything in blue that came with the model except for props
You're just working in the Hierarchy and then Inspector panels not the scene view
Yep right click that and revert to prefab
Can't
You can try gear menu Revert to prefab
May I have some help with my avatar? I would like a call where I share my screen so we can get it down
What step are you having difficulty with specifically ?
It's more like something going wrong when I import my model to Unity
It keeps getting deformed
Ok so use the #avatars-2-general channel if not for optimization
and post screenshots of your issues
Sure thing
So I had a quick question that none of my friends can seem to answer. I am very much within the dynamic bone limits but most people still can't see my dynamic bones, any idea why? I have 29 transforms and 0 collision checks.
Nothing is enabled/disabled that has dynamic bones on it either besides other avatars that are disabled on the hierarchy as well as completely separated from this avatar.
Any advice is appreciated! Thanks!
Do you use end length or end offset anywhere? Those numbers get added to your transform count
Because they actually simulate extra bones at the end
I do use end length, but even in game it shows only 29
If I disable end length it goes down to like 25
Unless I'm mistaken?
the db limiter is not the same computation as avatar stats
29 Transforms that is.
Sorry if I sound kind of stupid, but the build and control panel / the in-game Avatar stats are not the same as the dynamic bone limiter?
If that is the case, then is the best way to check how many Dynamic bone transforms you actually have is to just manually count the number of white dots on your avatar?
If the build control panel and Avatar stats are both incorrect
Add a bone transform per dynamic bone chain that uses it
That's essentialy how you can tell how many transforms you have
Sorry for dragging this on, but I just want to be absolutely clear. So the build control panel doesn't accurately reflect Dynamic bone transforms if you use end length?
Yup I figured it out. With end length it puts me at 33 transforms 😡
But that isn't shown in the build control panel or in-game
Sadly end lengths aren't calculated in the avatar specs menu, even though they're taken into account by the limiter
Yeah, seems like an oversight or bug. Thanks for the suggestions guys! I appreciate it a ton even though it should have been obvious
piyomi is costly for glowing effects right?
is there a less resource intensive shader that can do glow pulse?
@pseudo ridge poiyomi toon is just a toon shader
It can do pulsing or scrolling emission, but it isn't expensive by any means
poiyomi master
hmm avatars i make with scrolling emissions with it are usually very laggy even on my i7-8700 system
anyone got a link to the most recent version of the master shader?
maybe i just have a crusty old version
I don't recommend poiyomi master
Use Poiyomi Toon instead @pseudo ridge
Master is outdated for a reason
Toon still does pulse emission
oooh ok
the interface always seemed more complete on master and I could never find an update
I guess thats why? xD
this is more about dev optimization than actual performance optimization but i wonder
how do you guys organize your unity project files
so far ive been keeping all of my avatars in the same project (and also in the same scene, with all of them disabled)
but i have too many assets so i plan on creating a ne wone soon
since i dont use many of them
and opening it takes a really long time
i have a seperate folder for models/shader/scripts
Just a general question, does Prefabbing do anything for performance in vrchat, example i have an emote that spawns a bunch of swords that all do the same animation, i prefabbed those swords. so would this effect anything?
Also @pure bridge sorry for the bad timing but i too have alot in my project with several diffrent scenes, 20+ avatars each in a disabled state but ive found that its the size of everything in the project that determines how long it takes to load, not the opening scene. so basically delete duplicate assets to cut loading time, which i need to do. (7 duplicate dab animations, just checked) hope this helps
no it doesn't really "do" anything in that regard to my knowledge
but you can optimize it down to one object if you're dealing with a large quantity only issue is making swords vanish and appear one at a time would be something harder to achieve but still possible with scaling bones for each individual sword or group of swords
it was an example i only asked out of curiosity since i haven't tested it through it does seem to effect performance after i tested it some what. probably wont matter much unless in excessive quantities of duplicates. also when it comes to making a single object with multiple instances or using a single object over and over i would do the ladder to save files size and vertices count (personal opinion) especially since prefabbing does combine draw calls for objects (just found that gem)
It's a combination of both project load and scene load, unsure of which has the most impact but i assume it shifts in terms of quantity (alot of assets in project making the scene take longer to load, or alot of prefabs on-scene), a nearly empty scene on a project full of assets will take roughly the same time to load as a project with minimal assets but a truckload of prefabs on scene effectively, that being said, after loading it should run relatively smoothly (got a project with 40+ avatars in scene enabled in which the project is a few gigs in size)
wow got curios of size and im at 9 gbs+ still loading
just my latest project
wow
i need to orginize
If you are in a rush and are only intending on doing minor edits, i'd recommend separate projects, as that will load the fastest, but you will be essentially clogging your system with duplicate assets between each projects, if you got time to spare and take your time editing, and don't mind having unity open to come back to it, a single project works wonders
size is something that should be a consideration along with compression
and it definitely affects loading times and can fill up memory
prefabbing does not combine draw calls to my knowledge
whatever you're utilizing might've had dynamic batching or perhaps however you tested this was incorrect
due to how you conducted it
rip that was something i inferred form the optimization guides for vrchat
Dynamic batching does sound like what you were going for, unsure of the current tris limit for such to actually work though
An oldie https://answers.unity.com/questions/194693/why-does-each-instance-of-my-prefab-increase-drawc.html
thats what i was looking up
these guys seemed to say it did effect it though
so rip
i tried
https://docs.unity3d.com/Manual/DrawCallBatching.html
not entirely sure what the differences are in regards to our current unity version
Prefabs are dynamically batched if the benefit outweights the loss essentially
It works wonders in very low poly situations, but, this is avatars we're talking about
I'll reap benefits where I can get them
anyways there are ways to optimize animations outside of dynamic batching
simply taking a look into how exactly you approach it for example it can be a big difference
in the sense that you can utilize 3d programs or more specialized applications for animations
which can get you more optimized &/or better results
generally the end result will probably require additional features within unity like
the particle system in unity for example
Oh it actually does have specs
Batching dynamic GameObjects has certain overhead per vertex, so batching is applied only to Meshes containing no more than 900 vertex attributes, and no more than 300 vertices.
If your Shader
is using Vertex Position, Normal and single UV, then you can batch up to 300 verts, while if your Shaderis using Vertex Position, Normal, UV0, UV1 and Tangent, then only 180 verts.
Optimaly, one would make everything in a 3d modeling/animating program and have it all import merged together of course
yeah ideally but most either don't make the effort or are unaware
but there's* nothing wrong with making the most out of doing the least when done with understanding of performance
It will unfortunately increase bone count per added mesh, as you'll need bones to animate everything, since it's no longer a Game Object in unity
well you can put it into a morph/blend shape aswell
there's probably other ways aswell but i'm *unaware
Sort of, yeah, but that would be for simple situations, complex routines are straight out haha
very complex interactions yeah i suppose but that *could be intertwined and assembled outside of unity
A simple weapon on hand toggle is shapekey-able, a set of complex motions would require bones to execute, unfortunatelly, but it does outweight the cost in the end
nah that can be baked down to a morph i believe
if not automatically it can be done in a tedious manner
keep in mind shape keys aren't simply on or off
I think unity has a shapekey limit actually, and yeah, you could frame-by-frame it
in what way?
Since transitions are linear in terms of shapekeys, you'd need to frame each port of the movement iirc
Lemme see if i can find something related to it... it's been a long time but i recall missing shapekeys waaay back when
Hmm can't find anything related to such... then again people don't tend to use a ridiculous amount of shapekeys so i didn't think i'd find anything related to a limit, or maybe i had a bug back then, it was back in the day of 5.6.3p1 afterall
dunno either way using bones is probably a better option instead of 100 separate objects
Definitively
i believe some games use specialized formats for such effects/animations* dunno if unity has anything along those lines
I mean, if you were using 100 objects, i'd actually recommend batching over rigging it, it would still batch it all through a single call, and be user-friendly in both terms of animation and performance due to a lack of 100 bones haha
yeah if you can
And it could be disabled/enabled which is a godsend
I guess it depends on the context, too many plausible routes
really technically it is just reducing performance loss by offloading small calculations when possible to the CPU instead
so bones might be better in cpu bottlenecked scenarios but i don't know how much of a loss that would be and it would probably vary
🤷
True, it could be minor or major, tests can be done, but it'll probably vary from system to system and be generaly inconclusive
I did post my thoughts on what i thought was more or less performant in terms of quantity, but those are just my general opinion
"The major points of performance impacts are as follows in terms of quantity, in order (based upon my own thoughts on the matter and what i've seen/heard), IK, Meshes, Materials, Dynamic Bones, Bones, Particles, Polygons
(In the terms of Amount of X = Y Lag, i.e 400 Dynamic Bones will lag less than 400 Meshes)"```
i just want people to actually atlas and get the IK pushed to p2p or w/e
The upload button is not working. I have the ability to upload custom content and such, so what could make it not work?
The button is pressable, too
Is this optimization?
How 
That's a hide avatar from me
People seem to have this mistaken belief that polygons don't matter
1⃣ 🇫 🇵 🇸
53 meshes - instant hide or block
Yep
53 meshes isn’t that bad considering I have a Rolex in unity with about 400 meshes
ITs super simple to make that many meshes into 1 though
Can we ask questions about model ideas here
Those are meshes, not skinned meshes, so i assume they were animated objects?