#development-advanced

1 messages · Page 3 of 1

sweet ibex
#

Recompiling udon programs is the #1 time sink in my projects.

sweet ibex
#

And for some reason ever since implementing inheritance, my Unity crashes a lot more when recompiling udon prograsms

#

Yep, I cannot recompile my Udon programs now without Unity crashing.

grizzled jackal
#

Also disable Edit > Preferences > General > Auto Refresh

sweet ibex
#

I am getting lots and lots of editor errors now. Restarting and reimporting do not work and most of my behaviors do not display in play mode. It seems that it is having trouble serializing inherited members

InvalidCastException: Specified cast is not valid.
(wrapper castclass) System.Object.__castclass_with_cache(object,intptr,intptr)
UdonSharp.Serialization.UdonSharpBehaviourSerializer+UdonSharpBehaviourTypedWrapper`1[T].Read (T& targetObject, UdonSharp.Serialization.IValueStorage sourceObject) (at Packages/com.vrchat.udonsharp/Editor/Serialization/Serializers/UdonSharpBehaviourSerializer.cs:210)
(wrapper dynamic-method) System.Object.Dynamic_GIB.VRpg.BNSVampire.VRpgManagerBNS_Read(UdonSharp.Serialization.IValueStorage[],GIB.VRpg.BNSVampire.VRpgManagerBNS&,bool)
sweet ibex
#

Apparently SendCustomEvent (i.e., from a Ui element) also does not invoke child methods?

#

public class Foo : UdonSharpBehaviour
{
  public void Bar() { }
}
public class FooFoo: Foo
{
  public void BarBar() { }
}

In the above example, UI elements are not able to call BarBar as an OnValueChanged event.

#

Any ideas @grizzled jackal ?

warm niche
#

Also remember udonsharp is not csharp, there are limitations:

sweet ibex
#

I know there's only one class per script. In the above example each class is on its own script

#

@warm niche So you're saying inheritance doesn't work? because everyone's been telling me it does

warm niche
warm niche
#

again nevermind it works if you call UdonBehaviour.SendCustomEvent on your button. (I really need a coffee this morning x))

sweet ibex
#

But it doesn't. That's the issue. It is not calling the method.

#

UdonBehaviour.SendCustomEvent will not call events on derivative UdonSharpBehaviors.

warm niche
grizzled jackal
grizzled jackal
sweet ibex
#

The method I am trying to call.

grizzled jackal
#

That's strange, I'll try to repro later today

near bronze
# sweet ibex

Check what it gets compiled to in the assembly, maybe inheritance is adding additional characters for disambiguation?

quaint owl
#

Is there any statements from VRChat as to which version will be running on the quest3?. The pc one or the same standalone bare bones version?

quaint owl
#

Aw that's a let down.

candid owl
#

A standalone headset is not capable of running the PC version as that's compiled for x86 and all standalone headsets are arm-based processors

median tendon
median tendon
#

@sterile cipher sorry for the ping but mind checking if this applies to VRChat at all by chance? Would hate to find out that it does in some way apply to it.

sterile cipher
#

We don't use any WebP libraries, and neither does Unity runtime iirc.

median tapir
#

by any chance
does Udon support Regex?
trying to make a script that types dialogue character-by-character and finding it difficult to make Rich Text formatting not briefly appear onscreen, because I can't find the function that accepts the regex I wrote to tokenize the input

grand sapphire
#

Just submitting a bug I restarted my PC went to open vrc somehow eac triggered and which chained into a bluescreen, restarted my PC again and vrc is working fine, the fact that eac can even trigger a bluescreen is something that needs to be fixed

visual island
#

hi i have weird issue with vrchat's-SDK:
i have a windows project that i want to change the platform to android, so i did it from the vrc builder and waited until it finished.
after that i started working on adjusting the avatar and after a few minuets, unity starts to import again all of the assets from the folder by itself without any warning or dialog box (and no, i did not click reimport).
it also happend to me in another 3 projects i tried to work on, so i could not done working on them.
any idea why this is happends?

slate mango
#

Ok, before I buy VRCLens.
Does anyone know of any way to simply control the location of the VRChat stream camera, within the Avatar?
Before you state the obvious, no, the standard settings do not work because of an edge case method of walking I use.
TLDR, I realwalk, meaning my origin point is sometimes hundreds of feet from my actual location, and the camera is tied to origin of play space, not avatar. I've checked that, several times.
So, if anyone has a way to change that, and ideally have more granular control of the camera in a relatively performant manner, please LMK.

split maple
#

I am looking for something camera related, but not vrclens.
I'm wondering if it's possible to make something like i've seen in some worlds, but on an avatar. that something being a "orb" that you stick your camera in, and then someone can grab... say a physbone with a unity camera script on it.. and control what that orb shows to your camera. So essentially you give control of your camera's position to someone else so they can direct photos or videos

tiny cosmos
#

Has anyone used Chat GPT API to connect to a drone that follows you in VRChat and it only focuses on the avatar owners voice to ask it a question and it will repeat back a TTS response based on what ChatGPT typed?

grizzled jackal
tiny cosmos
#

Hmm I see

#

Cause I had a idea "what if I had a actual functioning AI that responds to my commands"

#

Cause I am not a expert in API hook ups even though I know its easy based on what I been asking around for

#

But if there is a limitation to make it function well do you think there is another approach to achieve this?

grizzled jackal
#

There are a few ways to accomplish this.
You can use a huge amount of prebaked URLs to send small amounts of data sequentially that you then piece together on your server.

#

The cooldown only applies per type of loader, so to speed things up you can use a string loader, image loader, and video player in parallel.

#

Another way to do it is through localhost (VRC is working on closing that down, so don't expect it to keep working forever)

#

Yet another way is to just Debug.Log the data you want to send out.

#

You can then use a program to parse the VRC log file

#

None of these approaches are particularly applicable to your use case

#

The most feasible way to do it is to have a bot VRC account in the instance.

unreal orchid
tiny cosmos
#

Ahh I see thanks for the insight you 2

sweet ibex
#

Having a very weird issue. I have a script that teleports the player (using player.TeleportTo) when Interact is called (such as on a door handle). This has always worked since, well, forever. However, now it suddenly it doesn't. It actually works in editor, but it is not working in VRChat. Clicking the object just does nothing. No errors, nothing.

near bronze
sweet ibex
#

I have a script that deactivates regions of the world on start to save resources, and they get activated later.

near bronze
# sweet ibex Oh, yes! Does that make a difference?

unfortunately there's a bug that has been around for a while which breaks interacts if they started to initialize but then get disabled before they initialize. The solution is to have those objects already off or have the system to disable them happen after a delay

sweet ibex
#

That explains a lot. Truly I have been pulling my hair out. 🙂

#

It also explains why the interact itself didn't work, but a button that calls a method that does the same thing does.

autumn hatch
#

Certain avatar testing worlds have a tri/quad projectors so people can check their avatars topology, where could I find something like that? Tried searching myself but couldn't find anything.

velvet zodiac
tiny cosmos
#

Look at everyone trashing Star Citizen till now

#

actual clowns

warm niche
#

I really don't like to complain but what is the purpose of canny and your community feedback if at the end you just ignore half of the reports and ship bugs discovered in beta into live? It's happening so many times what's going on

sweet ibex
#

Any idea what causes an image downloaded with an imagedownloader to look like this?

sweet ibex
#

It also causes bloom to do this:

nimble oyster
#

personally it looks like it’s being saturated way way wayy too much

#

Not sure what’s causing it but that’s what’s happening

dawn creek
#

even then it's the wrong colors. I'd guess something like a wrong pixel format, but idk how that would happen

sweet ibex
#

They're all .png, I dunno what settings are wrong

quick stone
#

yes it is probably pixel format. for png you wanna stick to 8 bit per channel RGB/RGBA

#

32 bit per channel definitely causes problems, from experience

warm root
#

You mean like how Second Life worked nearly 20 years ago? lol

wet tinsel
#

Hi everyone, I'm using a drawing tablet and for some reason what I see doesn't match up with what other people see.
The tablet uses a camera to sample a color, and then draws that on top of a camera that acts as a way of capturing the drawing.
Here is what I see:

#

And here is what other people see when I also show them the rainbow:

#

Person A

#

Person B

#

@gleaming bane Sync problems, unfortunately, though it does work locally

wet tinsel
#

@proud meadow Hi! excuse me, but is this something you'd understand the cause of? I had searched for discussions on how painting works with orthographic cameras and found a post from you way back in 2019 that mentioned it. maybe you recognize the cause of this desync on a drawing tablet meant for avatars?

proud meadow
#

@wet tinsel is the screen in one of your hands? or is it being dropped into the world?

#

if it's dropped into the world, you're never going to get sync. you could try using physbone posing since I think those get synced a bit more reliably, but it might still be different remote and locally

#

if you do want it dropped in the world, you can use a cursed technique like floating point precision constraints (constrain to 1e+7,1e+7,1e+7 world space or something) so it kinda snaps. but even then I don't know how to make it sync precisely

#

sorry I'm not up to date on the latest technique for precisely syncing position of objects constrained to world

wet tinsel
#

Ah! It is indeed dropped into the world. Thanks so much for giving me a new lead!

remote frigate
#

Does somebody know which command line args VRChat passes to yt-dlp when I'm entering a url in a video player?

prime fable
wet tinsel
#

@haughty blaze

Hi! Is there any way to fix this sync issue that happens with the Graffiti Marker? Or is avatar sync something that can't really be perfected further than this? Here are a few examples of what I've experienced:

#

An image my friend drew

#

What I see

haughty blaze
#

TLDR: watch them draw the thing to see it the way it’s meant to be seen

wet tinsel
#

That makes so much sense. Thanks!!

quick stone
prime fable
wet tinsel
#

@haughty blaze Is the method you described the same method that's used for more conventional avatar markers and pens?

lyric iris
wet tinsel
lyric iris
#

yeah you would use a large invisible cube, which increases your bounds so that someone is always looking at you

#

im unsure if this will mitigate how network IK accuracy falls off over distance though

cyan elm
#

Hi I am writing a Unity custom editor that automatically switches materials on Quest to another material.
In the SDK it reports shaders as being incompatible. My plugin intends to switch them out to compatible shaders at build time using the OnPreprocessAvatar hook.
How can I stop it validating my materials? I know I can extend IEditorOnly to exclude from validation but the Renderer component is built into unity

grizzled jackal
cyan elm
#

I found a solution using reflection. Not pretty but it works 🙂

#
var field = typeof(VRC.SDKBase.Validation.AvatarValidation).GetField("ShaderWhiteList", BindingFlags.Static | BindingFlags.Public);

var originalShaderNames = VRC.SDKBase.Validation.AvatarValidation.ShaderWhiteList;

field.SetValue(null, newShaderNames.Concat(originalShaderNames).ToArray());

If anyone wants to do it themselves until the devs give us a way to whitelist our own

cyan elm
#

Anyone know how to bypass avatar validation on Quest? As above - I am writing a plugin that at build time will strip unsupported components and switch materials so the avatar validation rules dont make sense anymore.

I can clear the validation errors every frame which allows me to click the upload button however it does a 2nd round of validation I cannot bypass.

sterile nymph
mossy seal
#

Are you in debug mode for your inspector?

warm root
#

(that limitation doesn't apply to standalone media files you provide directly, obviously - only YouTube)

quick stone
#

i'm quite aware of how that works, but it may matter for extractors other than youtube

warm root
#

That was for everyone's benefit as 99.9% don't seem to be aware.

unreal orchid
#

So from what I have heard Unity's terrain system is bad and I shouldn't use it, but why is it bad?

For my world I need a lot of grass for it to look proper, using particles or drawinstanced() (why can't we have drawinstancedindirect()) costs too much performance. All I am using the terrain system for is to place down grass, I am disabling the actual terrain renderer.

So my only options left are to manually place down grass objects (||which I have been doing slowly with polybrush||) and after mesh combining the performance is actually pretty good, it just takes forever.

However Unity's terrain system seems to run far faster (even with more grass instances) and the tooling around placing down a lot of grass is just quicker.

So, why exactly shouldn't I use the terrain system?

terse plover
#

File size is a problem at some point and culling sucks for terrain but once upgrade will be a bit better

unreal orchid
grizzled jackal
unreal orchid
grizzled jackal
#

oh, lmao

#

nice

#

I just read that

#

unity™️

warm root
#

That's... a really bizarre bug. No wonder it was around for so long.

#

I'm guessing they never figured out the root cause?

honest bramble
#

Would anyone know why the package resolver window is throwing errors?

ArgumentException: Default Index  is beyond the scope of possible value
UnityEditor.UIElements.PopupField`1[T]..ctor (System.String label, System.Collections.Generic.List`1[T] choices, System.Int32 defaultIndex, System.Func`2[T,TResult] formatSelectedValueCallback, System.Func`2[T,TResult] formatListItemCallback) (at /home/bokken/buildslave/unity/build/Editor/Mono/UIElements/Controls/PopupField.cs:130)
UnityEditor.UIElements.PopupField`1[T]..ctor (System.Collections.Generic.List`1[T] choices, System.Int32 defaultIndex, System.Func`2[T,TResult] formatSelectedValueCallback, System.Func`2[T,TResult] formatListItemCallback) (at /home/bokken/buildslave/unity/build/Editor/Mono/UIElements/Controls/PopupField.cs:122)
VRC.PackageManagement.Resolver.ResolverWindow.CreateDependencyRow (System.String id, System.String version, VRC.PackageManagement.Core.Types.UnityProject project, System.Boolean havePackage) (at Packages/com.vrchat.core.vpm-resolver/Editor/Resolver/ResolverWindow.cs:180)
VRC.PackageManagement.Resolver.ResolverWindow.Refresh () (at Packages/com.vrchat.core.vpm-resolver/Editor/Resolver/ResolverWindow.cs:72)
VRC.PackageManagement.Resolver.ResolverWindow.CreateGUI () (at Packages/com.vrchat.core.vpm-resolver/Editor/Resolver/ResolverWindow.cs:135)
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <eae584ce26bc40229c1b1aa476bfa589>:0)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <eae584ce26bc40229c1b1aa476bfa589>:0)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <eae584ce26bc40229c1b1aa476bfa589>:0)
UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at /home/bokken/buildslave/unity/build/Editor/Mono/HostView.cs:381)
UnityEditor.HostView.Invoke (System.String methodName) (at /home/bokken/buildslave/unity/build/Editor/Mono/HostView.cs:375)
UnityEditor.HostView.SendCreateGUIIfNecessary () (at /home/bokken/buildslave/unity/build/Editor/Mono/HostView.cs:512)
UnityEditor.HostView.RegisterSelectedPane (System.Boolean sendEvents) (at /home/bokken/buildslave/unity/build/Editor/Mono/HostView.cs:396)
UnityEditor.HostView.OnEnable () (at /home/bokken/buildslave/unity/build/Editor/Mono/HostView.cs:127)
UnityEditor.DockArea.OnEnable () (at /home/bokken/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:169)
UnityEditorInternal.InternalEditorUtility:LoadSerializedFileAndForget(String)
UnityEditor.WindowLayout:LoadDefaultWindowPreferences() (at /home/bokken/buildslave/unity/build/Editor/Mono/GUI/WindowLayout.cs:52)

and it spawns an empty ui window in the corner of my screen

honest bramble
#

ok....trying to generate a new project via vpm new "ImporterTest" Avatar -p ~/Projects/3D_Projects/VRChat/Avatars/ with no other packages except the latest Avatar template immediately causes unity to crash and open bug reporter?

#

several crash report windows

#

all on top of each other

honest bramble
#

resetting the layout to factory default seems to have...fixed things??

random peak
#

@limber gorge Heya, buddy! I've got a new PR for you!

I am starting to figure out how to use C#, and I finally was able to put in something that I thought was missing in Gesture Manager (I looked everywhere, I swear!). Because it was missing, I went ahead and added it in myself...

Say hello to "Earmuffs" Toggle in the Radial Menu! I added this to test the VRChat Default Parameter Earmuffs right in Gesture Manager Emulator!

Please take a look at my PR #38 and test this out to ensure everything is still stable on your side with my changes. I've already done some testing myself and saw no issues, but it doesn't hurt to have a second eye. Hope this contribution helps!
https://github.com/BlackStartx/VRC-Gesture-Manager/pull/38

GitHub

Hello there!
I recently discovered that for some reason, I could not test the default VRChat Parameter Earmuffs using the Radial Menu on the Emulator. So... I have finally added that in!
Added &quo...

limber gorge
#

Uh @random peak, I've just seen the two push request and reviewed it~ :3 🌺

I can say that I'll merge them asap since they look good indeed~ ;3 ✨

random peak
#

Yeah, I noticed the old Documentation URL in the script and thought it would be good to patch that as well. Hence why I made a separate branch for that PR.

cyan elm
#

I've got a unity plugin that every second clones all VRC avatars in the scene and does modifications on them to make them Quest compatible. When my editorwindow loses focus it stops cloning (so the SDK should only see the cloned gameobject and not any new ones).

When I open the SDK it says my polygon count is 0 and when I try and build it errors about null reference.

In the screenshot my plugin adds a listener to the SDK to remove some stuff so the gameobject does exist but some reference is lost. What do I do?

VRC.SDKBase.Editor.BuildPipeline.VRCBuildPipelineCallbacks:OnPreprocessAvatar (UnityEngine.GameObject)
VRC.SDK3.Builder.VRCAvatarBuilder:ExportCurrentAvatarResource (UnityEngine.Object,bool,bool,string&,System.Action`1<string>,System.Action`1<object>)
VRC.SDK3.Builder.VRCAvatarBuilder:ExportAvatarBlueprint (UnityEngine.GameObject)
lament snow
#

I don't know if this is where I go to get some advice. But I've been having some issues with unity doing a VRCSDK build request call back. I can't figure out how to fix it. Can anyone help me with that?

coarse cave
lament snow
coarse cave
#

oh

coarse cave
teal dune
#

Hey everyone, sorry to bother but I have some issues with the avatar i'm making and would need some help. When I log on USAW instace all the proximity contact values gets stuck at 0 until the avatar is reset. It does NOT happen if i log on a EU instance
is there a different version of servers running between US and EU ? Is it cause of lag ? ( I'm in Europe )

polar wagon
#

You could use an object's offset moving towards a proximity receiver

#

So that as the animation plays, the sender gets closer to the center of the receiver, and ends in the middle of it

#

that way it will go from 0 to 1 in the same time it takes for the animation to play if it starts right on the outside of the proximity range (and is set to linear interpolation)

vagrant imp
#

I don't understand how would the other person's avatar get that information then?

#

Unless the object was from your avatar, but then I don't know how you would keep it anchored to their position

polar wagon
vagrant imp
#

Ohh

#

Okay

polar wagon
#

on both avatars

vagrant imp
#

Well then I have no idea how they work on quest

polar wagon
#

ah

#

they won't

vagrant imp
#

I've seen them work before though

#

There's this one avatar

#

Idk what it's called

#

My friends call it goober

polar wagon
#

well yeah but there's no way to lock things to the same coords, for the purposes of late sync

#

it will sync from the beginning but you won't be able to catch up if you switch late

vagrant imp
#

It has dog ears and a bunch of outfits and it's in a "cute" style. Very popular avatar. The dances sync so flawlessly even on quest

#

Maybe they don't do late synce

#

But they still sync so well

#

Mine if you are the one who initiated it, the other person's will be like 0.5 seconds behind

#

But if someone else initiated then it is perfectly synced

#

Maybe I need to do a check from both sides

polar wagon
#

think that's just because there's always latency between your local game and what the other person sees

#

due to networking

vagrant imp
#

Like reuse the animation from the local side

#

Anyways I have to go now

#

It was nice talking to you

muted brook
#

has anyone tested if vrc allows vfx graphs?

grizzled jackal
muted brook
#

well it isnt officialy but most of it works. lit particles are a nono though

tribal horizon
#

And... I notice the UdonSyncPlayer script is set to manual. Is that optimal, necessary or what? And is that connected with the syncing of the video between other players? I'm controlling the player through a script. Is there a benefit to setting the syncFrequency higher or lower? And I am guessing that allowGuestControl is referring to the video controls right? Again I'm handling it through code so I believe I can turn that off.

#

I noticed yesterday with several people located around the world that coordinating the play & sound was tricky. Some people couldn't see it, some couldn't hear it. Pausing the video seemed to help the sound issue, sometimes I restarted the video but of course it runs thru the entire process one more time.

warm root
tribal horizon
warm root
tribal horizon
warm root
tribal horizon
#

I'm trying to rid it of anything it doesn't actually need.

warm root
#

I'd open the graph and check manually. I've never personally used that one. It could check for drift and resync the timer if it's over X seconds out or something, but that's a guess.

quick stone
#

think i'd generally recommend using another player prefab instead of the ones that come with the sdk

#

USharpVideo's playback time sync is rock solid in my experience, ProTV a little less solid on the sync but it has a huge feature set, etc

gray mulch
bronze ferry
#

He isn't? i was lied to this whole timmeee

median tapir
#

okay I wanna know why the VR Spatial Audio Source component forces my audio falloffs to be logarithmic and enabling specialization breaks reverb zone support

I have a reverb zone and I want the ease in/out custom falloff that it starts out with, but now I have to live with the ⚠️

I'm just confused, and not confident if I'm doing something wrong or not or how to fix it

topaz shell
unique forge
#

Or whatever the check box was called

topaz shell
muted brook
#

Any updates on, wasm udon 2 ?

#

It's been complete silence about it for a year now as far as I can tell

modern fog
#

Does anyone have tips when parsing the blank new lines in VRC log files?

modern fog
quick stone
tribal horizon
# modern fog Does anyone have tips when parsing the blank new lines in VRC log files?

If you're talking about the standard log files (and I think you are) there is nothing nefarious about looking at them. Your debug lines will be in there as well. What are you using to view the file? Any number of tools can strip blank lines. I use Notepad++ and you can just select Edit / Line Operations / Remove Empty Lines. Lots of other options too including filtering and such.

modern fog
#

Powershell

#

My previous attempt was C# System.IO and it got worse as the log file size got bigger.
The issue there was that I had to account for the 3 extra new lines at the end of the log and that brought in extra processing time that scaled badly

#

The current Powershell implementation right now seems promising in terms of speed

grizzled jackal
modern fog
#

< 1000kb is less than 20ms latency and 12ms at best
4000kb brings it up to 50ms

tribal horizon
grizzled jackal
#

That is what he's doing

#

He is asking how to do it better

modern fog
#

I wrote software to parse it last night and ran into the said scaling issues

grizzled jackal
#

as the log file grows, it takes longer to parse

modern fog
#

I have a powershell one written up now but can't test until I am home

tribal horizon
#

I don't think parsing it is the answer... I'm suggesting placing the lines you want into another file.

modern fog
#

That is what's happening so I don't get locked out by vrc accessing the file

tribal horizon
#

as they are written

#

Oh so your file with the data is getting too large?

#

Do you need the entire file all the time? Can you write smaller batches?

modern fog
#

It seems I couldn't get around it with StreamReader or LinQ with File.ReadLines.
So I am trying something else when I get home

#

This Powershell solution I just came up with may be the answer to the performance issue

tribal horizon
#

I don't know the answer but if you only need the "latest" perhaps writing to an in-memory Queue would work.

modern fog
#

What tech stack is that in?

tribal horizon
#

What are you using/planning to use? C# can do it, I assume TypeScript can do something similar.

modern fog
#

I am planning on sticking with C# for most of it and want to keep it below 20ms latency

tribal horizon
#

I have to guess that C# is the easiest solution available at the moment. These are your log messages correct? You're just marking them so you can recognize them?

modern fog
#

Yes

#

It is working in-game as of last night. Only the latency issue remains

tribal horizon
#

Like so many things, it is going to be tricky 🙂

modern fog
#

HOLY C
went from 10ms - 50ms
to this

modern fog
#

here it is in action. I will need to tune how the force is delivered to the steering wheel motor when the steering is near the neutral position

#

hardware used for this:

muted brook
#

If so... Add a Porsche 👉👈

#

Those cars handle in a very realistic way so you would definitely do it justice.

modern fog
#

Hello, eventually a notPorsche will be added. Please don't sue me

muted brook
#

Haha great. Amazing work. The best car physics Ive ever seen in vrc. Just feels snappy and responsive. Others usually feel like you're driving a 50ton truck lol

#

Glad to see you're working on it all again

modern fog
#

Thank you. I don't plan on stopping work on these any time soon

#

This doesn't have everything in here or up to date but a rough record of progress https://trello.com/b/YcaEFyuA/udon-car-simulation

muted brook
#

Niceee

median tapir
#

I'm working on a dialogue box script with per-token typing animation, and I have a question: for performance reasons, should I use concatenate or StringBuilder?

near bronze
median tapir
#

all I know is somebody online basically said "use StringBuilder it's good", so I immediately went over here to ask if that still applies to VRChat
I guess not haha

#

thank you!

near bronze
#

yeah, stringbuilder is good because most of the time, people are asking how to put together strings. However what you're asking for is how to take apart strings

#

really you won't use concat either. Probably substring

bitter juniper
#

You shouldn't ask the question if someone is good with something. What about they volunteer to answer, but your question can't be answered, or not relate to the the topic? Read more info here https://dontasktoask.com/

Always ask the actual question you want to get an answer.

inland grove
#

Forget it, it doesn’t matter

night birch
#

Hey guys just a warning if you upgrade to 2022. If you have custom U# that you are keeping in UdonSharp folder, UdonSharp1 folder, or a sub-folder in any of those root folders, THE MIGRATION WILL WIPE THEM AND YOUR NORMAL VCC BACK UP SKIPS THEM. I learned this the hard way, and had to go back to a previous branch in my Plastic SCM cloud save to recover the scripts.

Hopefully this saves you the headache that I will be spending my week straightening out 😂

gray mulch
warm niche
night birch
#

I might be on some crazy juice though it may be a user error thing

#

I need to do some more investigating

void grove
#

Can someone tell me if this is possible? Is it possible to make web API calls using avatar code?

Is it possible to load new images into the avatar?

I want to create a camera rig that can then show the results to other users, but can also pull edited photos after they have been processed by software on the computer that takes Web API calls.

So... Take photos -> send via web API (local) -> save processed image to computer (automatic) -> load image from computer to be displayed by avatar.

#

Easier if I can use Python, but I could do raw API calls as well if that's the only option.

grizzled jackal
void grove
grizzled jackal
median tapir
#

contact sender / receiver components exist in the Worlds SDK...
is it possible to send world information (ie: interior vs exterior) to avatars via contacts, or is its inclusion a bug?

tall depot
#

Hello, in the course of developing a display driver, I'm seeking to integrate a laser pointer feature that responds to both mouse and Xbox controller inputs, especially when VR controllers are not in use. I've noted that this functionality is not operational on AirLink and specific mobile VR apps like iVRy or ALVR. Nevertheless, it performs seamlessly on Index and RiftCat (mobile VR). Could you kindly share your expectations or requirements for a VR headset to support this type of pointer?

severe relic
#

hello, what's length of chatbot on vrchat for OSC accepts.

i trying pull my GPT NODE but text keeps overlap length be of OSC chatbox.

severe relic
# mossy seal 144 chars max

is KillFrizzyAvatarText higher then 144 char i did my GPT stuff now but now need find way add Chess in chat using chess.js NPM

but higher then 144 char and not sure any other way

since everything needs be done voice commands

mossy seal
severe relic
#

oh

#

what think be better way @mossy seal just to add chess by voice commands game

mossy seal
#

Avatar endpoints are better, but require per avatar setup.
Chatbox end points are more limited, but work regardless of avatar

mossy seal
#

You could always use oscq check to see if the avatar endpoints are setup. And switch dynamically in your script.

dawn cape
#

is there any way to get the players correct orientation? something im doing requires teleporting a player to themselves & their current rotation but if i do that as late as possible (post render), it results in this behaviour:
https://x.themrgong.xyz/RvTk.mp4

#
void OnPostRender()
{
    if (isClickingTrigger)
    {
        localPlayer.TeleportTo(localPlayer.GetPosition(), localPlayer.GetRotation());
    }
}
near bronze
# dawn cape is there any way to get the players correct orientation? something im doing requ...

The rotation you get from GetRotation is not exactly the same as the rotation expected in TeleportTo. This has nothing to do with the update order. What matters is that you use the right interface that matches. The most stable, reliable method is to use trackingdata origin paired with AlignRoomWithSpawnPoint, because those two actually match and refer to the same point

        localPlayer.TeleportTo(origin.position, origin.rotation, VRC_SceneDescriptor.SpawnOrientation.AlignRoomWithSpawnPoint);```
dawn cape
#

Ooooo, thank you! i wasn't aware there was a third parameter ^^

ill give this a shot when i've gotten some rest

jaunty prism
deft bough
#

Is there a way to have the trail renderer offset the texture that's being rendered by the same distance the trail has moved so it can leave behind the image rather than pulling it along? Similar to the effect they're doing with the LED ribbons in this video:

unique forge
#

Panosphere shader that has the movement set to 0

velvet zodiac
#

Is there a way to get the position/settings of the handheld camera in a U# script?

I know there's no built-in way. But I feel like there could be a hack.

You can get the position and other camera settings in a shader by checking _VRChatCameraMode and accessing things like _WorldSpaceCameraPos. I also know that I can read back texture data to U# using VRCAsyncGpuReadback.

But I'm missing a middle step. How to get the camera data into a texture. If I use a CRT or a camera with a RenderTexture, then the camera data I get back doesn't correspond to the handheld camera. (makes sense)

upper crest
#

Anyone know how to add a prop that you can place and grab

#

a toggle for a avatar

unique forge
stiff trail
#

Hi everyone, I'm new to game dev with VRChat, have a question I thought someone could help me with.

I want to start working on a drone-like flying control script, but I have no idea where to start.
I want the script to have normal drone piloting controls(Yaw-throttle for left analog and pitch-roll for the right). Ideally, it should be mapped to the analog sticks, but I don't know if VRChat supports that. Any help is appreciated!

grizzled jackal
#

Are you familiar with programming?

stiff trail
#

yeah I am, not too advanced but getting there, I am pretty familiar with Unity-C#

grizzled jackal
stiff trail
#

Following tutorials with understanding of the code, yes doable

grizzled jackal
# stiff trail Following tutorials with understanding of the code, yes doable

Alrighty, doing it in a VRChat world will be pretty similar.
Here are some key differences:

  1. You can't derive from MonoBehaviour. All your scripts must be UdonSharpBehaviour. You can make an U# script in the create context menu. This will use the U# script template and make and link the Udon program asset for you!
  2. Udon does not have access to every C# feature, but it does have access to many of them!
  3. VRChat has their own input system you can get the events from, as well as specific string names for the controller axes.
stiff trail
night birch
#

Is there any documentation on using async readback to pull bands from the audiolink render texture? I've never used it before

honest bramble
#

TLDR,

[API] Request body - json: {"name":"Avatar - VRChatSDK_Unity2022_Test_Upload - Asset bundle - 2022.3.6f1_1_standalonewindows_Release","mimeType":"application/x-avatar","extension":".vrca"}
[API] Failed to send request
[API] Exception has been thrown by the target of an invocation.
[Always] Failed to upload avatar!
[Always] Exception has been thrown by the target of an invocation.
NullReferenceException: Object reference not set to an instance of an object
#

fails with a 404 not found

median tendon
median tendon
# near bronze The rotation you get from GetRotation is not exactly the same as the rotation ex...

I wish there was a way to add in a way that when I go into camera fly mode to instead of just capturing pictures to have a way of video capture from within vrchat on desktop itself. I feel that is one major thing I need that is afaik missing and Win+G (game bar) does not work well with it as then I have to use a world with T and G (for free roaming) similar to the shrink room and other worlds like that. Having it native in the camera on VRChat would be great.

warm niche
# median tendon how did it wipe your assets?

apparently this is how VCC actually behaves when installing/upgrading the SDK, it scan for legacy Assets and delete those without making any backup. That means that if you organized all your scripts in udonsharp folder, then goodbye all your work 🔥

median tendon
#

Would also be cool if one could have stream camera on desktop mode as well when using camera fly mode 💀.

median tendon
warm niche
#

Or just make a text file in that folder and call it "do not put anything here!"

median tendon
#

not like SHA512.HashData in System.Security.Cryptography does not exist in their version of the dotnet/runtile that vrchat uses

#

like bruh how hard is it for VCC to use this code?

#
    private bool CompareSHA512(string duplicateFile, string originalFile)
    {
        try
        {
            using var originalFileContents = File.OpenRead(originalFile);
            using var duplicateFileContents = File.OpenRead(duplicateFile);
            var originalHash = (stackalloc byte[64]);
            var duplicateHash = (stackalloc byte[64]);
            _ = SHA512.HashData(duplicateFileContents, duplicateHash);
            _ = SHA512.HashData(originalFileContents, originalHash);
            // Encoding.UTF8.GetString does not work here.
            this.DuplicateFileHash = Convert.ToHexString(duplicateHash);
            this.OriginalFileHash = Convert.ToHexString(originalHash);
            return this.DuplicateFileHash == this.OriginalFileHash;
        }
        catch (FileNotFoundException)
        {
            Debug.WriteLine($"Calculating Checksum failed for '{originalFile}' or '{duplicateFile}'.");
            this.DuplicateFileHash = string.Empty;
            this.OriginalFileHash = string.Empty;
            return true;
        }
        catch (IOException ex) when (ex.Message.Contains("The cloud operation was not completed before the time-out period expired."))
        {
            // Try again. Sometimes happens for some reason.
            return this.CompareSHA512(duplicateFile, originalFile);
        }
    }
#

something similar to that

#

Yes I made a little tool that uses this code to compare files duplicated by onedrive when one resets it due to sync issues and it "cannot merge the files" so it duplicates them.

grizzled jackal
#

Version control is nice

median tendon
#

yes but

warm niche
#

yes having some check before stupidly erasing users files should be nice

warm niche
median tendon
#

I am willing to share the code file I use as well that it can use too

grizzled jackal
median tendon
warm niche
grizzled jackal
#

I'm just saying that if you were actively creating scripts in the udonsharp folder, you would include those files in your repo

#

so if VCC pulled the rug on you

#

you would be fine

#

The main issue I have with VCC deleting that folder all the time is that that's where the U# settings ScriptableObject is stored lmao

#

so all your editor preferences get reset every time the sdk updates SKULL

warm niche
#

the problem here is not how people should backup their work to avoid a stupid VCC design^^

#

just saying

median tendon
#

yeah the code I did for my onedrive tool would help them out a metric ton then

#

I find it funny that 5h of my work will be saving 5h of work on the VRC team's time.

#

🤔

#

because debugging is always something important to me and I do dry runs to simulate file delete using debug writes to prevent data loss.

#

Not the first time I accidentally deleted every single file on my computer due to a single character that I forgotten in my code in the past.

#

😂

#

I am sure with some slight modifications it can work for VCC.

#

Your welcome VRChat 😂.

warm niche
#

I mean, they could simply *not * ignore udonsharp folder when creating a backup?

#

the problem is that VCC assumes that this folder is only used by the sdk
Edit: After testing it again, it does seem to backup udonsharp folder now

#

and another question that comes in my mind is why this folder is there and not fully integrated in the packages with the rest of the VRCSDk?

warm niche
#

I mean since VRChat included ClientSim and U# in the VRCSDK, and those are supplied as packages and no longer as Assets folders, why is there still an useless udonsharp folder created in Assets, it just contains examples scripts so why it is not part of the packages

median tendon
#

but it is funny because the robot avatar files when making an avatar DOES NOT get copied 😅.

warm niche
median tendon
#

exactly

tribal horizon
#

People (regardless of their profession or hobby) have a responsibility to protect their assets. Ask ChatGPT whether you should make a backup.

median tendon
#

or use git

tulip abyss
#

Am I right in thinking VRChat only currently supports Unity's 'Legacy' AI functionality? Not its new 2022 components yet?

unreal orchid
tulip abyss
unreal orchid
#

They did release the 2022 SDK at pretty much the last minute before their holiday, so we'll hopefully see new things getting supported soon, I hope.

brittle anvil
#

So I have a problem with my SDK, every time I upload an avatar it uploads with a pink thumbnail and when I try to change it, it just stay like this for long time

cunning pike
#

is there a good way to get a post upload callback via editor scripts? doesnt matter if the upload is successful or fails, just a confirmation that it is complete?

sterile wave
#

does udon have some sort of "copy to clipboard" function? or would you have to do that via like input fields?

unreal orchid
sterile wave
#

mhm right

#

that makes sense

onyx moat
#

I'm trying to migrate my project from using unity 2019 to using unity 2022.3.6f1, my steps were to update the project to the latest vrc sdk in unity 2019 and then to update the unity version, but I'm getting all these errors. Is there another step to go through?
(I'm on linux so the creator companion isn't an option)

onyx moat
#

by doing the old trick of making a new empty project, loading the sdk into that, and copying the files over (seems messed up that that tip isn't in the vrc docs anymore) I was able to get to the point where I can start uploading an avatar, but it fails at the end. so that's progress at least

near nymph
#

does anyone know how i should go about moving probuilder vertices through an editor script?

#

ive tried like 10 different approaches and all of them failed. It seems to be one of the worst documented parts of unity ive found so far, if anyone could help that'd be awesome

zenith bone
#

Trying to go about creating a series of helper functions on a class to be used in UdonSharp scripts (something that could be VCC installed, and then imported and referenced in the end user's own UdonSharp program), but I made the mistake of structuring it as a collection of static methods on an importable class, until I finally remembered UdonSharp doesn't support the use of user defined static methods. If instantiation of user defined classes was supported I could have gone that instead route, but since it's not I know that also wont work. Such being the case, are there any other better ways of going about this, or would such a thing really require the creation of a prefab and a GameObject with an attached UdonSharp script?

For context, this was to be for a set of functions that, as an example given a VRCPlayerApi, returns relative bone positions, or another that returns if the designated bones are even present on an avatar. The objective was to have it be callable on either the local player or potentially on other players for networked purposes to avoid the sync overhead.

#

I suppose this would have also been valid to ask in #udon-general, but felt a bit more on the advanced usage side of things.

zenith bone
grizzled jackal
zenith bone
#

Do you have an example of what a non-extension method might be that would work? As a quick trimmed down of what I tried previously that wasn't working:

    public static bool BoneExists(VRCPlayerApi player, HumanBodyBones bone) {
        return player.GetBonePosition(bone).magnitude != 0;
    }
}```
If I then referenced `Test.BoneExists(player, bone);`, I'd get the error `Static fields are not yet supported on user defined types`
#

Converting the method there to

            return player.GetBonePosition(bone).magnitude != 0;
}```
Seems to work as an extension method solution. But supposing I have a generic helper function on the class that I don't want to extend from a `VRCPlayerApi` object, what might be the way to go about that?
zenith bone
#

So it does 😐

grizzled jackal
#

I wonder what caused it to fail on your end though

zenith bone
#

Well for starters, me making assumptions and building up a 200 line class with a variety of methods and fields without testing it first. Trimming down to what you shared there does indeed work, so let me see where precisely I've gone wrong with the rest of it

grizzled jackal
#

and fields

zenith bone
#

Ah, so no static fields then?

grizzled jackal
#

yeah

#

statics don't exist in udon

#

it just copies the "static" method into the class at compile-time

zenith bone
#

Gotcha. Well bummer. I was using those for various predefined sets of data, such as:

    HumanBodyBones.RightHand,
    HumanBodyBones.RightThumbProximal, HumanBodyBones.RightThumbIntermediate, HumanBodyBones.RightThumbDistal,
    HumanBodyBones.RightIndexProximal, HumanBodyBones.RightIndexIntermediate, HumanBodyBones.RightIndexDistal,
    HumanBodyBones.RightMiddleProximal, HumanBodyBones.RightMiddleIntermediate, HumanBodyBones.RightMiddleDistal,
    HumanBodyBones.RightRingProximal, HumanBodyBones.RightRingIntermediate, HumanBodyBones.RightRingDistal,
    HumanBodyBones.RightLittleProximal, HumanBodyBones.RightLittleIntermediate, HumanBodyBones.RightLittleDistal
}, defaultLeftHandCalibration = {
    HumanBodyBones.LeftHand,
    HumanBodyBones.LeftThumbProximal, HumanBodyBones.LeftThumbIntermediate, HumanBodyBones.LeftThumbDistal,
    HumanBodyBones.LeftIndexProximal, HumanBodyBones.LeftIndexIntermediate, HumanBodyBones.LeftIndexDistal,
    HumanBodyBones.LeftMiddleProximal, HumanBodyBones.LeftMiddleIntermediate, HumanBodyBones.LeftMiddleDistal,
    HumanBodyBones.LeftRingProximal, HumanBodyBones.LeftRingIntermediate, HumanBodyBones.LeftRingDistal,
    HumanBodyBones.LeftLittleProximal, HumanBodyBones.LeftLittleIntermediate, HumanBodyBones.LeftLittleDistal
};```
grizzled jackal
#

The closest we can get to a static fields is a normal field on a make-believe singleton

zenith bone
#

So I suppose I'll just need to change how I define them

grizzled jackal
zenith bone
#

My first thought is to just make a static method to provide those values instead

grizzled jackal
#

that won't work

zenith bone
#

But that's also cause I'm honestly not a C# dev and I'm pushing the limits of my knowledge here

#

Drat

grizzled jackal
zenith bone
#

I see where the "make-believe" comes from...

grizzled jackal
zenith bone
#

Okay, gonna be a bit more work than I hoped, but I'm willing to put some time into it once I'm off work and see what sticks. You've provided me with excellent resources and guidance, so thank you very much

grizzled jackal
#

Np! Any time AMthumbsup

zenith bone
# grizzled jackal that won't work

This seems to work actually:

    return new int[] {
        (int)HumanBodyBones.RightHand,
        (int)HumanBodyBones.RightThumbProximal, (int)HumanBodyBones.RightThumbIntermediate, (int)HumanBodyBones.RightThumbDistal,
        (int)HumanBodyBones.RightIndexProximal, (int)HumanBodyBones.RightIndexIntermediate, (int)HumanBodyBones.RightIndexDistal,
        (int)HumanBodyBones.RightMiddleProximal, (int)HumanBodyBones.RightMiddleIntermediate, (int)HumanBodyBones.RightMiddleDistal,
        (int)HumanBodyBones.RightRingProximal, (int)HumanBodyBones.RightRingIntermediate, (int)HumanBodyBones.RightRingDistal,
        (int)HumanBodyBones.RightLittleProximal, (int)HumanBodyBones.RightLittleIntermediate, (int)HumanBodyBones.RightLittleDistal
    };
}```
#

Couldn't have it provide a HumanHandBone[] since Udon didn't like when I tried to instantiate an array for those, but the values are effectively enums anyways, so casting to int worked for it.

tribal horizon
# zenith bone Couldn't have it provide a `HumanHandBone[]` since Udon didn't like when I tried...

I don't know your use case of course but you have a few options (it seems to me). One is to actually generate enum values to match all that HumanBodyBones.Righthand stuff. Might be more work for little benefit but I regularly trade processing time for readability/maintainability. I can always devise strategies for improving speed should the need arise. Meanwhile my coding goes much better because I can read/follow my code.

#
using System;

namespace VR_Example
{
    public enum GroundState
    {
        Tile,
        Grass,
        Carpet
    }


    public static class GroundStates
    {
        public static String Name(GroundState value) => Name((Int32)value);
        public static String Name(Int32 value) => new String[] { "Tile", "Grass", "Carpet" }[value];

        public static GroundState State(Int32 value) => new GroundState[] { GroundState.Tile, GroundState.Grass, GroundState.Carpet }[value];
    }
}
grizzled jackal
grizzled jackal
tribal horizon
#

I'm leveraging the Name override so I don't repeat the code.

grizzled jackal
#

It should just be

public static GroundState State(int value) => (GroundState)value;
tribal horizon
#

ah, so cast the integer to a GroundState

#

handier yet.... off to go convert those

#

thanks

grizzled jackal
#

np! it's easy to get caught up in a specific way of writing something! happens frequently to me too Laugh

tribal horizon
#

yup... consistency in the code though is handy when you find a better solution. I know I have to go change the core behavior and everything continues work

#

The Name using the String array is a bit problematic if one uses assigned enums. They numbers won't line up with the elements. I didn't want to go lookup in a dictionary though.

grizzled jackal
granite geode
#

how does one export a unitypackage of files that are in packages (not assets)?

#

its impossible to google because "unitypackage" also includes the word "package"

granite geode
#

oh that only works for vpms though I guess, hmm

#

dont mind me just doing super cursed things to get vrsl on an avatar lol

grizzled jackal
granite geode
#

ahhh ok

#

thanks!

tribal horizon
#

C# switch expressions would solve this but alas we can't use it yet. The project insists on using C# 7.3

#
public static String Name(Int32 value) {

    return value switch
    {
        1 => "Tile",
        3 => "Grass",
        5 => "Carpet",
        _ => ""
    };
}
#

error CS8370: Feature 'recursive patterns' is not available in C# 7.3. Please use language version 8.0 or greater.

#

Not that I'm using the values 1, 3 and 5 other than for the demo

wet tinsel
#

Does the current vrc only support the legacy shader pipeline for shaders?

rocky crescent
fickle junco
#

did vrc change something with the way particals on avatars and maps interact?

grizzled jackal
fickle junco
ornate valley
#

Hey Guys! can someone tell me if i can create a prefab of a "kick hammer" using the Kick option in group instances?
i would like to hit people with a hammer, to kick from the instance.

spark wolf
#

Does anyone know if it's possible to emulate the effects of the "motion time" option in blend trees? (Using a blend tree state and a parameter to control the motion time of an animation)

Trying to condense my layers down. I can't do standard 1d blending with this animation, it's controlled by a slider but there's too many keyframes to justify turning them into separate animation clips

warm niche
#

why is vrchat menu so heavy?

#

its literally taking down half of my fps, meaning its doubling CPU time

jaunty prism
warm niche
#

especially the smooth scrolling effect can be improved a lot, its currently dropping 100 FPS itself and can easily be stuck in this state for too long

#

the mouse dosn't need to have this fancy effect on the background

#

etc..

jaunty prism
#

ive noticed performance drops from opening my qm but nothing major enough for me to care tbh

#

tho for low end machines its probably enough to make the game unusable xd

#

should probably be looked at

jaunty prism
hazy sable
near nymph
#

i bought a beautiful nature asset pack but i dont know how to fix this white aliassing stuff that happens on any object further than 10m or so from the camera. ive tried like a billion things and have searched online for solution, but still have no idea how to fix this. Does anyone know where i might begin solving this issue?

grizzled jackal
unreal orchid
near nymph
#

this is the kind of nice "green look" not sure what else to put it that is to be expected

#

in the distance things become weirdly white-ish like this

#

if i get closer to that tree in the bottom image, it corrects itself and looks like the above

#

here is a picture from the asset store page that uses the exact same assets as used in the picture above. Both come from the same demo scene, it doesn't have the issue

#

marked red some of the problem areas, marked green what it should be looking like, even at a distance, color wise

grizzled jackal
unreal orchid
#

Think I get it now, would assume LODs if premade asset and mipmaps if not, but not sure how you'd manipulate the mipmaps.

modern fog
#

Could it be the realtime shadow distance too? I can't really tell on my phone

#

Check that the LODs have consistent lighting too e.g. the materials they use

jaunty prism
#

if this is in the unity scene, that doesnt have anti aliasing

#

test in-game with msaa on x4 for actual results

near nymph
#

huh that's so crazy are you guys saying you can't see anything there?

#

I mean i don't know what to say, the red circled areas are supposed to be green

#

obviously they're not?

#

ill make a video recording i guess

pine depot
#

At least that's the basic observation of what appears to be happening, MSAA has other issues that cause similar aliasing as well that I have seen.

near nymph
#

oh right i forgot i had to still turn off the MSAA on the maincamera post processing layer thing. I havent ventured into rendering and all that too much, this is pretty new to me

pine depot
#

Post processing AA and Unity's MSAA will both cause those lines to appear assuming it's the issue I've ran into

near nymph
#

just noticed there is also a bright line on a branch in the green circle thats not supposed to be there

pine depot
#

If you turn off shadow casting on your lights or disable PP and MSAA on the camera is the issue still visible?

near nymph
#

i turned off MSAA on the camera and built, this s what it looks like in game. It actually looks really pretty darn good in some sections but a butcher in others 😄

pine depot
#

Your editor MSAA setting wont carry over into the client you would need to change your VRC graphics settings to turn off MSAA

near nymph
#

this is shadow type: no shadows
thats what you meant right?

near nymph
#

and thanks for helping to think along by the way, really apreciate it

pine depot
near nymph
#

they become completely invisible, which i realized is another reason why it might be more obvious in the software than it is on an image

#

you can very clearly see that there is a certain distance to where things look pretty good, and beyond it this problem starts occuring

#

so you can gradually see the problem appear/disappear as you move

#

my own guess right now is that there is SOMETHING about the tree LODs or their settings

#

but what it would be i have no clue

pine depot
#

Yeah I have had the same thing but the cause was MSAA, having it still happen even without MSAA is something I haven't seen

near nymph
#

ive tried adjusting any settings i could find just to see if it would change at all

#

before eventually reimporting the assets and going back to square 1

#

i feel like nothing has really changed at any point 😄

near nymph
near nymph
pine depot
#

for example MSAA enabled / MSAA disabled in a basic test scene

near nymph
#

huh yeah that seems to be almost if not the same problem

pine depot
near nymph
#

thanks again for your help

modern fog
#

if it persists check your alpha clip in the material

#

raising the alpha cutoff =

terse plover
modern fog
modern fog
#

ok I'll do the comparison for us

#

With fade, how should same-object rendering order be rectified without splitting them into individual objects?

#

vs cutout

tough lagoon
#

an any word on when the vrcheadchop being implimented/downloadable at some point?

#

was mentioned in the december developer update

unreal orchid
safe frigate
#

Why is the navmesh working in the editor but not in the build, my agents are stuck in the air and can't navigate anywhere but are working fine in the editor

grizzled jackal
safe frigate
#

The strange thing is that the old navmesh bake from unity 2019 was working with the agents in the build but i had to remove it because it was bugging my scene, after moving to unity 2022 with the vrc sdk update i used the new navmesh component bake and thats when the agents stopped working in the build.

zenith bone
#

Perhaps my lack of familiarity with C#/Unity is showing, but is there a way to reference the class on an Udon# behavior that used to be a prefab in a project, but has since been moved to it's own package?

Back when it was a part of the project I could reference it within it's namespace with using Prismic247.<namespace>; and then referring to the class. Since converting to a package however, that no longer seems possible? I'm trying to create an external interface for my package that can call functions on it to enable or disable it. Previously I could reference the prefab gameobject as a public variable on the other script and refer to the public methods on the class, but no longer.

#

I've not made a package before and while I think I've got it working otherwise, this part is baffling me 😵‍💫

zenith bone
#

Nevermind... Just like that it started working after hours of not... No idea what fixed it ¯_(ツ)_/¯

#

Aha. It was a rogue asmdef in the package Editor folder

safe frigate
#

Hello everyone, i'm making a world with some npc's that will chase the player but i ran into some trouble and i can't seem to find a solution, my Nav Mesh Agent's don't recognize the navigation in the build of the game and they are stuck in the air unable to move, however everything is working fine in the editor so the problem is only in the build, it used to work when i used the navigation that i baked on the old vrc sdk in unity 2019 but i had to delete it and bake a new one because i changed my level a bit and because the navigation baking method was different in unity 2022 when i updated the vrc sdk. I would really appreciate if anyone can help or give some advice, thank you.

cunning pike
near nymph
#

is it possible to change the settings of a Terrain on runtime somehow? Most ways of trying it that i came across are not allowed in udon

grizzled jackal
near nymph
grizzled jackal
near nymph
#

i guess i was using the wrong way? i couldnt find out how

grizzled jackal
#

if not, you can just have several different post processing volumes using different profiles that you then toggle on or off via udon

near nymph
#
var _ao = profile.GetSetting<AmbientOcclusion>();
_ao.enabled.value = pp_AO;```
was not exposed to udon
grizzled jackal
near nymph
#

wouldnt it be a performance hit if i stack like 5 postprocessing volumes on top of eachother that way?

grizzled jackal
#

I was suggesting that you disable all the other volumes and only enable the current one, but stacking them could probably work idk

near nymph
#

do you have to keyframe every possible setting in these animations, or can you map an animation to represent a value range from say 0 to 1000 ?

near nymph
grizzled jackal
split hornet
#

Is there a way to move an object along a bone and across multiple bones? Say like a bracelet or sleeve, but it can criss the lower arm and upper arm bones.

near nymph
#

does anyone know if VRRefAssit is known to be buggy right now?

#

It worked perfectly in another project, but in the current one it's not setting hundreds of references

cunning pike
near nymph
cunning pike
grizzled jackal
#

But yeah, like Teal said, clone via git link instead

#

Much more reliable than VCC

stoic mirage
winged burrow
#

Cloth no longer works right in Unity 2022? Or rather, it works right in Unity but not in VRChat. Any idea if there is a way to get it working again or is this just our new reality we live in?

jaunty prism
#

migrate it to physbone and itll be easier long term

winged burrow
#

Cloth was working as expected when the mesh was correct... Not anymore. And it's not a "unity issue" - VRChat is doing something fishy with it...

steep vigil
#

Really obscure question, but does anyone know a way to set a default thumbnail for an avatar in the SDK Control Panel? Been trying to make a button in my editor script that will set the thumbnail to a .png file in the project but I can't find a way. I just find it really annoying that you have to select the file manually now when I used to just be able to put a texture down in front of the upload camera.

fierce coral
#

Immer wieder da

light remnant
split hornet
proud belfry
#

What are your favorite assets from Unity's asset store? https://ask.vrchat.com/t/what-are-your-unity-asset-store-favorites/23387

junior matrix
#

does anyone work with the python version of the vrchat api?

woeful current
#

Before physbone.
Dynamic bones.

bold berry
#

Imagine using unity

bitter juniper
bold berry
#

I feel ya pain

bitter juniper
bold berry
#

same here with unreal, but unity

#

unity is like linux

#

you can go without using linux but if you need smth you gotta learn it

#

its not same compared to other egines

#

it got undeveloped UI

#

one thing coming from me about unity is the particle system

cinder grotto
teal dune
#

Hey everyone ! Quick question: Is there a way to correct the avatar stats and rank in the control panel ? I have many optimizations happening on the fly during the build and so the stats and rank shown is completely wrong

elder nymph
#

The SDK is unaware of whatever extra processes you're doing on build. Your final output's performance rank will only be accurately shown in VRChat.

remote frigate
#

Hi, I'm trying to programmatically change an avatar's ID before building
locally the build succeeds, but in game the security checks fail
my current approach is inside IPreprocessCallbackBehaviour::OnPreprocess

public bool OnPreprocess()
{
  // (other preprocess stuff)
  var pipeline = GetComponent<PipelineManager>();
  pipeline.blueprintId = blueprintID;
  return true;
}

uploading with my preprocessing, but without changing the id works fine
btw my use case is that I have multiple versions of an avatar and my script changes / removes certain Objects and components

#

my question is if I can still change it after clicking the build button in the SDK Panel
or if I need to replace it first and then start a build myself

honest bramble
#

So while I'm trying to clean up my avatar project, I noticed the following .gitignore inside Packages/ the Avatar template

/*/
!com.vrchat.core.*/

so it's excluding all packages except the vpm-resolver?
that would mean i'm committing raw binary executables to my git repo.

#

and i feel like this may be bad practice for git project management

warm niche
#

I just made a small script that let you spawn in the scene view, I think that is really convenient for testing and should definitively be a feature added to ClientSim

warm niche
#

drag and drop the prefab in the scene, if the gameobject is active, it will spawn the player at the scene camera position instead of the the VRC World Descriptor spawn transform

#

I wish I could just add such feature in ClientSim myself, but since its part of the VRCSDK, it makes hard to work on forks and do pull requests

#

so its kinda a ugly workaround rn

honest bramble
#

oh i see, vpm-resolver needs to run beforehand

#

that's....weirdly designed but ok

fallow pilot
honest bramble
#

i see

honest bramble
#

maybe someone from vrchat should come around and look into implementing a proper package-lock resolution system so that you don't have to commit all your project's included packages in git

warm niche
grizzled jackal
#

nice Laugh

gray mulch
#

So if someone has vpm X added and the person you are working with doesn't, 💥

ionic flume
#

Hopefully someone more knowledgeable can help me with this, this strange exception is getting spammed in my world and it has no trace in unity even while listening. Does anybody have any ideas as to what could be causing this?

#

Ok, but this is really strange; When I reupload the same exact package to vrchat it no longer appears.

#

If I upload it again it will then re-appear and need a 2nd upload again to fix itself...

#

It breaks sync and ownership transfer of most objects.

honest bramble
#

would be nice if for proprietary copyrighted packages there was a way to essentially "drop them in" to a managed project without tracking the entire package itself

#

i am unable to use the vcc ui on my system anyway, so i need to use the vpm utility direct from the command line, and i'm already pretty deep into unsupported territory, so how far could i stray from the beaten path before total project collapse? 🥹

night birch
#

So here's a new one. I've tried reimporting, reinstallig sdk, deleting Library folder, nothing worked. Trying to save implanting my Asset folder into a new project if I can but I don't think there's much hope. The errors from the script in Assets/ stem from a line in my code unable to find Networking.LocalPlayer it doesnt believe it exists anymore

rocky crescent
night birch
#
    {
        Vector3 myVec = Networking.LocalPlayer.GetPosition();

        if (thisCollider.bounds.Contains(myVec))
        {
            Unlock();
        }
    } ```

This is the method, its for a trigger zone that starts disabled but can become enabled locally at runtime upon passcode entry. This script works fine in other projects, which leads me to believe something is seriously wrong with client sim or maybe the udon sharp data locator? Those errors above saying that those basic system types dont exist scares me 😨
#

Ive narrowed it down to being scene related, a fresh scene seems to work fine within the same project

#

So definitely could still be related to that as a possibility but I guess the question becomes how to troubleshoot this

night birch
rocky crescent
fallow pilot
#

🤔

ruby forge
#

I put this in #udon-general and I'll put it here too just in case. I'm trying to make an AI that goes to a set destination when you interact with it (using the AI Agent stuff). It works fine in unity but whenever I build and test it in actual VRChat it doesn't move at all. Is there something I'm missing?

modern fog
#

You can pipe errors to your unity editor while vrchat is running by going to your unity preferences for udon. Sorry I don't have a screenshot of this rn

ruby forge
#

hmm okay ill try that since im pretty sure im using the new stuff

#

ill inform you what happens

ruby forge
modern fog
#

That's great to hear!

gray mulch
#

That error is caused by outdated prefabs referencing wrong scripts

#

There's likely a weird message a lot further up

#

Something like X does not match Y on Z

night birch
#

Back to v13

fallow pilot
#

I have figured out the problem with it. It's related to some script migration logic. I have a solution, but some other matters are pressing atm.

#

The gitlab issue will be notified when it's fixed.

night birch
#

Oohhh gotcha! Thanks for looking into that

median tendon
#

Question is anyone familiar on how I could write unity editor code that would allow me to:

  • grab the instances of VRCAnimatorPlayAudio animator state components inside of an animation controller?
autumn hatch
#

Is there a list of all possible actions that can be recorded in the output log? Thinking of making a OSC program that reads it and theorize what kind of cool stuff could be done

fallow pilot
#

Ultimate logging parameters (so I've been told)
--log-debug-levels="API;All;Always;AssetBundleDownloadManager;ContentCreator;Errors;NetworkData;NetworkProcessing;NetworkTransport;Warnings" --enable-debug-gui --enable-sdk-log-levels --enable-udon-debug-logging

warm niche
#

Hello!
One question:
Is it possible to create different scenes and switch between them
in vrchat?
I know its a normal practice on videogame developement but never tried on vrchat!

#

Thank you ♥

unreal orchid
warm niche
#

okie

#

is just i know when u change scene it deletes all scripts and prefabs and everything from the other one

#

that means u can put zones withouth charging others cause they don't load them

#

that's what i want to do in my world

#

I tried making a toggle, but some codes and prefabs still using lot of memory even if are not activated

#

and i paid for some games i can't use because of this xD

floral wren
#

Not sure if this should go here or somewhere else, but I have a question regarding the VRChat SDK in Unity. I am working on avatars for myself and my wife, but whenever I want to switch VRC accounts in the SDK, it always makes me re-verify the email address using a code. It's not a huge deal, but it's definitely a pain to work around and I'd rather not have to do it every time if possible. With that said, does anyone know of a way to either keep both sessions logged in or prevent it from asking for verification every single time?

autumn hatch
tribal horizon
floral wren
tribal horizon
#

I have a couple of on-going items I would like ot resolve, perhaps someone has an idea. First one is to confirm that there is no system for referencing a singleton object correct? We can in fact create a static C# class with static methods BUT... importantly there is no support for static properties. So this means there is no way to assign a game object "once" and reference it through that static class. While we can place a U# object in the world treating it for the most part as a singleton the reference must be assigned in the editor or looked up at run-time.

#

Assigning it in the editor is problematic if almost everything needs to know about the object. Obtaining the reference at runtime is doable but given that the reference doesn't change looking it up more than once is a bit nuts.

#

So I was thinking how nice it would be (unless static properties are coming soon) to have a single world-defined static object. Is this something that would be useful for VRC to add as part of the API? It can be a null reference if you don't use it but it would be a place to "park" a reference that can be retrieved in a static context. Something like World.Settings but it wouldn't need to be called that of course. It couldn't be strongly typed but seemingly it could be an UdonBehaviour and perhaps cast to whatever object the developer wanted to use.

#

In my particular use case I have a UI logger which I would prefer to write to with UILogger.Log("message") but (as mentioned above) any class that wants to write to it needs to go find the game object and U# class.

rocky crescent
tribal horizon
#

There are built-in static classes that represent Networking an Players so I figured one developer accessible one would be handy.

rocky crescent
#

My guess is we'll be able to do what we want more directly with Udon 2.0.

tribal horizon
#

I'm hoping so 🙂 Funny now small improvements can open so many possibilities.

#

So while I've got you here. Onto my second problem to solve. I need a clean mechanism that permits each player to "post" event messages.

#

My UI Logger works great for the local player but I need to track failures on other players so they need to post to it when (and if) an exception occurs.

#

I have worked out that each player should have their own "communication object" or there will be conflicts trying to sync the messages.

#

Can't pass a string in a custom event so we're stuck with sync'ing variables right?

rocky crescent
#

As far as I know, yes. What I did in my New Year's Eve world to toggle the open arms->fireworks and raise hands->confetti was to sync variables. Each player got their own object from a CyanPlayerObjectPool, modified their state accordingly, and performed a RequestSerialization().

tribal horizon
#

My particular need at the moment is to monitor whether the video player throws an exception for anybody in the world. I can't see why it fails once in awhile for some people.

#

Don't know if a retry would work, etc. until I see the error.

#

I was thinking about an Object Pool let me investigate that a bit more. I think it would be a pool of "error reporters". If I understand it correctly only the spawned objects would be used and therefore sync'd and all the sync'ing takes place behind the scenes so I only need to monitor the serialization call.

#

Hey @rocky crescent would you recommend CyanPlayerObjectPool? I'm reluctant to depend upon too many 3rd party libraries but this one seems to cover what I need so I should probably try it. I can always roll my own should the need arise.

rocky crescent
tribal horizon
calm hatch
#

My build appears to be failing and it's not precisely clear why. If I comment out this line then build for test, it works. Otherwise I get this error whether building for test or to upload.

bitter juniper
# calm hatch

You must not edit the sdk. The particular line is for reporting error if build has been failed. If you deactivate that part, the failed build result will be failed silently. So this doesn't fix your issue.

calm hatch
#

Yeah but the error I get in console from this line is "Unexpected Error Occurred" and a link back to this line, so there's no information either way

#

I'm a professional software engineer so changing code for debugging purposes is pretty basic for me

bitter juniper
#

If you're a professional SE then you should be able to understand the purpose of that particular line.

calm hatch
#

Renfrew I'm not commenting out that line to make it work, I'm commenting out that line to learn more about what happens

#

What I have learned is that the build does succeed but that the path is null so the SDK doesn't know where to look

bitter juniper
calm hatch
#

Yeah I'm not seeing anything above this, but maybe it's truncated, I'll look for log files.

#

The reason there's no error above this in the stack trace is because there is no error causing this error, there is just a null check here that throws an error

#

the error originates here so from here I have to read up in the code to see if I can spot the issue, or run live debugging in Visual Studio

#

But there's not much to look at, the code that makes this null is right above it so

#

result is not equal to avatarProcessedTask, so it sets the bundlePath to null

#

Oh you're right, it should be throwing errorTask.Task.Result

#

Something got super hosed when I restored from a backup, ignore me :/

next mist
#

Hello. I am curious what it might cost to hire a scripter for a world? Thinking about things like creating a menu system, interactive object system that allows for splitting of objects, and detection of what an object material consists of

next mist
#

Sure

quiet orbit
#

Hello, i don't really know the good keyword to find the sollution to that, i'm making a script for editor debugging on my avatar (so a script that i put on a gameobjet for debugging and testing) and i would like this script to not be recognised nor build by the SDK i used the #if UNITY_EDITOR state to avoid building that but it still being recognised by the sdk

bitter juniper
quiet orbit
#

like just adding an IEditorOnly after the class like if my class inherited from IEditorOnly ?
okay i see, odd but it works thanks

tribal horizon
sharp meteor
#

What are the odds of VRChat implementing OAuth/JWT for authentication of applications? I've seen them do something for Canny where it prompts for permissions and info. I think it would be a good idea to allow developers and creators to use it to authenticate users on their external integrations. For example, I am working on a World Manager API that influences the World Manager Udon Scripts and I want to make sure the rightful owner has their worlds accessible to their dashboard.

granite geode
#

VRChat doesn't have a public oauth/openid API. I would love if they did because then using applications like vrcx would be so much less of a security risk. As far as I know they have a simple openid endpoint (like you see on canny, etc) but it's private for their own internal use and a few select partners.

hardy patio
#

Is anyone familiar with how VRchat handles mirrors keep getting this and I am not sure what is causing it

hushed bobcat
#

Do you think I would be allowed to make a version of old VRChat run on my own custom api, I already made the api I just don't want to get into any trouble with VRChat.

gray mulch
final tiger
hushed bobcat
#

What if it was completely private and I did it for the sole purpose of seeing if I could do it?

bronze rune
#

I mean sure, if you take the it's not illegal if you don't get caught route. It would kinda be a waste of time/resources though

jaunty prism
#

i think ur time would be better spent applying for vrchat as a network engineer and fixing their photon implementation

#

⛷️

hushed bobcat
#

fair, I’ll probably consider doing something like that in the future

warm niche
#

Anyone know how to rename vive trackers in steamvr? I can't find anything

swift ferry
#

I would like to ask how avatar animator parameters are synced with remote player. Are they send all in once after a interval/latency or individualy send when change occurred with their own interval/latency?

jaunty prism
swift ferry
#

can you elaborate a bit more?

jaunty prism
#

just a big list of the parameters, and they drive the position of the list theyre in

#

this is a presumption based on how face tracking parameters sync between fallback and standard anyways

#

say cheek puff parameter was 1st in list on your main, but tongue out was 1st on your fallback, itd drive tongue out rather than cheek puff for the fallback avatar

swift ferry
#

is it possible to ensure 2 synced parameter arrive at remote player exactly the same time? given that the 2 synced parameters are changed at exactly the same time

jaunty prism
#

i believe they should

swift ferry
#

thank you for the insights, appreciated

fallow dew
# jaunty prism as far as im aware theyre sent as a list

they're sent as raw bits, the order of "synced" parameters is the only thing that matters as vrchat does not sync the parameter themselves, just the raw bits, the parameter list on the avatar is what's used to resolve the bits into parameter values, so if the list mismatches (cross platform, fallback, etc) then the data might drive different parameters than intended

jaunty prism
#

ah so i was half correct

#

glad to know ive deduced the list part at least

warm root
#

Does anyone know if there's an existing Canny open for user respawn not triggering onPlayerExitTrigger?

rocky crescent
warm root
#

I mean, you'd expect player exit to trigger given that... well, that's what literally happened.

rocky crescent
#

Ah, I misread your question and thought you were talking about onPlayerLeave. nvm

granite geode
#

so the default gitignore for the VPM template allows through !com.vrchat.core.*, and the instructions don't mention removing that line, but surely I shouldn't allow it to commit com.vrchat.core.vpm-resolver to my repo right?

velvet zodiac
# granite geode so the default gitignore for the VPM template allows through `!com.vrchat.core.*...

According to "Using Source Control with the VPM" you are meant to commit "Packages\com.vrchat.core.vpm-resolver". https://vcc.docs.vrchat.com/vpm/source-control

We're big fans of source control systems for saving your work and collaborating on content. We use Git for our own packages and even the main VRChat client. The VPM was designed to play nice with source control, here are the specifics of how things work. If you use another system like Plastic you can send us tips to share via Feedback.

gray mulch
warm niche
#

I dont know if I should make a canny for this but I would just share something I realized today. When you disable the vsync, there does not seem to have a limit in the framerate, but this is also affecting the menus, I usually hit +700 fps. I know many games will intentionnally limit the fps during the loading screen because:

  1. It gives them more ressources for the actual loading process.
  2. it's wasted ressources, especially when you have to wait many secondes/minutes depending on your internet connexion.

so having your gpu running at 100% for this is triggering me, idk what you think maybe its something the devs can add ?

forest locust
#

HI, so im using the vrchat IVRCSDKPreprocessAvatarCallback to replace a dummy Expressions Menu with a different menu which i load from a file path using AssetDatabase.LoadAssetAtPath<VRCExpressionsMenu>("file path here") and i just replace the menu for the avatar but when its uploaded there is no menu in game so am i doing something wrong ? any pointer in the right direction will be helpful vrcTupDead

granite geode
warm niche
bold bough
#

We need to add Constraints To Quest!

#

I cant give my lightsaber to work on quest side due to limitations, quest is advancing and so we have to as well!! At least I can use particles now for quest avatars but i cant make it any better because of the restricted constraints, I thing its fair to say as a pro unity and blender content creator that constraints will be fine and I can also say If you want to be cautious on this subject like the mobile particles addon, Then do so Just add constraints.. so many want to see my creations and they simply cant due to something so needed for my content I Create what I really need out of. It is to be able to drop in place an object, Thanks.. Wishes

unreal orchid
unreal orchid
unreal orchid
bold bough
#

Sweet I wonder I mean I have no doubt I wasn’t the only one who wanted this

#

It will help so much now

warm root
#

I need to mass-add LOD components to a lot of objects. I can do that easily enough my setting up an LOD component how I want then assigning it to multiple prefabs, but that has the issue of still needing the meshrenderers assigned. Does anyone know of a way to mass automatically assign mesh-renderers to LOD components? It only has 2 levels - LOD0 and culled so it's obvious where it has to go.

warm niche
warm root
#

I'm having a nightmare of a time getting baked occlusion culling to work properly so I'm trying to leverage LODs for culling purposes more. Not ideal but little other choice

violet owl
#

What's your issue with occlusion culling? Biggest thing is to make sure only things that would reasonably block other objects to be set as occluders. Eg a tree with leaves would not be a good occluder because there are too many little holes you can see behind it with.

warm root
#

The main issue I've had is things wrongly being occluded by seemingly nothing. Nothing is set as an occlusion culler except for large walls, floors and dedicated blockers.

granite geode
#

unity’s occlusion baker is awful, the rays commonly pass right through solid walls

#

sadly they don’t expose an api for people to be able to make a 3rd party replacement

warm root
#

My issue was the opposite, they kept being blocked by absolutely nothing.

granite geode
warm root
wide umbra
#

Hello, is there any way to make custom camera that would override the VRChat's default in-game camera? Basically it would be like VRCLens/VirtualLens2. I have 0 knowledge in coding so im just asking in general.

boreal arrow
#

Question for the VRC team specifically most likely, in the docs. https://docs.vrchat.com/docs/using-vrchat-in-a-virtual-machine they state that Proxmox should work out of the box. However EAC does not seem to be working out of the box I am still struggling with EAC's VM launch error. And my CPU is displayed as Virtual Machine. Does anyone have any info regarding how I could get around this? I've already attempted changing the cpu flag's vendor id but no difference seems to have been made.

VRChat

🚧Advanced Users Only!This information is generally only useful for advanced users and specifically only those running VRChat in a virtual machine. It will contain language that may not be recognizable or useful for most users. ❗️Running VRChat in VMs is Unsupported!Using VRChat via a Virtual Machin...

#

I feel like this is the best area for this question as it's pretty quiet and I feel a VRC member would look in here more often rather than one of the basic channels. 😅

boreal arrow
#

I managed to get around it by fiddling with some proxmox settings the only issue now is trying to figure out why oculus refuses to connect with my headset

dreamy apex
#

hi! i was wondering if there is any way to change the character's mesh without breaking the armature,i want to edit something but i kinda realised it too late

unreal orchid
dreamy apex
#

do i need to export the whole avatar?

#

i tried only exporting the part i needed but re import broke it

unreal orchid
dreamy apex
#

well my char's legs,arms are separated into a custom mesh like that

#

i exported the body into blender as fbx

#

made changes and when i re imported it it deattached from armature

#

i just changed the mesh

unreal orchid
#

Do they come as one model file or as several separate ones?

dreamy apex
#

one single fbx

unreal orchid
#

Then you should be editing that fbx, armatures are weird in Unity and aside from code solutions you can't tell a mesh what armature to use.

dreamy apex
#

alr ty ill try

glacial yacht
dreamy apex
#

i imported them from a different one into the avatar

#

so all the other things don't get lost

unreal orchid
dreamy apex
#

it works fine for me

#

all functions as expected

#

i just need to edit the mesh thats my issue atm

glacial yacht
#

Great, if it works for you. I've found that it tends deform weirdly when I try it, and there's really no reason to unpack in most cases anyway

dreamy apex
#

well i had to replace the original body mesh into 5 separate one

glacial yacht
#

why?

#

out of curiosity

dreamy apex
#

for the functions i wanted

glacial yacht
#

I was curious what those were, but it's cool if you don't want to share.

dreamy apex
#

secret :P

dreamy apex
#

are these export settings alright?

unreal orchid
#

100 scale on armature = All Local
1 scale on armature = FBX All

#

Your setup is strange though so possible you just have to set it up again

dreamy apex
#

i spent 3 days on this 💀

#

maybe scaling issue?

glacial yacht
dreamy apex
#

scale is 1 for all axis

glacial yacht
#

there's no axes listed where I'm talking though

dreamy apex
#

mb

#

hold on

glacial yacht
#

that - that's good

#

what's your scale on the objects in Blender? Is that also just 1 for everything?

dreamy apex
#

its exported straight out of the unity project

#

lemme check

glacial yacht
#

ok good. But is it like, really short there?

dreamy apex
#

its the perfect size

#

always been like that

#

the interesting thing is that i export it from unity to blender, back to unity (even without changing anything) and it disappears

glacial yacht
#

if you unpacked the avatar prefab, yep, that's what happens.

#

at least in my experience.

dreamy apex
#

well all i did was import the base unitypackage, delete everything from inside, then drop the armature and the stuff into it from the modified one and it worked so i worked off that

cunning isle
#

Does anyone know how I'd detect punching I thought of using a physbone but it just moves out the water when I go to punch it Im guessing cause its a child of what im moving but I kinda need it to be a child so it moves next to it does anyone know what I could do?

glacial yacht
#

there's a punchable system which does this via contact receivers (hands by default are contact senders), with a velocity threashold. I'd use the same method

#

oh wow that was way old and I didn't notice 🙂

sturdy hemlock
#

Hi, Im developing a C# script to install a vrc asset on peoples avatars. The script is for use in the editor exclusively but the sdk will remove the component before the avatar can even be uploaded.
'The following component types are found on the Avatar and well be removed by the client'
I know its possible because vrcfury components do not have this issue.
Any help appreciated.

sinful thistle
#

IEditorOnly

#

from using VRC.SDKBase;

sturdy hemlock
#

OMG that worked thanks! ❤️

gray mulch
#

Alternatively, just use vrcfury / modular avatar if possible and save yourself some headache

quasi tartan
#

Summat screwed up. Unity crashed seemingly outta nowhere while I was updating some shaders, and now it keeps crashing before it can initialise the asset database. Any ideas how to fix?

warm root
quasi tartan
warm root
quasi tartan
#

Yup yup! Currently in the process of converting shaders from poi to liltoon, but with so many variants in the project folder and unity's rock solid stability™, things can get unwieldy 😅

#

Just wanna match the style from zzz dammit

gray mulch
#

Seems converting from poi to liltoon would be a fairly big downgrade adisgustedhanascaredworried

#

I'm normally converting the other way around

jaunty prism
warm niche
#

Liltoon is more lightweight

gray mulch
proud belfry
#

We just added a contribution guide to our documentation! Check it out:
https://ask.vrchat.com/t/contribution-guide-for-vrchat-creation-documentation/25721

fallow dew
#

working on my tool and for a specific reason i needed to adjust json settings, turned out to break the SDK because of type casting (list to array) via json for content warning tags https://feedback.vrchat.com/sdk-bug-reports/p/changing-jsonconvertdefaultsettings-breaks-sdk-uploads

On SDK 3.6.1, when a script changes JsonConvert.DefaultSettings , specifically by adding JsonSerializerSettings.TypeNameHandling = TypeNameHandling.

woven jackal
#

Can any vrchat devs explain this? I have an object with a rigidbody and a vrcstation. While a player is in the station, and the rigidbody collides with another player, the player in the station is forced to exit.

rotund sail
#

hi 👋 i believe this is the right channel not sure but i'm working on my avatar but im running into issues with the VRC SDK and i don't know why exactly, it seems that ScriptableObjects don't exist?
error CS0234: The type or namespace name 'ScriptableObjects' does not exist in the namespace 'VRC.SDK3.Avatars' (are you missing an assembly reference?)

#

'VRC.SDK3.Avatars' is there, but it doesn't have anything past that, im using a .dll version of the sdk not the directly appended sdk from the VCC app not sure if that matters

gray mulch
#

A dll version...?

rotund sail
# gray mulch A dll version...?

yes it's redistributed with warudo which has official integration, the problem is the avatar is failing for vrc as one sdk is running into that error

#

the tldr is, vrc sdk is needed by two sdks in the project the both depend from each other but one comes with it's own vrc sdk due to official support causing duplicate assemblies, the result is the sdk with it's own vrc sdk seems to make the other sdk fail with error CS0234: The type or namespace name 'ScriptableObjects' does not exist in the namespace 'VRC.SDK3.Avatars' (are you missing an assembly reference?)

gray mulch
#

Just sounds like it's using an outdated version

rotund sail
#

i see, weird tho as it's still VRCSDK3A, thought could ran into problems between sdk2 and sdk3 not within sdk3 versions

twin copper
#

Is there a way I could get the data for a world (the icon for example) and display it as the texture on an object using the VRC API? I'm making a world which needs the ability to display stats of other worlds; here's an example I made

#

(The person is how many visits the world has, the heart is how many people have favorited it)

unreal orchid
# twin copper Is there a way I could get the data for a world (the icon for example) and displ...

https://vrchatapi.github.io/docs/api/
"Get World by ID" is way down at the bottom of the list on the left.
(can't figure out how to link to that "page" directly)

Just be aware that you can only do a request every 5 seconds, a VRChat client limitation, so if you are going to request the data from a lot of worlds, it might be worth hosting the data on github pages (a whitelisted url) and have github actions periodically update it for example.

twin copper
#

Altighry. Thanks!

queen hearth
twin copper
#

Yea!!! I honestly have no idea what I'm doing, but I'm trying my best to get it working lol

tiny kindle
#

How can I pull analog grip button data? would Input.GetAxisRaw() work?

#

Trying to get a pen that changes size based on analog input

velvet zodiac
royal nacelle
#

Dammit. Just ran into this same damn thing and this is a post from a year ago.

#

Need to rearchitect my entire event bus and other design principle and pattern docs that my team was using.

#

Udon 2 please dear god be soon

urban socket
#

Is there an exposed endpoint for converting a regular Unity constraint to a VRChat constraint or is it just limited to the SDK itself.

#

I'm creating an auto setup tool for a VRCFury prefab and I don't seem to have a way to adjust values of a VRC Constraint from editor code

#

I'd like to just automate that step too, but as it stands I might need to ask the user to convert it themselves which is not super non-developer user friendly

vague girder
urban socket
#

Does it?

#

Let me test that

vague girder
urban socket
#

Oh hell yea

#

Nice

#

Thank you!

granite geode
#

anyone figured out a reliable way to measure finger curl in an avatar?

#

gonna try proximity contacts first, but I’m open to ideas

median tapir
#

how would I (in a relatively lightweight manner) have an event fire every n seconds? (it doesn't need to be exactly n seconds down to the frame)

unreal orchid
#

Just have it call itself repeatedly.

median tapir
#

that sounds like it would be unstable, like if I were to lag it would fail eventually?

#

I mean I'll try it

unreal orchid
median tapir
#

ok!

#

good to know, thanks

light remnant
#

Does anyone have experience teleporting Phys Bone Components and/or Phys Bone (inside-out) Colliders around really fast to use one component/collider pair to drive multiple _Angle-based parameters?

#

I know someone a long time ago had something similar going on for their toes, I think they maybe were somehow just using one phys bone component to make every toe grabbable… like it teleported around until you grabbed it, then based on which toe you had, their avatar’s toe would constrain to the phys bone, and so the one single phys bone component was articulating all ten toes on the cheap.

#

I might be remembering it wrong—basically, I’d like to grab five different simple _Angles, and if anyone has experience with this it would be helpful. Like does this still work, can I really use just a single frame for each position, etc? Are there weird pitfalls preventing me from doing this or will it just work?

#

I’m working on a base rig intended for use by others, so I’d like to use as few phys and contact components as possible out of the gate so people have more room for their own. Thanks for any help or guidance.

maiden atlas
#

I've seen this done w/ local contacts on an avatar. Don't think I've seen it done w/ physbones before.

#

Can definitely try it, though it may be framerate dependent if it goes too fast

jade kraken
#

is there any update on wether accounts with tilia transactions can be merged or if i can have my tilia transactions cleared

ionic flume
#

Hi hello, just wondering if the player collider capsule is on the Player layer or a different one?

grizzled jackal
ionic flume
#

Does that include other player's?

ionic flume
#

Ooh thank you!

grizzled jackal
#

np!

polar wagon
restive grove
#

Only locally for them

dense crypt
#

So there's things like VRCFury which are components that you place on a VRChat avatar, but VRChat doesn't recognize them, however a little utility component I made myself makes the error "The following component types are found on the Avatar and will be removed by the client" appear in the SDK

How can I make VRChat ignore it and not cause that issue to appear?

vague girder
#

not 100% sure how to do that myself though

unreal orchid
uncut idol
#

maybe im dumb or something but i setup oscquery in my application like so

        public OscQueryManager()
        {
            QueryPort = Extensions.GetAvailableTcpPort();
            UdpPort = Extensions.GetAvailableUdpPort();
        }

        public void Start()
        {
            _service = new OSCQueryServiceBuilder()
                .WithHostIP(IPAddress.Loopback)
                .WithOscIP(GetLocalIPAddressNonLoopback())
                .WithTcpPort(QueryPort)
                .WithUdpPort(UdpPort)
                .WithServiceName("MultiShock-Client-" + + new Random().Next(1000000, 9999999))
                .WithDefaults()
                .Build();
            _service.OnOscServiceAdded += service =>
            {
                Logger.Log($"OSC Service Added: {service.serviceType} {service.name} at {service.address}:{service.port}");
            };
        }

and i have my UDPListener setup on the UdpPort and in vrchat it logs that its sending osc data to my program but it shows the TCP port not the UDP port and my program doesnt receive any osc messages but if i send osc messages from something else directly to my programs UDP port it recieves them so did i just setup OSCQuery wrong? or am i being dumb about something else

uncut idol
#

didnt realize i needed to add the endpoints

tribal horizon
#

I posted this in Udon but perhaps here would be a better option: Does anyone know of a way to monitor when all the "startup" code has finished and the world and the player set up is complete? I'm pouring over the logs and for the important parts that I can see include "calls to all Start methods" followed by "calls to all Init methods" (Init being my initialization cycle). Then "held events" process which is where sync'd objects get their values. Eventually we get to "World download" and "World loading" messages which tells me the world is done. But we don't have any events for this do we?

#

I would happily write whatever was necessary but I can't think of any way to determine when all the initial sync'ing as finished.

light remnant
#

Are damped (self-referencing) constraints causing constraint depth calculation problems...? Every single one of my constraints is counting towards my constraint depth right now, I can't figure out why except that maybe it's because I have some damped ones?

plush bluff
# light remnant Are damped (self-referencing) constraints causing constraint depth calculation p...

There's a known issue in SDK version 3.7.0 where the constraint depth shown in the client may not match what's shown in the SDK. You could try enabling Show All Avatar Performance Details in the settings tab of the SDK window and checking if the constraint depth there is different. If it is, the beta SDK 3.7.1-beta.1 should contain a fix for this issue if you want to try a Build & Test with that (maybe back up your project first).

Constraints referencing themselves shouldn't increase the constraint depth.

normal copper
#

So odd question.

I made an asset- on which, after adding it to my avatar, and uploading it, has removed every single expression option on it.

However- uploading an older version, without said asset still doesn't fix the issue, and instead, the whole Avatar Blueprint ID Seems to be corrupted.

I"m at a loss as to what could've done such a thing in this asset.

This asset does include particles, And sound clips, plus vrc fury components such as a full animator, and parameters, and armature links.

#

i have tried also uploading to a different id:

The backup right before the addition worked fine- but the second i added the asset- The same corruption happenned- even after closing the game, uploading the backup, and hopping back into the avatar has not fixed it.

#

I am not using any form of Modified SDK either.

#

further debugging lead me to a mesh rendering issue on one of the copies.

sudden smelt
normal copper
#

It might've also had something to do with a prefab behaving a bit poorly-

#

after remaking the asset's prefab from the ground up, it seems to be acting proper now.

radiant fable
gray mulch
radiant fable
#

Only you

gray mulch
warm niche
# gray mulch ?

The Platters performing "Only You, And You Alone", released originally in 1955.

The Platters, an American vocal ensemble, were one of the foremost singing groups of the early days of rock and roll and also often associated with the doo-wop style. They were managed by songwriter Buck Ram, who was taken with Williams's dramatic soaring voice and ...

▶ Play video
left heath
gray mulch
#

They make money by restricting it to partners

left heath
autumn kiln
#

(I was told to repost this question here, instead of #avatar-help )

I have a script that is modifying Rotation Constraints, How do I edit the script to use VRC-branded Rotation Constraints without an include error?

The only workaround I would have right now is to continue using Unity constraints, and then call ConvertUnityConstraintsAcrossGameObjects afterwards, but that doesn't seem great.

I am also getting a namespace error when attempting to add "using AvatarDynamicsSetup", so I'm not sure if I can even do that

loud pine
#

Have you configured assembly definition?
(p.s. this is an idiot answer. never mind.)

autumn kiln
#

Are you referring to these?

The question I am asking is how to write these, or whatever preprocessing is needed.

I am unable to find any documentation regarding how to "include" "using" "get" these

#

heck, I didn't even know these were called "Configured Assembly Definitions", until now

#

Here is what I have tried:

#

Here are my only references:
https://creators.vrchat.com/avatars/avatar-dynamics/constraints/ <---- mentions using AvatarDynamcisSetup class include
https://creators.vrchat.com/sdk/public-sdk-api <---- talks about how to "use" the sdk

VRChat provides its own custom constraints system, which allows bones on your avatar to move, rotate, and scale relative to other bones.

The VRChat SDK provides a set of interfaces and methods you can use to enhance your world and avatar build process.

tribal horizon
#

Where you referenced RotationContraint (in your image above) it should most likely be VRCRotationConstraint

autumn kiln
#

What I am asking is that my script uses:
headRotationOffseter.GetComponent<RotationConstraint>().constraintActive = true;

This works fine, BUT

when I change the line to
headRotationOffseter.GetComponent<VRCRotationConstraint>().constraintActive = true;

I get namespace / context errors

How do I add the namespace / context?

(stuff like this)

using VRC.SDKBase;
using VRC.SDK3.Editor;
using VRC.SDKBase.Editor;
using VRC.SDK3A.Editor;
using VRC.Core;

loud pine
#

you should add using VRC.SDK3.Dynamics.Constraint.Components;

autumn kiln
#

aaaand that worked

Where did you find that?

loud pine
#

use Unity editor extention in VSCode

autumn kiln
#

huh, and that information is nowhere else online?
good to know I can find that information using that tool, but it was definitley frustrating that I never could have found this out online

glacial yacht
#

huh I thought some of this stuff was published. though it's pretty bare-bones. Unity docs are usually pretty ok

warm niche
#

I think you can see them directly in udonsharp class tree in unity. Or with vscode intellisens as well

hasty copper
#

VRC docs aren't very C#/U# friendly overall, gotta rely on digging into the assemblies to see what's exposed to get anything done

warm niche
autumn kiln
#

uh oh, it looks like VRCConstraint is in some sort of dll / sealed class, and the SetSource method isn't exposed

I am not using Udonsharp
I was just trying to create a simple utility to recursivley add vrcrotation constraints onto my avatar (avatar sdk)

glacial yacht
#

Nice, this was on my todo list somewhere

autumn kiln
#

My bet is that it's impossible to work with VRCconstraints directly, but I could probably use ConvertUnityConstraintsAcrossGameObjects, now that I got that assembly defenition working

glacial yacht
#

They have a converter in the SDK so I'd think otherwise

#

wait is that just a function to convert? ha, that's a way to do it

autumn kiln
hasty copper
plush bluff
# autumn kiln uh oh, it looks like VRCConstraint is in some sort of dll / sealed class, and th...

Your final solution works so just as general info, while our API isn't identical to Unity's, VRC constraints expose a Sources collection that you can modify directly, like this:

Transform sourceTransform = transform;

// ...

VRCParentConstraint parentConstraint = gameObject.AddComponent<VRCParentConstraint>();
VRCConstraintSource source = new VRCConstraintSource(sourceTransform, 1.0f, Vector3.zero, Vector3.zero);
parentConstraint.Sources.Add(source);

Using the parameterless constructor for VRCConstraintSource is not supported yet as it overwrites the object with default values, but we're planning to change this soon in a future SDK version.

cerulean ermine
#

my chatbox is pretty much feature complete but it wont run on android because of a stupid javaosc bug waaaa

cerulean ermine
#

downgrading it worked, and it's almost ready !

sleek laurel
ember plover
#

I am curious. Is rtmp playback on vrchat broken? Stuff plays fine in vlc but i drop it in a vrchat video player and it keeps attempting to reload the video

#

i sometimes gotten rtmp to work after a few reloads or though the local network so its kinda strange that only vrc seems to suffer with this and not vlc. Only being behind a public ip seems to confuse it

ember plover
#

yippeee

ember plover
#

it litterly is only if i pass it though my domain name

#

if i do direct local ip

it just works

public ip directly also does not work

#

i tried to see vrc logs if anything curious pops up

#

cant tell if this is mediamtx or avpro

#

hm wait... its trying udp?

#

udp is failing

#

thats it

#

forcing tcp works but it has delay

cerulean ermine
#
MTX_PROTOCOLS: tcp
MTX_WEBRTCADDITIONALHOSTS: yourdomain.com
MTX_HLSALWAYSREMUX: yes # constantly remuxes stream regardless if anyone watching or not
# MTX_HLSVARIANT: lowLatency
# MTX_HLSPARTDURATION: 1s
MTX_HLSSEGMENTCOUNT: 7
MTX_HLSVARIANT: mpegts #mpegts fmp4 or lowLatency
MTX_HLSSEGMENTDURATION: 3s```
#

heres my mediamtx config if it helps

#

credit to @grave bronze

grave bronze
#

<3

grave bronze
#

RTSP UDP does not work in docker

#

As for rtmp I've only been able to get that working on quest native

#

RTSP works on desktop

#

HLS works on both with 30 second delay

ember plover
#

Plus udp works just fine on the local network

#

I will do some more digging later today, will take a network trace

grave bronze
#

ahhh that makes sense

ember plover
#

extra logging on vrc does not seem to give anything useful
left is connecting to the player via local ip right is via public

it just suddenly stops and sends teardown???
Vlc works fine so this is not a rtmp server issue

#

this is vlc for comparison

ember plover
#

ok so

#

the fix is

#

instead of rtsp:// you do rtspt://

#

idk what the t here does i cant find jack shit on google about this but this connects????

#

i figured it out after being forced into the vrcdn discord cause i bought a subcription to test

cerulean ermine
#

looks like rtspt just forces tcp

#

Many ISP's block RTSP UDP traffic

#

are you hosting this on your home network or a vps?

#

that would explain why local ip works but not public

ember plover
#

i do (from home)

#

hm

#

intresting

cerulean ermine
#

do you have a vps? @grave bronze can explain how she hosts her stuff on home network and somehow tunnels it to her vps to expose it there

ember plover
#

i can test on a vps real quick but its kinda goofy

#

well would explain the wierd behevior

#

but yeah if you can tell me how to tunnel this that would be awsome

grave bronze
cerulean ermine
#

ohhhh

grave bronze
#

then I OBS stream up to the MediaMTX instance and have it re-distribute

#

that way my limited home bandwidth doesn't suffer

ember plover
#

i mean rtsp over tcp seems pretty ok

#

like 1s latency

#

testing against vrcdn its quite similar

#

and they use tcp only too

grave bronze
#

yeah rtsp over tcp has been reliable for me

#

vrcdn is nothing special at all

#

the only difference is they distribute your video feed to multiple edge nodes in different countries, which in my experience on shitty DSL / mobile internet going across the ocean to germany (packet loss and iffy ping to the US) streaming is fine

#

but it really comes down to TCP throughput and latency at the end of the day, having "repeater" nodes does increase throughput

#

TCP throughput directly corresponds with latency

#

you can have a gigabit connection but if the latency is bad then your throughput will be too because TCP has to wait around and get acknowledgements

ember plover
#

i mean one thing i am noticing, my stream is like 2s~ of delay with vrcdn being 500ms~

#

i guess it is what you are talking about

grave bronze
#

I'm sub 1s on my box

#

it shouldn't be much higher latency than your ping

#

when I say throughput, I mean mbps only

#

a US server would be able to get me a 50mbit/s rtsp stream whereas overseas wouldn't, even if you have gigabit internet, just because of the time between acknowledgements

#

but 99% of people stream at like 3/5mbps and it's plenty for movies at 720p

ember plover
#

it seems to go out of sync over time now that i look at it closer

grave bronze
#

out of sync with audio? where are you streaming from?