Developer Update - 15 December 2022

Based on the way they wrote it, it seems more like it’s showing off AVPro Movie Capture than anything else. But also that since they mentioned consent, I would imagine they have other moral/technical considerations for allowing recording of users in any world. It probably was way harder for them to implement a decent system that can be used in any world from a user perspective, than to make one from the world perspective.

But either way, I agree. We already can record our screens and do streamer mode. I don’t see the complications with just adding AVPro capture to the camera output other than a moral/security one.

This all look fantastic and I look forward to seeing the New years world.
I wish everyone a happy holidays and happy new year. Please be kind to your self and each other. Lets let 2023 be the year of new beginnings and a fresh start.

I have met so many amazing people from 2017 to now and I look forward to meeting so many more in this coming year. I have not always seen eye to eye with VRC Staff but this year I turn a new leaf and want to say, Im sorry and I love you.

I wish Ron and Tupper and the rest of the staff a fantastic year and I look forward to what all you guys make in the future. Please be proud of your accomplishment and know you are loved and never alone. Keep being amazing and hold your heads high. This goes for everyone in VRC, You are all beautiful and make VRC what it is today.

Stay Awesome and I love you :heart: :confetti_ball: :tada: :christmas_tree: :snowman_with_snow:

1 Like

Yes, we’re working on the feature for camera integration, too. It’s being previewed in a world first because we can work around some of the existing limitations as we test the feature and get feedback.

The complications include: UI changes, codec / resolution / frame-rate options, privacy considerations, disk space considerations, figuring out how to include the mic audio which is not in the local audio mix, and more. If it were as easy as dropping in a plugin, we would just do that and release it, but there’s always more involved than that.

VRChat desperately needs a proper full scene runtime debugging tool akin to UnityExplorer. It’s extremely difficult and time consuming to debug minor issues and performance overheads without the correct tools. EAC prevents their use.

This is especially the case because there are a number of things that vrchat does at runtime which are not present in the editor. For small example: avatars have “Update When Offscreen” enabled on load, which resets custom bounding boxes to fix lighting and culling issues. It took me a long time to figure out this particular issue. . . My shader being vertex-lit only, this issue is extremely and immediately apparent, but it also applies to other shaders’ fallback lighting.
https://feedback.vrchat.com/bug-reports/p/update-when-offscreen-is-overridden-ingame-and-resets-avatar-bounds

additional

This also results in the necessity to use animations to override this and manually restore bounds to preferable settings (that is all skinned meshes should have identical bounds to avoid vertex lighting issues)

It’s even more of a pain to debug worlds than avatars. I find myself constantly wishing i were able to easily test and toggle everything and adjust values with a tool to isolate problems.
https://feedback.vrchat.com/feature-requests/p/runtime-debugger-utility
edit: My suggestion would be maybe make this for when world client permissions are implemented, so you can have a world creator override for enabling debugging.

3 Likes

I read the description of this on Unity, am I correct in thinking that if the bounds were left alone in avatars with sensible bounds, this would not be a problem for you? Seems like a tweak made for avatar that has a roller coaster that they can walk away from, or an entire dance floor…

No it applies to small avatars and every skinned mesh. Walk around point lights with your personal mirror on, or use a vertex-only shader. You will see that the bounds are indeed automatically set to a minimum size, which differs from whatever you have set them to.

Vertex lighting functions in a way that the light table of 4 lights is adjusted the moment the radius of a light source touches the edge of a bounding box, which can cause pop-ins (depending on the shader’s coding, but it’s unavoidable if there are more than 4 lights in range of your bounding box). If you want all of your avatar to pop-in the light at the same time and not have your head light up and your body dark and your clothes somewhere else, you have to make all the bounding boxes completely identical.

According to unity this is also very malperformant.
Unity_-Manual_Skinned_Mesh_Renderer_component-_G (2022-12-25_16-35-01)
I cannot edit the bounding boxes to desired values (for me usually somewhere between 0.7 and 1.0 cubed) at all until i force this disabled with an animation, but the animation comes after it’s already been recalculated, so i have to animate the bounds back as well.

2 Likes

UI changes:
Assuming the UI was created as a modular system (which I believe it is) I think it should be trivial to include some basic functionality. The UI does not need to be polished, especially if it is a beta/alpha feature that is opt-in.

Codec/Frame-Rate/Resolution options:
I would imagine this is trivial? I mean, based on my experience with ffmpeg, you just need to write a layer to call commands or use an existing API. I would hope that you simply include all the available codecs from AVPro and not restrict what we would use. For example, I can see recording to 422 or 4444 ProRes very useful, and even possibly writing directly to PNG or raw RGB frames (to pipe into other programs).

Privacy Considerations:
Fair… though also, we already have users that can record their desktop with a variety of methods. I leave shadowplay running all the time as well.

At the very least, would it not be possible to have a blocking system similar to how current blocks happen, except it only triggers when this feature is being utilized by someone? It can be opt-in, where someone needs to enable the feature to be included in recordings, and they can whitelist/blacklist users that they allow to record (default whitelist of course).

Obviously I don’t know your systems, but I would hope that you created your game with modularity in mind, where you can easily swap in and out pieces of it as layers. I.E: Independent systems that are not intertwined with others.

Also, wouldn’t privacy concerns already need to be a thing for AVPro’s usage in worlds? What if someone creates a world and invites people to it, but has systems in place that only they can access and they are able to record users without them knowing? Granted, it seems that was already considered for worlds, but why not develop the privacy feature to work for both users and worlds out of the gate, rather than trying to add it on later?

Disk Space Considerations:
This should not be a concern. The user knows how much space they have on their system. It should not be on VRChat’s plate to manage the disk space for the user. Sure, if you want to have warnings or something, but this should not be a complicated part of the feature, if even included. This is a professional tool after all, at least in my eyes.

Mic Audio:
Sure, but I don’t see that as necessary. People that are recording in-game footage are probably less worried about capturing audio that then are getting smooth recordings with little overhead directly from the game. People can record audio separately.


My point with all this: I am not saying the feature is trivial. What I am saying: Making a barebones, alpha, opt-in feature that just at least allows people to use a useful tool is way less work than trying to make it production ready out the gate. I would use this feature, as would many others, especially if it is accompanied with other tools like Cinemachine, enabling users to have higher frame rates and better control while using VRChat on desktop for recording.

I understand project management and scope creep. I am also not saying this needs to be done asap. I just wish that VRChat would lean into its community more and release beta/alpha features that are not polished (even if they exist in that alpha/beta state for a while), rather than trying to guess at a perfect solution and hold of on any possibility of anyone using that feature.

People already had mods for many of the things VRChat lacked. I am glad VRChat has stepped up and implemented many of them, but there are still many features missing, and many other features that would be useful. Most people are okay with janky features, as long as they are presented as janky and not final. They would rather have these half working features than to not have them at all and be disallowed from using a mod to solve their need.


Edit: I added a canny post asking for the feature to exist with users as well.

1 Like

This topic was automatically closed after 14 days. New replies are no longer allowed.

The next Dev Update will be posted on Thursday, January 19th.

The first few weeks of the year consist of an internal “Jam” week to start, then a week of planning for the year.

We’ll get back to you next week!

4 Likes