Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Kazy
Oct 23, 2006

0x38: FLOPPY_INTERNAL_ERROR

https://twitter.com/MochieShaders/status/1526709064310194176

Decided it might be time for a dedicated VRChat thread! Use this to recommend or find new worlds, set up hangouts, show the progress on stuff you're making, and what not!


curse you tcl for sitting and making the negative space awkward

Store Pages:
Steam
Oculus (Desktop)
Oculus Quest
...Viveport..?? (Who uses Viveport?!)

...and Android! (VRChat Plus only for now)
https://www.youtube.com/watch?v=YpyMVAcllYs

What is VRChat?
More or less, what it says on the tin. VRChat is a virtual reality social game, that consists of worlds and avatars that are primarily user generated. It is available for SteamVR, Oculus PC, and Oculus Quest. Despite the name, you do not need a VR headset to play!



FAQ
Isn't this full of kids?
I mean... sometimes? but if you stay out of Quest-compatible Public worlds you're able to avoid a lot of them.

So... what do you do?
All sorts of crazy crap! Socialize, play games, explore strange new worlds and strange people! I tend to spend my time socializing, but there are a few games I like to play (which are linked below)

I found a bug/have a feature request!
Post it on VRChat's official feedback page!

(You can find VRChat's own Community FAQ here)

What are some cool worlds?
Glad you asked because the next section is...



Recommended Worlds
There are an absolutely enormous amount of worlds, so this isn't even a comprehensive list of my recommendations for a first day in VRChat. Mainly just giving a few examples here and having part of this thread for posting new worlds people have found(or created!)


Experiences

Treehouse in the Shade by 1001.

The quintessential VRChat experience. A treehouse with a bunch of pretty skybox options.

ORGANISM by DrMorro

Winner of the 2022 Raindance Immersive World Award. According to the author there is "no backstory, no puzzles, and no definitive answers." It's deep, complex, and absolutely stunning. You could spend hours here and not see everything.

AudioOrbs by Kilerbomb.

A wonderful music visualizer world with a bunch of different settings that really shows off the power of AudioLink.

ElevatorVR by MehStrongBadMeh

Inspired by Elevator: Source. There are many floors. Each one more random than the last.

Test Pilots by Sacchan

Fly planes! Go pew pew! I feel like Tupper would be miffed if I did not include a flight world


Games

Super VR Ball by Faxmashine.
https://www.youtube.com/watch?v=r07Zx9l-SGM
Super Monkey Ball inspired game, where you roll around on top of a ball and collect watermelons.

Quick, Draw! by Maki Maki

Pictionary, pretty much. Fun bit where it enforces mute on the current drawer!

Avi Wars by xCirrex
https://www.youtube.com/watch?v=tzRJmfs4QKE
Worms-like game, works surprisingly well in VR!

Prison Escape! by Ostinyo

Prisoners vs Guards. if you're a Prisoner, you try to escape, and the Guards try to stop them!


Social Hangouts

https://www.youtube.com/watch?v=YeoXAGPujR8
The Great Pug
One of the classics, this world is PC-Only and tends to be more chill than somewhere like the Black Cat.


I'd have a section for Avatar worlds but I've had a custom avatar my entire time on VRChat so I honestly have no idea. Post your faves! :v:


What's this I hear about user-generated content?
VRChat offers an extensive custom content system, for both Avatars and Worlds. You use the Unity game engine to develop both Worlds and Avatars with the VRChat SDK! Right now it's using Unity 2019, but 2022 is right around the corner! Step one is downloading the Creator Companion, which helps you set up the current Unity version, and manages the SDK for you and keeps it up to date!



Resources
First of all, check out The Docs™! They're constantly updated and a great resource on getting started developing content for VRChat.

First of all, VRCPrefabs is a must-bookmark, has a ton of free prefab systems for your world and avatar.


Avatars

https://creators.vrchat.com/avatars/creating-your-first-avatar/VRChat's guide to creating your first avatar![/url]

There is also our own Neddy Seagoon's wonderful "How to make a VRChat Avatar" tutorial

VRCFury, a must-have multipurpose non-destructive tool for avatars. Helps set up toggles, optimize your avatars, set up animation controllers, etc.

If you've got a Quest Pro or Vive Facial Tracker, also check out VRCFT, an app that connects those and lets you have face and eye tracking in game!

e: how on earth did I forget Poiyomi, an all-around great shader that probably has the effect you're looking for.

and Tupper's great talk on avatar optimization:
https://www.youtube.com/watch?v=JFBQeNON64Q


Worlds

SDK3 introduces Udon, and with VCC, UdonSharp!

VRChat's guide on creating your first world!

VRChat's docs on Udon and what it is.

Neddy's Seagoons World Guide

I gotta be honest, Udon still perplexes me sometimes so I tend to use CyanTrigger, which brings back some of the trigger style programming that SDK2 used.



Hardware
You thought VRChat was a free game? Ha! Here are some accessories that you'll likely end up getting for VRChat:

Full Body Tracking
Want your lazy rear end to show that you're actually laying down while you're in VR? Here's some options!

Lighthouse (Index/Vive tracking) based. You'll need 3 of these, two for your feet, and one for your hips:

HTC Vive Tracker (3.0):


The go-to. Very robust and the horns give them a bit better line of sight than the Tundras.

Tundra Trackers:


Smaller and better battery life than the HTC trackers. A bit more expensive, but they only use a single USB dongle and have amazing battery life.


"How do I attach these to my body?"

Tracker straps! They have a little .25" tripod thread that attaches to the battery life.


(VRChat has partnered with Tundra & EOZ to have their own branded set. I like my foot straps, way more comfortable, but the unbranded ones have a new foot strap that is supposedly better.)

"What if I want to use Lighthouse tracking with my Quest?"

Then you'll need at least one (preferably two) SteamVR base stations. Valve charges $50 less than HTC, so be sure to get it from there.

You'll also want OpenVR Space Calibrator, which helps you sync the SteamVR and Oculus base stations. If you've got an extra tracker, you can slap it on your headset and use the Continuous Calibration Branch to auto-sync!


IMU based trackers are less expensive, but also less accurate since they are purely based on IMUs. Though they do not require any external sensors so you can be warm under your blanket and still be tracked.

SlimeVR (~$200~400):


The obligatory open-source option, SlimeVR has their own hardware, but with such a long lead time, you're better off building your own if you've got the experience. I've seen it in action and it's probably 80-90% good as Lighthouse trackers.

HaritoraX ($300~$500):


HaritoraX, a bit more polished IMU tracker, but I haven't heard any good reviews. Including because it's probably the second most popular after SlimeVR

Sony Mocopi ($450):


Probably the slickest IMU trackers, but they are made for full body mocap so in addition to redundant trackers on the head and arms, so VR tracking suffers a lot. Though a beta version puts the wrist tracker on your legs, which makes the tracking way more accurate for VR. I wouldn't recommend it until that comes out, and always buy hardware for what it is, not future features.


Face Tracking
Only two real options currently (Vive Focus 3 is terrible)

Vive Facial Tracker ($129):


The Vive Face Tracker is probably the most versitile, it can be used on pretty much any headset (including the Quest if you're dedicated enough).

Quest Pro Headset ($1,000):


Face tracking in social VR is probably the only thing this thing is good for. Get a top strap.


Money is no object. What's the absolute best PC I can get for VRChat?

This guide by Tupper is (I think currently) the best hardware you can get for VRChat. tldr: AMD X3D CPU with a ton of L3 cache and a 4090. Unity games like L3 cache and VRChat likes VRAM.

I'm sure there's plenty that I missed, so be sure to let me know!

Kazy fucked around with this message at 00:16 on Sep 15, 2023

Adbot
ADBOT LOVES YOU

Kazy
Oct 23, 2006

0x38: FLOPPY_INTERNAL_ERROR

Taking this post to post my own stuff! I've been playing since 2015 so I have an odd mishmash of stuff.

I make a lot of FFXI worlds as well as some ActiveWorlds stuff.

My latest, porting some of ActiveWorlds into VRChat, bringing old style cyberspace into the new age.

Link

San d'Oria, a port of the city-state from FFXI. Did this way back in like 2017 or 2018.

Link

You can find the rest of my stuff here, including some original content.


I also make some music videos, here's my latest I made for the New Years' event:
https://www.youtube.com/watch?v=_rmBubpLcMs

Kazy fucked around with this message at 02:21 on Sep 5, 2023

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"
Quoting myself from the VR megathread on How to Make An Avatar;

Neddy Seagoon posted:

Actually may as well do this here while I got Unity open anyway.

How to make a VRChat Avatar

Full clarification; I'm only going to cover how to get a 3D model in Unity into VRChat as a 3.0 Avatar, I'm not going to touch the 3D modelling side of things here because that's a whole thing in of itself. Save for one bit that's more of a gotcha to be aware of that's not really documented anywhere later.

What you'll need to set up
You will need the current Unity version VRChat is using. At time of this post it is 2019.4.31f1. Set this up in Unity Hub, it'll make life easier down the road.

Download the VRChat Creator Companion from the VRChat website. Install and open it, then click Create New Project. Select Avatar Project. Once it's done configuring, go to Manage Project. There's several optional packages worth adding;

- Gesture Manager - Lets you test your animations in Unity, great for bugtesting without getting into VRChat proper.

- AudioLink - Ever see avatars and world effects flashing and pulsing in time with music playing? That's what this is.

- Avatars 3.0 Manager - This fantastic tool lets you copy animations and parameters between your avatars, as well as help track down some of the trickier issues that can affect them (eg; Making sure all animations are either Write Default or not, rather than a mix of the two).


Now there's two different routes here depending on if you want a Generic-rigged avatar (ie; a stationary/custom-animated model) or, what you'll more likely be using in VR, a Humanoid-rigged avatar.

Humanoid-rigged Avatars

Drag your model into Unity from the Project tab (the one with the directory and all the icons of your models and textures and poo poo). If it needs materials, drag those from the project space onto the model's mesh or the material slots in its mesh renderer component. Click on Model -> Select



Click Rig if it's not already there, and set the Animation Type to Humanoid if it's not already done. It may raise some errors, we don't care about them yet. Click Configure.


You'll get this screen to play with. Drag bones from the left side to the slots here from the respective anatomy of your avatar to the matching slots. Leave Upper Chest unassigned. Also, The bare-minimum for a human-rigged avatar is that it must have hand bones, you don't HAVE to give it fingers. If you know how to use Blender and you have an avatar with something that lacks a bone (Eg; like Mega Man or Samus with an arm cannon instead of a hand), just stick an unweighted bone off the forearm and call it a day. It only cares that they exist. Scroll down to "Mapping" and "Pose" at the bottom, click Pose and select "Enforce T-Pose". That should make all the red in the center screen go away. Click "Apply" and it might clear your selection. Don't worry about this, just click "Done" because it has actually applied your selection.

Sidenote for Blender-users on the topic of avatar-rigging; If you want a full-body-rigged avatar (ie; you use Trackers for hip/leg-tracking) the avatar's hip bone needs to be higher than the thigh bones or it gets upset.


To actually make your model a VRChat avatar, click on the upper-most component of the avatar in the Hierarchy screen (ie; the bit that has whatever you named the model) click "Add Component" under the Transform and add a VRC Avatar Descriptor.


There's a fair bit to play with, but it's all useful.

View Position - This is where your camera will be. Ideally you want it right between your avatar's eyes, but ever-so-slightly forward of them.

LipSync - This controls how your avatar will act when you talk. Typically it's mouth movements, but really it's whatever you make your avatar do.
  • Jaw Flap Bone - Pretty obvious - Assign a bone, bone rotates back-and-forth like a puppet's mouth.
  • Jaw Flap Viseme - Same thing, in viseme form.
  • Viseme Blend Shape - This is the semi-scary one if you don't know what you're doing. Assign a mesh, and if it has visemes already (eg; a customized pre-made avatar you got off Booth, Gumtree, whatever), they should auto-assign. I tell a lie and I will lightly brush on Blender here because if you want proper visemes quick-and-easy then the CATS plugin will make these for you. You just do three basic "AA" "OH" and "CH" lip positions for your model and it will interpolate the full set of visemes from those for you.


Eye Look

You only need to enable this if your avatar has eye bones controlling the eyes. This drives how and where your avatar will passively look at other players and the radius they move in. Eye movements dictate how often your avatar's eyes look at another player (this is local, so your avatar will technically look at everyone at the same time) Rotation states you just hit preview and drag the values to pick how far your avatar's eyes can look in each direction, as well as the idle forward position. Eyelid Types is just the usual choice of bones and blendshapes.

Playable Layers

This is the real meat of the 3.0 Avatars and where you're gonna need to learn just a smidge of Unity to do Fun Things.
I'm not gonna cover the Special Layers, just the Base ones. The short version is here is where you can do all the custom gestures, animations, walk cycles, etc. Each Layer has an intended use, so don't get lazy and put your animations in just one of them.

Base - This is your Locomotion Layer that contains all the walk animations, idle pose, etc. If you're gonna make custom movement animations, copy the vrc_AvatarV3LocomotionLayer.controller and work off that. You can just drop the animations into the animation states.

Additive - This one is for passive animations that add a little extra detail to your avatar, like an idle breathing cycle, or flapping wings, that just cycle around in a loop.

Gesture - This is one of the main ones you'll be using a lot if you get into avatar customization. This is where your hand poses go, as well as anything manipulating Transforms (eg; The position of your hat/glasses/accessory, whatever). If you want to override the regular hand gestures with custom states (eg; Holding a weapon) add the vrc_Hand masking layer with the respective hand(s) and when you go to an active animation it'll keep the regular gestures from affecting that hand while it's active. Copy and use the vrc_AvatarV3HandsLayer controller as your base.

Action - This is where you do all the animated stuff like dances, AFK position, etc. Copy and use the vrc_AvatarV3ActionLayer controller as your base. VRCEmote is kinda-sorta special value, and drop your Dances/Animations into a state that uses it.

FX - This where you put everything that is not manipulating a muscle or transform. Eg; Turning on the gameobject that is your toy or particle effect. Again, copy and use the vrc_AvatarV3HandsLayer controller as your base.

You'll need to learn how to mostly combine Gesture and FX for animations like shooting a gun, as you'll put the fancy effects in one animation for the FX layer, and the gesture parts (ie holding the gun and pulling the trigger) on the Gesture Layer. Best way I've found is to make them all in one animation, then duplicate it and separate out the respective parts.


The quick-and-dirty animation controller tutorial.
Add a layer in the Animator with the big + in the Layer's tab. Call it whatever, then click on the cog and set Weight to 1. No weight, no animation. Animators are state-based, and the first thing you'll need is an idle state so right-click and select "New State"



That's the animator layer's "off" position, essentially. What you'll next do is add your actual animation to the layer.



So how do we get from "off" to "On"? We make a transition to it between the states. This is where things get very spider-webby if you know what you're doing (take a look at the Action Layer as an example of big state transitions)


That gets us part of the way, but now we need to give it a reason to STAYon the animation because right now it'll just loop back-and-forth between them. So you go over to Parameters and create something. You can use three parameter types with VRC Avatars;
  • Float - numbers with decimal places (eg; 0.05). These are typically used for blend trees with radial menus like colour sliders.
  • Int(eger) - Whole numbers (1, 2, 3, 4,etc). Ints are what you want when you have similar objects but don't want them overlapping. This is what you use when you have, say, a selection of hats to pick between. Stuff that'd take the same "slot" if that makes sense.
  • Bool - Binary toggle off/on. Stuff you want to turn off and on, and real trap for new avatar creators is just making EVERYTHING a bool toggle (eg; shirt1_bool, shirt2_bool, shirt3_bool instead of consolidating them all into shirt_int)

So for something as simple as the image above we can just use a bool;

It gets to the animation when the Bool is set True, and becomes "trapped" at that state until it's set False because the condition for moving back is set to YourAnimationBool false.

What if we've got several animations we want to toggle between?



We can use the special "Any State". What this means is that transition can occur from literally any other state so long as that condition is valid. This is where you use an Int instead because you'll set each animation to its own number and it'll default to 0 when cleared.

The Exit state's basically a reset. Anything that gets thrown into there bounces round to Entry to start over.

That's animations done, but how do we drive them in-game?

Expressions

There's two parts to this;

Parameters

This is where you load up all those fancy custom parameters you made for your animation layers. Set the default value (typically to false or 0, unless you got a particular default loadout you want of toys/clothes/colours/etc) and toggle Saved to set whether you want it to always remember that state when you swap avatars (eg; you might want to keep your current clothing, but not necessarily have a gun equipped)

Expressions Menu
This is where you're gonna set up your radial menu. Each menu can have up to 8 Controls and both the Expression Parameters and Menu put into the Avatar Descriptor for the menu to be able to see it.


Set the name (this is what appears in the menu in-game) and icon if you have one (this needs to be a 2D sprite), along with the Value you want that parameter set to. There's several Types of Control you can have, here's a quick rundown;
  • Button - Active value while you hold it down
  • Toggle - On/off state, what you use to equip stuff, set active clothes, etc. What you'll mostly use.
  • Submenu - Don't assign a value (generally) if you're gonna use this, just slap another Expression Menu in the slot and it'll go to that.
  • Two-Axis, Four-Axis and Radial Puppets - These are pretty complex in their own right so I'm gonna skip them here.

You now have everything you need to build your avatar! So now how do you get it into VRChat?

Click VRChatSDK from the top menu. Select "Show Control Panel". Log into your account in Authentication, then go to the Builder tab. It'll tell you what the avatar's state is, if anything needs fixing, and you can generally ignore the warnings as it will never be happy with fun things like dynamic bones or audio sources existing.

Click "Build and Publish for Windows", let it compile, then when it gives you the build screen in the Game tab give it a name, don't bother with the description or tags (they're VERY deprecated), go to the Scene tab and play with the camera to give it a neat icon if you feel fancy, and then hit that Upload button.

Congratulations, you now have your own 3.0 avatar!

If you want to make your avatar Quest-compatible, make an Android Unity project, copy your avatar into it and adjust the shaders, whatever, to make the SDK happy. Then apply the existing avatar's ID to the Pipeline Manager. All it cares is the ID's match and it's coming from an android project.

Neddy Seagoon fucked around with this message at 03:19 on Sep 5, 2023

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"
And How to Make a World. I've tweaked it slightly to account for the Creator Companion existing.

Neddy Seagoon posted:

Might as well bang out the other half of the question too;

How to make a Udon-powered VRChat World

Download the VRC Creator Companion from the VRChat Website.

Select Create New Project. Make a World Project with UdonSharp. It'll save you a headache later if you start adding prefabs, or learn to code yourself. Once it has installed, click Manage Project. This will give you a list of optional packages. Install them all, they're all useful. Here's a quick rundown on them;

- EasyQuestSwitch - Sets up automatic toggles for swapping to a Quest version. Eg; You want something disabled, or a different material substituted for a Question version, you can set that here and when you switch to the Quest build, it'll automatically do all that for you, and back again for PC.

- VRWorld Toolkit - This is a fantastic tool that will tell you what's wrong with your world and how to optimize, as well as some one-click fixes too. (Lighting not baked, etc)

- VRChat Client Simulator - Lets you test your world from within Unity without having to compile. Doesn't work perfectly, but for quick-testing stuff it's great.

- AudioLink - Ever see avatars and world effects flashing and pulsing in time with music playing? That's what this is.


Once your Project has generated and opened in Unity, Look for the "VRCWorld" prefab in the project window under Packages and drag it into the scene. You now have a functional VRChat world!



Okay, okay, so there's a bit more at play here but that's literally it to make your project A World.

The VRC Scene Descriptor is your world settings, Spawns dictates where the players will enter the world. Make a transform, put it somewhere, drag it onto the slot(s) in the Spawn array and players will spawn facing the blue arrow's direction.

Respawn Height Y means if the player falls down to that height they will automatically return to spawn.

Object Behaviour at Respawn Height is much the same, really you want to just leave it at Respawn. Objects that respawn will return to the place they were at on world start. So, say you have a bunch of objects start off lined up on a table and you toss one out of the world, it will return to its place on the table.

Forbid User Portals - Just leave this unticked, it's not worth touching and just a nuisance if you're on safari around worlds with friends.

The rest you can leave alone.

The Udon behaviour in the VRCWorld object has your player settings.
You can mess with these if you want, all they do is set the player's movement speeds as they enter the world, but really they're fine as-is.


Basic World Stuff

-Colliders - These are what let you touch and stand on stuff. If you drag a model into your project to be your world (eg; a prefab of a room, or a scene taken from a videogame), make sure it has them or you will fall through the floor! Ideally you want to use Mesh Colliders as little as possible for optimization reasons. Box colliders are a lot more optimized and can overlap. Don't be afraid to use Mesh Colliders if you have something with a real weird shape, or hollow sections you want to enter/thread things through of course. Just don't hammer that option on everything if you can use a simpler Collider.

A big example; If you make a straight flight of stairs, make a box collider on its own game object and angle it to turn the stairs into an invisible ramp rather than use a mesh collider for accurate steps. It's much more tolerable for players traversing it.

-Lighting- Real-time lighting is pretty! It's also expensive on your hardware and you generally don't need it! Xiexe has an excellent lighting tutorial for baking your world's lighting that will teach you everything you need to know. Be aware it's slightly outdated as it was written for Unity 2018, and you should now use the Progressive GPU option to compile your lighting. Aside from that, it's all relevant.

-Pickup Objects- Make a game object (import a model, create a cube/cylinder to test things, whatever), add a VRC Pickup component. It will add a rigidbody on its own. Put it on the Pickup layer rather than Default so you don't stand on it.



-Disalllow Theft: Decides whether the thing you're currently holding can still be picked up by other players.

Exact Gun: Forces the alignment of the object relative to your hand. You can generally leave this unassigned.

Exact Grip: Ditto.

Allow Manipulation when equipped: Can YOU still pick it up with the other hand while held in VR? Typically you want this enabled, as it lets you realign whatever you're holding between both hands.

Orientation: Any, Grip, Gun. Choose which it obeys (and can be altered via an Udon script)

AutoHold: Do you have to actively hold the trigger/mouse on your controller to hold the object? Ideally you want this on, but there's situations where it's worth turning off (eg; You want the player to throw a ball. Leave it off so they can grab, and throw on release)

Interaction Text: If you aim at the object, it'll show this. Name your object, or what it does, whatever you like.

Use Text: This appears while the object is held, only if AutoHold is enabled. This tells the player what will happen if they pull the trigger and interact with the object (eg; "Shoot Gun!")

Throw Velocity: You can generally leave these unless you want to do things with physics.

Pickupable: Self-explanatory. This is more for playing with Udon when you want something to only be pickupable in specific circumstances. (Eg; Only certain players in a game can get this weapon).

Proximity: How close does a player have to be to interact with it? (Measured in meters. 2 is typically fine, if you've got a cluster of objects, consider making it smaller).

If you want your pickup object to sync with all players, add a VRC Object Sync component. Allow Collision Ownership Transfer means that if I smack it with something, I "own" it and all network updates now come from me until ownership changes again.


But I'm guessing what you really want is to know how to play with Udon. And that's where the real fun begins. I'm going to show off Udon Graphs, but if you're familiar with C# I highly recommend Merlin's UdonSharp plugin (a lot of prefabs use it anyway). It'll let you write Unity C# scripts that compile right into Udon natively.

So let's say we're working on our pickup object. We want it to do something when the player uses it. Let's add an Udon Behaviour to it.


Click New Program, and it'll make a blank Udon Graph based on the object's name.


Sync Method's a little much to explain here, but the short version is we want it continuously updating because it's a pickup object - It has to constantly share its position to all other players (As an aside, if you just have like a button running off an Interact event you can set the Sync to "None" if it has no networked values of its own). And we click Open Udon Graph.


Not a lot here right now, so let's change that. Pressing space brings up the Node search tool. You'll be using this to hunt down the nodes you want. Be aware it works by category, so you have to search for the category, click that, then look for the specific node you want. Eg; look for AudioSorce and THEN Play.

We're working with a pickup, so we're going to want OnPickupUseDown to begin with. This is what will fire when the someone Uses our held object. Let's say we want out pickup to make a noise when used. We'll need an AudioSource to tell to play, so we'll add one to the Variables with the big + button



And we'll name it and make it Public (this lets us assign an audiosource to the Udon Behaviour)


So we'll drag it in, look for AudioSource in the node search, then Play, and join it all together.


That will now tell the assigned Audio Source to play when the pickup is used... locally. You'll hear, it nobody else will. So let's fix that.

The problem here is it's all local and nothing's telling other players you're doing something. So what we do is rather than play the audio source direct, we send a message on the network telling EVERYONE to play this audio source. So we'll Send a Custom Network Event and make a CustomEvent() to respond to it (look for Event Custom to find it).


Now everyone will hear it (at least within the Audio Source's radius). Instance on the NetworkEvent lets you target another UdonBehaviour if you want to, by default it targets itself. (A lot of basic Unity values will, like Transform and Rotation so if its just rotating or moving itself you don't need to specific the source.)

If you want this to be a static object that plays audio when you interact with it (ie; a button), use the Interact Event


If you put an Interact Event in, you will get Interaction options in the UdonBehaviour Component. These work exactly the same as on a pickup. Text Placement just forces the position of the floating text you see when you aim at something to use/pick up. Useful if it's clipping through something.

General Network Sync stuff
VRChat is a peer-to-peer networking client, all players in your world are talking to eachother and agreeing on how things behave based on what the current owner of each object in your world is telling the others. How we do this is partly with the Object Sync for pickups to state where their position is. The other is synced variables. Anything like a String or an Int can be a synced variable.


If you drag a variable into your graph you'll get an option for Ctrl-Click and Alt-Clicking it in so you can Set the variable, or React on it changing. You can see an example of the latter if you look in the VRC Video player prefab where it'll act based on when the URL changes. If you set a variable with sendChange enabled, it will tell all other players it has changed and to execute whatever's hanging off that event right now. Our other option if we're changing several things at once is Serialization. You might change a few setting and want everyone to update to stay synced, so you'll Request Serialization and tell everyone that they need to update this gameobject. They will now all run OnDeserialization (including yourself).


Making interactive menus in your world.

So you've got your world, and you need players to mess with a wall or screen to change settings or make things happen. If it's just opening a door or quick like toggling a mirror, a collider with an Interact event will work fine. If you've got something more densely interactive like a settings menu use a Canvas and a UI Menu instead of putting Interact colliders close together. I see it everywhere and I haaaate it with a passion because it's so hard to get the one you want. If you've ever touched the now-retired old Camera (as of the latest update), you know exactly what I'm talking about.

To make a menu that is user-friendly

Create a canvas, add a VRC UI Shape to it. This tells the game it should register the cursor from your controller or desktop mouse (The thing you see when you look in the menus)

Add UI Buttons and place them inside the Canvas. Add VRC UI Shapes to them so your game knows they're interactible.


While you can use it to trigger just about any method in the Udon Behaviour, typically you'll want SendCustomEvent. And as you can see from the UI, you can indeed add multiple objects for that button to talk to when it is pressed. If you want to use a Slider, you also use SendCustomEvent as it'll trigger when the value changes.

You now have a menu that is compact, and much easier for players to interact with.

One last testing trick too; OnMouse events will typically work from the Game window in Unity, as will UI elements (buttons, sliders, etc). If you want to quickly check a door or menu, just hit Play in Unity and aim the game camera at whatever you want to test. Just attach the OnMouseDown event to the interactive object and click it in the Game window.


The rest you can go experiment with yourself. I will give a very special and secret tip though that few people actually seem to have realized; If you want to figure out how to do something, go watch Unity tutorials. Udon just abstracts out actual Unity programming, so literally anything you learn from those will translate into an Udon Graph or UdonSharp script. There's also some demo Udon scenes included with the VRCSDK you can play with to learn things.

Neddy Seagoon fucked around with this message at 03:09 on Sep 5, 2023

Tupper
Sep 1, 2007

Fun will now commence.
cool thread

Tupper
Sep 1, 2007

Fun will now commence.
NO I MEANT TO EDIT NOT DOUBLE POST OH WELL

Kazy posted:

(You can find VRChat's own Community FAQ here)

Oh my god this page is so out of date. Guess I've got something to do this week.

Luneshot
Mar 10, 2014

VRChat: "I have like 850 hours in this game and less than half an hour of that is in public or friends+ instances"

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"

Luneshot posted:

VRChat: "I have like 850 hours in this game and less than half an hour of that is in public or friends+ instances"

"VRChat: Avoid The Black Cat".

Overbite
Jan 24, 2004


I'm a vtuber expert
I got a good amount of time in vrchat but lately it’s been be joining a random world, hearing overt racism almost instantly, and then me logging out. Reporting doesn’t actually do anything. Vrchat was more chill back in like 2017ish

Kazy
Oct 23, 2006

0x38: FLOPPY_INTERNAL_ERROR

Overbite posted:

I got a good amount of time in vrchat but lately it’s been be joining a random world, hearing overt racism almost instantly, and then me logging out. Reporting doesn’t actually do anything. Vrchat was more chill back in like 2017ish

You know, I was wondering why only come across this a handful of times despite being in publics a fair bit (especially the furry ones)

Then I realized! Here is my recommended safety settings for Visitors:


(if you can't tell due to the color scheme, everything is shut off so I only see mute robots)

This weeds out a lot of trolls, as generally cool people tend to graduate out of Visitor pretty quickly, and if not, if I see people having genuine conversations with one, I can manually unmute and show them.

Neddy Seagoon posted:

Quoting myself from the VR megathread on How to Make An Avatar;

These are great guides! I would have linked them in the OP but I forgot about them. :v:

Frobbe
Jan 19, 2007

Calm Down
I fell into the vrchat black hole in early 2021, and since then i've become competent at Unity, substance painter and became really good at swearing at blender. it's quite an amazing platform, even with its shortcomings. I really do hope any kind of actual competition will arise purely to keep them on their toes.

I'm very much looking forward to the unity 2022 platform update, i'm already really liking the new SDK UI, so far all my stuff's worked perfectly in the beta.

@kazy I do believe we share a few discords at this point :)

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"

Frobbe posted:

I fell into the vrchat black hole in early 2021, and since then i've become competent at Unity, substance painter and became really good at swearing at blender. it's quite an amazing platform, even with its shortcomings. I really do hope any kind of actual competition will arise purely to keep them on their toes.

I'm very much looking forward to the unity 2022 platform update, i'm already really liking the new SDK UI, so far all my stuff's worked perfectly in the beta.

@kazy I do believe we share a few discords at this point :)

The beta's nice, but it's definitely got some bugs to squash. It's mostly fine for the basics, but if you're doing anything clever with Unity for avatars or worlds, you'll definitely bump into them. Player Tracking data looks jittery in the beta, for example. I THINK it's lagging a frame or two behind, as best I can tell.

Oh, speaking of; Might be worth adding a link to the Canny in the OP.

Frobbe
Jan 19, 2007

Calm Down

Tupper posted:

NO I MEANT TO EDIT NOT DOUBLE POST OH WELL

Oh my god this page is so out of date. Guess I've got something to do this week.

If you want something else hilariously outdated, there's the official vrchat asset over on the unity asset store https://assetstore.unity.com/packages/templates/tutorials/home-kit-vrchat-sdk-template-149278 yay sdk2!

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"

Frobbe posted:

If you want something else hilariously outdated, there's the official vrchat asset over on the unity asset store https://assetstore.unity.com/packages/templates/tutorials/home-kit-vrchat-sdk-template-149278 yay sdk2!

I wondered where people were getting that from, as I've seen it turn up in the odd world or two. I never knew it was just on the Unity Asset Store.

Kazy
Oct 23, 2006

0x38: FLOPPY_INTERNAL_ERROR

Neddy Seagoon posted:

The beta's nice, but it's definitely got some bugs to squash. It's mostly fine for the basics, but if you're doing anything clever with Unity for avatars or worlds, you'll definitely bump into them. Player Tracking data looks jittery in the beta, for example. I THINK it's lagging a frame or two behind, as best I can tell.

Oh, speaking of; Might be worth adding a link to the Canny in the OP.

If you mean full body trackers feel like they're lagging, are you sure you're not experiencing the new IK update's reduced reliance on SteamVR motion prediction? I felt that, too, but you can add the motion prediction influence back under Tracking & IK > Tracker Motion Prediction:


I just ended up keeping mine low and am used to the new feel now.

Also added the canny to the OP!


e:
Also, small patch is out:

quote:

Fixes & Updates
  • Improvements to loading times and memory usage!
  • The background of the color picker is no longer opaque.
  • Japanese tooltips are no longer cut off at 2 lines.
  • Calibration mirror, local nameplate, and local chatboxes now appear in the correct places when using full-body tracking.
  • Group activity page no longer flickers when 3 or more groups are displayed.

Wonder what they did to improve loading times and memory usage.

Kazy fucked around with this message at 19:46 on Sep 7, 2023

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"

Kazy posted:

If you mean full body trackers feel like they're lagging, are you sure you're not experiencing the new IK update's reduced reliance on SteamVR motion prediction? I felt that, too, but you can add the motion prediction influence back under Tracking & IK > Tracker Motion Prediction:

No, this is something in the beta specifically breaking Player.TrackingData in Udon scripts when fetching the position/rotation of the Head, Left Hand, Right Hand and Origin points. It's very noticeable and doesn't exist in Live.

Kazy
Oct 23, 2006

0x38: FLOPPY_INTERNAL_ERROR

Today is my 8th anniversary of being on VRChat.

I was terrible about keeping screenshots because vrchive is slow AF, but have one from what I think is my first time on VRChat, way back in 2015:


And the sole one that was on my VRChive account for some reason:
https://vrchive.com/image/9Qbl

MeatRocket8
Aug 3, 2011

I used to see full rooms with the Orion nightclub. Now its nearly empty on the weekend and totally empty on the weekdays.

Wondering if people just dont use that room anymore for some reason, or if the whole games population is dropping off.

Frobbe
Jan 19, 2007

Calm Down

ChocNitty posted:

I used to see full rooms with the Orion nightclub. Now its nearly empty on the weekend and totally empty on the weekdays.

Wondering if people just dont use that room anymore for some reason, or if the whole games population is dropping off.

Find better venues imo. The ones I go to usually need two or more 80 pop instances.

flavor.flv
Apr 18, 2008

I got a letter from the government the other day
opened it, read it
it said they was bitches




There's only one avatar world you need.

https://www.youtube.com/watch?v=9QiwIsfItZc

https://vrchat.com/home/world/wrld_57514404-7f4e-4aee-a50a-57f55d3084bf

Prismic's Avatar Search is a catalogue of thousands of publically available avatars, searchable by name and description, and filterable by platform (I always stick to quest compatible because I want to make sure everybody can see me)

If you aren't careful you can spend days just hanging out here. I like to play a game where you and your friends put in a single keyword and pick random avatars that come up until one of you guesses what the other's word was

Black August
Sep 28, 2003

It’s honestly relaxing to have a call going or video to listen to while just hitting random over and over and saving the best ones that come up.

Doctor_Fruitbat
Jun 2, 2013


Oh that's so good, I'll need to explore it later.

Oxyclean
Sep 23, 2007


Question about the Index & Tracking. So it looks like the Full-Kit Index comes with lighthouses, but not the body trackers themselves?

I hate that I love VR Chat so much I'm half considering buying a friggen 1300$ VR headset just cause my Quest 2 might need replacing lol.

School Nickname
Apr 23, 2010

*fffffff-fffaaaaaaarrrtt*
:ussr:
I'd hold out for the $500 Quest 3 for the added portability and pancake lenses. Read reviews before buying of course.

I have a weird bug in VRChat where I don't receive invites and friend requests unless I restart the application entirely. Almost missed out on a beer pong game (lost horribly anyway) because of it. The friend request appears when I look up a person's info page though. Any way I can fix it?

Kazy
Oct 23, 2006

0x38: FLOPPY_INTERNAL_ERROR

Oxyclean posted:

Question about the Index & Tracking. So it looks like the Full-Kit Index comes with lighthouses, but not the body trackers themselves?

I hate that I love VR Chat so much I'm half considering buying a friggen 1300$ VR headset just cause my Quest 2 might need replacing lol.

Valve's next thing is pretty imminent, and will very likely have built in eye tracking. The Index is over 4 years old at this point and frankly, has a lot of QA issues. But yes, the full kit comes with the base stations but no body trackers. You could either go for the Tundra kit for $380 for 3, or HTC's at $129 each. Either way you'll still need the straps to wear them.

School Nickname posted:

I'd hold out for the $500 Quest 3 for the added portability and pancake lenses. Read reviews before buying of course.

I have a weird bug in VRChat where I don't receive invites and friend requests unless I restart the application entirely. Almost missed out on a beer pong game (lost horribly anyway) because of it. The friend request appears when I look up a person's info page though. Any way I can fix it?

There are a few bugs I've seen that do this, but the most common once I've seen is IPv6 fuckery. There was an old one where if you launched via an instance link it would break them too, but I think they fixed that one.


Oh hey, a friend of mine made that. It has every single map from the game! Too bad I was terrible at it so I don't have many fond memories :v:

Oxyclean
Sep 23, 2007


School Nickname posted:

I'd hold out for the $500 Quest 3 for the added portability and pancake lenses. Read reviews before buying of course.

Kazy posted:

Valve's next thing is pretty imminent, and will very likely have built in eye tracking. The Index is over 4 years old at this point and frankly, has a lot of QA issues. But yes, the full kit comes with the base stations but no body trackers. You could either go for the Tundra kit for $380 for 3, or HTC's at $129 each. Either way you'll still need the straps to wear them.
Cheers. Yeah, I'm not sure how much I want to get the Index with it's age, but at the time of posting I was a little frustrated cause Meta just told me my Quest 2 was out of warranty. (Apparently they followed up and told me it was not out of warranty.)

My quest 2 has been having a really funky battery issue that's made me just want a headset that runs off power and not battery, so I'm iffy on how much I want Meta's next thing, and if Valve does a Quest-like thing, I sure hope they design it with some kind of perpetual power in mind.

Dang the cost to go from quest 2 to full body is so dang steep.

Kazy
Oct 23, 2006

0x38: FLOPPY_INTERNAL_ERROR

Oxyclean posted:

Dang the cost to go from quest 2 to full body is so dang steep.

Pretty much. There are HTC's self-tracking trackers (uses SLAM instead of lighthouses, like the Quest Pro controllers) due out relatively soon, but I'm willing to bet those will probably be like $180-$200 each.

https://www.youtube.com/watch?v=5ckK_qvgJoQ

Basically right now isn't the best time to buy new hardware :v: But if you do, try to find something used. I was able to get a set of HTC 2.0's and straps for $200, so only $350 all in if you only need one base station.

I used my Quest 2 with an external battery, it was mounted on the back and would last somewhere around 10-12 hours. It was very heavy. Though now with my Quest Pro it only gets somewhere around 6 hours. I keep the battery in my pocket now.

Here's the external battery I use.


e:

Also, New developer update.. More protections against ripping, slight update on Imposters, and general update about 2022 timeline.

Kazy fucked around with this message at 01:30 on Sep 15, 2023

Oxyclean
Sep 23, 2007


Kazy posted:

I used my Quest 2 with an external battery, it was mounted on the back and would last somewhere around 10-12 hours. It was very heavy. Though now with my Quest Pro it only gets somewhere around 6 hours. I keep the battery in my pocket now.

Here's the external battery I use.

My issue is i've had setups that have worked - to try to keep a long story short, the battery will start to read 100% when im plugged into power, but will drop to the real amount if I unplug the cord. In this state, it doesn't seem like the headset is getting any power cause I had the headset run out of power with no warning and is only lasting about as long as it would with no cord.

I was able to fix the problem for a little while by factory resetting, but it appears to be back. Strangely, I was testing an external battery this time and despite the bug still appearing the same (battery jumping to 100% while plugged into external) it did actually seem to offset the drain. Dunno if there might be adverse effects though.

Croccers
Jun 15, 2012
For body tracking if you have an old 360 Kinect lying around with the PC adapter (or can source one) you can do tracking with that to an extent.
https://k2vr.tech/
Better than strapping PS Moves to your feet at least.

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"
Avatar ripping's gonna be much less of a problem anyway as the infamous Ripper Store's closing down on the first of October. I wouldn't be surprised if they're getting out ahead of whatever VRChat's working on on their end, if it's not just for their stated reason of being too big a hassle to keep managing.

Tupper
Sep 1, 2007

Fun will now commence.

Frobbe posted:

If you want something else hilariously outdated, there's the official vrchat asset over on the unity asset store https://assetstore.unity.com/packages/templates/tutorials/home-kit-vrchat-sdk-template-149278 yay sdk2!

Ah yeah I remember when we pushed for that. Didn't get much of a return so I guess we didn't invest more time in it.

Neddy Seagoon posted:

Avatar ripping's gonna be much less of a problem anyway as the infamous Ripper Store's closing down on the first of October.

I wouldn't believe them for a second, FWIW. They already got kneecapped with EAC -- they (and others, on their behalf) used to sneak what were effectively trojans into innocuous mods and modpacks. Those trojans would grab and upload every avatar it saw and then credit the mod creator's account. Basically a distributed piracy network running on tons of computers, hidden behind "harmless, wholesome, QOL" mods. EAC killed that.

Either way, yeah, wouldn't believe them. Piracy's always gonna be around.

Tupper fucked around with this message at 16:53 on Sep 19, 2023

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"

Tupper posted:

Ah yeah I remember when we pushed for that. Didn't get much of a return so I guess we didn't invest more time in it.

I wouldn't believe them for a second, FWIW. They already got kneecapped with EAC -- they (and others, on their behalf) used to sneak what were effectively trojans into innocuous mods and modpacks. Those trojans would grab and upload every avatar it saw and then credit the mod creator's account. Basically a distributed piracy network running on tons of computers, hidden behind "harmless, wholesome, QOL" mods. EAC killed that.

Either way, yeah, wouldn't believe them. Piracy's always gonna be around.

First I'd heard of the putting trojans in QoL mods, but zero surprise that they would.

Average Bear
Apr 4, 2010
Got caught playing this within 1000 feet of a school. Any legal advice?

(USER WAS PUT ON PROBATION FOR THIS POST)

Tupper
Sep 1, 2007

Fun will now commence.

Neddy Seagoon posted:

First I'd heard of the putting trojans in QoL mods, but zero surprise that they would.

Those were pretty common. There were also mods that would secretly:

  • Log your location and everyone in the instance with you and send it to a central server where mod authors could search for anyone at any given time, even in private instances
  • Grab your username, password, auth cookie, whatever
  • Update silently and, when prompted by a post-breakup, drunk, sad script kiddie of a mod author, dump a bunch of undeletable files to your PC

Those are just the ones I observed myself. Glad they're gone.

EbolaIvory
Jul 6, 2007

NOM NOM NOM

Tupper posted:

Ah yeah I remember when we pushed for that. Didn't get much of a return so I guess we didn't invest more time in it.

I wouldn't believe them for a second, FWIW. They already got kneecapped with EAC -- they (and others, on their behalf) used to sneak what were effectively trojans into innocuous mods and modpacks. Those trojans would grab and upload every avatar it saw and then credit the mod creator's account. Basically a distributed piracy network running on tons of computers, hidden behind "harmless, wholesome, QOL" mods. EAC killed that.

Either way, yeah, wouldn't believe them. Piracy's always gonna be around.

I couldn't believe my personal avatars were on the ripper sites. Wasn't hard to get em removed but yeah. They basically index everything it seems.

Oxyclean
Sep 23, 2007


I'm kind of surprised they were easy to get taken down, or does even threatening a semi-serious content removal thing enough to scare them?

Cause the vibe I got from what I heard the ripper site people seem pretty douchey so it seems shocking they'd take anything down at request.

njsykora
Jan 23, 2012

Robots confuse squirrels.


Douchey is one thing but they probably also know to pick their battles if they don't want to risk drawing too much attention.

EbolaIvory
Jul 6, 2007

NOM NOM NOM

Oxyclean posted:

I'm kind of surprised they were easy to get taken down, or does even threatening a semi-serious content removal thing enough to scare them?

Cause the vibe I got from what I heard the ripper site people seem pretty douchey so it seems shocking they'd take anything down at request.

When you own the rights to something its pretty easy to go "hey bud, yank that please".

When I was doing content creation it happened all the time. Chinese companies would take my videos to advertise poo poo that clearly wasn't even in the video. Short email and it was usually down pretty quick. Once in a blue moon someone would try to make an issue with it but a second email with rates to keep it up without me moving forward with legal would have them pull it.

I'd honestly guess some of my avatar craps back on those sites again since neither myself or my artist keep up on it anymore. Thing is they just end up back there at some point after the next scrape. So you do have to keep going back to check again and again.

EbolaIvory fucked around with this message at 23:09 on Sep 19, 2023

Kazy
Oct 23, 2006

0x38: FLOPPY_INTERNAL_ERROR

I'll believe they're removing the store when I see it. How much you want to bet a new site will mysteriously pop up with all the same content? :v:

In other news, VRChat is finally adding content filtering.

With how Tupper worded the Community Guidelines update it sounded further away. Also I absolutely do not remember providing my birthday when signing up.

Adbot
ADBOT LOVES YOU

flavor.flv
Apr 18, 2008

I got a letter from the government the other day
opened it, read it
it said they was bitches






Went in here and it was just a couple of screaming children running around while 90% of the patrons were sitting in a corner staring at themselves in a mirror

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply