#development-advanced

1 messages · Page 51 of 1

violet sigil
#

VRInput? Its been public for years

#

its made by valve, its intended to be used for any device inputs in SteamVR

rustic rock
#

Oh you meant OpenVR

violet sigil
#

yes

#

its literally part of openvr

#

and steamvr is built with openvr

#

its only natural to use all the tools provided to us

rustic rock
#

Do we have any idea when the OSC update will be?

viscid night
#

No idea

#

I wouldn't be supprised if its bundled with the avatar update

#

Aka dynamic bones

#

or physic bones

#

whatever they call it

rustic rock
#

I guess we'll know when the beta for that starts

violet sigil
#

i have no idea either, i didn't hear anything about it before

#

so

#

¯_(ツ)_/¯

violet sigil
quaint owl
#

is there a way i can get an issue with vrc fixed , it's a major bug that just breaks part of my avatar cause of it and it's been unaddressed for years

quaint owl
#

Camera components getting deleted when a non friend copies the model.

cinder grotto
quaint owl
#

that's fine that they are visible to only friends but thats not the issue

#

MY camera gets deleted when another user copies my model

cinder grotto
#

That's odd. I haven't had that issue before

quaint owl
#

i don't want to show the camera on non local anyway it's for a face cam or map or scope

#

if i load into a world that has my avatar in it , my camera is deleted

cinder grotto
#

Hmm very weird then

quaint owl
#

its an issue that's been in vrc since 2018

cinder grotto
#

I would imagine that issue is very low on their list unfortunately but it may be fixed eventually. Is there a Canny post for it?

quaint owl
#

there has been multiple cannys about it

cinder grotto
#

Then all we can do is wait. It's most likely low on the list for updates

quaint owl
#

they all say the same as you did , that cameras are for friends only but that's not entirely the issue i want fixed

cinder grotto
#

Make sure the issue is well documented in canny and clearly states the issue

quaint owl
#

if i made a canny about it , is it ok to post it here so people can help upvote it.

viscid night
#

Sure I guess

unborn niche
#

Hello. Does anybody know if it's possible to put more videos playing simoultaneously on a vrchat world? If I put a video on a mesh on unity I can see from the game preview but not in the game. If I use Video Players with default link just the first I put is gonna play because I think ther's a limit

jagged sun
#

dont click this link above :/

split maple
#

So the issue would be that the copied avatar isn't getting a new ID for that texture, because that's how textures work. The original is referenced, not copied. Saves server space

quaint owl
#

so is there any way to fix this behavior ?

split maple
#

Vrchat would have to change something on their servers

#

Otherwise, probably not.

#

I doubt they'd change the system for one single type of texture

split maple
#

All the same, do make a canny post. Maybe it'll get a result

muted ore
#

@peak mountain i just autostart xso with vrc now akko_shrug

quaint owl
#

already made a canny back in 2018 , made another one 2 days ago

quaint owl
#

Can i post the links here to help get some attention to it ?

cinder grotto
quaint owl
#

its a bit hard but i'll try . there is no way i can find out the exact behavior of what happens to the component.

#

there you go i made a valid bug report.

slate mango
#

Does anyone have tips/breakdown on how to build out a HUD? I'm not adverse to some dense reading, but I'm dying trying to experiment to shave this down to be something feature rich and decently opto.

naive peak
#

The usual way that I see is having a sort of mesh like a quad in front of the face. position constrainted to the neck and rotation constrained to the head. Only is visible if it's local and changes what it shows based on parameters.

slate mango
#

think it was called "error's HUD Shader"

#

I guess I could bribe my buddy to program it, but eaargh.

naive peak
#

Yeah the shader part is the most difficult if you want the HUD to change with only one mesh. Otherwise you'd have to use more than one mesh I guess

brazen pier
#

Hi 🙂 ! Does anyone know how to make one video player that plays 1 video at a time but can play different videos depending on what toggle is clicked?

ruby wedge
#

Ok so Ima ask here since it happened again after scrubbing my project: If unity crashes on VRC Build & Upload, my world no longer uploads new versions; Only metadata changes (icon/name/description) get sent.

This is the second time it has happened and I don't have any recourse for fixing this.

How do I "fix" this without the lengthy process of reimporting everything into a new project every time?

ruby wedge
#

I also get this when trying to build for Windows.

#

I've never had this many problems with the Avatars SDK, but the worlds SDK is having issues out of the gate.

#

It also throws Packages/com.vrchat.vrcsdk3/Editor/UPMImporter/UPMImporter.cs(48,18): warning CS0219: The variable 'importedNewPackage' is assigned but its value is never used everytime I try to build since the issues started reocurring.

ruby wedge
buoyant saddle
ruby wedge
# buoyant saddle unimportant, you must look for errors, not the orange warnings

I was. They were different every time. I've got it working now; an editor script from the asset store for creating light-probes wasn't marked editor only. Even though it was removed from my scene, and wasn't a constant editor script (that is, it had to be applied to objects), it was failing to "build".

Unity was just erroneously suppressing the key error until the third time I reimported everything. I also had to re-import udon sharp after it all.

Why it wasnt showing the error before IDK (it was all yellows originally outside of nonsensical reds). And the Android target would actually not throw any errors at all and report a successful upload (It wasn't; no world data would be uploaded; only metadata).

Adding the "if unity editor" tags to the scripts fixed it.

#

I'm getting tired of these editor script issues. Did 2019 change behaviors of editor scripts or something?

ruby wedge
#

In short: The VRCSDK was erroneously "passing" builds on Android, and on Windows, was giving the wrong errors until I seriously cleaned my project.

split maple
#

I wonder if I can get poiyomi to do a hud shader so I can use less shaders..

#

Also smashter has been working to make lyuma's better

thin widget
#

Hi, i am very desperate.. i keep getting this error

#

and when i change my settings properly..

#

it still puts them back to pixel light count 8 and antialiasing on when i compile the map through the sdk

vocal pumice
#

Hi everyone!
Are there any plans for VRChat to be compatible with Unity URP?
Or maybe it is already...

candid owl
last crescent
#

Hello, would anyone be able to help me with a RC Car system I am wanting to add to my avatar? The system I had in mind would be using a 2 axis puppet for moving forward, backward, and turning left and right. as far as making the car actually drive a certain speed I was thinking of using the trigger.

open dew
#

Hi! Do you have any external API for auth and pushing Avatar? or where I could read description about those API?

buoyant saddle
muted ore
buoyant saddle
muted ore
#

yup

open dew
#

Wear the avatars, we need users to authorise through VRchat, We get their current avatar, wear clothing, and send to current users of VRChat new avatar with our clothing

#

how could we handle this?

prime fable
split maple
#

from their name and what they explained..

#

it sounds like they want vrchat to be secondlife

#

get an avatar, get clothes for an avatar

open dew
#

ok somebody knows to whome should I write a message about partnership?

naive peak
naive peak
naive peak
woven gate
#

does anyone know a way to bind a trigger click to a tracker button click?
through any means
valve RMAs be like

cinder grotto
cinder grotto
#

So then why'd you ask?

woven gate
#

🤦🏻‍♂️

sharp pebble
#

Anyone know what to do?

#

It was on attempting to build

light remnant
#

I don't know if this goes here, but I'm trying to do some editor scripting and I CANNOT figure out what method to use to revert a transform. PrefabUtility.RevertObjectOverride() doesn't seem to do anything at all.

#

There aren't errors here, and no errors when my script runs in Edit mode, but--

#

...I mean, I'm really new, but, this is in the Editor script. This is happening in a method that I made and call with a button, not in Update or in my main script or anything.

#

Does that make a difference??

#

The point of my script is to help people calibrate quad rig avatars made on my base, I have my original avatar there and I expect people to use Pumkin's Avatar Tool to copy all my constraints over onto THEIR avatar while they're active. Since other people's avatars have arbitrary proportions, they get all smushed up by the active constraints getting applied to them, since the math is all wrong for them. So I'm trying to get this editor script to go through the list of troublesome constraints, deactivate the constraint, revert the transform, and reactivate the constraint...

#

If I can't figure out how to revert transforms, the whole workflow is gonna get stupider and more brittle from needing extra steps.

naive peak
#

@light remnant
If by reverting a transform you mean setting it back to how it used to bewhen first imported, then I recommend looking into the code of Pumkin's or my method in reverting a hierarchy, both of which are present in pumkin's tools

#

Pumkin's is simpler but requires the prefab. My method is a little complicated and requires the animator's avatar to be present.

light remnant
#

@naive peak does it make a difference that these are all nonHumanoid transforms that I'm working with?

naive peak
#

nope

#

oh another tricky thing about constraints, I can tell that you're attempting to unlock them, let them update their offset, then lock them again. Sadly, it won't work with that way

light remnant
#

Yeowza this (Pumkin's) is WAY over my head, I'll try to look though

#

Yes, I suspected it wouldn't;

#

I saw someone else digging into it and posting this huge chunk of code that got it done

#

right now I'm just trying to get this silly revert thing to work

#

which is a MENU OPTION a user can CLICK

#

so like, why should it be this difficult

naive peak
#

the property you're looking for is constraint.locked, however for some reason, the constraints themselves need some time to update the offset after being unlocked

#

Yeah Editor scripting can be easy or the most horrible thing you do depending on the purpose heh

light remnant
#

Oh, is all they need time? Yeah I need to do "user presses the ACTIVATE BUTTON" on them

naive peak
#

you can make the user press a button after a bit of time on an "Activate" button, which would iterate through the constraints you unlocked and lock them again

#

but then again, what if the constraint was inactive, what if the weight was 0

light remnant
#

Yeah I think I'm gonna make three buttons or at least three methods

naive peak
#

so many things to consider keDerpy

light remnant
#

Deactivate all, BIG RED BUTTON that reverts transforms somehow, reactivate all

#

And, this is my personal highly specific base for being on 4legs so I do know the constraints

#

They're all active, they all have weight.

naive peak
#

lol yeah some dumb things can usually work, I do it often

light remnant
#

The point of the editor scripting is so people too frightened to do anything can still do it

#

so I can assume they haven't TOUCHED STUFF you know, to begin with

naive peak
#

I see nodding

light remnant
#

it can be as brittle as it likes, as a tool, I don't mind, it's still a huge improvement

naive peak
#

I'll isolate my way of resetting an avatar and send it to you as a method, should be easy to copy paste then just call

light remnant
#

ohhhhhhhhh my god, thank you

#

I can at least have a hope in heck of UNDERSTANDING the concept a little bit

#

The whole script works great except for this one super important feature...

naive peak
#

luckily I already had it isolated apparently HanaOooh

#
    public static void ResetPose(Animator animator, bool fullReset = false, bool position = true, bool rotation = true, bool scale = true)
    {
        if (!animator.avatar)
        {
            Debug.LogWarning("Avatar is required to reset pose!");
            return;
        }

        // Humans IDs if not full reset, otherwise All Ids
        // ID > Path
        // ID > Element > Transform Data
        Undo.RegisterFullObjectHierarchyUndo(animator.gameObject, "HierarchyReset");
        SerializedObject sAvi = new SerializedObject(animator.avatar);
        SerializedProperty humanIds = sAvi.FindProperty("m_Avatar.m_Human.data.m_Skeleton.data.m_ID");
        SerializedProperty allIds = sAvi.FindProperty("m_Avatar.m_AvatarSkeleton.data.m_ID");
        SerializedProperty defaultPose = sAvi.FindProperty("m_Avatar.m_DefaultPose.data.m_X");
        SerializedProperty tos = sAvi.FindProperty("m_TOS");

        Dictionary<long, int> idToElem = new Dictionary<long, int>();
        Dictionary<int, TransformData> elemToTransform = new Dictionary<int, TransformData>();
        Dictionary<long, string> IdToPath = new Dictionary<long, string>();

        for (int i = 0; i < allIds.arraySize; i++)
            idToElem.Add(allIds.GetArrayElementAtIndex(i).longValue, i);

        for (int i = 0; i < defaultPose.arraySize; i++)
            elemToTransform.Add(i, new TransformData(defaultPose.GetArrayElementAtIndex(i)));

        for (int i = 0; i < tos.arraySize; i++)
        {
            SerializedProperty currProp = tos.GetArrayElementAtIndex(i);
            IdToPath.Add(currProp.FindPropertyRelative("first").longValue, currProp.FindPropertyRelative("second").stringValue);
        }

        System.Action<Transform, TransformData> applyTransform = (transform, data) => {
            if (transform)
            {
                if (position)
                    transform.localPosition = data.pos;
                if (rotation)
                    transform.localRotation = data.rot;
                if (scale)
                    transform.localScale = data.scale;
            } };
    
        if (!fullReset)
        {
            for (int i = 0; i < humanIds.arraySize; i++)
            {
                Transform myBone = animator.transform.Find(IdToPath[humanIds.GetArrayElementAtIndex(i).longValue]);
                TransformData data = elemToTransform[idToElem[humanIds.GetArrayElementAtIndex(i).longValue]];
                applyTransform(myBone, data);
            }
        }
        else
        {
            for (int i = 0; i < allIds.arraySize; i++)
            {
                Transform myBone = animator.transform.Find(IdToPath[allIds.GetArrayElementAtIndex(i).longValue]);
                TransformData data = elemToTransform[idToElem[allIds.GetArrayElementAtIndex(i).longValue]];
                applyTransform(myBone, data);
            }
        }
    }
    struct TransformData
    {
        public Vector3 pos;
        public Quaternion rot;
        public Vector3 scale;
        public TransformData(SerializedProperty t)
        {
            SerializedProperty tProp = t.FindPropertyRelative("t");
            SerializedProperty qProp = t.FindPropertyRelative("q");
            SerializedProperty sProp = t.FindPropertyRelative("s");
            pos = new Vector3(tProp.FindPropertyRelative("x").floatValue, tProp.FindPropertyRelative("y").floatValue, tProp.FindPropertyRelative("z").floatValue);
            rot = new Quaternion(qProp.FindPropertyRelative("x").floatValue, qProp.FindPropertyRelative("y").floatValue, qProp.FindPropertyRelative("z").floatValue, qProp.FindPropertyRelative("w").floatValue);
            scale = new Vector3(sProp.FindPropertyRelative("x").floatValue, sProp.FindPropertyRelative("y").floatValue, sProp.FindPropertyRelative("z").floatValue);
        }
    }
light remnant
#

\o/

naive peak
#

but as I said, requires the Avatar on the animator, this is automatically already present on characters that are rigged

light remnant
#

I didn't know the Avatar apparently saved all this stuff, is that what you're taking advantage of?

naive peak
light remnant
#

Thank you so much, I hope I'll be able to get it to work, but I'm just glad there is a way to handle doing the stupid thing I want. And I am glad that it is this long, and complicated, and requires making a bunch of arrays and retrieving a bunch of saved default position stuff from a secret place and then just applying it to everything in the avatar. Makes me feel better. d:

#

It would be rough if I'd spent three days bonking my head against something simple.

naive peak
#

No problemo and good luck AquaSaluteSent

muted ore
#

nvm i saw you got the code from them

naive peak
#

That's my code lol

#

I implemented it for pumkin, or more like sent it to them

muted ore
#

O-O

next citrus
#

Imagine if that invite system behind external verification process would work, only problem is VRC dont have really invite only instances because anyone can share link

#

I want to create just thing where users can enter instances but only if they idk have role on some discord, if they are not banned in any way, sub rank on twitch or something more

#

Ingame itself prevents anyone dropping portal or inv anyone in Invite only instance but anyone in that instance can just share link and bypass that

#

After creating ticket to VRC i got redirected to create feature-request on feedback meanwhile 2 months after creating that its still not active soo thats uh

light remnant
#

Incidentally, while I would REALLY have liked the targeted ability to JUST revert specific transforms... since Pumkin's tool already had Dreadrith's code Pumkin's tool of course works to reset my avatar XDDDD

#

However I have a new problem, I am trying to use editor scripting to get at some rotation constraint SOURCE weights.

#

Not ordinary weights--I've gotten at those, and it works great.

#

But I can't seem to get at the SOURCE weights.

#

trying to figure out how to paste code here...

#
        if (GUILayout.Button("Enter Forefoot Pickup"))
        {
            Debug.Log("Well, I registered that the button was pressed.");

            RotationConstraint rotationConstraintShoulderL = myAnyTaurScript.shoulderObjectL.GetComponent<RotationConstraint>();
            ConstraintSource constraintSource0ShoulderL = rotationConstraintShoulderL.GetSource(0); //This should return the first constraint source, which is a transform identity and current weight of 1.
            ConstraintSource constraintSource1ShoulderL = rotationConstraintShoulderL.GetSource(1); //This should return the second constraint source, which is a transform identity and current weight of 0.
            constraintSource0ShoulderL.weight = 0.0f; //This should set that source's weight to 0.
            constraintSource1ShoulderL.weight = 1.0f; //This should set THIS source's weight to 1.

            RotationConstraint rotationConstraintUpperarmL = myAnyTaurScript.upperarmObjectL.GetComponent<RotationConstraint>();
            ConstraintSource constraintSource0UpperarmL = rotationConstraintUpperarmL.GetSource(0); //This should return the first constraint source, which is a transform identity and current weight of 1.
            ConstraintSource constraintSource1UpperarmL = rotationConstraintUpperarmL.GetSource(1); //This should return the second constraint source, which is a transform identity and current weight of 0.
            constraintSource0UpperarmL.weight = 0.0f; //This should set that source's weight to 0.
            constraintSource1UpperarmL.weight = 1.0f; //This should set THIS source's weight to 1.

            EditorUtility.SetDirty(target);

        }```
#

There are no errors here. I'm extreme beginner macaroni art still, so I'm using GameObject.Find().

#

And yet this button doesn't do anything.

#

myAnyTaurScript.shoulderObjectL definitely exists, I successfully get at its constraint weight elsewhere in this script.

#

I can't find hardly ANY documentation about getting at source weights, I guess nobody else ever tries to work with this...? Or if they do, they don't find it confusing. -_-

#

If anyone has any advice on things to try I'd be very grateful.

Right now I'm going: get the rotation constraint component from myAnyTaurScript.shoulderObjectL, then get its first constraint source, then get its second constraint source, then try to change the .weights of those constraint sources.

But nothing happens...

#

All I can think of to try next is make the constraint sources be public variables maybe??? But I don't understand why THAT would work, if THIS doesn't.

#

Man life is hard when your brain is the size of a walnut. I'm pretty sure they need to be public variables lmao. If that doesn't work I'll come back and ask again.

light remnant
#

RIGHT OKAY SO.

I can currently change rotation constraint weights just fine. I added a bunch of public variables for the source weights I'm trying to change, and I handled them in the exact same pattern as I did the rotation constraint weights, which, again, I can work with just fine.

But nothing happens to the source weights when I click the button in the image attached.

I can follow the variables back step by step and each one is pulling info from the previous thing correctly.

#

Can I not... change source weights on an active rotation constraint?

#

I can do it manually no problem!

#

My horrible beginner code is completely working right now, but if I can't change source weights from Edit mode with editor scripting, I can't expand my functionality at all.

#

.weight even properly knows it's supposed to be for a SOURCE weight.

naive peak
#

The constraints have methods dedicated to manipulate the sources present on the constraint

#

Example of changing the source at index 0

#

I think SetSource requires you to have a source already present in index 0 though. Otherwise if it's new, use AddSource

light remnant
#

Thank you so much!

shut crane
#

Does anyone have recs for documentation to get started with developing a Unity plugin for VRCSDK? I've not done it before and all the resources seem incredibly outdated

muted ore
#

You can have an apibot send invites to users

#

you can create oneclickjoins for users aswell where users can start the game to said instance or invite themself via vrc web

next citrus
#

i have that already but if someone joins invite only instance

#

then can go to website and copy link to share to anyone

#

and bypass inv only stuff kekm

muted ore
#

yup

#

thats a design flaw with the nonce system imo

#

nothing to do about that

#

@next citrus you can have a headless acc check for joined players

#

and make the bot contact an admin acc if a non invited person is in the instance

naive peak
#

The bot can just kick the users that join without an invite since it likely can have a list of who is actually invited.

muted ore
#

unless youre talking about using an avatar to crash them but thats an assmove

#

more isnt possible in vanilla currently

naive peak
#

Oh no lol, I meant kick kick. Yeah didnt think about it, I shouldn't talk about things i've no experience in

muted ore
#

best headless clients can currently do is sit in worlds, analyze their log and restart

#

You might be able to utilize udon tho and stuff like autohotkey

#

Like jump 5 times to kick the 5th user that totally joined or rejoin with a modified avatar float parameter and read that by udon

#

but idk if udon can even kick ppl

#

udon can crash users but thats maliscious imo

muted ore
#

Who pung me in this channel

light remnant
#

@naive peak everything's going great for me thank you so much with help with struct syntax for sources; all the stuff I need to do with them is working flawlessly!

However, now I'm trying to set ParentConstraint.translationOffsets, which is also a struct (Vector3[]) and I think I'm really close but I just can't figure out how to phrase what goes in these brackets:

#

GameObject.Find("helper.sit.parent.constraint.two").GetComponent<ParentConstraint>().translationOffsets = new Vector3[] { x = 0.0f, y = 0.0f, z = 0.0f };

#

when I have x, y, z I get an error about protection level of x y z

#

There's some weird stuff on my rigs that needs to be manually set to the hind hips on new avatars of arbitrary proportions, so I'm trying to add a parent constraint, zero it, and then remove it, to put things in the right place. I can add it fine, and even activate it, but I'm trying to figure out how to "zero" it

#

which I'm assuming is this way.

naive peak
#

Are you only using the constraint as a way to force the object to be the exact same position as the target?

light remnant
#

Yes.

naive peak
#

You can do that by just setting the transform position

#

yourObject.transform.position = targetObject.transform.position;

light remnant
#

Thank you, I just figured I COULD do it this way, but clearly like... not

naive peak
#

You can but it's really overcomplicating it huh

#

I'll explain why you were getting an error either way though

#

You were declaring a new Array. Meaning the object initializer, which is what exists between { }, must be populating the array with what it contains.
It's a Vector3 Array, meaning the objects inside would be declared as Vector3
an example would be
= new Vector3[] {new Vector3(0, 0, 0), new Vector3(1, 1, 1)};

light remnant
#

OH! Okay!

light remnant
#

Okay I'm on... my VERY LAST struct... everything else is working/I can handle myself with what I know already.

I have to synchronize a value across not only the avatar in the Scene, but an .anim file in the project. Apparently there IS language for doing this, the (float, constraint weight) curve info I want to change is treated as a struct (when it's an entry in an .anim file). However, the docs for 2019.4.etc say that I should be using SetEditorCurve/GetEditorCurve/etc, basically "EditorCurve." However I seem to only be autofill prompted for SetCurve/GetCurve, SetEditorCurve/GetEditorCurve error out.

If I'm reading the documentation right, using UnityEditor should give me access to SetEditorCurve/GetEditorCurve... why can't I get at them?

Once I get past THAT, I will then need to figure out how to phrase my value as a struct. Obviously I'm going to try to figure it out myself but if you know off the top of your head I'd really appreciate just being able to copy you. I mean like I WILL try. But you just telling me last time allowed me to make a ton of progress, really quickly ^^;

#

I seem to be able to put the clip into a local variable fine, but after that, I can't figure out the syntax for doing anything further to it.

#

@naive peak

warm niche
naive peak
# light remnant <@!196328481460584448>

I'm confused, what are you trying to do? huh
You can add a property curve to an animation clip using SetCurve yes. You only need the curve binding if you're getting the information previously present on the clip and maybe change its values

#

SetCurve will replace the previously set animation curve of a property if the information matches, such as the property path and object type

light remnant
#

The documentation is confusing me I guess, because it talks about this other method, SetEditorCurve...

#

Yeah, basically, I'm:

#

taking a constraint weight value, and changing it on the constraint itself, but ALSO in this .anim file I have, where it gets reset "to default."

#

So if I change the default, I need to update this .anim file.

naive peak
#

Is the new value relative to the old value or do you already know what the curve would be?

light remnant
#

I can set it new every time, I already know what the curve should be.

#

It's also a 1 frame animation too

naive peak
light remnant
#

it's like, for "utility" purposes

naive peak
#

ok then you only need the SetCurve method

#

Are you modifying the constraint's weight or a source's weight?

#

Here's an example

            string propertyName = "m_Weight";
            float yourWeightValue = 1;
            string pathToConstraint = AnimationUtility.CalculateTransformPath(yourConstraint.transform, animatorRootTransform);
            AnimationCurve animationCurve = new AnimationCurve(new Keyframe(0,yourWeightValue), new Keyframe(1/60f, yourWeightValue));
            yourClip.SetCurve(pathToConstraint, typeof(RotationConstraint), propertyName, animationCurve);
light remnant
#

(Thank you, running errands, will implement)

golden sky
#

Not strictly VRChat related, but has anyone attempted to port Shader-Motion data to a webGL 3D environment?

#

I remember seeing something about this on Twitter eons ago, but now I can’t find it.

finite fulcrum
#

Ok, so largely ridiculous idea to get around the limits on floats/ints if you need a fairly large number of them once the avatar dynamics comes out.

First, create a centrifuge-like arrangement that's invisible to everyone with a collider on the end that's spinning as fast as the network sync will allow (◊) that collides with a bunch of triggers that turn on/off a bunch of bools when collided, lets say a total of 8 for the sake of this example, with only one bool active at any given time.
There's exactly one float/int that is the target parameter that we want to update over the 8 values we want to be controlling.
Each of the 8 input sets to the float/int value (The other arrays of triggers being collided by some form of collision based on some linear or rotational amount) are turned on/off with the collision centrifuge so only one out of the 8 input sets changes the float/int value at any given time by way of turning on/off the input sets with a animation.
In the animator area, the transition to each animator is “If the corresponding one of the 8 bools is on, proceed”, which proceeds into a 1D animation blend tree, which is driven by the single float/int value we're wanting to use.(◊)

So in theory, you could “mechanically” multiplex 1 float/int into multiple float/int driven animation changes, with the sacrifice of update rate depending on how quickly we can cycle between all of the bools with the centrifuge. Myself, if I were doing this for the obvious purpose of animating a bunch of fingers on a wing + the elbows, would probably split this between two centrifuges with 5 flip-switch bools (4 fingers + elbow) each. Possibly for other things as well, but it remains to be seen if such a thing would in fact work.

Or, we could just have more network bits to work with. OR, or, I don't know, have direct axis rotation constraints making all of that effort completely redundant, that would be great too.

#

(◊) These two are gonna be the crux of whether this would hypothetically work. Former updating at a rate that's reasonable for largely real time movement, latter assuming you can in fact animate a thing to move and stay in that position that only changes to a new position when you tell it to move again.

cinder grotto
#

There's much much simpler ways already

#

That sounds horrible for both performance and the user to set up

finite fulcrum
#

No for simpler, but yes and yes on the other two.
We straight up don't have enough bits to do things I'd like to do with what's coming. Or straight up we need direct axis rotation constraints so I don't have to go through that hypothetical nightmare.

cinder grotto
#

You can already specify specific axis a Constraint affects

finite fulcrum
#

No, that's not how that works.

cinder grotto
#

Plus, you really do not need more than 128 toggles

upper plover
finite fulcrum
#

You can tell it to only rotate one or two axis, but that's still relative to the avatar space, not a direct "Y axis rotation on this object = Y axis rotation of this other object."

cinder grotto
finite fulcrum
#

And yes, when that limits you to 16 floats/ints, the first 8 of which are the only ones that get updated at a reasonable rate, that's not enough for anything once you need a decent number of them.

upper plover
candid owl
#

question what are you trying to do that would require so gosh darn many toggles

upper plover
#

Floats eat up space fast

cinder grotto
#

Why do you need that many floats though

upper plover
#

I don't know what Dragon's using them for, but I'm going to need a lot of floats for custom touchable UI effects

finite fulcrum
#

Drive back bat wings on a avatar with your IRL arms, then switch back to your 'normal' arms on the fly (Which because, again, no direct axis rotation constraints means you're severely limited to how you design your character if you wanted to do it now, in a way that doesn't look great, plus makes having the fingers spaced correctly impossible as the Unity Humanod demands your fingers all be straight with Knuckles controllers)
And other things I'd like to try, like driving tail movement with the difference between the hips and head/chest, plus generally having all of the other things a given avatar may have at the same time.

cinder grotto
finite fulcrum
#

And they all look less than optimal because of the previously stated limitations.

cinder grotto
#

They actually look fine with no issues

finite fulcrum
#

Plus I don't know of any avatars that let you swap between arms/wings on the fly anyway.

cinder grotto
#

The avatar I'm talking about can toggle the wings with the arms

finite fulcrum
#

No, they don't. None of them have fingers that flex properly, because again, no way to drive two things that aren't on the same avatar space axis of each other.

cinder grotto
#

Why would you want fingers to not be local space?

finite fulcrum
#

You want the main axis of the finger you want to move, move the main axis of the wing finger you want to move, but you don't want the axis of all of the wing fingers to be in a straight line parallel to each other, because that's not how bat wings work. Which is what you currently are demanded to do because to set up a unity humanoid demands you have your fingers set straight parallel to each other.

cinder grotto
finite fulcrum
#

Define "Offsets", because I've certainly never seen anyone use anything that remotely would be useful for this purpose, given again, the inherent nature of how the relevant systems work.

finite fulcrum
#

Those constraints define how far the starting position the constraint is relative to its normal starting position (The zero position), not how far off-axis the constraint operates.

cinder grotto
#

Right but you can provide it the offset of the constraint transforms that you want it to rotate with

finite fulcrum
#

It will still rotate relative to the avatar space not the local axis-to-axis.

#

So for the sake of example, I want to have the selected pole rotate around its current X axis by the equivalent X axis of the other pole, represented by the two discs they're at the centre of.

#

So this is the desired result, as rotated manually by myself just now.

#

...So with the rotation constraint set up like so, with the Rotation offset and everything (Cylinder 2 being the other pole)...

#

...This is what happens. The rotation constraint constrained to the world axis (the avatar axis in-game), instead of the equivalent axis of the object we're constrained to.

#

That's the crux of my problem. It is not possible to get around this with the systems available that are whitelisted in VRChat, because no custom scripts.

cinder grotto
finite fulcrum
#

Trust me, if you think what I was proposing was silly, the amount of jank required to get that working, in a far more limited and less functional capacity blows the suggestion above out of the water.

shut crane
#

Is there currently any supported way to communicate with peripherals from VRChat? I heard some sort of API or communication layer was announced in a dev stream -- but for the time being would I just be on my own?

pale rose
shut crane
normal aurora
#

is there a tidy way to sync a RenderTexture yet?

buoyant saddle
#

it's possible but there is no tidy way i know about really, what do you intend to do with it? what's your goal?

exotic frost
#

ok im really sorry to send again but its still brokeeennn I have an object in the scene with vrcobjectpool that this is referencing and its like messages that go on a ui, I know there are prefabs for this but its for a uni project so I need to show my working n that but yeah is there anything that jumps out as wrong here? it all goes fine for me, but doesnt appear for other players

light remnant
#

vrcSkull vrcSkull vrcSkull Okay my explanation sucks let me rephrase clearly… just deleted a huge chunk of text… If I understand what you want, DragonSkyRunner, you can get close by this method, close enough that I don’t think you really need anything but what we already have:

#

Put your Humanoid arms flat tpose and then duplicate them. The dupes will be unweighted game empties, this is fine. Make a control bone/transform at the base of the shoulder bones of the dupes, put a parent constraint to the Chest there so your dupe arms are stuck to your Chest with a parent constraint but the shoulder transforms are free to animate.

#

Pose your wings flat t-pose as well, with your wing fingers approximating what the Humanoid fingers are doing as closely as you can stand since I know you rly want wing finger action. And, the wing fingers won’t ALWAYS be in such an extreme hand pose. This is just for when you’re using them as hands.

#

Rotation Constrain each of your wing bones with two sources, one to your arms, one to your dupe arms, to the appropriate bones. Fingers too.

#

Make an .anim that turns all your sources to real arms, and another that turns all your sources to dupe arms.

#

Activate your constraints at strength 1, first source at 1 to real arms, second source at 0 to dupe arms.

#

Now your wings will be your arms until you switch them to the dupe arms—here’s the key, ANIMATE YOUR DUPE ARMS to animate your constrained wings!

#

Do absolutely whatever is necessary to your dupe arms to get the effect you want.

#

Do it in Unity if you hate yourself, or make your extra arms in Blender or whatever and animate them with better tools (but you won’t be able to see how they drive the wings there, be ause Blender cannot actually do Unity style constraints).

#

Twisting and wrecking the dupe arms and fingers however you like will give you complete, if laborious, freedom to animate your constrained dragon wings which will SEAMLESSLY be able, since both sets of arms they’re constrained to are exactly the same in proportion, to switch between modes, active-following and animated.

#

You don’t actually need offsets unless you’re trying to re-use existing animations and you absolutely COULD, but you’d just have to add a little extra offset transform just stuck to each original-animation-wing-bone, and when you swapped your constrained wings to the anim offset transforms, you’d need to manually rotate all of them around until your constrained wings “looked right”.

#

Personally I’d just straight animate a set of dupe arms.

#

I actually just rigged a dragon model to use wings-as-hands but I didn’t constrain the wingfingers like I know you want. I will though, either a little later or tomorrow. I’ll show you how close I can get to decent behavior with this.

#

The wing fingers are always going to “rotate like” the Humanoid fingers, from whatever pose they begin in… rotation constraints aren’t arbitrary drivers of rotation, they ONLY do the one weird thing they do, yeah. So all you could do is reposition your wing fingers so that they would BE prepared to “rotate like” the human fingers, when it was time for them to do so. And then use the dupe arms to compensate for whatever weird stuff you had to do to them for them to have good hand-following behavior (in this case, the dupe arms, which you can animate fully arbitrarily, would act in place of a traditional offset). That’s the best that can be managed.

#

But it CAN be managed.

unreal sable
#

Hello there - does anyone know where to get avatars with facial and eye tracking implemented so I can test the HP OMNICEPT? Generic avatars not working. Thx in advance

light remnant
#

Think you need to play Neos VR to take advantage of that, VRChat doesn’t support it yet.

#

People on Neos are super friendly and helpful though. Just show up anywhere there and ask.

candid owl
#

and basically vrchat doesn't have it on the moment as they're trying to implement a input system in a general manner so they don't have to hard-code support for every weird widget

finite fulcrum
# light remnant <:vrcSkull:585749770442899466> <:vrcSkull:585749770442899466> <:vrcSkull:5857497...

As far as the dupe arms being flipped between the 'real' arms and the wings, that was basically already how I was planning on doing that end of things. It's the "Pose your wings flat t-pose as well, with your wing fingers approximating what the Humanoid fingers are doing" that's the problem. For getting that fairly specific wings-on-back look, there's no real way to have them set up design wise that's not as I usually have my main guy, because of wing membranes and splayed finger positions. Any amount of trying to modify the wings to match up what the Unity Humanoid is set up like is gonna completely wreck the wings. And modifying the Unity Humanoid arms (the dupes) doesn't really work either, as it doesn't matter what angles you stick your limbs, the Humanoid always wants your fingers straight out parallel to each other, with flat hands and largely straight arms.
End goal is "Flip between IRL arms driving character arms and IRL arms driving wings", which if you constrain the design of the wings to follow how the Unity Humanoid sets up arms, it's very much possible now. But having parallel wing fingers, doesn't really work. Plus basically negates any ability to have large wing membrane surface area as the weight paint would become borderline more impossible than it already is.

The largely insane initial proposal above already is slightly more refined at this point to something that's not completely insane, but it still remains to be seen if there's any issues/bottlenecks going from theory to practical application. Thanks for the advice, but I'm still gonna gun for float/int multiplexing as that's still hypothetically the best way to get exactly what I'm hoping for with the systems available in the near future.

warm niche
light remnant
#

This is my neutral wings pose.

#

This is Chicken Dance with it.

#

To me, this looks more or less like what bat wings do. Those suckers can fold them up quite a lot when grooming themselves, etc.

#

This model had some challenges (all the wing fingers share the exact same pivot, and there's no "wing hand" transform so I had to do some weird stuff to get past that) but I think it still did fairly well.

#

I know you're extremely good at webbed wing weight painting, certainly the best I've ever seen, so if you don't think Your Weight Paint + simply learning not to do the things that really wreck it isn't good enough for you, then I concede the point.

#

This is my "constraints activate" wing A-pose, in this instance, as Potato here is currently rigged as an AnyTaur. Plus the A-pose arm angles I tried to match.

#

So long as this is the position from which the constraints are initially activated, the wings will perform like this as hands. You don't have to match the finger pose perfectly, but the closer you get, the more it helps (fingers will spread a little bit in-game). Here's an example constraint; every single constraint looks like this, the first source is to your actual Humanoid arm, the second (currently blank) source is for your dupe arms, which should have your Chest as their parent, and which you should be animating to do your wings-carried-folded, wings-spread, wings-flapping, etc., poses.

#

You are free to animate the dupe arms to get exactly the effect you want in your constrained wings. It won't be as straightforward as regular animation since you'll need to be moving them in ways that "compensate for" their initial activation as hands.

#

@finite fulcrum

#

Some options to deal with how very, very much the wing webbing is being expected to stretch around that elbow... this is full direct finger-to-wing-finger constraint. I'm gonna try to have only the wing index finger fully constrained to the index finger, and have the other wing fingers just try to maintain the curve, then try chicken dance again...

light remnant
#

Okay I think I kind of crungled up the wing fingies, but the MAIN takeaway of this one is, if you constrain the pinkie wing finger as a stabilizer instead of as a pinkie, you can really reduce the stress on the membrane right around the elbow joint. Here the index wing finger is an index finger, and the middle and ring and pinkie wing fingers are just doing "partial to their index-finger-side neighbor, partial to stabilizer (the forearm)." THAT'S not the best strategy obviously but I have other stuff to do so I have to stop here ^^; again, takeaway is pinky-as-stabilizer reduces a ton of strain around the elbow joint.

#

Sorry, should probably put the same dance. Obviously too much is being asked of the ring finger in this setup, that's why it's failing to solve, but various strategies can be tried... straight hand constraint is most robust, and "I inherit rotation only from my parent, and my rotation constraint is partial weight to a stabilizer" is imo tied for it with being robust and p much never failing to solve.

#

Trying to constrain to neighbors who are constrained CAN work well, my wing feathers do it, but it's the least robust and may not be feasible at all for wing fingers, but like... don't give up... you should start from here and keep picking at it... I'm too busy atm but I probably will

#

I'm not SURE I understand why you keep referencing "carrying your wings on your back as a backpack" as a problem. Simply pose your dupe arms so your constrained wings go into that pose. I have... MANY... avatars that switch between wings-as-hands and wings-in-an-arbitrary-folded-pose. Unless I'm not understanding the specific problem you're trying to convey, there's... no problem! There's zero problem and you can simply do this.

#

Here's a differently-constrained, regular AnyTaur ver of Potato here swapping between hand-following and arbitrary folded pose:

#

He's swapping his wing constraint sources to dupe arms posed in a folded way.

If I wanted him to instead hold up his wings and idle them, like yours in your backpack, I would simply animate the dupe arms to be doing that. Right now they're just downstream of a constraint that allows each folded wing to inherit 0.5 of the Humanoid's same-side shoulder rotation.

#

The only issue one might run into here is when animating constraints you sometimes need a "wait state" at the beginning and end of each constraint animation, where it holds for a handful of frames fully constrained one way to begin with, and then at the end, holds for a handful of frames fully constrained the other way, because the values take time to "catch up" and if they don't get ALL the way there during the animation, a little bit of constraint to the prior thing will get stuck going forward.

#

Also, if you're expecting the wings to go from one pose to another pose they can "blend" through an inappropriate failure-to-solve state, if this happens to you, you have to have the .anim go, "Start out one way, transition to 0 weight and 0 source strength to everything, then blend up into being the other way."

#

That's it! That's everything I know about hand-following wing constraints that also need to go into other poses.

finite fulcrum
# light remnant This is my neutral wings pose.

I genuinely thank you for all of the advice and visuals here.
It's so much more straight forward when the wings in question are practically parallel to what the human arm rest pose would be anyway, like you have with a quadruped set of wings on a back here, as everything lines up fairly naturally. When the wings are perpendicular (And at a angle) to the human arms though, it makes things far more annoying with trying to keep the mesh looking nice with all of the twisting around that's required, especially with the weights on the wing arm membranes to the body, and around the wing shoulders, are less than perfect.
Despite that, I might end up doing a "Animate wings into broken pose to match human arms when human arms are puppeting wings, with the expectation in-game the wearer poses the wings naturally." Which if it turns out multiplexing so many axis doesn't work out, I might just try. But it's the wing fingers that is the sticking point we can't get around with just constraints. Making it so it's just the pointer finger that is doing things and all of the other splayed fingers are loosely pulled along for the ride is certainly one way to handle it, but for me, this whole excursion is entirely pointless if I can't flex all 4 of my Knuckles tracked fingers on each hand and have that translate directly, on the correct axis, to the equivalent wing fingers at the correct angles.

Plus, while I have my primary use case, trying to multiplex as many floats and ints as I can get away with has practical purposes entirely removed from getting wings to look good. And for that reason, I really want to try to get 14/20 ints out of 2, for anyone else that needs a metric butt-load of floats/ints for things but literally can not work it with just 16, which leaves room for literally nothing else (In practical terms, only 8 when put into the first 8 parameter slots, as anything past that updates at a abysmal rate).

finite fulcrum
#

Also, Cynder when?

light remnant
#

I was actually imagining that the absolute WORST CASE scenario with that model, if, with my new knowledge, I can't solve the ninety minusninety offsets, is I just use parent constraints to stick references all over the damn "original armature" from the outside. With all of them set to 0,0,0 rotation, and the FBT Humanoid ALSO peppered with 0,0,0 rotation references in the same way, the actual weighted Cynder model will only ever be having to swap sources between FULLY ZEROED TOTALLY THE SAME NO PROBLEM transforms. Goddamnit.

stable grove
#

does anyone know if it's possible to make puppet movement but using my arm movement using blendTree?

#

Without using dynamic bones

languid sky
#

Is there an udon/unity event for the menu opening?

#

Or some way to catch one?

muted ore
languid sky
#

Yeah I just saw! Thank you!!

molten nebula
#

is it possible to script in C# and actually use your own scripts on your avatar?

#

or does everything need to be done through Udon

near bronze
#

You can use a tool called udonsharp to compile c# into udon

#

but udon cannot be used on avatars

tawdry quiver
#

Anyone got good config json recommendations for particles and dynamic bones?

remote yoke
#

How close are we to the new sdk update with the avatar dynamics

warm niche
#

Some folks have said it'll be out sometime this summer

#

Don't quote me on that, btw

muted ore
#

Does anyone know how to detect idling in steamvr? Eg last button input time

muted ore
#

i mean maybe the log itself would eventually stop receiving entries right?

#

guess i'll just do it via the quest (have it send pings to my presence api when the screen is on), as its own idle lock based on head detection is good enough

#

would also finally replace the vr-check based on wether vrchat.exe is running with an actual check if the quest is unlocked :3

golden aurora
#

Hi, does anyone know if it is possible to batch upload avatar?

muted ore
thorn tapir
#

Guys, for some reason when using lyuma emulator my Float variable is getting over 1 when testing.. Any ideas what is going on ? Is this just the emulator or is this going to happen in game too ?

slate mango
#

Does anyone know what layer the capsule collider for avatars is on, need it for particle collision reasons.

untold flame
#

Is it possible to log the movement, button presses, etc, of everything you do with the controllers?

Reason I ask is because I am wondering if it’s possible to “wrap” the controllers and expose an alternative index controller to be used by the game.

#

I want to expose an openvr driver that simulates controllers, but I need input for it from other existing controllers and I don’t know how to do that.

untold flame
#

Come to think of it, I think there's no exclusive lock on reading controllers is there? I could just write another app that connects to and reads a controller like any other game and just run them both simultaniously?

little zenith
#

Hi Im wondering if anyone can help with Videos not playing in editor. They work fine when published to worlds but cant seem to get the youtube vids playing when in editor. Have tried adjusting firewall settings, making sure I have latest media packs, updated drivers. Still no luck. I have tried with various video players too.... Any tips?

little zenith
slate mango
#

So, there's definitely a way to do this, but heck if I know.
Particles colliding with/bouncing off of avatars. I'm guessing it's a specific layer that the avatar pill collider falls under, does anyone know what it is?

haughty blaze
slate mango
spring cipher
#

The last week

#

Last week again

hearty solar
#

hello..

thorn tapir
#

Dude stuff appearing differently for the user client and for the observer clients is making me mald so bad

#

It's like "Ok, so on the user client everything works on but with the observer client 1 animation does not play.. I wonder what is going on from their POV lol"

#

Nevermind, on a second try the day and month advancement actually worked
But man syncing booleans so the result is the same on both clients is like vrcHappy 🔫

#

(Day of the week is out of sync here don't worry I was manipulating values)

thorn tapir
# cinder grotto What is this for?

A watch for VRChat avatars, tell (and keeps) time, date, month, year, day of the week and indicates leap years (and also takes them into account at February the 28th at midnight, so the calendar is perpetual)
I am also doing buttons for worlds that synchronize the watch with system time

cinder grotto
thorn tapir
cinder grotto
cinder grotto
thorn tapir
#

Do you have examples ?

rocky terrace
#

even if you can use OSC you need to put the watch into all the avatars

thorn tapir
#

Well that's great.. All my work in vain now ?

cinder grotto
#

I mean you could continue, since OSC requires an outside application to communicate the data. But it's way better for your use

rocky terrace
#

my reply is to @cinder grotto

cinder grotto
thorn tapir
#

I will probably do both, but first I will finish my own project

rocky terrace
#

OSC only works for your own avatar right now

thorn tapir
#

I have the buttons for the UDON Done already

cinder grotto
thorn tapir
#

Like I basically finished the prototype yesterday and it works well so I'm gonna go forward with it

rocky terrace
#

i mean everyone can see your watch but I think what Fuujin is making is a watch for each player

thorn tapir
#

I can do OSC later, it will just be different way to input the data in

#

No I am making a watch you can put on your avatar as a prefab basically

rocky terrace
#

ah i see

thorn tapir
#

You can wear all around VRChat

rocky terrace
#

nevertheless using OSC means you need an external program so its not really user friendly lol

thorn tapir
#

Yeah

#

In my method you just either go to a premade world to sync the wath, or you can add the buttons to your world if you have one

rocky terrace
#

it would be dumb to try to make something that's user friendly

thorn tapir
#

Also manual time adjustment is provided in the avatar menu

#

OSC will be provided as a different means to set the parameters, some people might like it more, fair

viscid night
#

This is really good because with support for QUEST, it means anyone with a quest can basically run external hardware attachments

#

Like perhaps slimeVR via quest through an external OST application on your laptop

thorn tapir
muted ore
#

Anyone know how i can trigger space calibrator manually? Im to lazy to look into the code rn

deft bridge
#

It is likely that many OSC plug-ins will be developed in the future, but if you use multiple plug-ins from different developers, they will have to create their own processes, make connections, and manage each one manually.
I think we need a plugin manager (or launcher) for non-developer users as soon as possible.

muted ore
deft bridge
muted ore
#

But in the best case a design like this would allow custom parameter names to be added by the users to be set and read

deft bridge
jaunty cedar
#

Does anyone know precisely how floats are sent over the network? I'm trying to reproduce the algorithm exactly, so that the floats I send over OSC match perfectly to the floats that will be sent over the network. I've gathered that floats going over the network are actually 8-bit integers that get scaled from -1 to 1, but is it as simple as (byte)(x * 127) or is it fancier than that?

untold flame
#

I have a custom controller, which uses the old Valve Index emulation, however I whilst i can "grab" things in other applications such as Neos and "The Lab", I can't figure out how to grab things such as pens in VRChat. What am I missing?

muted ore
untold flame
#

Still, that's a good idea. 😄 I intend to send most stuff to avatars over OSC once it's available anyway.

muted ore
untold flame
#

Yes, but if I join it, I can't talk to my friends anymore!

muted ore
#

fair

untold flame
#

Incidentially, is there a standard convention for sending hand skeletons over OSC?

#

I've since discovered that I can grab things, though, but I have to select "use light touch" in VRChat's controller settings, and even then, it only works with the left hand.

muted ore
untold flame
#

"the osc discord"? The OSC protocol has a discord?

muted ore
#

sent dm

#

like i just reimplemented my vr detection from windows into the quest itself. edit: nvm the quest doesnt support shell commands, so i used the "web request" block from the app. this one requires a failover block tho for failed requests when the device isnt online and additionally can use the "display on" check

bitter osprey
#

Hi - I work for etee by TG0 and we are developing out etee controller driver currently. They are finger sensing controllers and we have the finger animations firing in most experiences such as HLA & Boneworks but we need some help with the integration of our driver with VRChat. I think it is a simple change on your side, I can send over the details but I need an active developer of VRChat to respond? Thanks in advance for your help!!

bitter osprey
#

We've already logged 2 tickets without a response

muted ore
bitter osprey
#

OK will try those thanks!

muted ore
#

sorry i dont know of any other way than the tickets and eventually through dms here currently.

#

currently your best guess would be to emulate the index controllers btw

#

or look at their upcoming OSC integration for custom inputs in a form of 3rd party protocol, but that might not be ideal at all

bitter osprey
#

In the rules it says not to ping the team and if I try directly you have to add them as a friend to communicate which is blocked

#

We are emulating the Index controllers but there is a reference to etee that needs to be added in VRC directly

muted ore
#

yeah just wait for the ticket answer

#

the problem is they get around 1k of these per day with a rather small team and need to filter and prioritize

bitter osprey
#

sure, understand, thanks for your help.

muted ore
#

they will answer eventually

bitter osprey
#

OK cool

novel frigate
#

can anyone reccommend insanely good guides or even paid courses on project management

#

its my first time working on a serious world and managing nests upon nests of collection instances is already killing my fuckin head

#

the fact that ill need to think about how the UVs are going to work later alongside atlasing everything is worse

#

i can do everything else like texturing and modeling and even the process of unwrapping its just managing everything so i can have a workable environment while also preparing everything to be bundled and atlased later is not fun

vernal trellis
#

Could anybody help me?

muted ore
cinder grotto
#

Yep

runic heart
#

any know why sometimes my frame rate doesn't match up with what OVRToolkit says my frame rate is?

#

Sometimes, I'll be running at 20-35% CPU, 60-80% GPU, and 70-80% VRAM, butttt my frame rate won't hit the target

#

instead it'll be at something like 60

#

if my CPU/GPU/VRAM were pegged, this would make a lot of sense, but it's still got a bit more room to push out additional frames--but it doesn't

#

compounding this though, is that OVR toolkit's built in FPS will often say that "yes, you are in fact hitting target FPS"

#

anyone have any clue what's going on/happening here?

#

this occurs even in worlds that only have me in it, so it's not a "public avatars suck" situation.

cinder grotto
runic heart
#

what are they doing, specifically to CPU limit it in such a way, and any idea why?

#

either case, that's kinda disappointing that a world like movie and chill, with 95% of the decals, object, feedback, etc turned off....I wind up being frame limited.

#

my CPU isn't even that old---i7 8700k

cinder grotto
# runic heart what are they doing, specifically to CPU limit it in such a way, and any idea *w...

It's the way the game works. Unity is not great at multithreading and VRChat doesn't take every advantage of what Unity can do to multithread. Due to this, the game ends up waiting for things to complete on CPU which doesn't take up 100% of the CPU.
Also I feel you on the CPU. I have an i7 8700 and I can drop down to 20fps in packed instances. It's just that VRChat does a LOT of things in the background that require sync and time for the CPU

runic heart
#

like, I can understand why I'm limited a lot of the time with respect to my GPU

#

I"m running a 1070 SC, so I''m often GPU bound and sometimes VRAM bound---it's pretty old by now

#

but as detailed above, a good 50% of the time, my frames will just be garbage in a world despite being at like 50% GPU and 60-70% VRAM and it's like "Uhh, what?"

runic heart
#

hopefully between that and phys bones, it'll go a long way to helping out performance

cinder grotto
runic heart
#

yeah, I realize that a great portion of it is just---content creators being terrible at optimization of worlds and/or avatars

#

I just hope, one day, VRChat is able to make maximume use of the engine's performance, I suppose.

#

'cause right now it kinda performs like butt 😛

runic heart
cinder grotto
#

Yeah it doesn't perform well and I'm sure it'll improve other the year

warm niche
#

Either take this or you reach your target frames but it is choppy and you perhaps get motion sickness

runic heart
#

I have frame smoothing turned off because of how strapped my GPU budget is.

warm niche
#

That is yet another thing its not the same

#

just has the same name

runic heart
#

the circumstance I'm talking about typically occurs when I'm targeting 80 Hz, but it comes up a bit short and isn't halving or or engaging in reprojection.

#

I'll get 50-60 frames during these particular instances.

warm niche
#

yeah that is the motion smoothing since you can't hit 80 smoothly even when its close

#

the motion smoothing option you see in the video settings of your HMD is kinda like "forcing" it

#

when you turn it off its still there but not as crazy as with it on

#

not sure about this but my assumption is that forcing motion smoothing will use more than just two frames to calculate in-between frames

#

the not forced will just cut your frames in half and use two frames to fill the gap so you technically still have e.g 120 but ingame it will show as 60

runic heart
#

in these particular situations, rapid movement has jutter to it that is reminiscent of screen tearing (not quite though)

#

when it can't meet the target rate and goes "Forget it" and drops down to 40, I don't usually have this jutter

#

it's only when it's these weird in-between rates that I get the jutter

warm niche
#

well its all super variable anyway, it differs from world to world and what not

#

but thats the general idea about why you are not seeing the frames that OVR tells you you should be hitting

night umbra
#

idk where to ask this but im struggling to figure out/ find a tutorial on how to display your avatar on the side of your streams. People have mentioned using OBS OpenVR (which i have installed) but i dunno where to go past installing it

#

heres an image of what im talking about

sonic mirage
#

Oh this is awesome! I'm adding the OSC outlet to my program!

midnight shard
muted ore
#

Or use the ingame camera and add it like that as Damien suggested

sharp kayak
#

does anyone know what physics library vrchat uses?

near bronze
#

it's just unity physx

sharp kayak
#

ah thats what I thought

trim orbit
midnight shard
#

Maybe its a sweep?

dry rampart
#

Hello; I have an interesting dev question. Long story short, I want to run an account in-world that has no interactions with anything other than being in-world itself and reading data via Udon to put into the output log. This part is already mostly done and working; we're having it set up in the world so that, if the account in question is in it, it is teleported to a location away from everyone else and it just sits there reading the data it needs to. (Currently this requires an input trigger to enable, but this was only for testing purposes.) None of this is done by modified clients or anything like that, it's all Udon behaviours making use of the limited data it has access to and what has been created for in-world systems.

Just running VR Chat like this, even on its own, is still pretty intensive on a machine regarding GPU usage. However, you can run Unity apps headless, with no visible window and no graphics in-use (-nographics and -batchmode arguments passed to the executable on launch). Similarly, you can make it launch directly into a world if you know its full ID by putting it in the command line in the same way you launch from the website. There would be no issue here, except for the output log growing exponentially large with the following lines repeated very often:

  at DŽDžDžDžDžDžDŽDŽDžDžDžDžDŽDžDžDŽDŽDžDŽDŽDŽDŽDŽDŽDŽDŽDžDžDžDŽDŽDŽDŽDžDžDžDžDŽDžDžDŽDžDŽDžDŽDžDŽ.Update () [0x00000] in <00000000000000000000000000000000>:0 
  
2022.02.28 21:18:13 Exception  -  Object reference not set to an instance of an object.
  at DŽDŽDŽDžDžDŽDžDžDžDŽDŽDŽDŽDŽDžDŽDŽDžDžDŽDŽDžDžDžDžDžDŽDžDžDžDžDŽDžDžDžDŽDžDŽDžDŽDŽDŽDŽDŽDžDžDž.DŽDŽDŽDŽDžDŽDŽDŽDŽDžDžDŽDŽDžDŽDŽDŽDžDŽDžDŽDŽDžDžDŽDŽDžDŽDŽDŽDžDŽDžDŽDžDŽDžDžDŽDŽDžDžDŽDŽDŽDŽDŽ () [0x00000] in <00000000000000000000000000000000>:0 
  at DŽDžDžDŽDŽDžDžDŽDžDžDžDŽDžDŽDŽDŽDŽDžDžDŽDŽDŽDžDŽDžDŽDŽDŽDžDžDžDžDŽDŽDŽDžDŽDŽDžDŽDžDžDžDŽDŽDžDŽ.Update () [0x00000] in <00000000000000000000000000000000>:0
  
2022.02.28 21:18:13 Error      -  [Behaviour] Caught NullReferenceException: Object reference not set to an instance of an object.
  at DŽDŽDŽDžDžDžDžDŽDžDžDŽDžDŽDžDžDŽDŽDžDžDŽDŽDžDžDŽDŽDŽDŽDŽDŽDŽDŽDžDžDŽDžDžDŽDžDžDžDžDžDžDžDŽDžDž.DŽDžDžDŽDŽDžDžDŽDžDžDŽDŽDŽDŽDŽDžDžDžDŽDžDŽDŽDŽDŽDŽDžDŽDžDŽDŽDŽDŽDŽDžDŽDžDŽDŽDŽDŽDžDŽDŽDžDŽDžDž (System.Single DŽDžDŽDžDžDŽDŽDžDŽDžDžDŽDžDžDžDŽDŽDžDžDžDŽDžDžDŽDŽDžDžDžDŽDžDžDžDŽDŽDžDžDžDŽDžDŽDžDŽDŽDŽDžDŽDŽ, System.Single DžDžDŽDžDŽDžDžDŽDŽDŽDŽDŽDŽDŽDžDŽDžDŽDžDžDŽDžDžDŽDŽDŽDŽDžDžDŽDžDžDžDžDŽDŽDžDŽDŽDŽDŽDžDŽDŽDŽDŽDž) [0x00000] in <00000000000000000000000000000000>:0 
  at DŽDžDžDŽDžDŽDŽDžDžDŽDŽDžDžDŽDžDžDžDžDžDŽDŽDžDŽDŽDžDŽDŽDžDŽDžDŽDžDŽDžDŽDžDžDŽDŽDžDŽDŽDŽDžDŽDŽDŽ.DžDŽDŽDžDžDŽDŽDžDžDŽDŽDŽDžDŽDžDžDŽDŽDŽDŽDŽDŽDžDŽDžDŽDŽDŽDžDŽDŽDžDžDŽDŽDžDžDŽDŽDŽDžDžDŽDžDžDŽDŽ (DŽDžDžDŽDžDŽDŽDžDžDŽDŽDžDžDŽDžDžDžDžDžDŽDŽDžDŽDŽDžDŽDŽDžDŽDžDŽDžDŽDžDŽDžDžDŽDŽDžDŽDŽDŽDžDŽDŽDŽ+DžDžDžDŽDŽDŽDŽDžDžDŽDŽDŽDŽDŽDŽDŽDŽDžDžDžDžDŽDŽDžDžDŽDŽDžDŽDŽDžDŽDŽDŽDŽDžDžDŽDžDžDžDžDžDŽDžDžDŽ DŽDŽDžDŽDžDŽDŽDžDžDžDžDŽDŽDŽDžDŽDŽDŽDžDŽDŽDžDžDžDŽDžDŽDžDžDŽDŽDžDŽDŽDŽDŽDŽDžDžDžDŽDžDžDŽDŽDŽDž) [0x00000] in <00000000000000000000000000000000>:0 
  at DŽDžDžDŽDžDŽDŽDžDžDŽDŽDžDžDŽDžDžDžDžDžDŽDŽDžDŽDŽDžDŽDŽDžDŽDžDŽDžDŽDžDŽDžDžDŽDŽDžDŽDŽDŽDžDŽDŽDŽ.DŽDŽDŽDŽDŽDžDŽDŽDžDŽDžDŽDŽDžDžDŽDŽDŽDžDŽDŽDžDžDŽDžDžDžDžDŽDŽDžDžDŽDŽDžDžDžDŽDŽDžDŽDŽDžDŽDŽDŽDŽ () [0x00000] in <00000000000000000000000000000000>:0```
(After running VR Chat this way for an hour, the log was a lovely 500mb in size.)

I get that VR Chat isn't normally meant to run this way, considering it's a fully visual experience, but is there any way of either supressing these from the output logs while still keeping other messages? It's obviously doing so due to being run in this way, with no graphical interface, but it would be incredibly beneficial to be able to run it like this without these errors just constantly appearing every millisecond. As mentioned, no part of this is an alteration of the client itself, and I'm just wondering if this is something that could be fixed with regards to these messages in the output log.
cinder grotto
dry rampart
#

I tried it, and it actually was still producing a log amusingly, so probably something wrong in my command line there; the other issue is, though, is that we still need some data from the log accessible, output by the Udon behaviours we have.

#

Just.. not these many, many null object reference errors.

cinder grotto
#

Well I don't believe there's a way to remove just the errors

#

Maybe try running in batch mode without -nographics?

#

This will initialize graphics properly, but still won't display anything as it's in headless mode

dry rampart
#

I have that set too

#

VRChat.exe --profile=2 --no-vr --enable-debug-gui -nolog -nographics -batchmode is the current full command line I have

cinder grotto
#

Remove -nographics

dry rampart
#

okay, I'll give it a go

#

still the same thing, I'm afraid

#
  at DŽDŽDžDžDžDžDŽDŽDŽDžDŽDžDžDŽDŽDžDžDžDŽDžDŽDžDžDžDŽDŽDžDžDŽDŽDŽDŽDžDžDžDžDŽDŽDŽDžDžDžDŽDžDŽDŽDž.Update () [0x00000] in <00000000000000000000000000000000>:0 ``` et. al.
cinder grotto
#

Seems to just be a VRC thing then. Definitely not meant to be in headless mode

#

I don't believe you can do anything about the errors

dry rampart
#

A pity. Ah well.

#

.. maybe I'll put something into feature requests for it, ha ha

#

nah

cinder grotto
#

I doubt they would do it since it would require a LOT of code refactoring for an incredibly small feature that maybe 5 people out of the 100k people would ever use

dry rampart
#

Indeedy

#

Ah well, thought I'd ask to see if anyone had any ideas about it, in case there was a way to fix the issue or prevent those specifically from appearing.

#

Also a part of me is curious as to just what is causing the issue specifically, what said null object references are.

cinder grotto
#

No way to tell since VRChat is written in IL2CPP. The logs don't actually output the parts of code that give the error. This is evident from the names being that garbled mess of characters

dry rampart
#

Ah, also a pity.

#

Ah well, ta for the explanations and such. I'll have to think of other ways to get this running as optimised as possible, ha ha.

untold flame
#

@dry rampart when i was getting vrchat to work in an emulator, where i had no graphics card (ie, i had onboard intel graphics exposed to the emulator as just VESA…)

I found i was able to achieve nearly 11 FPS by running it in desktop mode and shrinking the window down small - so that the game resolution was tiny.

little lynx
untold flame
#

It was an "information" world - so lots of posters, etc.

little lynx
#

Ahh

viscid night
#

Is there a feasible way to dynamically generate navmesh during runtime or use static navmesh dynamically at runtime?

#

I have a dynamically generating map (Fixed map of rooms and hallways) that can generate over the course of the map existing

#

Wanna see if its feasible to use native navmesh or if I'll need to design my own solution

cinder grotto
#

Is navmesh even allowed in the SDK?

viscid night
#

To my understanding yes since a few maps have mentioned having it

floral salmon
#

Hey!
I think this question fits here a bit better than the Udon-Questions.
I got a question about VRChat Quest and Webrequests
I'm trying to retrieve some NFT images to show in a world through webrequests in Udon, but it keeps saying that it doesn't have support for the async await function
Is there any way I could still use a webrequest to retrieve those images?
Thanks in advance!

candid owl
#

I note that advertising nfts are not permitted on vrchat

floral salmon
#

That wasn't the goal
The goal is to figure out what is possible inside of VRC
No profit and no advertising
But thanks for notifying

candid owl
#

but from what I've seen generally no on dynamically loading images using web request as like most of the prefabs I've seen before like loading a event calendar end up basically being a video player with a really low frames per second

floral salmon
#

Ahh, well I'll just keep an eye out for any solutions in the future
Thanks for the replies!

cinder grotto
untold flame
#

Just bake in a copy of an NFT image in the world?

#

All the NFT itself does is just prove you own it. At least, in theory.

floral salmon
floral salmon
cinder grotto
rare lantern
#

Does anybody try new dynamics+animations?
For sleeves as example

oblique basin
#

funny you should ask... I'm running into a possibly related problem.

I've tried disabling the script via animations. This does stop the dynamics, but bones don't return to resting position.

I've also tried adjusting pull/spring/immobile/gravity via animators -- this appears to work in the inspector during playback, but seems to have no effect in the viewport or in game.

#

I wonder if this is just a beta issue that will be fixed later?

warm niche
#

Any help regarding setup with phys bones??

candid owl
warm niche
#

yea but every time I do ask no one responds vrcLaughing

candid owl
#

well they're not going to respond in here

haughty kiln
#

Hi,
I started to put together a course with the "Obstacle Course" kit.
(I only use my own models)
However, I just noticed that if I turn the HUD off and then back on, the last "action" is stuck in the display.
This is unfortunately the same in the original game, so I didn't screw it up. Has anyone managed to fix this yet?

golden sky
#

VRCLens question: has anyone ever tried animating the drone along a path; like setting up a defined rails system? Would that be possible?

#

I have a mobile event avi, and would love to implement something similar to cinemachine; but with AV3.

#

Please let me know if this belongs in a different thread. Thanks!

terse matrix
#

Newb question here! Hello to all! I was wondering what programming languages I should learn for Unity Development. Anyone?

terse matrix
# shut bane C#

What does C# control within Unity? (what can I do with that in a general basis?)

shut bane
#

basically everything. every MonoBehavior (any "script" that you'd apply to an object to make it do something), every editor script that modifies how the Unity interface works, etc

#

it is the language to know in unity (aside from shaders if you're going that route)

candid owl
shut bane
#

i'd recommend getting the hang of C# before trying U#, though. a lot of the helpful stuff that visual studio does when coding C# can get in the way with U# currently. stick to the udon graph until you understand the basics of C#

candid owl
#

oh yeah good point

terse matrix
shut bane
#

udon is a visual scripting environment that's a "safe" way for people to script in VRChat. it limits what kinds of behaviors that people can write within VRChat to prevent abuse. prior to this, you were more or less stuck with a whitelist of scripts or functions you could work with.

#

you can think of it as a subset of C#, sort of

terse matrix
#

I still have lots to learn it seems! Haha. Thanks for your help

candid owl
#

yeah definitely lots to learn with like game development stuff

terse matrix
#

I am a female going into college and majoring in computer science this coming up fall. I am nervous about it all and I know it will be a struggle. But I want to specialize in VR development, it's where my heart is. VRChat opened a new world for me since it has been so hard for me to find something that I am interested in.

#

The math and being the only female in my CS classes is my only concern. lmao

shut bane
#

having a personal stake in it will definitely help you learn this stuff. too bad about the demographics in your CS class, but don't let anyone stop you.

candid owl
#

out of curiosity what would you like to accomplish in vrchat once you figure out the stuff

shut bane
#

the math stuff will come back to you eventually. sometimes you just need the right application for it in order to really retain it. linear algebra and trigonometry are the big ones in 3D / gamedev

terse matrix
candid owl
#

just wanted to check because if you're going to get into Worlds and avatars you would also need to brush up on like real-time Graphics rendering knowledge stuff

terse matrix
shut bane
#

you'll be fine. just start small and build up from there. if you're personally interested in it, you'll figure it out.

candid owl
#

like if you wanted to try making a vrchat map make like a small bedroom to start

candid owl
#

a handy website compiling vrchat development knowledge

terse matrix
feral raven
#

wanted to ask and see if it would be physically possible to have for example a bar, kind of like the form of a monkey king bar thingy. That has physics meaning i push it against the ground and the colliders stop from clipping through and the character pushing it down goes up depending on how hard you push it down. Possible?

bold zephyr
feral raven
bold zephyr
#

I don't think that would be doable on an avatar itself, unfortunately.

feral raven
#

sounds like something i could request for a further game update? avatars having working colliders with the world

#

i believe people would have some cool ideas with it

feral raven
light remnant
#

I checked in Search but couldn't really find anything, does anyone know how to return PhysBones to rest prior to disabling them?

#

Well, for my use case, it looks like I don't need to turn the script off at all anyway, I can just set everything to 0 and Pull to 1 and it will return to rest.

warped fog
#

im tryna run a vrm through unity and it aint working :/ (I work with a Mac btw)

mild vortex
#

Im currently making an undead ashe

abstract bramble
#

Good day can someone help me. My acount of unity dont let me loggin

#

if theres an expert here who can help me i will pay you

#

but i need results

polar wagon
#

Anybody know if Temporary Pose Space affects the Upright Parameter?

#

Like if I make my height lower than crouching level, will it still count me as being crouched?

jagged needle
# abstract bramble

At that point isn’t it better to just sign up for another account (assuming you do this for personal use)?

#

So someone on vrchat canny was claiming udon users should be good enough to do things in world development like set an avatar to do a motion. I am trying to figure this out. What udon/unity code should I use to rotate a avatar’s right hand when they are holding a pickup object that has a udon script? My hope is when I click on the left click of a mouse (I think it’s called on mouse down) that I can rotate the desktop user’s hand so they can rotate an object they picked up.
Is there even a way to get the transform of the avatar/players’ hand?

PS I tried creating a udon graph for rotating the game object already it won’t work when it is held in hand for some reason it just flips back to the rotation of being held.

cinder grotto
jagged needle
cinder grotto
jagged needle
jagged needle
cinder grotto
#

Ah okay cool

robust bone
#

Quick question for anybody with the authority to answer it.

I run an in-game event every Friday night.
The list of people attending is growing every week.

The issue is that it becomes a pain to invite everyone 1 by 1 and can take up to 10 minutes depending on the night.

I have experience with programming and noticed that the API for the VRC webpage is exposed and theoretically for anyone to use.

Could I get banned for making a script that invites everyone on my friends list at the beginning of our event?
The plan is to use it once at the beginning of the event, and there's no intention to spam it.

pine depot
#

Though the VRChat website already has functions to create instance links that allow people to invite themselves

sacred scarab
#

how do i convert my dynamic bones tp pysbones

hexed shell
sacred carbon
#

Anyone know how I can make a sword damage a player? I saw a tutorial but it must be outdated because it was for SDK2

#

VRC_CombatSystem is Deprecated

untold flame
#

I have two controllers connected to Steam, why does VRChat misdetect the second set of controllers as a "waist tracker"? (and why is it ignoring the type of device it is?)

untold flame
untold flame
#

Sounds like that was a dead end as VRChat doesn't do OpenXR? Any other possible avenues?

near bronze
untold flame
#

That's exactly the complication, what if we still want to use FBT? Eg, I have a friend who plans on using SlimeVR.

near bronze
#

if you use the ik beta, that second set of controllers will be used for elbows, which will work but will look bad

untold flame
#

That will indeed look quite bad, why does it get used as trackers though? And is there something that I could do with an overlay or as part of the driver implementation for the primary controllers?

near bronze
#

because it is a tracked device. Tracked device = tracker

untold flame
#

It's still a controller, though.

near bronze
#

it's a really really jank hack in the first place to be using a full controller just for the position data and then creating a second set of fake controllers

#

the proper way would be to have control over the firmware of the tracked device so that it can be presented as one and the same as the glove, without introducing a second set of controllers

untold flame
#

I don't see either Oculus or Steam allowing that. :/

#

However... Even if we did have the tracking situation sorted and did our own tracking (which is a huge amount of work and cost), there's still teh issue that it woudl still be present as a device, isnt' it?

#

I don't see a way to tell the Oculus HMD to disable all of it's controllers.

near bronze
#

for oculus, yeah

#

I mean oculus just doesn't support anything remotely like that

#

at least steam has a way, albeit expensive and complicated

untold flame
#

This does make me wonder why I can't configure this stuff at the steam level - again, similar to how OpenXR apparently does it.

near bronze
#

another option though, if you're using full body and you don't want bad elbows, you can also just get actual elbow trackers. It will pick the tracker that is closest, so it will use that and ignore the one on your hand

untold flame
#

Oh, that's an interesting possibility - so you're suggesting to work around the hack by... Using more trackers than vrchat supports so that it maps the closest trackers to the closest places and ignores the rest?

near bronze
#

yeah

#

or it's also possible that you could simply hold your hands far enough away from your body like straight forward. It has a maximum range that it will look for trackers

#

in the ik beta

untold flame
#

That's an interesting possibility, too.

#

Other than neos, are you aware of any other games that deal with FBT?

near bronze
#

sword and sorcery

untold flame
#

I don't think Neos binds this second set of controllers to anything.

#

Blade and Sorcery, you mean?

near bronze
#

right yeah

untold flame
#

Nifty. Looks like I'd have to pay for that... Worth it on it's own right? I'm deaf, so I would want to know if you reckon I can play it without any audio?

near bronze
#

eh, if you're into that kinda thing I heard it's pretty good. I am not into that kinda thing, so I don't have it

untold flame
#

I don't actually haev FBT (yet), though, I'm mostly wanting to see how things other games that do use FBT interact with this.

#

I'm into uh... Nethack...

#

(VR is quite a step up)

#

Anyway, thanks for that. I still think it should be configurable, but perhaps this is something really for Steam to deal with.

#

In the mean time you've given some excellent workarounds. 🙂

near bronze
#

well the reality is that there are many ways to handle it in the latest VR frameworks, but vrchat is not using the latest VR frameworks because it's extremely complicated to upgrade such a thing when you have user generated content especially with custom shaders 😅

untold flame
#

Yeah... That's a separate debate, though. 😄 Giving content authors the ability to basically do whatever they like that does have its pros and cons.

#

(On that topic, I'm going to be intrigued to see if VRChat ever supports PSVR and Apple VR - over the next decade or so, anyway...)

candid owl
#

I sincerely doubt apple and Sony with play ball on arbitrary content upload like vrchat does

untold flame
#

Would depend on the nature of that content. VRChat's content is very arbitrary, and contains code, it's that code that's the bigger deal in that particular case.

candid owl
#

Mod support has long been a major aspect of the Elder Scrolls series, and while this has remained the main focus for PC gamers, the feature slowly worked its way onto Xbox One too, and after much debate with Sony, it's also made its way to PlayStation 4, albeit in a severely limited fashion. Sony wouldn't approve the modding system for the game,...

#

basically no custom assets allowed on Skyrim mods on the PS4 and vrchat has nothing but custom assets

untold flame
#

That's mods, though, but I would suggest that if eg, VRChat allowed you to define avatars with only a .blend file (as an example), and didn't expose the unity api to content providers, it'd go a long way.

#

(But would it still be VRChat? I dunno...)

candid owl
#

that wouldn't help at all as you would still be able to do like loading copyright-infringing content

untold flame
#

No, but it would put you in line with the developer agreement.

candid owl
#

also Sony is probably not in the mood to give every vrchat user a PlayStation developer license you even be able to upload content in the graphics format the PlayStation knows

untold flame
#

Wow, is that what Sony would require? I only know iOS, myself.

rocky terrace
#

I don't see how vrchat can work on playstation yeah, esp when you need a PC to upload avatars

#

as much as we would want it since it's good hardware :<

candid owl
untold flame
#

Yes, again, you wouldn't be able to expose the unity bits to the content creators.

candid owl
#

basically rendering like 90% of vrchat inaccessible to the PlayStation players

#

and vrchat is not going to go through the effort of uploading everyone's Avatar/worlds is to to circumvent Sony's licensing

untold flame
#

VRChat did go through that effort for Quest, though. Unfortunately, they'd have to do that again for the other platforms because they didn't restrict access to unity.

#

(So it's quite possible that VRChat will never support additional platforms - but we're being somewhat hypothetical here)

candid owl
#

you don't require a special developer license to upload Android content

#

so that would be way more additional effort on Playstation compared to the quest

untold flame
#

You also don't require a special iOS developer license to upload iOS content for iOS apps.

rocky terrace
#

you kind of need though?

untold flame
#

As an example, I could use a family tree app, and I don't need an iOS license to provide additional family trees even if those peolpe in the family tree have different media contents.

candid owl
#

the only other platforms vrc ending up on would be any android-based VR headsets

untold flame
#

Another example - Duolingo constantly has new content as well.

candid owl
#

apple would probably be even less hospitable than Sony

untold flame
#

You definitely can provide additional content. What you can't do in iOS as an example is provide code.

candid owl
#

which renders udon useless

untold flame
#

People use udon for avatars?

rocky terrace
#

heck before you can get to that you need to deal with apple's guidelines first which is crazy restrictive

candid owl
untold flame
#

Yeah. But I'll point out that Quest also requires quest-specific worlds to be uploaded too. YOu could do most worlds using prepared assets or non-code stuff, they would just not be as flexible as PC worlds are.

rocky terrace
#

if it works the same you'll need a mac to compile stuff for ios lol

untold flame
#

No, THAT is the line.

#

You can't compile stuff without a developer license if you want to upload it.

candid owl
#

you would pretty much break all worlds if you disable user-generated udon

untold flame
#

But nothing stops you from providing content. THe vast majority of apps on iOS allow plenty of custom content.

#

you would pretty much break all worlds if you disable user-generated udon
Obviously. As happened with Quest.

candid owl
#

you can use udon on Quest

untold flame
#

I'm pretty sure people have ot take very special care to support Quest?

#

Like, you couldn't just wack in a PC world that never worked with Quest...

rocky terrace
#

its not that hard, heck its easier to upload a quest world than a quest avatar

candid owl
#

there's no scripting differences between the quest and PC udon

rocky terrace
#

even if things broke, you dont get an error within unity

#

as in shaders

candid owl
#

like there's plenty of game worlds that run on Quest

untold flame
#

Yeah. I think we're at cross purposes here, I have repeatedly agreed that you would have to re-implement pretty much everything for an iOS version, as indeed, content creators did have to do for Quest.

rocky terrace
#

the only thing preventing any world from uploading to quest is it exceeded 100mb

untold flame
#

I have also pointed out that a VRChat that complied with the restrictions might not be VRChat anymore at that point.

candid owl
#

so basically this is a blank lose exercises vrchat is never going to go to the trouble to support those platforms

candid owl
rocky terrace
#

yeah but its not an error within unity, it just simply doesnt work

candid owl
#

good to know

#

and also questions of what apple and Sony would think of the direct user to user monetization that vrchat is planning

#

like fortnite funbucks being purchasable outside of the Apple Store was enough to get a major lawsuit

#

and I don't think vrchat Avatar and World creators would have the patience to deal with 4 completely different platforms

#

and 2 using like completely proprietary graphics apis

golden sky
#

Hello wise wizards of VRChat 👋 …I’ve stumbled into your abode to ask how I would go about adding an echo to player voices (with udon I’d assume)? I didn’t even know it was possible until I visited a world called Kenopsia yesterday; which has some really soothing vocal reverb.

#

I’m looking to make a VR echo-chamber, one of those ancient domes that purposefully amplifies echos; where singers and musicians would perform.

candid owl
#

udon is definitely how you would do that

obtuse kindle
#

Does vr chat use node-ipc since it's built on unity?

untold flame
#

@obtuse kindle Rumour is that unity uses node-ipc, and that the issue I assume you're worried about was fixed in 3.1.1

#

(I've not confirmed either way myself)

#

You can see that they claim to have fixed the issue if you look at their change logs.

obtuse kindle
#

yeah I don't really want a crazy person's bad idea malware protest on my computer

#

What a nightmare for confidence in open source projects

untold flame
#

Unfortunately this is a known, and common, issue for npm projects (and many package managers).

But with dilligence easily handled: use a lock file, and check for changed dependencies and ensure they are all up to scratch.

golden sky
#

Does anyone know how VRC-Lens handles camera over-ride? Trying to create a modified version (which is a-okay according to to the terms of use); but struggling to understand the inner workings. Any advice is appreciated. Thanks!

cinder grotto
golden sky
#

Thanks Slvr! You're right. After some poking around, I was able to get the "depth-output" render texture to output to a screenspace shader; but unfortunately, it looks like update render texture won't sync for other players.

cinder grotto
#

It never will sync. It's local only

#

VRCLens was only ever local only for your camera

golden sky
#

I should have seen that coming, looks like my grand idea is dead in the water then. Shoot.

cinder grotto
#

What was the idea

golden sky
#

I have a DJ booth avatar set up with various gimmicks; one of which is a built in VRCLens rails system (work in progress).

#

I was hoping to set-up the DJ booth avatar, so that the DJ could drop their VR Camera into a sphere, and it would be over-ridden by this VRCLens rails system.

near bronze
#

you can't sync what you're seeing through your camera, but you can totally enable a camera and let them render it on their end

#

however it will be friends-only

golden sky
near bronze
#

just enable the camera as you normally would. It will render to the render texture

hollow forge
#

For others to see it iirc it needs to start with the camera component's camera.enable property turned off then you need to animate it on, when you do the component turns on for friends as well.

#

Any idea how to change the layers in an avatar camera though? I can only get it to show anything by checking 'everything' but then it also captures the UI and menus and stuff, but if I even turn off that layer it reverts to skybox. Just checking the UI layer alone also shows skybox weirdly. Ideally I'd use a new custom layer but something tells me vrc is doing something funky with them and I couldn't find the docs on it.

near bronze
#

the skybox is not a layer, it's a clear flag

hollow forge
near bronze
#

what do you want to show/not show?

hollow forge
#

ideally - A plane I have it pointing at, and a pen, both of which I can mark as being in a different layer. Honestly though just showing the rest of the world too, or avatars, would be alright, the UI is the most annoying thing. Just, the more control the better, and I want to understand how layers work in vrc.

near bronze
#

you cannot change the layers of objects on your avatars

hollow forge
#

gotcha, then the sdk or vrc is enforcing that they're all in the same layer. That's fine. Do you know what that layer is?

near bronze
#

if you don't want to see ui in the camera just... disable the ui layer?

hollow forge
#

hm I could probably do some shader stencil shennanigans to get it to behave how I want.
as for the UI layer... I tried that a bunch because yeah it totally should be that simple but it still showed skybox. Maybe I misclicked a bunch? My conclusion from last night was that the UI layer in unity wasn't where vrc was putting their UI

hollow forge
golden sky
little zenith
#

Good day all 🙂 I am trying to set up a post processing layer to effect the vrc camera only (so when people take pics they come out brighter) is this possible?

golden sky
#

On an avatar or in world?

little zenith
golden sky
#

Yes, it’s possible. I’ve seen it done in Shaderfest & Club Orion. I’m not sure exactly how to pull it off though. Probably something to do with VRC layers.

drifting hamlet
#

Hi, I want to script my own avatar to act like an npc in my VRChat world, can anyone guide on where to start? or maybe some sources I could follow

#

I want to add some AI features to the avatar, can I just use UDON or do I need to use something else? thanks

warm niche
#

help

pine depot
#

Will need to downgrade the project to 2019.4.31f1

rancid parrot
#

Is there some documentation on non udon programming with normal c#?

#

Or do you need to use Udon now? I don't really get it ._.

pine depot
#

Other than that UdonSharp might be what you want as it compiles c# to udon

small bolt
#

Something that I thought for quite sometime

#

Is VRChat more intensive client or server side?

#

Would instances benefit from being hosted in a scalable infrastructure framework such as Agones, using Kubernetes auto-scaling on the server side?

#

Or is the 80-player limit on instances related to client-side limits

cinder grotto
bronze rune
#

If you've been to one of those stress tests where there were 120+ people in the same instance, Photon tends to basically die after 80 players

cinder grotto
#

It works, you just end up at like 15fps

#

And that's because of everything going on every frame

low flame
#

Anyone here knowledgeable about unity particle systems? Developing an avatar that uses mesh particles and it should only equate to 2502 polygons but the sdk says I’m using 5504 mesh particle polygons
Can’t really figure out why it says such

#

Guess I should also clarify 2502 is the tri count

#

Not quads

cinder grotto
low flame
#

Hard to explain exactly
It’s a lego game styled avatar and it’s parts are split across 3 particle systems for the dying animation but it shouldn’t add up to anything higher than 2502

cinder grotto
low flame
#

I don’t believe so
Each particle system plays at once for the full effect so I’m not entirely sure where it’s pulling the rest of the polygons from

#

i'll look into it some more but it shouldn't have any reason to have so much extra polygons to consider

cinder grotto
low flame
#

Oh wait would it consider max particles even if it’s limited with a set seed?

cinder grotto
#

Yes

low flame
#

That explains it then

#

I’ll have to brainstorm how I could improve it some I suppose

#

It’s set to very poor because of it but I’d imagine it wouldn’t actually cause performance issues considering the particle meshes are even more low poly than the avatar itself

cinder grotto
#

Well mesh particles can get intense too

#

If you were able to fix the 5k poly issue you'll be at Poor with 2502

low flame
#

Yeah

#

I’ll have to think about how I’d wanna approach it

#

Thanks for the feedback though
Definitely wouldn’t have figured that out myself

dusky coral
#

Has anyone had an issue with the in game camera crashing your world? I’m running max frames for a pc build and ready to publish to labs but can’t til I fix this. No idea why this would be happening. Anyone else have this issue?

slow kettle
#

Why can’t I upload this avatar template I have I am new to this and I don’t understand

knotty abyss
#

hey, so, i want to create a prop, such as a gun, that can be loaded in on a holster. if i reach down and grab it, i'd like it to be picked up into my character hand. i would also like the ability to then throw it onto the ground and have it stay there, while being physically active (like if i walk into it, it will get pushed). does anyone have any resources they could point me towards to achieve this?

#

okay so i have half the solution. making the item equip-able on the holster is no problem. i just need to add physics. if i let go.

sour gust
#

i didnt see a vrchat sdk popup in screen when i imported it and there also isnt a vrchat sdk option on the top bar

manic zealot
sour gust
#

oof

#

How do i update?

warm niche
#

Your smartness scares me

dusky coral
#

does anyone know why using prefabs in a build would cause the world to crash when using the camera?

light remnant
#

Heyo, I'm not sure if this is advanced enough for this channel, but I'll try anyway:

My avatar has some stuff on it that aims at a target. With Dynamics, I'm trying to give other players the ability to pick up the target and move it around. I can get it working fine by putting the target on the end of a long physbone "leash." However...

#

is there a better way to do this? I'd like the target to be totally free, not leashed to me.

Basically: the target has to be a physbone to be grabbable, so I need three transforms. I make the third the aim target, I make the first (physbone root) the child of another transform. I put a parent constraint on THAT transform, TO the third/target physbone transform. My intent was the user would pick up the target, and the whole assembly would "come with..."

#

because it was looped around and parent constrained to itself. I just get scrambled, flickering behavior though, when I try to pick it up this way (very fair).

#

The use case of this is, my avatar is a constraint puppet, you can pick it up by the scruff of its neck. However, there's a chair on the avatar. If you sit in the chair AND try to pick up the avatar by its scruff, you go rocketing away along the vector of your pickup. I love this, it's great. But as it is you only shoot out to the end of the physbone "leash" the target's on.

#

If I could figure out how to get a completely free target, people would go shooting off into infinity(?). And that would be super fun. I'd really like that.

#

If I'm stuck just making a really long leash for my target, that's fine. But it would be much more fun to get a totally free target (that I could recall when it was dropped by the person).

small solar
#

Hello, does anyone know how to fix this sdk problem?

Assets\VRCSDK\Dependencies\VRChat\Editor\Components\AutoAddSpatialAudioComponents.cs(204,54): error CS0234: The type or namespace name 'Components' does not exist in the namespace 'VRC.SDK3' (are you missing an assembly reference?)

odd sky
#

SO this should be the right channel:
Since its advanced development And thought process...

At no point did anyone on your development team think:

  1. We might have 300 Million Users worldwide,
    That cant use blender and unity but want to 3D content Create>

  2. OH People are going to have to use blender and unity,
    The 2 most noninclusive, nonfriendly, non-intuitive UI, free programs on the planet.
    That in 28 Years times have failed to keep up with modern tech in most of their updates.

  3. hey, let's create a simple Improvement UI,
    That makes the programs more user-friendly and intuitive.
    And can be installed into the programs
    So content creators can create content and rooms for our
    game/Social virtual chat program.

  4. For 3d Art creation programs specifically,
    hey let's code in a VR Chat armature(Chat dummy to place meshes and skins on)/Pop in, material combiner/optimizer with selective abilities Select the materials you wish to combine), Mesh/polygon optimization(selective as well). A vr Chat avatar / Object import / exporter:
    As an Add- On
    while we're at it let's install A
    UI Update ADD on: to make it more User friendly and intuitive for all our content creators,
    after all, it is an open-source program, and we can legally do that.

If i could code all this stuff myself I would
But I'm Not that skilled when it comes to raw coding or modifying python command coding.( its not easy either way.)

15 years in Blender, 10 in unity,
still can't figure out more than the 4 basic tasks.

been playing with your API packets for 4 months now and still can't get a decent avatar,
or world created.

cinder grotto
#

I find it SUPER hard to believe you've spent more than 15 days in blender or Unity

#

Also hint hint, you don't need to do anything with an "API packet" to make an avatar or world

tropic fossil
#

Trying to access the player camera using GameObject.find("")
Does anyone know the name of it?

tropic fossil
#

Yes 😅

cinder grotto
#

I myself haven't tried this but it's likely the player camera is tagged "Main Camera"

#

So try GameObject.FindWithTag("Main Camera");

tropic fossil
#

Method not exposed to Udon 😅

cinder grotto
#

Rip

tropic fossil
#

Also tried by type but this does not work either ahh ahaha

#

Thank you though! 🤗

cinder grotto
#

UdonSharp doesn't allow FindGameObjectsWithTag either?

tropic fossil
#

Hmm

#

Let me see

cinder grotto
#

If it does, just loop through that return array and check if the tag is "Main Camera"

tropic fossil
#

Rip

#

It does not

cinder grotto
#

Makes sense. Find isn't super optimized during runtime

tropic fossil
#

I understand that jetdogg had something in their notes about it on the forums. But I could not find the name of the camera in there. I don't have their discord either ahh. Are they in this server by any chance? 🤔

cinder grotto
#

No idea

#

You can also try Camera.main or Camera.allCameras and loop through to get the one tagged "Main Camera" too

tropic fossil
#

Camera.main I have tried, I will try allCameras now 😄

cinder grotto
#

Camera.current may work too

#

What are you trying to do specifically?

tropic fossil
#

Distance culling for player layer but still render the other layers

cinder grotto
#

I don't think you can adjust culling for separate layers

tropic fossil
#

Maybe with the use of a second camera 🤔 I would still have to disable the players being shown in the main camera though and need access to it 😅
I have tried messing with the reference camera settings but it still shows players rip.

cinder grotto
#

I think VRC overrides some settings

#

And it makes sense these methods are blocked for these reasons

tropic fossil
#

Yeah 😅

#

I just tried the other options you thought of as well but they did not work either. Anyhow, thank you very very much for the ideas! ❤️

#

It is much appreciated

#

😄

cinder grotto
#

Yeah I don't believe they have any methods open for getting it for that reason

#

Messing with the player camera would open a lot of malicious code

tropic fossil
#

Ahhh

#

Interesting

#

I was thinking possibly as a toggle in the event world to reduce the fov of a second camera that only renders players and the far clip plane. Less avatars more frames? 🤔😂
If it's not possible because of possible malicious intent I understand ahaha.

#

Thank you though, the quick response was very nice 🤗

cinder grotto
#

You can still do this by rendering a second camera at the player's location however it hurts performance

tropic fossil
#

Would the performance hit be worth it in a world with say 40 very poor avatars? And do you have an idea on how to do such a thing if it is worth it?

cinder grotto
#

There's no reason to do that if it hurts performance

tropic fossil
#

Ah

#

I see

cinder grotto
#

I'd say it's very not worth

#

But yeah I don't believe there's a way to get the player camera object to modify it due to malicious intents

odd sky
#

So tired of toxic creators/Coders>
since this is online blocked.
Sadly, its most of the modern world's laws make it so have to be inclusive- and create equality( including and not limited to beginners' neurodiverse, disabled, non-disabled) etc,

IT's Actually the law. Fail to follow that law. guess what you lose your physical property to a very specific nation. And the coders then have to answer to a very specific person.
and the nation that did this made it impossible for google info research to rely heavily on search engines and the law is ironclad because they use the laws of every nation against them..

and since the number are quite high and there are over 300 computer programs that are far more complex than game development software, have made their software user-friendly, inclusive... etc. that new boss won't take any excuses for not being inclusive.

so my previous message about development still stands.

so to make sumthing like this in a 3D game development program should take about 6 -12 hours not 14 days- never from start to finish. also, this is drawn in retro 3D.

so again i will ask.

VR Chat armature(Chat dummy to place meshes and skins on)/Pop in, material combiner/optimizer with selective abilities Select the materials you wish to combine), Mesh/polygon optimization(selective as well). A vr Chat avatar / Object import / exporter:
As an Add- On

software for advanced development techniques in B for artists.

candid owl
#

the folks on the vrchat Discord don't really have much ability to change how 3D software behaves

timid jay
#

he spams it everywhere he can

candid owl
#

also with like blender it's not that terribly hard to like rearrange UI and make add-ons that help automate tasks

#

so like sharing blender startup files and making add-ons would probably do more to help then complaining on here

rocky terrace
#

honestly even second life where you can create avatars within the program itself, there's still a bit of learning to do before you can make advanced stuff. So the only solution is the devs implement one single avatar system and force everyone to use a fixed set of accessories

candid owl
#

like honestly more Ready Player me like programs that can upload straight to vrchat probably wouldn't hurt as far as easy-to-use Avatar stuff

rocky terrace
#

true!

candid owl
#

also would be nice to have the option that doesn't have a bad case of the crypto Bros

odd sky
timid jay
#

ive messed with ready player nft and a lot of the textures just

#

are broken

#

or mapped incorrectly after you receive the fbx

#

"our avatar creator blew up!" they saidvrcThinking

#

ive never gotten the automatic uploading to work but kudos when it does for other people tbh

odd sky
#

There are plenty of video games that when they were hacked and code unlocked PC>
you could create full Anthromorphs and clothes Using their base meshes, Using their Character creator UI,( many of which are free and their source code is open for modders now a days)

Blend = open-source code,
so let me put it simply lLIke.

By VR Chat creating a User interface you can install in blenders base source code,
They Could Essentail have their own character creator.
that can be directly exported to a unity file.
and people will have 100% optimized avatars and skins.

If they did the same for unity,
more optimized worlds, and less work in the long run...

I'm An Artist & Visual Application type, not a back application coder,
This means i have to see the final application and the code as it runs.
1 thing that Sucks about HF-ASD

The back application coding and recoding is far beyond my abilities.

Also, i deal in facts, not complaints. huge difference. I'll let the assumption slide.

carmine agate
#

So I'm hacking together some stuff to be able to send strings through osc. Anyone know if someone made something like that before? I'd love to save time and skip over the writing the protocol and animation controllers.

cinder grotto
#

Uploads straight to VRChat so your low-effort self can do something

cinder grotto
carmine agate
cinder grotto
cinder grotto
carmine agate
normal aurora
#

sending one code point at a time could do some quirky stuff in some cases but not much you can do about it since vrc only supports primitives

#

normally OSC can do arrays...

carmine agate
#

added 3d tracking on my dog into vrchat, so everyone can pet him

shut bane
#

i love that it's just a disembodied corgi head

#

gotta get your dog a headset so he can have phantom touch

carmine agate
#

im working my way up to a full body...

warm niche
#

Full body doggo tracking

carmine agate
#

Yeah so one marker is giving me a point in 3d space with no rotation (since I'm not assuming it's strapped on in any rotation). So I'm using that for his head.

Then with a second one, I'm going to be able to have rotation. So I can orient his torso. But that's still like a static model.

With a third one I can have him look around with his head. To give some real life into him.

Then if course using some basic pose detection, I can add simple sit/walking/like down animations that will be detected by the external program and sent over as an int. To really bring him to life.

#

It would sure be nice to have tracker support built in to vrchat so I don't have to pipe in through osc, but I get that's way too much of a hassle

carmine agate
#

idk if anyone is interested, but now have full support for adding an object on your avatar thats tracked by a vive tracker and updated in real time.

lethal schooner
#

robort hand

dry star
#

It’s so cool seeing what people are capable of making damn

thorn tapir
#

Can I use float values as little as 0.0000001 in VRChat ?

tranquil roost
#

I have done the windows import before but when I try to upload for android I get this:

#

When I fix it my model disappears

#

I need vr avatar descriptor in order for the sdk to see it and the skinmesh deletion just nukes my model

#

Been wracking my brain trying to find something online

tranquil roost
#

Update: just needed to reinstall everything and it worked. Thank you spark.

tropic fossil
#

Does changing the fixed timestep in a world actually make any difference when within VRChat concerning FixedUpdate?

pine depot
#

And desktop will be 1/90

tropic fossil
vague girder
#

I have 2 spare vive trackers I could use

carmine agate
#

I have a program running that talks to steam VR using the open VR API to poll the location of the hmd and the external tracker. Then it calculates the transform from the hmd to the tracker. Then sends the 6 poses using osc to an avatar which is has an object added under the head transform on the armature. There's then 6 children under there that each have an animation for each of the 6 axis that get transformed by the osc variables. Finally below that we have the visible object, in this case a dog head (because I strap it to my dog's neck).

carmine agate
#

Just wait till his head and body are individually controlled

carmine agate
#

Yes. Let's normalize VR pets

vague girder
#

how are you stopping the game from using the tracker?

#

do you just turn it on after calibrating?

river wasp
#

Is there a way to set the default position that the avatar thumbnail camera in unity spawns?

pure solar
#

Looking for some help/advice with using UdonMotion by lox9973
gitlab.com/lox9973/UdonMotion
There is a sample project there and I am wondering how to use a users model instead of the demo shapell
This is part of a larger 3D Printing project, Feel free to DM me or add my in VRC and I can explain more.

thick walrus
pure solar
#

I will try that, but the goal would ultimately be bringing in a random players avatar.

#

Similar to this world by Lox9973

#

wrld_6888716f-815b-4bcf-ab52-dc06e4c91033

thick walrus
#

a world cannot load a player's model at runtime and then use it

pure solar
#

I am sure I am using the wrong language, my apologies.

#

If you have time to check out the world I listed above, that is pretty much what I am trying to do.

#

I also just recently visited the Shader Fest 2021, and there is a secret room that opens up if you go through all the sections. That is exactly what I am trying to accomplish, but my searches have turned up little

naive peak
#

Automatically handles making the parameters unique so that you can re-apply the template however many times.

tranquil roost
#

Anyone know how I would go about importing a model without any legs?

cinder grotto
tranquil roost
#

cool thanks

fossil mantle
#

ive ended up breaking the builder. not sure how, i was just going thru the checklist for quest then the ui disappeared so im just kinda staring at this

#

ive fixed it. its good now

shut bane
#

is there a way to get particles to align to the normal of the object they're colliding with? i have a sub-emitter for splatter decals that i want to align to the collider normal, but right now i can only get them to align to the velocity of the source particle

#

this is on an avatar btw

royal rune
#

Hi there!
Question I wanna automate a process with invite request through the api?
So I wanna to accept like the first 40 of world invite requests to limit like the amount of people that are able to get in.

#

Will the api flag this as malicious? since so far I read through api docs etc (that I could find)
I got to get all notifications in 1 request but got to send out for every individual user a invite request to the world?

toxic trench
#

Guys

#

Hi

#

I am new to VR chat, but i am an experienced programmer, I noticed that you can create stuff with C# for vrchat, right?

#

Isn't that a BIG rce vector?

#

do vr chat sandboxes the code or something?

vague girder
toxic trench
#

Interesting

#

I really hope there aren't many security vulnerabilities in this language

#

being able to execute custom code by just joining a room sounds pretty scary

vague girder
#

I've not heard of any of that happening

rocky terrace
#

wasnt udon like a VM

vague girder
#
rocky terrace
#

there it is

toxic trench
#

there are some results if you search "vr chat RCE"

#
rocky terrace
#

they made their own room there

#

you'll have to get people to go in there

vague girder
#

how old is that post?

toxic trench
#

Also, i saw this room where you can get reproduce videos from youtube, that means you can do http requests, that means you can just http request a malicious server and log everyone's ip

manic zealot
toxic trench
rocky terrace
#

no, http request is not possible, what that room does is VERY different from requesting video from youtube

rocky terrace
#

you need to understand that vrchat has a lot of limitations that people cannot do, including http requests

toxic trench
#

but how do they get the youtube videos then?

rocky terrace
#

uses whatever the method unity is using to play youtube, im not that sure of the specifics

toxic trench
#

to get data from the internet you have to do an HTTP request

#

its literally impossible otherwise

vague girder
rocky terrace
#

yes

vague girder
#

it comes bundled in with the game

toxic trench
#

I also saw rooms that stream movies that aren't in youtube

rocky terrace
#

streaming mp4 movies from servers directly is possible

toxic trench
#

OOF

rocky terrace
#

you are saying that's an exploit?

vague girder
#

yes, youtube-dl can also use other video streaming services, as mentioned in the description

rocky terrace
#

please remove all video playing capabilities RIGHT NOW

toxic trench
#

well, this only means that someone could log your IP by joining their room

#

if they play a video stored in their server and they just keep the logs

#

when your computer requests that video from the server

manic zealot
#

If you enable "Allow Untrusted URLs" yes

rocky terrace
#

yes, that's possible. In fact I have a log of people's countries who played videos in my video world

vague girder
#

^ what Ohm said

#

it's a setting in game, which is off by default

toxic trench
#

❤️

rocky terrace
#

yeah, now you only allow google to log you, that's nice

toxic trench
vague girder
#

there should be a Canny section for that

toxic trench
#

I mean like security bugs

rocky terrace
#

yeah you can make a canny for whatever security bug you have in your mind

toxic trench
#

thanks ❤️

vague girder
rocky terrace
#

like surfing the modern web is a huge privacy invasion

manic zealot