there’s also cases of people having a problem caused by someone else who was using a mod but the person doing the bug report was not using a mod so they had no clue a mod was involved in the problem
If the avatar is only available through a world I publish, I get a rough idea of its popularity through the world statistics. The thing that annoys me about the avatar search worlds is that I lose out on that information.
This could be solved with some kind of avatar statistics.
As for avatar search world bandwidth usage, the only time people are using bandwidth is when trying on different avatars, which is just… playing the game as intended. I don’t think VRC are sweating too hard over the bandwidth coming from those worlds.
The one thing I do miss from mods is having a QR Code reader built into the camera. It felt a bit silly that something that would probably be relatively pain-free to implement was not included in the round of updates after the EAC debacle.
Maybe the summer jam projects will have it, but I won’t hold my breath. Also don’t think it’s worth putting it on Canny because how do you even get traction on Canny? If you have no platform, it’s pointless trying to speak up. That’s my current issue with the feedback system, is if you don’t have followers or anything, you can’t really like, get anyone to do anything.
I also think canny posts need to be more aggressively merged. Having a lot of relatively highly upvoted issues means your suggestion might actually have some of the top traction, but since its split across so many posts it doesn’t look like much.
No, you aren’t getting it. VRChat desperately needs more casual-friendly non-tech-savvy means of putting custom avatars (and worlds) into the platform. SDK2 was extremely easy, still a few steps and requiring using unity software, but it was very easy comparatively to the current high barrier of entry for mecanim and udon. Tupper (and others) have brought up the need and potential for developing a more accessible pipeline for getting content into vrchat.
My response to this was: the work is already half done, don’t start a new thing when a perfectly viable solution is already largely built from years prior, just ham-fist it to work under the modern animator logic and keep the override controller approach or whip up a custom inspector panel. It just needs a fresh coat of paint.
SDK2 worlds you could just emulate the networking aspects through udon (to keep it up to date) and run the rest as-is. VRChat calling upon native unity functions isn’t going to break any time soon.
How does this Avatar Search world a Fair Game competitiveness towards other Avatar Worlds by Obtaining Avatars without the Content Maker’s Consent? Like Every Avatar Maker ( Even the Dead ) would have to go to that world and request to be blacklisted off their Search Results…
Avatar Search worlds don’t bring Communities together, Its by finding the people you hang out with does and by sending you to those Worlds for the Avis or Friends making for them…
To the contrary, having an avatar you like or suits you or is entertaining to you and others helps bring communities together. Avatars are one of the most common topics of conversation. Avatar searching does indeed benefit people, it actually benefits mostly everyone, the only person that may in some rare cases have issue with it, is the one that uploaded it in the first place. Avatar searching also helps sniff out malicious uploaders too.
Putting together and uploading avatars is harder than it’s ever been, and finding them has always been a challenge - especially when a lot of the most appealing/interesting avatars are not uploaded to worlds at all, so the only way to find them is via sharing or avatar search tools.
This is like banning soda because it kills people, when in reality the number of people it kills is low and it’s more about self-control. If anything, having an avatar search would allow people to be more aware of ripped versions of their avatars and send a DMCA to VRChat to have it removed.
I will say this again: It has significantly more benefits than it does downsides. The vast majority of the reasons against an avatar search are really non-issues, or are tangential issues that can be solved easily. It’s hard to cut on both sides of a sword whose non-sharp side can barely cut a rotten tomato.
Avatar statistics, and probably an official avatar search system. Who knows, VRChat already said they are/want to work on some sort of creator market. Maybe they are working on avatar search as part of a much better and greater content/market system that will have all these stats, and just like Avatar Scaling, will release it as a surprise.
It would be probably even better to just have clickable button links, which kind of was a feature in some worlds like Wavelength for their google doc. This way they don’t have to waste tons of texture memory on QR codes.
All I can say: I would much rather them continue refining SDK3 under the hood, and then they can create systems and tools on top of SDK3 that just simplify the process, exactly like people already do.
Also, here are tools and guides that people can use, some of which Tupper has even called out, especially in his Avatar Performance talk at Furality:
Udon Graph (very easy to use and plenty of online guides)
I will admit that creating avatars is not easy. But at the same time, that’s why there are people like me that exist to help people learn or do it for them.
VRChat can certainly streamline the process a bit, but probably for a while, it will be significantly easier to just have users publish avatars through Unity than to create an entire system/toolset to simplify the process. They already have made it a lot easier to get started with the VCC.
So… you’re upset that Avatar Search is making it easier for people to find avatars, and you’re upset that it’s reducing the ability for avatar worlds to do what the Groups feature already has been implemented to do?
I’ve seen mention before that they’re working on new ways to provide avatar creators the tools to share avatars and avatar accessories as part of their Creator Economy initiative.
It may be presumptuous of me, but I could easily see them providing a way of sharing a packaged avatar to be uploaded without Unity. They’re already adding the ability to upload avatars without entering Play Mode, which would be a step in such a direction.
In the meantime, officially you’re supposed to package and export the avatar files for your friends to upload.
It’s… not ideal, and it is frustrating that there’s no concept of “shared” avatars to sit between public & private. But it’s how the current system works.
Also, some of those avatar search worlds have instructions on how to prevent avatars from showing in results by adding special text in the description. I don’t believe they’re accessing the API directly to search for avatars, as I’ve noticed my public ones don’t show up! Rather, they’re cataloging the IDs of public avatars they’ve encountered.
In all though, I’m of the opinion that the current avatar system as a whole makes no sense. — If an avatar is public, cloning shouldn’t be an issue, and it makes no sense to allow restriction of such. It’s a bandaid solution to the problem of them not having that “middle tier” aforementioned that would allow an avatar to remain private, but shareable amongst friends (more or less an “unlisted” avatar that could be optionally cloneable and incompatible with pedestals, whereas public cloning would be enforced.)
I understand that it’s frustrating for us creators, but I believe the reason it hasn’t been implemented right away is due to the planned upcoming Creator Economy and the potential introduction of weaknesses in the code that could be exploited by avatar rippers. This feature is likely at the top of VRChat Devs’ agenda as it is best suited for the Creator Economy release. I say let them cook and hopefully, they will get it right and make the lives of avatar rippers so much harder Personally, I hope for better encryption of avatar files stored locally on PCs so that rippers can’t simply copy-paste stuff from cookies, etc. Additionally, I hope the avatar purchase process will require account authentication prompts from buyers every single time. As annoying as it may seem, I believe it will effectively prevent rippers from backdooring the avatar purchasing/exchanging process in the future.
Tools like these create cursed disgustingly unoptimized rats nests for animators and are bad (and for worlds, fisting together lots of crudely engineered prefabs causes udon overhead to skyrocket). The only way to have easy optimized animator is to have a pre-built one that you don’t change, and just use an override controller to replace the slots. This is exactly how SDK2 avatars worked, the animator graph was just made for you.
Nuanced Responses
Dangerous, can break stuff and be extremely difficult to fix. I have been recommending against using it for years.
Just as much confusion and learning curve as just doing it properly from the start.
Makes things less tedious by doin repetitious actions for avatar duplication etc go faster, it doesn’t make it any simpler.
Most non-dedicated world creators don’t know how to bake light and never do. Again i do worldhopping with a group almost every day to see what is new. More worlds don’t have baked light than do. Money is also a barrier of entry, we call that paywall.
No it’s not. You require a lot of technical jargon to understand what any of the nodes even do or are for. And the inclination to not be intimidated by it to begin with, and be willing to go that far into doing anything.
These are what you call Band-Aid solutions for a crudely poorly designed workflow. They do not fix the problem, they just attempt to make it less bad.
Oh yeah, i didn’t mention before, but this wording comes off missleading. I sincerely down actually writing a system that scales avatars and even snaps to eye height is hard at all. What’s hard is obsessing about making sure there are zero edge cases where the implementation will be imperfect or upset someone.
As i’ve already said, they’d have to rework a lot of their networking to add another pipeline like that to the API, which is already something they’ve spent a exorbitant amount of time trying to stabilize, optimize, and secure. Adding this is a huge task - unlike something like avatar scaling which is mostly an isolated script system that can be shoehorned into the client with some considerations and restrictions put into global variables.
The issue is that they’re extremely picky about bells and whistles, and understandably want to avoid having to rewrite whole features in the future, BUT, some things like this have transformative impact/benefit to the community and should be dealt with more promptly.
I do agree with you here though, it’s probably one of the bigger things the platform needs, and they are not giving it the priority it deserves.
Development progress and priority non-transparency is why i, and many many others, especially people who are already developers, constantly say that vrchat should have a public development progress portal, like a Trello, i bet you even a volunteer would be willing to manage something like that for free.
Speaking of which @tupper ,the modding community should have been an indicator, but you guys need to understand how many people are sitting around ready to throw themselves at you and would do work for free. You guys really could benefit massively by having a volunteer work avenue. Plus volunteer work can look good on the resume.
In this case, it’s something that they should be dedicating the efforts into regardless. That’s the point here.
As i’ve been saying incessantly. SDK2 just had pre-made animators. It was stupid easy. What i usually hear is excuses like “most people don’t even want to have to go through the step of installing unity, so it being way more complicated is fine.” No, no it’s not. Because most people wouldn’t go through the process of deciding to create their own avatar in the first place, most people will want to just find one that suits them or pay someone to do it, which makes the barrier as even starting, not at installing unity and working with animators. The people affected the most are the people actually making these avatars in the first place, and if they are unoptimized disasters because there creators either don’t know what they’re doing, or it’s too difficult/tedious to do properly/cleanly, then everyone suffers because our frames are bad.
And anyone who knows any statistics: the worse the frames (especially in VR) the higher the drop rate of the game altogether. People just stop getting on VRChat because the framerates are nauseating for people, headache inducing, or at the very least, exhausting.
I’ll focus my arguments on the factors that I might actually be able to influence.
However, I do have to comment;
If their dev team is so mismanaged that their game has been released in Early Access for 6+ years with no end in sight and still complaining about allocation of resources being insufficient, I have… concerns… especially since VRChat doesn’t actually produce any content of their own, it’s all supplied, for free by the community.
There is no feature too large that shouldn’t be able to be broken down into smaller tasks and have those chipped away at.
You may have missed the part where I directly asked if this was the case and Tupper replied
As much as I’d like to remain optimistic, after five years my patience has run out.
There are a lot of nuances and crossover with a feature like this. But the basics of it are that private avatars are already protected against being used by these avatar search worlds.
A lot of people uploaded public avatars and haven’t put them on pedestal, just for friends to clone. Those have then found the way into the community as people have been able to use them without cloning which is kinda a huge security hole that needs to be plugged. Something solved by the proposed whitelisting system.
Like I said, software engineering is much more complicated than that. There may be various forms of technical debt depending on the perspective and approach of the feature they want to implement. It is not just as simple as “just have someone break it down”. The feature/epic is still large in sum.
You’re still spending development resources on it, and chipping away at it slowly over time may not work if so many other aspects of your software are changing daily. There is no value in changing the architecture of your software just for one or two relatively smaller features when it works fine as-is. If software did not have limitations of time and technical debt which ultimately influence decisions and value, we would have flying cars and have solved most of the worlds problems by now.
It’s literally just a factor of time, even if parallelized. Time costs money, and there needs to be some ROI or value for a feature to exist.
I’m just gonna hit you with: “If it’s so easy, just make your own social VR platform.”
I agree, which is why I actually don’t use most of them, but also provided things like hfcRed’s guide on BlendTrees for at least toggles (which I use on all my avatars, often improving animator performance by 50-90%, which scales linearly if all avatars did it).
Over a year ago, I was SO PISSED OFF with how hard it was to take an existing avatar base and get it to do what I wanted to do. It caused me to literally finally learn Blender after putting it off for a decade, and allowed me to learn Unity from scratch too.
The result of which is that I have a much deeper understanding of how Blender and Unity work, and how to bend things like textures, materials, animators, etc. to my will and make them somewhat optimized. But it took my over a year to get to that point and I am certainly no where near as skilled as many name-brand avatar creators nor the VRChat developers.
The point is that there are already tools that can help. If VRChat were to actually solve performance issues with a simplified avatar creation system, it would mean they need to impose even stricter restrictions on what avatars can or can’t have. I much prefer the approach they are taking, which is optimized impostors that you can automatically generate as a fallback and quest avatar.
I never used SDK2 so I have no idea how these worked, but you can’t have “premade” and “custom” in the same sentence. The animator needs to be adjusted in some way to add toggles and other functionality.
Yes, most people do not care. That’s why they pay other people to do it. The only group of people you’d be satisfying are those with neither the time, skill, or money to make their own avatar, whom of which should just be searching for avatars they can use.
Again, it would be great if VRChat streamlined the process, and they already have with some recent updates to the SDK! But it makes zero sense to spend development time for them to effectively make Meta’s avatar creator.
I learned how to do most of what i can do now in a couple months, and just been polishing and improving specific skills, mostly in shader developing, since. But i was already technically inclined and unity was very accessible, and SDK2 was extremely easy. SDK2 worlds i learned in a literal afternoon; very easy to understand, very simple, extreeeeemely optimized (you’d have a very difficult time impacting performance in any measurable way with triggers and stuff alone (not abusing prop spawns or w/e).
That explains a lot frankly. SDK2 avatars was literally just fill in the blanks for movement directions and gestures, and aside from lacking of toggles and separated per-hand gesture animations, it did everything 99% of users needed. You never touched animation graphing at all, as the graph was made for you and you did not have access to it.
Back then most people made their own avatars because the guide for MMD → VRChat was a process you could learn and do in a single evening. You should try to find some of the old tutorials from 2018 to see what i mean.
I can see this being useful for basic avatars, but even then, the UX of having custom expressions is much better. Not to mention, with SDK 2, fancy animations being triggered on gestures means they can constantly be accidentally triggered unless someone has their gesture lock bound.
The issue of performance with the animator is due to people not understanding how blend trees work. In reality, they are pretty much what you’re showing here. They’re very easy to do and arguably easier to understand than individual layers, with the benefit of adding logic to them.
You have your top layer blend tree, which is like your list there, which each goes to a sub-tree which is just a toggle (similar to an Animator layer). Then you just configure animations or further sub-trees on each tree.
^ This blend tree animator in particular brought the original total animator render time from about 0.8 ms down to about 0.3 ms. If you were to scale that to 40 avatars, you’re saving about 20 ms of calculations by swapping to a blend tree (and the original avatar even only had about 30 layers). That’s relatively equivalent to going from 30 to 70 FPS. Obviously it doesn’t work that way, but the total overhead is reduced by that much still and the effective frame-to-screen latency is technically reduced still.
Not to mention, you can still take advantage of basic logic gates and Integers/Floats for your animator, rather than what I presume would be static animations for SDK2.
That’s why i said make a better base animator for it that doesn’t have those issues, and has a bunch of slots for toggles, like a single submenu folder, or maybe a couple alternatives, like presets: here’s the “balanced general use” animator, here’s the “lots of dances” animator with more armature animation slots, here’s the “bunch of clothes/props” animator with more toggles, etc. Override Controllers simplify customization drastically, and make it accessible for the layperson.
Yes and no, there’s a lot more to it than that, and a lot more you can get away with. For example, Anystate doesn’t cost really any more than any other single state, and doesn’t compare to how much a layer costs. Anystate is only awful if you are calling it every frame on a self-loopback interrupt.
Maybe, but it’s also a yucky way of doing it and inflexible anyway; may as well just have reworked SDK2 avatar limitations at that point. There’s heaps of tricks that can be done, such as having a control layer and animating layer weights to 0 for layers that aren’t actively being updated (example: activate toggle > layer weight 1 > update toggle parameter > layer weight 0).
. . . The key issue here is that nobody does stuff like that, and no amount of encouraging or recommendation or tools is going to change that across the board. You’d need a separate streamlined workflow that makes screwing up animator stuff impossible due to not being able to change it at all. People will learn to work within the bounds of their prescribed system if they are not inclined to learn how to do it manually.
SDK2 is literally the same thing. VRChat didn’t invent any of this, it’s just unity Mecanim. SDK2 had an animator graph that vaguely resembles the animator example that they give for SDK3, but they just used an override controller to replace animation clips in the graph and didn’t even give you access to the graph at all.
You’ve essentially devolved into a straw man argument at this point…
…and there comes the Slippery Slope fallacy…
…and now devolved even further into ad hominem fallacy.
Wow! 3 logical fallacies in a row! Way to attack the person and not the argument.
Maybe I can break this down into simple steps.
Tupper notes that
I agree that there’s absolutely a use case for something more restrictive than public but less restrictive than private.
I say there’s popular precedent for that and link with evidence.
Tupper replies that they’re aware but it’s not important enough to them to develop. Specifically, no scope of work exists for this issue.
I reply with documented evidence from their own feedback tools that this is a long standing and extremely popular feature request that should be bumped up in priority. I argue that the popularity and time affords it the courtesy of scoping out the issue to see just how much work is required. Is it actually a few simple tweaks, or is there more under the surface that’s actually involved.
That’s it.
The difficultly of software development complexies hasn’t and shouldn’t come into play until the issue has been properly researched by VRChat themselves.
I’d even go so far as to argue that it’s a silly straw man argument that distracts from the real issue at hand, VRChat ignoring their own feedback platform and by extension, their community.
Lastly @dark, you can stop trying to mansplain software development to me. I am a successful lead developer in my own right. As much as I’d love to stoop to your level and boast about my superior knowledge and experience, not only does it have no bearing on whether this feature should get developed or not, this isn’t really the appropriate place for that kind of discussion.
At the end of the day, I just wanna make and share avatars for and with my friends and not have them used or stolen by people not intended, such as those using avatar search worlds.
I don’t want to have to instruct them through installing and using Unity, VRChat SDKs, Shaders, Animators, Plugins, Installing avatar files/projects and so on. I also don’t want to deal with the complex fallout among multiple people everytime a Unity update, VRChat update, VRChat SDK update, shader update or plugin update breaks a project or changes a workflow.
To put it as simply as I can, VRChat asks for free content from it’s users. I don’t think it is at all unreasonable or unfair for us creators to push back and say ok, give us some protections. I think it’s a real slap in the face to be told that sorry, your needs are just not important enough.
@tupper you interestingly seemed to ignore the last part of my original post:
If indeed this whitelisting feature or one like it is not on your development radar, are you at least amenable to opening a dialog with a developer who can build a third-party app/website like Tafi/ReadyPlayerMe that has the ability to securely upload avatars to users accounts? (preferably using oAuth or similar authentication and not with user credentials).
To anyone reading this and who agrees that this feature is important, please make sure to visit the VRChat feedback website, log in and upvote this 5+ year old feature request. Quite a few people already have since it was first brought to attention in my earlier post. Even better if you can share it with your friends and ask them too.
How is it yucky and “inflexible”? Sure, you can’t do state machines for complex logic, but 80+% of functions on avatars are just a basic logic gate or toggle animation.
So… how would we encourage people to do the same thing for SDK2, if it were to stay?
I hope I am clear that I do think it would be beneficial if VRChat did what you suggested, where they have default combinations or a tool to easily make toggles with blendtrees… except we already have that with VRCFury and other tools (easy toggle creation with blend trees so its performant, or at least converting layers to blend trees).
Tupper even said that the third party tools are always going to be more up-to-date and more feature-rich than anything VRChat can actually do.
The tools that people have to make avatars are really, really good these days. If someone is a) not going to learn how to optimize, vrchat would need to impose restrictions that harms everyone, and b) not going to learn how to make it, VRChat shouldn’t make it easier than it already is, besides offering avatars for free that people can use.
You’re trying to justify a gap for those that are unskilled, unwilling, too busy, or have no money, when really that gap is already solved by avatar worlds/avatar search for free avatars.