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
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

Adbot
ADBOT LOVES YOU

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

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".

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.

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.

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.

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.

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.

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"

School Nickname posted:

Was there a recent update that causes my content cache to spike to its supposed max of 20GB in the space of 2-3 worlds over the past week? It never happened before and now I have to reset and clear the cache every two hours or so, or ghost people against my will by crashing.

Use avatar proximity rendering if you aren't already. I use nearest ten avatar within a ten meter radius, that cuts down a lot.

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"

Frobbe posted:

Every now and then i get a silly that i want to upload a new world, but an issue i run into consistently is lighting and baking lights in order to optimise.

i own Bakery for unity (Perhaps unity 2022 will have better tools for that too?) but what are some good resources for world building? so far my most successworld is like, a little box with a media player and a mirror, aka the condensed vrchat experience

Optimization-wise, Light probes are your friend, used sparingly. Just put them in the corners of your world, and then put one any place where you expect to be a focus of your room. Just make sure you're setting anything that isn't expected to move or be picked up to Static too so it gets batched.

If you're feeling saucy and have image editing software, learn to edit your textures together and atlas them on your materials. There's also a debug menu you can enable on the game camera that'll tell you how many batch calls are being made on the rendered screen so you can hunt down the big offenders in your world.

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"

Oxyclean posted:

Is there any good guides for getting started on world creation? It's something I keep telling myself I'll get around to but I instead chase silly avatar edits instead.

:negative:

(First page, three posts down under the OP will get you started).

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"
I know first-hand there is a problem in the client not being able to re-authorize the session if you disconnect and retry to verify your login. It'll fail and dump you in the Error Void every time.

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"
Don't forget to get your world and/or avatar entries in for the Spookality jam today if you haven't already! :ghost:

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"
We're on Observation Duty is alright. Works as described, and has a good variety of anomalies. You can even go explore the cabin as well as watch from cameras, but the only means to Report seems to be at the terminal screen.

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"

ChocNitty posted:

Does VR Chat have any games that are decent quality and not sucky?

I want to play VR Chat but no chatting.

Yes, but most are multiplayer-focused. The only ones that aren't, off the top of my head, are the more "walking sim" experiences like Organism. Which is really good, and worth experiencing just for the scenery.

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"

A Cup of Ramen posted:

Is there a good world that you can go fishing in? Got a friend who gets motion sick easy, so looking for some relaxed activities we can do together.

You want the Udon Bird Sanctuary, for a very chill experience feeding various birds bread and fruit.

Also Happy Hill Dog Park.

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"

Frobbe posted:

yeah it isn't intentionally broken, so there's a lot of talk on how to make it a standardised thing!

another really dangerous world is this one https://vrchat.com/home/world/wrld_15f7034a-b074-4812-bfcb-317eaa2741de which really, really does everything it can to steal all your time. it's fruit tetris.

There's already several worlds with Suika game adaptations. The one I've seen in is "What A Melon Game".

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"

flavor.flv posted:

I was a live model last night




I have newfound respect for live models irl, I picked my pose on a whim and then I had to stick to it for an hour and everything hurt by the end. It was especially hard to keep still when people started colour picking off my face



If your model's not too large performance-wise, grab the Ragdoll prefab and apply it to a version of your avatar. You can set down a copy ofyour model as a statue with it.

edit: You can get it from Booth, if you're interested.

Neddy Seagoon fucked around with this message at 16:01 on Dec 16, 2023

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"
A reminder today is the annual day all the kids unwrap their new Quests and run right off into VRChat unattended like a screaming barbarian horde.

Merry Questmas, and stay safe in PC-only worlds or private instances when you can everyone :shepface:.

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"

flavor.flv posted:

Just got back from watching a bad 80s movie with some friends in the new MST3K world



This is the only way I'm watching stuff from now on

In the what?! :stwoon:


edit: Wow, this world is fantastic. My favourite touch is it actually slows your movement speed in The Tunnel down to the proper crawl-speed :allears:.

Neddy Seagoon fucked around with this message at 05:27 on Feb 5, 2024

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"
If you've not been yet, go check out the new Sanrio crossover world. It's a VERY fun set of rhythm minigames.

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"

Oxyclean posted:

Really excited to hear world persistence is actively being worked on / "coming soon."

Less excited for when a bunch of world creators inevitably put it behind a paywall

Nah, the ones that could paywall stuff already do so behind a Patreon, and have done for years.

Croccers posted:

Wow even MORE half-finished games of 8-ball!

World Persistence is gonna be invaluable to places with a bunch of post-processing and optimization settings (Eg; club worlds), because now you can just set them once and never have to touch them ever again.

Adbot
ADBOT LOVES YOU

Neddy Seagoon
Oct 12, 2012

"Hi Everybody!"
:siren:If you are planning to buy any avatars off of Gumroad do it now. :siren:

:siren:I mean literally right NOW.:siren:

Stripe and Paypal came down hard this morning and Gumroad's been forced to eliminate adult content from being acceptable on their stores.

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