From df6508d48a78e384abfd64d3653dbbc36b4c2981 Mon Sep 17 00:00:00 2001 From: Christine Dodrill Date: Wed, 24 Feb 2021 20:54:44 -0500 Subject: [PATCH] polishing touches Signed-off-by: Christine Dodrill --- ...ted-vrchat-gchat-setup-2021-02-24.markdown | 41 ++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/blog/convoluted-vrchat-gchat-setup-2021-02-24.markdown b/blog/convoluted-vrchat-gchat-setup-2021-02-24.markdown index 25e1c41..d813455 100644 --- a/blog/convoluted-vrchat-gchat-setup-2021-02-24.markdown +++ b/blog/convoluted-vrchat-gchat-setup-2021-02-24.markdown @@ -20,8 +20,12 @@ need to use a browser with SVG support in order to get the best experience with this article. All the diagrams will be explained after the fact so that people using screen readers are not left out.](conversation://Mara/hacker) +
+ +
+ So, let's cover the basics from a high level. At a high level a webcam is just a video source that may or may not have a microphone attached to it. So in order to get my avatar to show up in a video call, I need some way to make some @@ -29,8 +33,12 @@ window on my computer act as a webcam. This will make the overall dependency list look like this (for those of you using screen readers I will describe this diagram below): +
+ ![](/static/blog/vrchat/simple_graph.svg) +
+ VRChat renders to the Desktop which is picked up by OBS which has the ability to pretend to be a webcam, which is finally picked up by Google Meet. @@ -62,8 +70,12 @@ I did some digging and found a bit of software called from my computer wirelessly. So I set it up on the Quest and on my tower, which brought up the dependency graph to this: +
+ ![](/static/blog/vrchat/alvr_graph.svg) +
+ ALVR talks with its counterpart on the Quest. This allows you to stream the VR video and audio bidirectionally. You also need to bring Virtual Audio Cable into the setup so that you can hear stuff in the game and so that other people @@ -102,14 +114,22 @@ I've ever used. This brings the dependency graph up to this: +
+ ![](/static/blog/vrchat/total_graph.svg) +
+ Now all that was left was to make the camera view look somewhat like it does when I'm using my work laptop's webcam to make video calls. I started out by taking a picture of my office from about the angle that my laptop sits at. I ended up with this image: +
+ ![](https://cdn.christine.website/file/christine-static/blog/2021-02-24-20-20-58.jpg) +
+ Then with some clever use of the [Chroma key filter in VRChat](https://docs.vrchat.com/docs/vrchat-201812) I was able to get some basic compositing of my avatar onto the picture. I @@ -171,5 +191,24 @@ actually watch the meeting and be able to see screen sharing. They can hear me because Virtual Desktop pipes the headset microphone audio back to my tower, and the meeting audio comes over my headphones. +Also at some point I needed to bring AutoHotKey into the mix, so I borrowed +this AutoHotKey script from [SuperUser](https://superuser.com/a/429845) to +resize the VRChat window so that it would fit perfectly into the OBS view: + +```ahk +#=:: ; [Win]+[=] + WinGet, window, ID, A + InputBox, width, Resize, Width:, , 140, 130 + InputBox, height, Resize, Height:, , 140, 130 + WinMove, ahk_id %window%, , , , width, height + return +``` + +Making the VRChat window smaller also helped with the frame times, because it +needed to render less detail per frame. This helped push the framerate +comfortably above 72 FPS in my VR view. + That is how I get a 3d avatar to show up instead of pictures of the meat golem -I am cursed inside for work meetings. \ No newline at end of file +I am cursed inside of for work meetings. I will also use this for streaming +coding in the future, so you can all witness the power of a VTube coding stream +where I write Rust or something. \ No newline at end of file