#development-advanced

1 messages · Page 5 of 1

glacial yacht
#

VFX Graph as in ShaderGraph?

tropic gate
#

no

#

there is a graph for particles in unity

#

Visual effects graph

#

Im working on the chainsaw shield from the new doom game this is what i got so far but i need blod and gashes on the walls too

glacial yacht
#

ohhh that

#

ooh that's cool looking

tropic gate
#

gonna have to wait a while for my modeler to make the actual shield so i blocked it out

#

but i need to figure out how to do decals

shadow onyx
#

it's not so much VRChat specifically not allowing the VFX Graph, it's just that it is not available for the pipeline VRChat uses

#

Decals specifically seem to only be available in the URP

tropic gate
#

killing myself...

near bronze
shadow onyx
#

was about to ask an avatar friend how they did it, that looks like it

tropic gate
#

true i could do it a shader method

tropic gate
cloud coral
glacial yacht
#

neato!

vague girder
#

pretty cool ^^ still would be cool to see something like this, but using the simpler smoothing setup using direct blendrees when you're using the same smoothing factor

lethal rapids
#

Hey, I've just updated my Open Sourced VR Live Captioning overlay project on Github.
This update integrates Parakeet-tdt-0.6b-v2, NVIDIA’s latest state-of-the-art (SOTA) English-only AI speech recognition model. After initial testing, it seems to dramatically reduce speech hallucinations compared to the Whisper Large v3 Turbo model. The optional two-step Gladia API validation has been deprecated to support fully offline voice transcription (runs locally without internet connection).

This update also introduces an independent Desktop mode as an alternative to the built-in Live Captioning feature in Windows 11 (totally works in Windows 10). This is WIP project please test it thoroughly and provide feedback.
https://github.com/Vinventive/live-captions-vr/releases/tag/v0.0.3-alpha

(If you are looking for a custom Speech-To-Speech and Speech-To-Text applications let me know)

GitHub

This update integrates Parakeet-tdt-0.6b-v2, NVIDIA’s latest state-of-the-art (SOTA) English-only AI speech recognition model. After initial testing, it seems to dramatically reduce hallucinations ...

lethal rapids
#

I'm planning to implement this accesibility feature in one of the future updates https://x.com/googleaidevs/status/1925205852677460101

2️⃣SignGemma is a sign language understanding model that’s coming later this year 🤟🏼It’s a massively multilingual model that’s best at translating ASL into English text, enabling further development of tech access for Deaf and Hard of Hearing users. 🧏

Share your feedback and

#

it's a passion project of mine and I know it's very niche, but it will make me super happy if it will help anyone

cloud coral
vague girder
#

the one downside of this method is that you have less "independance"

#

you basically share 3 blendtrees to do smoothing for an unlimited amount of AAPs

#

(all individually smoothed, to clarify)

#

but if generating via script, you'd probably need to keep a reference to those blendtrees or have some way of finding them

#

and you'd need a separate set of blendtrees for different smoothing factors

#

ideally, something like Fury should have some code that runs very late in the build that combines smoothing loops with equal smoothing factors that don't change

#

actually, looking at your last image, that might be the same setup

#

(also, that "reset" animation in my setup is technically not needed, it doesn't really work properly anyways. it should be in a layer above)

#

I would also strongly recommend MACS if you work with animators (and especially blendtrees) a lot https://mcardellje.gumroad.com/l/macs

Gumroad

MACS (McArdellje's Controller Suite) is designed to improve the workflow of the Unity Animator window. It adds a variety of features to aid its users in quickly creating animator setups.The tool helps by displaying a variety of extra information on top of unity's animator to allow for easier debugging at a glance, all extra icons and labels adde...

cloud coral
vague girder
#

it may not even be needed if using WD on honestly

cloud coral
#

Its not for the most part, but I've noticed that sometimes Poiyomi animated properties will reset back to 0 in play mode.

cloud coral
vague girder
#

it's free, and lets you clean either one controller, or all of the ones in your project. it'll tell you how many unused subassets are in each one

vague girder
#

sweet, nicely done ^^

rugged drum
#

i was thinking of writing something like that

#

but no reason to reinvent the wheel

vague girder
cloud coral
#

I'm working on making it a proper vpm package, but its a weirdly convoluted process.

#

I didn't realize the package maker deletes your whole project. I'll have to restore from an older version.

grizzled jackal
#

:(

cloud coral
#

You live you learn, unfortunately. I wasn't expecting it to be that destructive. I think I just lost like tens of hours of work.

velvet zodiac
#

They really ought to have some instruction to ask users to save a separate scene file. Or prevent overwriting the default somehow. Because you're def not the only one to have that happen.

cloud coral
#

I mean it does say to create a new project on the website. Its just most of the packaging things I've done in the past have generally been non-destructive for the most and usually create a separate folder for build output. Package Maker writes its build output to the root folder for some forsaken reason. I will say the confirmation message doesn't make it very clear of what's about to happen.

glacial yacht
#

(cup as in "create unity package" - kinda clever)

velvet zodiac
#

Oo, I should try that. I tried using "Hybrid Packages" but it doesn't export hidden folders like Samples~

glacial yacht
#

Yeah I wanted some way to easily automate it, so I use this in a makefile

round pendant
#

okay so, i want to make cool custom logic for my unlock buttons in my prefab. you can see that the unlock button object by default is just an empty with the script, and the script has a bunch of data related to the runtime functionality of the button.

what i'm wanting to do, is make it so that, when you enable the "preview" it instantiates that "ButtonContainer" prefab as a child of the UnlockButton gameobject. then, while preview is on and the prefab is there, options show up to change the prefab's attached UI elements, and the attached mesh and material (material slot 1). when preview is disabled, i want the chanegs made to stay, but the prefab to dissappear.

during runtime, either on Start or OnScenePostProcess, i want to instantiate one of those prefabs for the unlock button again, and give it all the same values that were set in editor

#

the goal, is that because networked code can't run on disabled objects, i have the visual parts and the trigger connected to the prefab rather than on the unlock button itself. but as to not have to have the user assign the "container" object manually, i want the prefab to be instantiated and references to be assigned automatically

#

and the reason preview should be able to be toggles, is because if a button should be disabled by default during runtime, then you may not want it to show up all the time in-editor

#

i already have some logic for this stuff written, but i wanted to ask here to see if i did anything strange or something, because i'm not super familiar with instantiating prefabs in-editor, or when the scene is being built.

#

currently it does work, besides the material and the fact there's no logic for getting rid of the prefab when preview is disabled. not sure why setting the material doesn't work

#

but that's also something i'll want help with. i don't know how i'll tell each unlock button in the scene to instantiate one of those prefabs and apply the values stored in the script

#

i do suppose i could just have the prefab always be attached to the button, then i won't have to worry about instantiating and removing it. that's one option

light remnant
#

Is there any way to make my avatar behave like a fullbody user with their FBT Locomotion toggle disabled?

I have myself properly entering a state with Tracking Control setting everything to Tracking, as confirmed by debug, but in flight in OpenFlight worlds, I only get hip rotation tracked properly when I am in fullbody with FBT locomotion off. In fullbody, with FBT locomotion enabled, I only get head rotation applied to my entire avatar, the hips aren't rotating independently at all...

#

I've tried Animator Locomotion disable, but of course that doesn't do what I want either (at least not during OpenFlight).

cerulean ermine
#

if you go into gogo's menu, then the gogo icon on the bottom, enable the red feet toggle (cant remember if it has a name)

#

that disables walk anim if thats what youre asking

warm root
#

In the context of trying to bypass VRC's shitty "force everything through yt-dlp nonsense" - is there any file extension or protocol that VRC doesn't try and push through yt-dlp? e.g. rtsp:// etc?

gray mulch
#

but either way you will still have the 5s bs

#

Cant remember if rtspt bypasses it completly, i believe it does..

warm root
fallow dew
#

would anyone know what font and line break rules the action menu uses?
i need the font to reliably measure text width to count line breaks (i know the font size changes based on text length but i'm just forcing it to size 22 which appears to be in line with the default, though knowing the exact behavior for the size change would also allow me to replicate that)
there's obviously the line break on space (and some punctuation characters) and forced line break when a word is too long

the reason i need that is to write code to create "pseudo headers" because i doubt native expression menu headers (https://feedback.vrchat.com/avatar-30/p/expression-menu-headers) would be implemented for a while and i'd like to release a tool that generates a menu layout that effectively depends on headers (see canny) without having to wait for an unknown amount of time

mild coral
#

possibly Noto Sans, not sure

fallow dew
#

seems very close at least, thanks

fallow dew
#

hm, close in the browser, a little more variable within unity, may be a different font or a non-standard variation of noto sans

fallow dew
warm root
#

Can you swap the player's camera for another camera, or drive their existing camera in some way without moving their avatar? I'm trying to handle a cutscene and before I started I could have sworn you could swap cameras but it looks like I was wrong.

warm root
warm root
#

@gray mulch What about... can I put someone on a station and hide them from themsevles?

gray mulch
#

could work

#

Ive never really messed with stations

bold grove
warm root
#

Shoving them on a station works but annoyingly trying to cull their avatar with near clip doesnt work

desert socket
#

is it possible to change the bones that the vrc descriptor colliders (head, hands, feet, etc) are parented to? 🤔
(or to duplicate them to different bones)

glacial yacht
#

Yes, but I believe you have to do it in C# as a build hook.

warm root
#

Can anyone think of a way of hiding the player's avatar, or at least freezing bones at a minimum?

gray mulch
#

can't remember the full method

polar wagon
warm root
#

Thanks, I shall see what I can do in that regard.

unreal orchid
# warm root Can anyone think of a way of hiding the player's avatar, or at least freezing bo...

For the sake of bringing up other solutions.

  • Override the player's camera view with a camera setup to not render the player and I assume playerlocal layers.
  • Make use out of the recently exposed VRCCamera methods, specifically "LayerCullDistances" (https://creators.vrchat.com/worlds/udon/vrc-graphics/vrc-camera-settings) which to my understanding (not played around with it yet) would allow you to essentially cull the player and playerlocal layers entirely, only issue is that it is clamped to nearclip + 0.1 so something would appear of the avatars if you got close enough.

Exposes information and limited control over the user's screen camera, the handheld camera, and Unity's global quality settings via APIs listed here.

warm root
#

Yeah you can't set the near-clip to a high enough value to clip the player from their own view.

#

How do you override the camera though? I tried what I thought would work and it doesn't switch cameras.

unreal orchid
# warm root How do you override the camera though? I tried what I thought would work and it ...

https://github.com/Ikbenmathijs/ReplaceVRCCamShader
This and strip the discard out at the bottom.
Although tmk you'd need two, one for each eye.
Getting the right distance between eyes has also been simplified with vrc cameras settings since you can get the world position and rotation for each eye.
And a script for setting the resolution for the render textures.

I don't think it is a good solution, it is certainly not cheap, way better utilized for "remote controlling" something instead of Unity having to discard everything you should have been seeing, but no way to move voice location without stations so. .

GitHub

Very simple VRC shader that replaces the texture in the VRChat camera! - Ikbenmathijs/ReplaceVRCCamShader

warm root
fickle junco
#

Looking for a substitute to dreadscripts Controller Editor 😭 does anyone have anything similar?

solid lake
#

Update:

VRLabs has rehosted the majority of these scripts, available in the "Rehosted" section at https://vrlabs.dev/packages/ and on their github repo at https://github.com/VRLabs/DreadScripts-Archive (https://github.com/VRLabs/DreadScripts-Archive/releases)

~~Since Dreadrith has lost his mind and deleted all his scripts, I'm putting together an archive. If anybody has the following scripts, please hit up my DMs! com.dreadscripts.assetorganizer com.dreadscripts.blendtreebuilder com.dreadscripts.camerautility com.dreadrith.packageprocessor com.dreadscripts.replacemotion com.dreadscripts.resethumanoid com.dreadscripts.selectionhelper com.dreadscripts.text2texture com.dreadscripts.textureutility com.dreadscripts.localization com.dreadscripts.vrcprocessor

I currently have these scripts if anybody wants them: com.dreadscripts.animationhierarchyeditor com.dreadscripts.controllercleaner com.dreadscripts.copycutpaste com.dreadscripts.hierarchyplus com.dreadscripts.limbcontrol com.dreadscripts.noautogame com.dreadscripts.quicktoggle com.dreadscripts.vrcsdkplus

Isn't the MIT license fun?~~

indigo current
fickle junco
indigo current
#

also I've seen a lot of people use MACS as well, so you may wanna check that out too (paid though)
https://mcardellje.gumroad.com/l/macs

Gumroad

MACS (McArdellje's Controller Suite) is designed to improve the workflow of the Unity Animator window. It adds a variety of features to aid its users in quickly creating animator setups.The tool helps by displaying a variety of extra information on top of unity's animator to allow for easier debugging at a glance, all extra icons and labels adde...

solid lake
#

I swear by macs, it's in every single project I work on

#

animators are painful to work on without it xD

cloud coral
#

How do you make vpm packages work? I tried just adding a package.json with all the required fields in it and zipping it. I also setup the repo json thing. When I try to add it to a project through vcc, it says it was added successfully, but doesn't acutally add. It says something about dependency issues.'

glacial yacht
#

that's really all.

hollow shuttle
#

Hi ya'll ^^
How you've been doing so far

I've had a question I despite me trying I haven't found an answer by myself yet so I come seeking for some help or advice ^^

I wanted to make something in unity (so it would be for an editor script) to help me in my workflow with working with constraint, the unity constraints are managed but I can seems to find a way to access the vrc constraint with my scripts, does sanyone have any idea how I could do that ??

I can give you what I have currently to give out an example of what I'm trying to achieve at the moment if needed ^^

Thank you for ya help !

warm bison
#

with the classnames in question being VRCScaleConstraint, VRCParentConstraint and whatnot

#

adding sources can be done through <target constraint>.Sources.Add(target).
I'll leave the rest for you to experiment with ^^

hollow shuttle
#

thank you very much ^^

#

i'll look into it !

hollow shuttle
#

to give some contexte i'm trying to do that atm

hollow shuttle
warm root
#

Actually this may be a better channel given how silly the idea is, but has anyone figured out a way to load in lightmaps at runtime using the VRC image loader?

glacial yacht
#

ooh can you do that?

warm root
#

I don't know, that's why I'm asking 😉

#

The majority of my world size is lightmaps and it's split up by zones, so I'd rather not have people download a load of lightmaps they don't need.

glacial yacht
#

ohhh, I see

unreal orchid
#

Assuming you can export the lightmaps to png, keep the lightmap uv map but not the lightmaps in the bundle, or at least not full res ones.

#

Doing the light baking in blender would simplify things.

warm root
#

Doing the light baking in Blender absolutely would not simplify things in my situation, lol.

gray mulch
warm bison
#

Unity projects with your use-case typically load each segment as an additive scene, allowing individual objects to keep their own lightmap

#

Without access to SceneManager.LoadScene, there are sadly few other options out there. Blame Unity, per-scene lightmaps have always felt finicky x.x

warm root
balmy juniper
pine sierra
#

Anyone else getting an issue with Unity not saving the window layout when the VRCSDK window is in it?

polar wagon
#

Anybody know why my stations are being deleted at runtime, with the log error that the exit point is too far away from the station, even though it is in the exact same spot as the station script and enter point at runtime? (Avatars)

bold grove
#

its best to just not have a seat on a avatar in general

polar wagon
gray mulch
polar wagon
gray mulch
#

hm

cloud coral
light remnant
#

Can somebody clarify root rotation for me? When you’re in fullbody, your root/playspace is static and independent of head and hips rotation. When you’re in three-point, your root rotates along with your… head, right?

#

Same with desktop, it rotates with POV?

polar wagon
#

Not sure about FBT but yes, desktop and three point are rotated with your head

#

in three point vr you can lock the root with locomotion lock state behaviors (or by opening the big menu)

glacial yacht
#

Linux user here, I sometimes have this issue too, proprietary binaries that only work on Windows.

#

yeah I once looked at that and decided to not attempt it - glad I didn't now.

granite geode
#

So I’d like to develop a vpm in such a way that I can commit changes to it to git from inside multiple other projects. The vpm package template contains an entire copy of a unity project, which is not ideal. Does anyone have instructions on how to make a vpm where the git repo only contains the package itself? Or perhaps some other solution that could facilitate that kind of workflow?

#

On second thought maybe I should just forget about vpms and have any potential end user just clone the repo to their packages directory the same way I will be.

glacial yacht
#

I just did it with a makefile, it's pretty easy. Then if you use github there's a workflow to just generate a package listing and have it published on the github.io site - I don't do that at the moment but I've contributed to a friend's packages so I've looked over the workflow a bit, it's really simple

#

from there, just decide where you want your stuff to install, be it Assets or Packages and have the full tree in the repo and just have cup package that all up.

granite geode
glacial yacht
#

you don't have to have that public, all you have to do is make the website public

#

oh - you put all that crap and such into its own repo, separate from your packages, so basically a repo for the vpm site

#

maybe not ideal if you have only one package but if you have several it's not a big deal

granite geode
#

ah that makes sense

autumn kiln
#

Do you have any more information on how you fixed your "no definitions found" error?

light remnant
lost spoke
#

I was rotting in bed but now I have a purpose

#

I will get on PC ASAP because I was planning on doing this sometime soon anyway (showing people the Forbidden Texts)

lost spoke
# autumn kiln Do you have any more information on how you fixed your "no definitions found" er...

There's a few steps to take here (I'm not sure if you 100% need them but it worked for me. As always, YMMV). Please let me know if something doesn't make sense.

  1. Go to Edit->Preferences
  2. Look up "External Tools", select Visual Studio 2019 for the External Script Editor and press "Regenerate project files" (from what I understand, this makes it so that VS can "access" the directives and properties used by the VRChat SDK or something. idk, I honestly just found it by screwing around)
  3. Open any C# script in your project (or make one and then open it). This should be opening in VS 2019.
  4. Look up "object browser" in the search bar at the top. This will bring you to the guts.
  5. Scroll down until you find all the VRC SDK stuff (which hopefully should be there?)

I don't know what your project entails but for me, I needed to find out the properties of VRC constraints because they were apparently nowhere (and naturally, nothing helpful on the site docs). It's all here. Anything you could find, it should be somewhere in the object browser. You can look up components in the object browser search as well

**Edit for typos

autumn kiln
#

ok
I am using Visual Studio Code (blue), not Visual Studio (purple)

However, I was able to fix my issue in another way

I was missing the necessary Unity integration extensions.
After the extensions were installed, the "workspace" was finally being recognized in some capacity, with errors

The error was that I had an imported shader, with a wonky name
Apparently, that caused some form of parser error with the csproj file

Although I don't get a super-nice looking Object Browser, I can still find definitions of functions for the VRCPositionConstraint.Sources, and such

#

It's kinda funny that I had to go through all this trouble, just to find the reference changed ever so slightly
locked --> Locked
constraintActive --> IsActive
AddSource --> Sources.Add

lost spoke
#

Yeah that frustrated me beyond belief. Not me searching on and off for months to find it

lost spoke
autumn kiln
#

I am working on an automated setup tool for my own FX package
part of that includes passing armature bones to ParentConstraint sources across the prefab

fading epoch
#

Dear god

rough sleet
#

That's a 7 year old message 😆

fading epoch
#

Also a lot of dead accounts up there

thorn rampart
#

hey how i made a handling mouse gun

glacial yacht
#

?

thorn rampart
#

when i move the mouse make my arm fallow too

#

like a fps game

thorn rampart
#

Can one explain to me why my animation
is doing this

#

i want it move all the bones with this and other animations

polar wagon
#

Anybody know the exact delay in milliseconds that there is between when you speak and when your mouth moves locally?

#

Aka the time it takes to translate your mic input into lip sync?

mild hedge
polar wagon
mild hedge
#

go for middle

#

does anyone know how to fix toggles dissapearing in final build

#

but working fine in gesture manager

thorn rampart
#

can someone help me? I'm trying to toggle the change form and I don't know why but the anime is not working

#

i tryed make and remake de animations

#

try to create a other controller and nothing

gray mulch
wintry ginkgo
#

Does anyone know whether it is possible to get avatar parameters in animator state-machine script?:
Originally, I'm trying to make an animation to change color values separately, but then I found I can't record ARGB or HSVG separately in lilToon shader because they are float4, like I can't only change R value because this will make the whole value fixed
So now I'm trying to use script to generate a new color value by the related avatar parameters then set the shader color to this generated value, but I don't know how to get avatar parameters in scripts and change the shader properties

glacial yacht
#

by "script" you mean in a world? You can't get avatar parameters from Udon.

gray mulch
#

it says animator.

wintry ginkgo
#

Avatar FX

glacial yacht
#

yeah in an animator on an avatar, you can use VRC Avatar Parameter Driver to manipulate animator parameters

#

otherwise I'm not sure what "script" means here, since you can't have scripts on avatars

wintry ginkgo
#

StateMachineBehaviour

#

I don't know, but I can add script from here

#

And the SDK doesn't give me a warn after I add an empty script in the state-machine behaviour

#

It's impossible for me to directly edit the shader logic to separate the ARGB or HSVG value

wintry ginkgo
#

I tested it just now, the script I added in the animator state machine behavior do execute, and the test build can complete normally

vague girder
#

what is the actual end goal here?

wintry ginkgo
#

Record ARGB or HSVG value changing separately

vague girder
#

so you can have separate sliders to change colors on the avatar?

wintry ginkgo
#

like this , they can't be separated

#

even I delete 3 keys, the engine will just set it to default value when on this animation

#

I want to change color in the menu

vague girder
#

don't create separate layers to handle these. instead, use a Direct blendtree to animate each 3. they work additively, so one slider shouldn't affect the others as long as the value is 0 for the others

#

which shader are you using btw

wintry ginkgo
#

they are float4, can't be separated

#

I tried to edit the shader script but found that is impossible

wintry ginkgo
#

Once I edit it, it will be a completely new value

#

What I can do is make 3 of 4 values in the new color value be equaled with the old value

#

So the only solution I can think out is only change the shader logic or add new logic(script) that generate color value

vague girder
#

just do this to animate each field and all will be good

#

or switch to Poiyomi so you can do easier adjustments

wintry ginkgo
#

Thanks, I'll check it out

wintry ginkgo
#

Animation do 'set' but do not 'read'

#

Whatever method you use for this animation, once it modify this value directly, it losses the original value

#

Unless you have some logic to read values from previous state and pass it to next state

#

Here isn't a special sign like '~' representing stay that part unchanged

vague girder
#

I am on my phone so I cannot provide any visuals, but the premise is this:
make 5 animations, one of them with all of the values at 0, and another with only one of the values set to 1. inside a direct blendtree, plug in all 5 animations, starting with the "0" animation. each animation takes in a parameter. for the first one, use a parameter whos value is always 1. for each of the other one, they should be the parameters you control via the menu.

the reason why this works is because each of those animations works in an additive fashion. first, the "0" animation forces everything to 0 by default. then, when you increase the value for one of the other animation, the values are added to what the blendtree is already doing. because adding 0 to something doesn't change anything, the other elements aren't touched, while only the desired element is increased because the value is 1.

autumn kiln
#

The timing on this is really inconvenient, so I won't be able to send this modification until Wednesday

#

The gist on how to modify liltoon is to have a completely new set of parameters, then within the shader, they can be copied into the original float4

vague girder
#

or alternatively, use Poiyomi and use the provided Translation tool to convert your liltoon mats to Poi ^^ since it has separate HSV parameters

wintry ginkgo
#

there are too many .shader files, and a bunch of hlsl file with countless preprocessor

autumn kiln
#

Yeah, it was a hassle to figure out the maze of header files

If, by Wednesday, you still need this, I can send the modified shaderfiles

autumn kiln
#

No problem, just give me a ping once it hits Wednesday

wintry ginkgo
#

what time zone do you on

autumn kiln
#

EST

vague girder
wintry ginkgo
#

OK I will also try this in next time, also thank you

wintry ginkgo
#

Like this?

#

I don't know why there is a 'blend' parameter

wintry ginkgo
#

wow

#

The hue parameter in its animation need to be set to 1.5 to let it work properly, because Hue[-0.5,0.5]

vague girder
# wintry ginkgo Like this?

yes, but you can also just remove those in-between 3 directs and plug the anims straight into the root blendtree

#

the Blend parameter is added when you make a blendtree by default

wintry ginkgo
#

I deleted it, because it will cause exception in this situation

#

I can finally implement my thoughts

vague girder
#

what do you mean by exception?

wintry ginkgo
#

Blend is not exist in params

#

So I removed the BlendTrees between

vague girder
#

it could've just been any always-1 parameter instead, or you could've added Blend, but it's not necessary because those blendtrees were redundant anyways

wintry ginkgo
#

I can't change it

vague girder
#

you could've if you clicked on those blendtrees and looked at the inspector

#

trust me, I work with blendtrees a lot lol

#

anyways, you can also implement all of your color changing in this single layer the same way

#

you can basically do an unlimited amount of things in one layer using direct blendtrees

#

keeping your animator layer count to a minimum is important

#

I also really recommend this add-on to make your life easier

#
Gumroad

MACS (McArdellje's Controller Suite) is designed to improve the workflow of the Unity Animator window. It adds a variety of features to aid its users in quickly creating animator setups.The tool helps by displaying a variety of extra information on top of unity's animator to allow for easier debugging at a glance, all extra icons and labels adde...

wintry ginkgo
#

In the previous time, I'm struggling with understanding the exit time, so I create laryers for each toggles and style changing

#

I have 14 suite on my avatar, so I created at least 10 layers for just change their style lol

vague girder
#

I see. in that case, I'd very strongly recommend combining those into one layer ^^

#

another thing, you can use direct blendtrees as "folders". basically, you could have a direct blendtree for each of the HSV adjustments, just to keep them separate from one another

wintry ginkgo
#

OK thanks, I'll keep this in mind

vague girder
#

example

#

orange are direct blendtrees

#

in the "root" blendtree, each of the sub-blendtrees are assigned the same "always 1" param

autumn kiln
#

I am home a bit early:
@wintry ginkgo here is the modified liltoon package

The fix is to add _MainTexHue, _MainTexSat, _MainTexBright, _MainTexGamma to any of the main shader files you need

Then, in the ltspassbaker (internal and .shader), add the following line

col.rgb = _MainTexHue == 0 && _MainTexSat == 1.0f &&_MainTexBright == 1.0f && _MainTexGamma == 1.0f? lilToneCorrection(col.rgb, _MainTexHSVG) : lilToneCorrection(col.rgb, float4(_MainTexHue,_MainTexSat,_MainTexBright,_MainTexGamma));

This will make it such that when these internal values aren't used, the regular inspector value will be used, but if an animation drives it, then those internal sliders will be used instead.

To drive these values with an animation, you will have to 'Add Property', then manually find and set the value of "_MainTexHue", and such

wintry ginkgo
#

Thanks much

warm root
#

I'm getting this pretty much every time I click on a GameObject in the editor that has an Udon script on it and it's driving me insane. It means it takes like 7 seconds to click anything that has a script on and is destroying my productivity. Anyone know what may be causing it? I've already reset the Unity UI.

plush bluff
warm root
#

I didn't realise the profiler would pick up non-play-mode editor stuff. I'll try that, thanks.

distant cape
#

I don’t know where to ask but I’m trying to mirror my phone screen in vrc that i can control my phone trough a phone asset my understanding of coding is at the bare minimum i anyone has a way to do it I would appreciate the help 🥺

glacial yacht
#

On an avatar or in a world?

distant cape
#

On a avatar

glacial yacht
#

Then you'd want to be using OSC to get data in and/or out.

#

past that I guess you'd have to figure out how to talk to the phone

distant cape
#

Ik but I will look further into it otherwise i probably need to find someone who can code it into the game

glacial yacht
#

Yeah unless you have something on your phone which can send OSC messages, you'll have to develop some program to do this

warm root
#

But you can see the 16 second "freeze" there at least.

warm root
#

Unfortunately enaling Deep Profile seems to cause the delay to take like 8 minutes instead of 16 seconds, then eventually when it does respond again, clicking the spike in the profile caused Unity to crash entirely after another big delay.

rugged drum
rugged drum
#

If you can reproduce the issue less severely (maybe in a new scene), you might be able to Deep Profile it

warm root
#

Tried a clean slate by creating a new project, importing the relevant packages then copying over the assets folder, but on start it gets stuck on this forever. Nothing else being echo'd into the logs since the model import prior either.

warm root
#

So, I had to empty the project, get the project open, then copy over the assets WHILE UNITY WAS OPEN, and do a refresh, that (took forever but) worked.

#

Unfortunately, despite it being a brand new project with just the assets copied over, it still has the same issue. Clicking something that has an Udon script on it still locks up the editor for 16 seconds. So massive waste of time.

rugged drum
#

It's possible that it's actually getting stuck somewhere else, and that the GUI just didn't get a chance to update

warm root
#

The external log file wasn't being updated at all during the stuck startups, but anyway it's done now.

#

But yeah, a direct repeatable thing I can do is fine a random gameobject, try and add VRC Pickup and that immediately causes the 15 second lockup.

#

So if I load the external profiler, it doesn't actually SEE the huge delay, it just shows 1.6 seconds, not the god knows how long it takes...

#

(with the profiler runner the delay was several minutes)

warm root
#

Using the embedded ones loads forever when trying to view the spike afterwards until Unity finally dies.

#

Is the Profiler using all of the RAM? lol

#

Yeah, as soon as I try and trigger the issue with the profiler running, it goes until I run out of RAM

#

(96GB btw)

#

156GB comitted so far...

#

223GB now...

#

It hit 336GB before I killed it. So yeah, profiling is a bust @plush bluff, unfortunately.

warm root
#

I wonder if it's the SDK for some reason. The delay when clicking an object with a Udon script on it seems directly proportional to the amount of things in the scene but it's definitely a new problem. I'll roll back the SDK to see if that helps.

#

So... the lag doesn't happen if the "VRC Pickup" component is collapsed...

gray mulch
#

sus

rugged drum
#

oof

rugged drum
#

Either could be the issue here

warm root
#

The editor shouldn't lock up regardless of whether the VRC Pickup component is collapsed or not...

rugged drum
#

I mean why it’s not freezing when the thing is collapsed

#

There’s some editor code that’s clearly stuck in an infinite loop

#

It could be the code that draws the inspector, or it could be the code that draws gizmos in the scene view

warm root
#

Sure, but then I'd expect everyone to be getting it. I'm not running a different version of Unity to everyone else :/

autumn hatch
#

Does anyone know of a way to get one-handed movement to work when using two controllers (Normally left thumbstick strafes on left and right, I want it to rotate instead). Steam bindings doesn't do much help, in the one-handed tab I can see the binding for the stick I need but I can't move it to the 2 handed tab. I'm using a tracker in place for the right controller, so opening up the action menu and forcing one-handed locomotion is not an option for me.
Are there are OSC programs that might help me? I know you can send locomotion data through OSC

#

My right arm is in a cast, so I had a silly idea of putting a tracker on it and it works well enough, was able to offset the tracker in Steam bindings so its positioned well. Only issue is locomotion, since I can't really use my right hand to push any buttons. The tracker click button is currently used to open the quick menu

plush bluff
# warm root So... the lag doesn't happen if the "VRC Pickup" component is collapsed...

Sorry to hear profiling didn't work out. It's true that deep profiling generally needs a lot of memory.

You've mentioned that the inspector of VRCPickup might be causing this. Please consider opening a Canny report with as much detail as possible so we can track this and try to repro and fix it. In particular it would be good to know:

  • If this happens if there is a VRCPickup component on the game object and nothing else, or if it's still specific to whether there's also an UdonBehaviour component on it.
  • Whether disabling gizmos (top right button in the scene view) makes any difference.
  • If there are other custom editor windows open, whether closing them makes any difference. OnGUI() from your first profiler sample is specific to custom editor windows and isn't used by custom inspectors as far as I'm aware, so that's unusual.

Please also mention which SDK version you're using.

You can bisect the issue further if you'd like by progressively removing assets and seeing if any of them are causing the issue, but that's up to you. Thanks very much.

wise socket
#

just a quick question, is the full deprecation of SDK2 in preparation to move to a newer version of unity?

#

(please be 6.2 if yes)

glacial yacht
#

The issue is still the render pipeline, so I wouldn't hold my breath

wise socket
#

i mean, ig that makes sense

#

maybe they have a custom render pipeline coming, who knows. i just want the more optimized unity 6

#

i can import and upload avis in it, but it isnt officially supported

#

and always throws errors

gray mulch
wise socket
#

yeah, but that ancient shit is most of what was holding them back.

gray mulch
#

Me: "Why did videos start working in sdk2 again randomly for like 2 months?"
Dev friend: "I have no clue"

glacial yacht
#

(and other things)

glacial yacht
#

oh I thought it didn't? Huh.

wise socket
#

i mean, ppl have ported the scriptable build pipeline to be VRCSDK compatible

#

who says we cant port the render pipeline, its all in C#

glacial yacht
#

haha

gray mulch
#

brother the shaders arn't even compatible

#

I attempted to port one of my worlds to URP the other day for another platform, it was.. painfull

wise socket
#

poiyomi is working fine, tf u mean "not compatible"

glacial yacht
#

There is a not-full-featured-yet URP release of poiyomi, yep.

#

but old content already uploaded wouldn't work with that

gray mulch
glacial yacht
#

ooh we should change tomorrow then!

wise socket
#

you know what, fair. im just tired of waiting 30 minutes for U2022 to open, when U6 takes like 2

gray mulch
#

also having a urp version of poi does nothing to help with porting all the existing locked shaders in use as they are not directly swappable unless you basially remade the material at runtime by unlocking and relocking on the urp version

#

which would take.. minutes per avatar..

glacial yacht
gray mulch
wise socket
#

even with a build server with a threadripper 9000, it still takes over 20 minutes to build an avi in U2022

glacial yacht
gray mulch
wise socket
#

in my case, the server is across an ocean, so some of that could be, latency

glacial yacht
#

one of these days I need to get around to trying that out for real, just haven't had the time

gray mulch
#

scrn did some massive improvements to the urp version of poi to allow it to compile like 10m quicker per build for my avatar

#

256 varients per material down to 32

#

:3

wise socket
#

once everything is URP compatible, how long til HDRP shaders for vrc?

gray mulch
glacial yacht
#

that doesn't make any sense

wise socket
#

they both use SRP as a dependancy

#

meh, for now ill just install a newer version of 2022

#

62f1 is the latest available

wise socket
#

62f1 is actually not that bad 👀

#

has BiRP, builds avis faster, and seems to be pretty stable 👍

#

no errors in logs either

glacial yacht
#

can you actually upload vrchat content built with that though?

rugged drum
#

the shader can handle URP; that's it

sleek laurel
#

no idea if this is the appropriate location for this question... but: Is there a way to make a map of mine into a stand-alone off-line executable game?

glacial yacht
#

with a lot of work and removing all the VRChat-specific stuff... probably?

sleek laurel
#

just removing the pickup and sync components wouldn't be difficult. Not sure of Unity being able to build an offline version though.

#

Udon graph removal would render the map extremely static 🙁

shadow onyx
#

you'd have to convert all of the scripts into Unity Monobehaviours, re-create a character controller, basically remake anything VRChat does for you

#

a lot of VRChat knowledge will transfer into a Unity project, no doubt. The map assets itself would be basically unchanged. It's mostly the scripting you'd have to do a bit of work converting or re-creating VRChat's systems

sleek laurel
#

unfortunate news. I was hoping the VRC SDK would have a stand-alone build option.

vague girder
#

I mean, why would it? its purpose is to build content for VRChat

glacial yacht
#

I would probably suggest looking into Basis.

sleek laurel
sleek laurel
glacial yacht
#

web search for "basis VR" and you'll find it

vague girder
#

but yea, Basis would probably be something you're interested in

sleek laurel
#

Has anyone (here) ported a map to Basis?

glacial yacht
#

There's a discord for Basis, I'd suggest going there.

candid owl
glacial yacht
#

(Sundown)

rugged drum
#

you can absolutely just use the scene you've built in your own game; you just won't have VRChat-specific stuff, like...well, VRChat itself

balmy juniper
glacial yacht
#

er.. wrong person maybe? I'm not doing anything with either at the moment

balmy juniper
#

oops

prime elk
#

If i found a serious security vulnerability and reported it, could i get free vrc+ ? (I didnt but i kidna wanna start bug hunting)

bold grove
#

vrchat afaik doesnt give out rewards of any kind to people reporting bugs so probably not, vrchat has known about many bugs (client users being allowed to switch their display name on a whim for example) and haven't patched it so im unsure if your bug would even get patched either unless its something like taking over another account or being able to delete someone elses world

gray mulch
#

Username spoof is local so its not really a problem and only an issue of people dont write their scripts with proper ownership transfers

bold grove
#

username spoofing can be replicated as ive seen it multiple times recently

#

kinda wack that vrchat allows multiple users into the same instance with the same display name if it isnt build & test imo

glacial yacht
ruby wedge
#

The build VRChat includes has issues with Unity for Mac

#

To be specific I'm wondering if there is a scripting define or other way to force Unity to ignore the version included with the SDK.

#

I know I can add ~ to the end of the folder name to disable it that way.

silent flare
#

hey yall don't know if this is the right channel. I'm a VR developer getting my masters, and I signed on for a graduate assistantship that is based around building a more effective grief counseling medium compared to video calls in VR. I suggested that VR Chat might be a more effective medium then horizon worlds or a bespoke communication tool, but it seems like access to the unity development base and tools requires a certain amount of use and trust. Which makes a lot of sense, but we've got a National Science Foundation grant. I feel like that's probs enough to qualify? I really don't want to make this in horizon worlds. Should we contact the developers on this one since we have some institutional backing?

vague girder
rugged drum
#

I have lots of components I've created for edit-mode procedural generation. I'm thinking about stripping these from the world during upload.

#
  1. Is this even necessary, or does VRChat automatically remove all non-allowlisted component types from the scene during build?
#
  1. If I should do it, how can I do this? My first thought was to implement IVRCSDKBuildRequestedCallback and destroy the objects during the callback, but the editor complains about using Object.Destroy in edit mode.
#

Obviously, I could use Object.DestroyImmediate, but I guess it feels weird to be using something that can permanently destroy objects

#

(maybe VRChat is making a copy of the scene and then operating on that?)

#

i'll try it out; i have version control for a reason

#

okay, yes, that tried to actually delete everything in my scene

#

(permanently)

#

so that's not going to work!

tribal horizon
#

People must be encountering this... what do we do? If I have a gameobject with a button or slider (or input) and I add an udon script everything is fine. I then want another like it but with a different script. I duplicate the object and I remove the existing udon script. I can add the new one (or not) but the old one is not actually removed. I do it multiple times, I save it over and over. I restart Unity. The old udon script persists.

rugged drum
#

I haven't seen that before. Are you using UdonSharp, or just graph-based behaviours?

tribal horizon
#

On an unrelated note... I would like to limit the updating of a slider value until the player has stopped sliding it, i.e. not on the value changed event. It should be possible to watch for an OnEndDrag event, I assume it has to be on the handle component of the slider. Does anyone have an example I can copy if this is in fact the case?

#

Oh I might have one, it seems that MS Copilot can write it.

rugged drum
#

You can’t create your own non-Udon types

#

The actual code doesn’t exist

#

I’m wondering if the component itself remains, though (in a broken state)

#

I use that where I can! I sometimes can’t use that, though

#

e.g. I have a component that goes on the roots of prefabs

#

No, they’re all MonoBehaviours

#

They execute only in the editor

#

It shouldn’t matter that much

#

I should really just check if it’s generating a ton of log spam

#

Instead of hypothesizing, lol

#

Yeah

cerulean solstice
#

IS it even possible to swap or duplicate/swap an avatar body with another within Unity or is it just for Blender?

glacial yacht
#

sure, but why would you?

near bronze
# cerulean solstice IS it even possible to swap or duplicate/swap an avatar body with another within...

It is certainly possible to set up your meshes and your workflow in such a way that you can swap your bodies and heads in unity. There are editor scripts which auto-merge together your armatures, so they can come from different files and be joined together in one body. Then to improve performance, you can have other editor scripts merge the meshes together too, in order to gain performance.

I can go further into the weeds on that topic, but the point is - yes, you can set up entire workflows which maximize the amount of configuration you can do in unity. This is how the majority of online stores selling parts of avatars operate, where you purchase a base model and then you purchase additional pieces of clothing and accessories, with the expectation of using some sort of merging tool to bring the avatar and the accessories together.

Merging tools are actually pretty broad in their categories. There are different categories of merging tools:

However
All of this is only possible if your input meshes are modular. If the head you want is part of the same mesh as the rest of the body, you can't do any fancy merge tool things. If your stuff is already merged - you need to split it apart before you can use it modularly.

While that job is typically done in blender, especially if you wanted to get more precise with manual tools, it is something you can do in Unity too! In this case you would want to look for "mesh splitter" tools. Here is one that I found for example, though I have not tried it: https://kiri1120.booth.pm/items/1633965
with some instructions on usage:
https://note.com/nekomura_vrc/n/n4b0897fd8cdf

Here is the link for CATS - https://github.com/absolute-quantum/cats-blender-plugin/releases

Forgot to say at the end: there is an export model function at the top of the CATS Menu. Just click that and rename the model, then you're all good.

▶ Play video
GitHub

A set of utilities for manually optimize/modify avatars within Unity - JLChnToZ/avautils

Non-Destructive Tools for VRChat Avatars

GitHub

Contribute to bdunderscore/ndmf development by creating an account on GitHub.

fresh plover
#

Does anyone know how to set the source and target transforms on a VRC Constraint using c#? I know how to make a VRCConstraintSource, but am not sure how to assign it.

cerulean solstice
plush bluff
rugged drum
#

That sounds correct

#

my code does this

#
constraint = sourceBone.gameObject.AddComponent<VRCParentConstraint>();

constraint.Sources.Add(new VRCConstraintSource
{
    Weight = 1f,
    SourceTransform = targetBone,
    ParentPositionOffset = position,
    ParentRotationOffset = rotation.eulerAngles
});
median tapir
#

I accidentally added VRC Mirror Reflection before changing the material and now the built-in Unity "default material" is using the VRC Mirror Reflection shader

#

how do I like
undo that

#

I don't think you're supposed to be able to edit the shader for a built-in material O_O"

median tapir
night birch
gray mulch
#

On the mirror component

warm root
#

Does anyone have a magical way of loading in remote AudioClips? (i.e. so I don't have to package them in world). To clarify I'm not talking about remotely loaded audio via video players.

glacial yacht
#

I didn't think that was possible

warm root
#

Makes low latency audio a pain and I don't want to bloat the world with audio 🙁

glacial yacht
#

oh I agree

autumn kiln
#

Is there any way to sync a remotely set bool to the local client?

I was hoping for a way for me to detect if somebody (not me locally) had set the isRendering bool, from this VRlabs package: https://github.com/VRLabs/IsRendering-Detection

From what I saw online, the only values that can sync from remote to local is a physbone grab position, which isn't viable:
https://vrc.school/docs/Other/Network-Sync/

GitHub

Be able to trigger things when players look at something - VRLabs/IsRendering-Detection

Everything you need to know to make VRChat Avatar Systems

#

Use case: skyrim-esque "am I being detected?" Hud element

rugged drum
#

Not that I'm aware of. I've wanted to do the same thing

#

you'd need cooperation from the remote user's avatar

autumn kiln
#

This is so sad

shrewd gate
#

Bit of a shot in the dark but is the IK rates for players based on how far away they are documented anywhere?

hollow shuttle
#

Hi ^^
how's ya'll doing ?

is there a place where there is documentation about namespace for vrchat scripts ?

for instance i was trying to find a way to acces the phhysbones component to try and automatically add one or multiple transform into the ignore transform section of it ^^
but didn't have any luck into finding the required dosumentation ^^"

#

thank you in advance for ya help

plush bluff
quiet escarp
plush bluff
#

That's still in progress at the moment, I'm assuming this is about changing PhysBones via code in the SDK

quiet escarp
#

Aaah gotcha

hollow shuttle
#

Thank you already ☺️

plush bluff
#

No docs on this subject currently I'm afraid, for now I would recommend using a code editor that includes autocomplete/Intellisense so your system can find the references for you

gentle mural
#

Not sure where else to put this because it is more a unity question than one related to avatars or worlds, but is there a way to get rid of the grid or change the background in the animator window? Because there is a visible grid, i spend stupid amounts of time obsessively trying to line things up, and am constantly irritated by the fact that the transitions don't start from the exact center of the nodes, and the fact that the entry/exit/any nodes are smaller than the rest. Without the grid to compare to i wouldn't be able to immediately notice those issues. Getting rid of the snapping would also be great, but i feel like that may be a bigger task than changing a background texture

gentle mural
#

vrcPartyRat Thank you!

wise socket
#
Unity

A security vulnerability was identified that affects games and applications built on Unity versions 2017.1 and later for Android, Windows, and macOS operating systems. Unity has provided fixes that address the vulnerability and they are already available to all developers.

#

RCE exploit found in unity

coarse cave
wise socket
#

Phew

rugged drum
#

the vulnerability lets you make unity load extra libraries, which I imagine is the very first thing an anticheat would want to stop, ha

gray mulch
wise socket
#

Wording made it seem like it, sorry

warm root
#

It's an LCE, which means you already have bigger issues if that happens.

gentle mural
#

Misplaced unity question: is there a convention or preferred way to mess with asset yaml in situations where the unity editor api lacks the functionality you need?

rugged drum
#

it's a plaintext format, so i just throw it in my IDE and mess with it

#

are you thinking of how to do that in an editor script?

median tapir
#

why does the SDK say Image Size is 1200x900 but the images are being downscaled to 800x600?

#

shouldn't that be changed to 800x600?

median tapir
tribal horizon
#

Hi... I'm looking for "reasonable" solutions that can be used to toggle a player menu. I had it on thumbstick pressed for PCVR, keyboard "T" on Windows client and right thumbstick down for Android. It worked but I didn't like 2 different actions for PCVR and Android. I switched it to double clicking the trigger (left or right) and I think that is very intuitive and works on both platforms. BUT... it isn't uncommon to pull the trigger twice rapidly and this make my player menu appear at odd times. Plus people using hand tracking (it seems) often pop up the menu accidentally. So I'm looking for alternatives. One world uses a combination of positioning the controller along your head and clicking the trigger. Now I can understand the benefit. I don't love that option but it should just about eliminate accidental menu pop-ups. Has anyone encountered other options that will a) work for all platforms and b) is reasonably intuitive?

grizzled jackal
tribal horizon
# grizzled jackal Why not just right thumbstick up or down for any vr platform?

Hi there, thanks. It is just a toggle so even just the right thumbstick down worked well for Android. I am pretty sure I remember that it didn't work on PCVR. The right thumbstick controls turning of course and I can't find anything in the docs (now) that mentions it being reserved for anything special on PCVR but it seems odd that I wouldn't have used it in that case. I'm looking at hand tracking docs and I have to think people using HT would accidentally sweep down a bit when trying to turn left and right. I'll most likely give the hand near head option a try. Sometimes it is hard to guess the effect on players. I liked my double trigger but received a couple of complaints.

#

And I figured I would check the current status of video player problems. Everything worked for many months but I've recently been getting a common error [AVProVideo] Error: Loading failed. File not found, codec not supported, video resolution too high or insufficient system resources There is nothing wrong with the video (it plays on the browser) and interestingly my own YT videos play on the headset without error. I'll trying a few other worlds tonight to see if my problems are unique or limited to one platform. I guessed it may be time for another yt-dlp update but there are few clues as to the culprit.

tribal horizon
#

A bit more on the youtube videos. I experimented with the API more and set the option to "Standard" rather than "High". One video that didn't play with high did play with standard. It didn't look very good of course. Another video did not play so I don't know if they don't have a standard resolution. I think the VideoResolution setting is a suggestion not an absolute guarantee. In any case standard is just too grainy so I can't use it. So from the error the cause is not that the video couldn't be found, it could be the codec but I have no control over that. The resolution may be a factor but it wasn't until recently and I doubt I have insufficient resources.

warm root
tribal horizon
warm root
#

Yeah, I actually have no idea how to handle it with hand tracking.

tribal horizon
# tribal horizon A bit more on the youtube videos. I experimented with the API more and set the ...

The mystery of youtube videos continues. I tested in 2 other worlds and generally received errors there as well. If someone has a guess about why I'd love to hear it. This is what I know. I did a search in YTS and it found a music video and it played. I pasted a URL into the player (copied not typed so it is legit) and I got an error. Similar problems in the second video world. I then got a friend (on Android) to join YTS. They did a search and both she and I could see the video. I pasted my URL again and it loaded and played for her but I received an error. I tried another URL and the same thing happened. I'm going to log back in via Android to see if could be related to the Steam version of VRC. Another friend joined us who also uses Steam and she mentioned problems with the videos also. I'll test more and post the results.

gray mulch
tribal horizon
#

I don't know what bot detection is. I don't know who EllyVR is and I don't understand why it would take a 3rd party to get a VRChat video player to work.

tribal horizon
gray mulch
#

This is a well known issue

#

Etc

#

If you install vrcx it will even print the fail reason as bot detection most of the time

#

Its something like "Please signin to prove you are not a bot"

#

Cacher stubs vrc ytdlp calls to itself and either returns a previously downloaded video or uses your youtube browser cookies to grab it with the latest ytdlp

tribal horizon
# tribal horizon Ok, so I tested in Android and the YTS world played my videos. I want to check t...

And the Rift/Link version didn't play YT videos either which is no surprise. Link continues to be a royal pain stuttering all the time which is why I stopped using it and use Virtual Desktop exclusively now. So... can I get a show of hands? who is using VRC in PCVR (are you using the Steam version)? Can you play videos or not? Have you installed any "patch" or plan on installing one? I can't see asking everyone who enters my world to install a 3rd party library that will dl and alter yt-dlp. The casual user might just opt out of watching videos and I suspect most users will be confused.

candid owl
unreal orchid
# tribal horizon And the Rift/Link version didn't play YT videos either which is no surprise. Lin...

It comes and goes, which is how youtube wants it to be, they only want to punish those bypassing their systems, disallowing logged out viewing globally would have severe consequences on their bottom line (you wouldn't, for example, be able to watch youtube videos inside discord, whether using the voice chat thing or in the embed.).

For the moment they work for me, but I wouldn't bet on it continuing.
Which is why I have a headless linux container setup where I can login to youtube and get a stream from, but that is a personal size solution for me and friends.

Ideally you shouldn't make a world that is reliant on youtube or any of the free video hosters, with the direction the internet is going they will eventually mandate account login or worse.

tribal horizon
#

Thanks for the feedback. I don't know if "this time" is the time it stops working but it is annoying for sure. I can actually play videos I have uploaded to YT but not others. Such an odd experience to be in my world with people saying "it's playing for me" (because they are on Android) and I can't see the video (on Steam). At least now I know it isn't my API. I don't think about corporate choices as punishment. I like to get paid if someone is using sources that I host. I do wish there was a simple, relatively inexpensive way to handle it though. Like (for instance) $12 a year gets you a key you can install. I think people using VRC wouldn't mind opting in if it was the click of a button on the YT site. I don't see a lot of people installing stuff from GitHub (free or not).

tribal horizon
#

Good feedback... so they "all" load when you use VRCVC or "most"?

#

I saw this *Bigscreen integration: Some apps like Bigscreen VR have natively integrated YouTube, allowing users to watch content while respecting YouTube's terms. Premium users can log in for an ad-free experience within the Bigscreen app. * Do you think this works in PCVR and if so does it seem possible that VRC could "natively integrate" YouTube along the lines of Bigscreen if they chose to?

warm root
#

I think VRC are trying to avoid looking like they officially endorse it.

tribal horizon
unreal orchid
unreal orchid
# tribal horizon Officially endorsing it sounds like a good thing to me. Is BigScreen and Resonit...

If VRChat could get Youtube on board with a proper implementation (no full on browser hogging resources), instead of something rough and no way to login, like discord's youtube VC thing, then it would be somewhat positive, or positive if you have yt premium, since we'd totally get ads then.

But I highly doubt VRC could convince Youtube to make something that wasn't just an embed and they'd probably still not let us login going by how Discord has no option to do that and they are so much larger.

tribal horizon
bitter juniper
warm root
warm root
#

yt-dlp is very much in breach of YouTube's ToS.

#

BigScreen and Resonite are too small for YouTube to care about.

warm root
bitter juniper
#

So it's rather about Resonite allowed youtube to be integrated into itself?

unreal orchid
#

From what I hear they already update it each time you hop world.
But they have their own fork of it with changes that make it safer for vrc usage, which might not be automated (assuming that is even possible to do) so it is probably delayed by a few hours.

unreal orchid
warm root
tribal horizon
#

And the videos play on Android BTW.

tribal horizon
#

Or maybe instead of charging for folders to save worlds and avatars and silly stickers https://www.roadtovr.com/bigscreen-cloud-browser-quest-screen-share

Bigscreen, the social VR screen sharing platform, is spectacularly good at letting users hold communal watch parties dedicated to anything they can show on a PC’s screen, Quest users included. But now the studio is launching a paid cloud-streaming service that aims to make it even easier for Quest users looking to get away from …

warm root
warm root
warm root
tribal horizon
#

The use/requirement of yt-dlp is a direct result of VRC's policies and implementation isn't it? Are there no other ways to stream videos? They can opt for another way. I have never paid for Bigscreen. VRC is not "free" if you want the extra ability to import a campfire for instance. If you want to create a group, etc. If you want to stream videos into Bigscreen one "opts" to pay for the functionality not unlike opting in to VRC+. It's just streaming in video is actually a benefit while more folders for avatars is not.

#

World developers have to jump through hoops to get things like YT search working (and anything with runtime URLs). This isn't inherent to VR or the Internet it is imposed by VRC. They can relax their policies. In any case... why can't they be sued right now by Google if Google wanted to sue someone over YT streaming? How is the risk lessened or increased by what they are doing? If Google wants to make an example they can simply "sue" Bigscreen and create a precedent and warning for others. You don't sue the biggest company you sue a small one. It is cheaper and easier. They aren't trying to obtain cash from such a move. But I am not a lawyer.

warm root
# tribal horizon The use/requirement of yt-dlp is a direct result of VRC's policies and implement...

"The use/requirement of yt-dlp is a direct result of VRC's policies and implementation isn't it? Are there no other ways to stream videos? They can opt for another way." - Not that I'm aware of, no. Youtube don't want you accessing their content off platform.

If you're referring to "Why don't VRC pay Youtube?" then, well you'd have to ask them. It may be incredibly expensive, YouTube may have said no, who knows.

tribal horizon
#

YT provides an API don't they? I have a license, it's free. If I required a customer to install something for one of my games I'd (I hope) explain why. VRC could try communicating rather that requiring every player to ask them the same questions. Do you see replies from the company re: most questions? Does anyone get responses?

#

Oh, I could/can stream YT videos into the VR app I wrote which is part of the reason I wrote the app. I was tired of restrictions.

#

And I didn't use yt-dlp to translate the URL.

warm root
warm root
shadow onyx
#

this is all just my own speculation, but I'm guessing YouTube videos operate in the way they do because the video players that VRChat use need a direct media link, where a youtube link is not that
most other services that have youtube are embedded through a web browser, which the VRChat video players simply aren't, so it can't play them in the usual way
In order to play them "properly", I'm assuming they'd need some sort of embedded web browser support, which sounds like a lot of engineering work that they'd simply rather use elsewhere
And I for one am on the side that diverting resources to fix the youtube playing problem isn't really worth the effort. The other things VRChat has been working on and adding to the game recently have been much more useful in comparison. Especially since playing youtube videos works perfectly fine for a lot of the time
So the answer to the question to basically anything when you ask "Why doesn't VRChat do X thing?" it's often a case of "it's not really worth doing at this time"

#

comparing the feature to more favorite slots is also a little silly, and completely ignores what a much larger population of the playerbase considers important to have

warm root
#

Bigscreen streaming into an iframe with ads is less of an issue too because with Bigscreen the host then streams back out to everyone else, where as in VRC everyone loads the video themselves, which if they were to then play ads, would completely desync everyone (which is likely to become a real issue if YouTube goes ahead with it's ad injection it was trialing a while back).

tribal horizon
#

Especially since playing youtube videos works perfectly fine for a lot of the time. Clearly this is not the case or there wouldn't be messages here, on ask.vrchat and other sites wondering why it is broken. Consider that the devs at VRC do not "invent" everything. They leverage a lot of it as does every other development group on Earth. We use other company's libraries because they are specialists in the subject. Let's just agree that everything about VRC and videos is working great and leave it at that. 🙂

quick stone
#

to avoid confusion, it's probably best to use a different world for testing, something without any search system

tribal horizon
# quick stone what you experienced in YTS happened because we are resolving videos server-side...

Thanks for your reply. My system is generally working like yours I imagine but possibly not the point where the link resolution takes place. I see no reason to resolve each video found (if that is what you are doing). It is enough that the link with the YT id is known. If a player wants to play it VRC will resolve it. If it happens to work in a world without search I'd still be stuck as would anyone using PCVR in my world.

quick stone
#

that's indeed what we are doing. we have found there are multiple "tiers" of blocking, and some people are blocked from resolving videos on their end, but are able to play ones that we've resolved for them

#

it functions just like the old days, before quest vrc had a yt-dlp build

tribal horizon
#

I was able to play videos (of mine) that reside on YT in both Android and PCVR. Most other videos would not play. I (among other tests) lowered the max resolution on my search and the video a 720p one did play. That resolution is unworkable however.

warm root
# quick stone what you experienced in YTS happened because we are resolving videos server-side...

Have you ever had anyone complaining that this didn't work? The issue I had in the past when I tried this was that the direct media URLs yt-dlp returns from Google are valid for that person, but often have limitations, e.g. if everyone trying to use it is in the US (and the server doing the resolving is in the US) it may be fine, but if some are in Europe and some are in the US, the URL doens't always work for the people outside the US because it seems to have some undesclosed limit in scope.

quick stone
#

yes

#

seems to happen mostly on music uploads

#

but, per our stats, our success rate is higher this way than without. so we'll take the compromise

warm root
#

Huh, explains why I saw a higher error rate then as it was all music.

tribal horizon
# quick stone that's indeed what we are doing. we have found there are multiple "tiers" of blo...

Thanks again. I'll have to experiment with resolving earlier and saving them. I thought there was a date element on those URLs for when they expire so I didn't use them. Still as you say "working" with some limits is better than not working. I was having issues with URL redirects as well so I opted for a user cutting the URL from one component and pasting it into the player URL. That worked very well but requires some explanation.

tribal horizon
# warm root Have you ever had anyone complaining that this didn't work? The issue I had in t...

There is a field in the YT API request The regionCode parameter instructs the API to return search results for videos that can be viewed in the specified country. There is a call that can return where the video is blocked (if blocked) but it is an additional call and typically not worth the overhead since you would need to know where every person in the world was to effectively know it wouldn't play for some.

tribal horizon
gray mulch
tribal horizon
tribal horizon
#

Another couple of experiments to try to determine patterns re: YT videos. Like before I could play/watch my YT videos and I could watch some HD drone videos (Hong Kong for instance). Tried 2 music videos and I could not see them. They were playing as people on Android could see them.

tribal horizon
#

There have been different issues over time and different behaviors for the various platforms. It doesn't typically have anything to do with one's network setup or stuff like reinstalling, factory reset and other nonsense. I have one more adjustment to make to my API to test whether resolving the link "early" makes a difference.

tribal horizon
#

In depth testing should be done with a repeatable (few) videos that we could all reference. Hit or miss solutions are often why people keep trying any odd solution that someone posts. Say "it worked for me" and people will swap a USB cable or buy a new router. My concern with using a VPN and/or VRCVideoCacher is most (if not all) of the people I know on VRC don't have it and won't install it. I also (again personally) don't want a solution that works 75% or 80% of the time. I can't have 1/4 of the players unable to watch a simple video.

#

Other people most probably have other goals and as such other solutions may work for them.

#

That's helpful. I think we want 1 that works and 1 that doesn't work under some circumstances and the results from Android and PCVR. Someone ought to test Apple (I suppose) but I don't have an Apple headset and don't know anyone who does. I assume the Android phone client works like Android on the headset and I'll guess that the Windows client works like PCVR but again it would be best to test and report those things. It isn't important to know exactly where someone is located in the world but if this video shows up as blocked anywhere then clearly people won't see it for other reasons.

tired wave
tribal horizon
#

In other news I copied that link and pasted it into a video player in Resonite and just watched the video in PCVR.

gray mulch
#

I feel this is just spamming the channel at this point.
There's already a 1000+ long chain in community support about youtube and video players and you are basically just repeating everything everyone else has already tried already

#

If you want reliable video playback, use your own server and not youtube

tribal horizon
# gray mulch I feel this is just spamming the channel at this point. There's already a 1000+ ...

Thanks for sharing your opinion. I don't agree so that is 1 vote for and 1 against. If you could provide a link to the 1000+ chain it might help but if the messages there go back 3 years most of the solutions wouldn't likely apply. If the messages tend to blame it on "those capitalists at Google" then this thread is warranted. I will guess that people aren't going to set up a server to mirror YT and "it has worked for years" seems be being ignored.

shadow onyx
#

oh if this is a vote then I'm voting on Haxy's side too. This has kind of become a meaningless conversation.
Youtube playback in VRChat has been on-and-off for years now and VRChat has shown no interest in changing things. Just because it theoretically could work, as shown in your own application and in other platforms, doesn't mean it's going to happen in VRChat anytime soon.
If you want VRChat to make changes, make a Canny post for it.
otherwise, if you want reliable video playback, use your own server and not YouTube.

queen hearth
#

If this is becoming a vote, I vote with haxy too, although this chat is rarely used so there’s not much harm in filling it with whatever you want

tribal horizon
# queen hearth If this is becoming a vote, I vote with haxy too, although this chat is rarely u...

It isn't a vote. And if you think voting on message topics is good let's all review all the posts and vote on them too. Haxy doesn't make the rules here and install a 3rd party tool and use your own server are not reasonable solutions. If you are aware of an alternative to YT that people can readily access just post the link. We are discussing a topic that you (seemingly) are not interested in. I see messages all the time that I'm not interested in, I ignore them.

queen hearth
#

¯_(ツ)_/¯

unreal orchid
# tribal horizon It isn't a vote. And if you think voting on message topics is good let's all rev...

https://creators.vrchat.com/worlds/udon/video-players/www-whitelist/#allowlisted-services

Going of that list you can either pick video hosting with Akamai or Vimeo.

Vimeo being more set and forget, the free tier includes 1GB of video and you won't need to care about paying for bandwidth like Akamai.

Akamai is just the more prefessional solution listed, Vimeo would be one step behind that.

The following services are on the video player allowlist.

#

Never seen anyone use Vimeo on VRChat, but they don't have any real incentive to lock down who can watch what.

#

Would be nice if a few other services were on that list, but those are what we have to go with if we do not want to mandate having untrusted URLs off.

rugged drum
#

extremely nitpicky thing: adding a VRCPhysbone via script defaults to Version 1.0, rather than Version 1.1

#

I guess this is unavoidable, though. An old serialized VRCPhysbone in an upgraded project should not default to version 1.1

#

which would happen if the version field had a default of 1.1 specified

#

same goes for ignoreOtherPhysbones

warm root
unreal orchid
#

Assuming you haven't you should really try using wifi-densepose before relying on it, it is obviously a whole lot of AI and is missing any sort of proof that it actually works in the form of a gif or video.

Just looking at it I don't think it works and if there was any community sorrounding it then it has collapsed, various links just don't work, almost like they never existed.

warm root
#

I see absolutely no proof any of this works. It's an oddly overly pretty designed repo page with absolutely zero substance. When you have a project like this, you'd have screenshots of videos showing how it works.

#

The Acknowledgments is also weirdly vague. Research Foundation: Based on groundbreaking research in WiFi-based human sensingand Hardware Partners: Special thanks to router manufacturers for CSI support.

#

I wonder if that repo exists because someone's trying to sell something and they're using it as "proof".

rugged drum
#

amusingly, the AI-generated review notes that it doesn't actually do anything

#

i'm guessing the entire thing was vibe-coded and is just an extremely large skeleton

warm root
#

haha

unreal orchid
#

What a time to be alive, a vibe coded piece of software that is expertly reviewed by another AI that seems to really want to be as positive as possible.

What I really wonder is how much of it was hallucinated, the pypi link and issues link works (former must have required manual work), but github discussions, discord, the email (including domain that has never been registered before) do not.

#

If LLMs just regularly spew out fake discord links and email addresses for vibe coded repositories then this seems ripe for abuse.

rugged drum
#

welcome to the hallucinated modern world 🙁

warm root
#

Trying to...

#

Oh, blocked for... some reason, thanks Discord, very useful

#

What the hell in that is tripping the block?

#

Anyway, what I was going to say was - does anything in that look odd? Trying to play that video will crash VRChat (or rather, it'll hard lock up)

#

The 48fps is a little odd but AV1 and AAC in an MP4 container should be fine.

#

10bit little endian should be fine. I suspect it's the unknown/bt709/iec which is definitely unconventional which is tripping it up.

rugged drum
#

that is a very weird pixel format, yeah

unreal vapor
#

wth is happening

rugged drum
#

in short: the Builder panel now calls Rebind() on your animator, which causes it to write out all of its default values

topaz grove
#

is there any reason to i can't access other namespaces from other assemblies while building????
it works very well on test mode, only fails on building avatar

rugged drum
#

Check the asmdef you're referencing to see if it's an editor-only assembly

#

Although, that shouldn't matter, actually...

#

(i'm thinking of building a game here)

topaz grove
#

fixed: just put #if UNITY_EDITOR on every component fixed it, idk why it works

rugged drum
#

ah, components that are on the avatar will cause errors if they reference editor-only types

#

anything wrapped in #if UNITY_EDITOR will be excluded in non-editor contexts

cerulean ermine
#

for ndmf, create two ASMDEFs. one for any platform, one for just editor
in the any platform (runtime) one, create a class that extends MonoBehaviour, IEditorOnly
then make the NDMF plugin in the editor assembly and have it check for the runtime component

cerulean ermine
rugged drum
#

bit of a niche problem with physbones: if I rapidly move my avatar while a physbone is interacting with a physbone collider (a plane, in this case), the _Angle parameter drops and then rises back up over the course of a few frames

#

the physbone is not actually rotating, though

#

i'm observing this both in the editor and in-game

#

e.g. I pause the editor, move my entire avatar 10 meters forward, and unpause

#

the physbone doesn't visibly react whatsoever, but the angle parameter falls down to near zero

#

This issue only happens one-way; a physbone's angle won't go up in response to rapid movement

#

I'm using parent constraints to make the physbones follow my avatar's feet

#

(it's for a footstep system)

#

i'm guessing that's relevant

#

but i'll have to test with physbones that aren't parented

#

nah, still happens

#

It takes several frames to get back to the correct angle

plush plaza
#

does anyone know how to or have a template repo for multiple packages in one repossitory?

the usual template only works with one and if i want to share some common code between multiple things it would be very convenient to have it all in one git repo and VPM repo

seems like the CI calls BuildRepoListing with a --current-package-name argument.. that seems like it would work.. but the issue is that the releases are ONLY tagged by version so they would conflict.. and not sure how much would break if i change that..

before i dig into the depth of the CI scripts i wanted to ask if there is a easier solution

glacial yacht
#

I haven't touched this in a while but mine seems to be running BuldMultiPackageListing

plush plaza
#

looking into that code.. it seems to just be a alias..

        // Keeping this for now to ensure existing listings are not broken
        Target BuildMultiPackageListing => _ => _
            .Triggers(BuildRepoListing);
#

apparently you can add other github repos as sources.. i wish it could just do it all in one but.. fair... at least this is possible

paper rock
#

Idk where else to ask this, but did the api change recently? Like group instances endpoint for example

cerulean ermine
#

better off asking in the community api docs discord

cerulean ermine
cerulean ermine
#

ahh i didnt see that linked in there

#

ty tony ^.^

paper rock
dim delta
#

with UdonSharp for the Software Development Kit, is it possible to use .NET languages like Visual Basic, Visual C++ (the version of C++ that uses Common Language Runtime), Visual J# (comes with Visual Studio 2005, still need to adjust some of my VS 2026 Insiders to use it), or Visual F#?

glacial yacht
#

no - you must use UdonSharp itself

#

Which really means a somewhat limited version of C# that gets turned into Udon.

gray mulch
#

unless you want to make your own transpiler

glacial yacht
#

yeah that would be fun

grizzled jackal
#

One of those fun "haha do this for a couple years" side projects :)

glacial yacht
#

yep

waxen python
#

Why not simply name your studio agency?
For example, Roblox Studio. Then you could put all your SDKs and scripting assistants within it, managing the PC and VR aspects to display certain things in VR that PCs can't, and so on.

#

Of course, I also suggest, if you do it, linking to Discord, Patreon, and other platforms.

zenith bone
#

When downloading something via string/image loading, where is the file stored on the system?

I'm assuming it's cached somewhere since I've observed sometimes string loading will fail for a small number people without throwing any error (the request just fails to run the OnStringLoadSuccess completion callback). It's a fairly small number of people who run into it at a given time, and different each time. Rejoining the world, restarting VRChat, restarting computer, and clearing cache don't seem to fix it, but reuploading the file causes it to work for them again (and presumably possible fails for others). Likewise, using VRChat on another device also seems to work, and users can see the github gist in their browser with no issue.

The nature of the problem is hard to pin down (haven't been able to recreate it locally, and log files from those with the issue haven't shown any errors), but given the symptoms my current theory is that some type of issue such as corruption is occurring during the download, causing Udon itself to silently fail and not run OnStringLoadSuccess, but the file is still being cached or indexed somewhere.

Assuming that is the case, it would explain why updating the source file again seems to fix it (cache invalidation), while rejoining and restarting wouldn't. I've checked in both %LocalAppdata%Low\VRChat\VRChat and %Temp%\VRChat\VRChat however and couldn't find anything that seemed to line up. It's possible my assumption is wrong and it doesn't cache it to a file, but if that's the case then I'm back to the drawing board.

gray mulch
#

You could probably run vrc in offline testing and watch for any file handles it creates however

#

Process explorer should be able to confirm either way

zenith bone
# gray mulch I believe its just into memory

That's what I'd have initially expected, but I'd be at a loss for why it affects a very small and seemingly random selection of users, and persists throughout the day for them regardless of rejoins, restarts, cache wipes, etc. The file they're downloading is the same as everyone else, the world is the same, the only difference is it just not calling OnStringLoadSuccess or throwing an error.

Given the symptoms I could make sense of it if it was just being cached somewhere since that would explain why updating the database seems to fix it for those people (and then break it for new random people). But lacking that I'm not sure what to think anymore 😣

zenith bone
quick stone
#

if it is cached to disk anywhere, that is news to me...

fickle junco
#

I got a unity problem where anytime i make try to make a new vrc menu my unity gets stuck at Inspector.InitOrRebuild indefinitely but if i duplicate a menu it works fine. Its not storage, it's on my main drive, reloading the sdk doesn't work, restarting computer doesn't work.

upper plover
#

What's the best way to position-sync remote controlled rigid bodies on avatars? RC cars etc.

polar wagon
wintry ginkgo
#

How let a cloned repository behave properly

#

I'm trying to develop features of a package, but although cloned respository canbe detected and installed by unity, but some function just can't work properly

#

Like dependency missing

#

But if I directly change the downloaded script, nothing will be traced and recorded, and it's dumb to manually check which code is edited the copy it to the dev-repository again

glacial yacht
#

must be that repository specifically, I have several in my active world project with no issues.

wintry ginkgo
#

ModularAvatar

#

And errors when UnityEngine starts

#

I mean directly github repo, not vpm

#

Directly by git clone

glacial yacht
#

yes, that's how I read it.

wintry ginkgo
#

strange

#

whatever I installing it through, it end up failing

#

VCC say Could not get match for nadena.dev.modular-avatar 1.15.0-rc.2

#

but provide no detail

#

Unity can install it, but have compiler errors

#

There is only one way to test if the main branch of ma is not-ready-for-use

#

Install the MA by VCC, then replace the entire dir

#

Shocked

#

The entire script are just missing on main branch

glacial yacht
#

honestly this seems like something to take up with the repo owner

wintry ginkgo
#

Nor on the stable branch

wintry ginkgo
glacial yacht
#

if the files aren't there, then they aren't there. Often a repo isn't an exact clone of what's in the release package, so unless the owner specifically has said this works, I would not trust it to.

#

there could be a whole build process which generates files or restructures or whatever.

median tapir
#

is there a reason why Toon Standard doesn't have #pragma multi_compile_instancing

rugged drum
#

GPU instancing only works if you're rendering with the same mesh and material many times

#

it would be useful for worlds, but not on avatars

gray mulch
#

It is used on props iirc

prime orchid
#

VRC's camera fucks up alpha and I dont know why

#

it only breaks if you have world enabled

#

zoomed in photo, depth as alpha clealy working

#

but its white if I enable world

#

even though im litraly using whats the red channell there as alpha

#

I get it not working with captured photos since world means you shouldnt have transparency so to save space save as RGB instead of RGBA

But spout is still reciveing alpha, if me clipping it into a wall makeing a black line means anything

#

if it was all black I would get that, but the alpha just seems to be semi-filled with 1 alpha for some reason

#

this to me makes no sense

#

I can't use RGB since spout output is gamma corrected

fallow escarp
#

is there any tutorials on game dev on VRC

#

?

#

I am a experinced in Unity but I don't know if you can make games in VRCHAT

glacial yacht
#

you can, there are lots of game worlds

fallow escarp
#

aweseome

heady cobalt
coarse cave
#

haha....bot fail to remove post...

cursive nymph
#

hello, does someone know where can i find tutorials/guides on how to implement face tracking on a model in unity?

glacial yacht
#

the "avatar setup" section

latent mist
#

I have completely forgotten that I made a blender script to import the camera dolly json

#

Idk what else I can add to it though
Even though it's barely much code

severe quarry
#

Hi! I'm experiencing a frustrating issue where UdonSharpBehaviours randomly duplicate during compilation:
· Some scripts auto-duplicate 1-2 times during compile
· Get warning about "underlying UdonBehaviour" being visible
I have a more detailed post at https://discord.com/channels/189511567539306508/1452218312892350536
Does anyone had similar issues before? Any suggestions or any help appreciated!

latent mist
#

Huh

#

I'm going to risk it and look inside it

vague girder
#

lol

#

yea that is mega sus

latent mist
#

If they went a certain route making this and used dotnet I could do a funny

#

They did not

latent mist
#

I might go through the exe later

#

Do you want me to keep you updated on that?

vague girder
latent mist
#

Also mutual groups
Vrsl is a great tool

gray mulch
latent mist
#

Oh

tough ingot
#

👋

celest birch
#

👋

mild coral
#

You know sometimes you jump onto small ledges or edges of tables etc, you slide along the edge and get stuck playing the fall animation, is this a known bug and is there a name for it?

maiden atlas
#

Pretty sure it's just a quirk of the Player Controller that VRC uses. Kinda reminds me of the default Unity Character Controller in that aspect since I believe it does something similar on steep enough slopes. That and 'Surfing' in source games is also happy accident of a bug due to similar slope detection systems.

mild coral
#

Hmm is this documented anywhere?

  • If a ledge/collider is small enough (around <0.025m), the player will no longer be "grounded" but still able to become "supported" by the collider and float alongside it.
  • In this state, the Y velocity will continue to build up as if the player is free falling, at a rate of what seems to be Unity gravity acceleration (-9.8 m/s^2). But player can still control X and Z movement, again as if free falling.
  • This floating/gliding action can happen on a sloped collider that goes up, with some X/Z velocity, making the player travel upward, while building up the reported -Y velocity. And when the player exits this state, whether by moving slightly and losing stability or reaches the end of the collider, the huge -Y velocity will "snap" the player to any ground below, reaching the ground much faster than a normal free fall.
  • Any idea why this happens?
unique forge
#

Id assume the shape of the player collider not being square

mild coral
unique forge
#

if you have a perfectly heighted area where you can jump but not jump high enough where you can still trigger jumping
you can gain infinite vertical momentum

median spoke
#

No VR chat for 5 months It's been a while, about 5 months now, since I've been able to dive into VR chat. This weekend, I also won't be able to text much. I'm finding myself with a bit less free time than I anticipated. It seems my schedule is quite full, leaving little room for those digital connections. I'm looking forward to when I can reconnect in both spaces! #VRChat #DigitalDetox #BusyLife #LookingForward

queen hearth
#

The bio is as impossible to understand

#

“Rubber lay tex and rubber”

cerulean ermine
#

are vrcimagedownloaders cached? i have a gallery in my homeworld rigged to fetch atlases generated via my website, and the data file stringdownload can update just fine, but image downloads seem to just load the old image
I'm running .Dispose() on the image downloader after i've got all of the individual textures split, and recreating it each time things need to reload (via an interaction, not on a timer or anything) but it still caches

#

urls are filled via this build script:

cerulean ermine
#

ping on reply please

cerulean ermine
#

...nevermind
i wasnt sending any cache headers and cloudflare was caching it

errant tartan
#

theres many really good game worlds that don't do well on vrchat and die because they fail to do this

gilded flax
#

is this the right spot to be asking about osc tracking code not working

gray mulch
gilded flax
# gray mulch Seems to be the closest at least
import time

IP = "127.0.0.1"
PORT = 9000

client = SimpleUDPClient(IP, PORT)


IDENTITY_ROT = [0.0, 0.0, 0.0, 1.0]

HIP_POS = [0.0, 1.0, 0.0]       
LEFT_FOOT_POS = [-0.1, 0.02, 0.0]
RIGHT_FOOT_POS = [0.1, 0.02, 0.0]

try:
    while True:
        # ---- HIPS ----
        client.send_message("/tracking/trackers/1/position", HIP_POS)
        client.send_message("/tracking/trackers/1/rotation", IDENTITY_ROT)

        # ---- LEFT FOOT ----
        client.send_message("/tracking/trackers/2/position", LEFT_FOOT_POS)
        client.send_message("/tracking/trackers/2/rotation", IDENTITY_ROT)

        # ---- RIGHT FOOT----
        client.send_message("/tracking/trackers/3/position", RIGHT_FOOT_POS)
        client.send_message("/tracking/trackers/3/rotation", IDENTITY_ROT)

      
        time.sleep(0.02)

except KeyboardInterrupt:
    print("OSC client stopped.") ``` i send the commands as you can see but nothing is happening is there a calibrate i need to do or is it vr only?
half sinew
gilded flax
still cove
#

big ubdate for full face tracking VRchat with camera

upper plover
#

Is there a simple way to generate PNG's for vrchat's animated emoji? Right now I'm writing a bunch of png's from render textures and stitching then in gimp, but i'm sure there could be a way to write multiple render textures out to a single giant png atlas

glacial yacht
#

I use ImageMagick to turn multiple images into sprite sheets

velvet zodiac
#

Maybe you could make ⁨tex⁩ big enough for the whole atlas. And use the last two parameters in ReadPixels to copy the render texture to different parts of ⁨tex⁩.

Alternatively, camera.rect (called viewport rect in the inspector) can be used to draw a camera to different parts of one render texture.

quiet escarp
fluid turtle
#

Something I feel would help me in more advanced avatar (or world) creation is to understand what kind of data the user runs, what the vrchat servers runs, and what data is communicated between the two for things to run as they do.
Does anyone have a good recommendation for how I can learn how the game works? I can see this helping my understanding of computers generally too.

upper plover
quiet escarp
upper plover
#

i only code as a hobby

upper plover
#

Basically I want to output this

glacial yacht
#

yep, pretty easy

quiet escarp
upper plover
#

oh that's smart

#

I should be able to hack that together, thank you

quiet escarp
#

np, also I'm not sure how well I communicated the idea so lmk if it needs some more clarification xd

upper plover
#

Basically I'm trying to make a small prefab to make it easy to make dumb animated emoji within unity without a site upload

quiet escarp
#

I like the idea, would be a cool thing to put on gumroad / github etc

exotic fiber
#

has any work been done on something like selfie expression, but running outside of VRC, while staying on desktop mode and without vr equipment ? Would it mandate adding stuff to an avatar in unity ?

half sinew
#

what do you mean has anyone made it so your can text selfie expression inside of unity

#

@exotic fiber

exotic fiber
#

similarly to how vrcft and associated modules help with face tracking

unreal orchid
mild coral
#

Like vtube studio?

exotic fiber
#

but yeah ok 📝

unreal orchid
eager mountain
#

Does anyone know if there are joint rotation restrictions on vrc's "accurate hands" . If so what are they? I can't recall off the top of my head🤡 .

gray mulch
eager mountain
#

note: I'm interested in the context of a OpenVR driver use case, not avatar creation (just to avoid any confusion) 🙂

exotic fiber
exotic fiber
#

cuz the alternative would probably be to kinda emulate a vr headset and its trackers and stuff and that sounds like a shitton of work

wise cairn
#

heyy question here
if there is any linux user who also do unity stuff uuuh am i cooked if i see thos errors?

glacial yacht
ruby river
#

Okay, look, HEAR ME OUT.

Vertex Animated VRC NPC crowds visible from a window of lowpoly avatars....

mild coral
#

Prebaked movements?

ruby river
# mild coral Prebaked movements?

Discover the power of Vertex Animation Texture (VAT) for bringing realistic non-humanoid animations—like cloth, liquids, or paper—into game engines like Unity! In this tutorial, I’ll show you how to bake physics-based animations from Blender using the free Open VAT addon and integrate them into Unity using custom shaders.

🔗 Links:
Open...

▶ Play video
#

They're really good when used with a Mesh Renderer instead of a Skinned Mesh Renderer. One could animate the walk cycle for example using a vertex animation and have preset paths for ~100 NPCs in a plaza.

velvet zodiac
ruby river
#

Just placing them at a distance and letting their motion speak for itself to communicate a sparse but large crowd of people.

viscid smelt
#

Anyone have any idea why VRCSDK and/or ClientSim is assigning Network IDs to objects that are marked as EditorOnly? It's causing ClientSim to crash instantly on Play Mode because the objects are deleted on Play and therefore invalid causing it to freak out

mild coral
viscid smelt
#

I removed the Network ID by regenerating all IDs and by manually removing it from both VRCWorld and Network ID Manager and it would just reassign a new one each time

#

I opened another scene in the same project to test and it crashed the same way there even though I haven't touched that scene in ages and I know for a fact clientsim worked before there

#

even in my current scene it was working fine until one day it just Wasn't anymore

shadow onyx
#

is your SDK updated? I just made an object with a network ID, made it EditorOnly, and it doesn't crash ClientSim, doesn't even throw an error

viscid smelt
#

Tried latest version, also tried downgrading. Same behavior either way.

#

tried reimporting the entire SDK to see if anything was corrupt too and that changed nothing

shadow onyx
#

what error are you getting when it crashes? and what components are on your EditorOnly object?

viscid smelt
shadow onyx
#

is it a PlayerObject?

viscid smelt
#

I don't have a single player object in the scene, which is why I found the player object error strange

#

my best guess is that the network ID error causes that part of clientsim to crash early and never initialize player objects which causes it to crash more

shadow onyx
#

are you absolutely positive you don't have a playerobject? because I can replicate your error by setting a PlayerObject as EditorOnly

viscid smelt
#

I said crash instantly on play in my original post but to be specific it either locks up the menu or immediately exits play mode depending on whether I have reload scene enabled or disabled respectively in project settings

viscid smelt
#

it didn't explain why ALL EditorOnly u# scripts were being assigned netIDs and then erroring out

shadow onyx
#

yep it locks up the menu for me too

#

but, why have an U# on an object that's going to be EditorOnly anyway?

#

when you check later, search your hierarchy for exactly "t:vrcplayerobject" and see if anything shows up

viscid smelt
true fiber
#

Is there a way I could use this from a Rust language VR thing?

shadow onyx
true fiber
#

VRChat. X E.

shadow onyx
#

The game itself...?

true fiber
#

Is VRChat a game?

#

With a game in Rust?

true fiber
shadow onyx
#

what exactly are you asking? If VRChat is coded in Rust? Or if you can make a game within VRChat using Rust?

true fiber
shadow onyx
#

no.... VRChat itself is not something you can "use". The VRChat client is not open source.

#

you make content for use within VRChat, not the other way around

glacial yacht
#

making a game in rust would be an interesting challenge.

median tapir
#

disgruntled that I can't use Ignore Raycast in Interact Passthrough

#

that's... what it's for...

tawny lotus
#

made an VRChat Launcher

#

i do use Html, css, js as frontend and C# as backend :3

#

i always wanted to have something cleaner than VRCX

#

will probably open source it once fully done

acoustic walrus
# tawny lotus :D

Such a good project ngl I was planing to re-write entire VRChat website as chrome extension too

tawny lotus
acoustic walrus
#

I am going to do opensource too

tawny lotus
#

u can contribute/fork it whatever u want

acoustic walrus
#

Thank you!

tawny lotus
#

or steal from it if you feel like it

acoustic walrus
#

Nope thats not me

tawny lotus
#

its a very open license

#

its basically MIT

#

only rule: do not monetize

#

Non-Commercial Open Source

acoustic walrus
#

Yeah I see such good project ngl

#

Again

tawny lotus
#

thanks!

#

yea i try my best :D

#

work since like 5 weeks on it

acoustic walrus
#

I like to join you in game too we are friends there too xd

tawny lotus
#

even tho AI helped a bit with JS and CSS for frontend

#

the Backend in C# was the pain point here

glacial yacht
#

Claude, eh

tawny lotus
#

Backend self written obviously.

#

Unfortunately i hade to postman all the REST API and Websockets of VRC

#

then i found the community API docs..

#

could kms

#

i wasted days to reverse the API myself

acoustic walrus
tawny lotus
#

oh lol yea i see you in my friendslist

#

im rarely on VRC

#

i do waste more time in Udon related things and tools for vrc rather than playing the game

acoustic walrus
#

me too :D

tawny lotus
#

you programm? what languages?

#

sorry if i already did ask this im very bad in memorizing things

acoustic walrus
#

I am on programming world over 9 years now :P

glacial yacht
acoustic walrus
#

I do lots of stuff

tawny lotus
#

you create worlds then*

acoustic walrus
#

I know check out my github

tawny lotus
#

so TypeScript

acoustic walrus
#

yeah mainly

tawny lotus
#

Java vrcCrying

#

Java was my first language. learned Java in 2016 just for minecraft

acoustic walrus
#

Langs I know are not much actually TS JS C# Kotlin Java Lua Python

tawny lotus
#

i only learned two langs java and c# a little bit of c++ too.

#

oh ye i know kotlin too XD

acoustic walrus
#

Also ofc HTML and CSS

tawny lotus
#

Kotlin is goated for cross modloader mods for MC. Kotlin was the goat for Fabric and Forge cross comp mods

acoustic walrus
#

Yeah!!

tawny lotus
#

i never learned CSS and JS just basic HTML

#

which is the reason i just gave Claude the boostrap library as input to help with the UI

acoustic walrus
#

Yeah UI screams about that

#

i am cloude

#

xd

tawny lotus
acoustic walrus
#

I mean UI looks good but its base cloude style

tawny lotus
#

i dont know how Claudes base style looks i did use Boostrap my whole life and boostrap looks like that :D

acoustic walrus
#

even worse but still looks good

tawny lotus
#

Maybe claude wa strained on boostrap not sure at all

#

i dont vibecode much to be fair. claude is too expensive and gpt too

#

cant pay 20 dollaridos per month to get pure hallucinations

acoustic walrus
#

I wish you was using some kind of frontend library instead of plain html like Svelte or even React

#

Because not much maintainable that way

tawny lotus
tawny lotus
#

give me one thing why it shouldnt be maintainable

acoustic walrus
#

If you the only maintainer it is maintainable

#

But as comminity project lots of things going to brake on frontend atleast

#

Because things are not context isolated

tawny lotus
#

also refactor soon to Electron

glacial yacht
tawny lotus
#

SendToJS,receiveFromCS :=)

#

i dont see a problem? correct me if im wrong

#

the services apis are written well and are documented for contributions

#

a friend told me to do it in Avalonia

acoustic walrus
#

lots of security problems too if code not written correctly on frontend becasue its only raw js people might easily XSS

#

but thats not the issue if you are the only contributor ofc

tawny lotus
#

but VRCN is sanitized throug an esc()

acoustic walrus
tawny lotus
#

i made sure to check innerHTML and esc()

#

because of that

#

and im aware that i have to manually review contributions

acoustic walrus
#

its a big issue if you playing big

tawny lotus
acoustic walrus
#

why you think like that

tawny lotus
#

and VRCN is more like a "hobby" project

#

i dont think there will be more features in VRCN except some SteamVR related things like the Space Drag it has

acoustic walrus
#

okay then if you think like that

tawny lotus
#

i will most likely only work on bug fixes, improvements, secruity

#

also i wont plan to promote it really. its a pure hobby project for myself

#

good thing is i have 2 friends on my side (one of them is a mutual we have :D) so code review from 3 people for secruity patches and contribution verification should be "secure"

acoustic walrus
#

for sure !!

half sinew
#

Oooo new projects. love to see open-source stuff!!!! Looks amazing so far.

acoustic walrus
queen hearth
#

There are so many of these already lol

gray mulch
acoustic walrus
acoustic walrus
#

i was just getting currentAvatarImageUrl instead of first checking userIcon

acoustic walrus
#

@gray mulch @queen hearth
so i just added guild flags to vrcdc link

basically admins can now create custom data fields for their server - stuff like pronouns, custom names, enter sounds, whatever you want really

two types:

select - predefined options users pick from (like a dropdown)
custom - users type whatever they want, but you can add regex validation to keep it sane (we use RE2 so no one can ReDoS us lol)
users set their own values from their dashboard and it all shows up in the api under $.flags.* when you do guild lookups

so if you're building something in-world and want users to customize stuff about themselves - this is it

check it out in the guild settings, flags tab

rugged drum
#

The SDK includes VRC.Core.ExtensionMethods, which provides a method named GetHierarchyPath. However, if I try to use it, I instead get ExtensionMethods.GetHierarchyPath (which is in the global namespace).

I can't figure out how to correctly use the new extension method!

#

I don't understand where the compiler is even getting the obsolete ExtensionMethods class from

#

I do not have a using static statement for it

#

oh right, you don't actually need a using static directive, duh

#

So I don't see how I'm supposed to use the non-obsolete methods, other than by explicitly invoking them

ivory ocean
#

what's a good way to sample skybox color at a given pixel/point in a shader
(context: I want to make a material that fades to the skybox)

dry pendant
ivory ocean
#

the former
specifically the real skybox

dry pendant
acoustic walrus
#

Like I asked on stream, I’m planning to start rebuilding the VRChat website frontend from scratch using Svelte 5 and more modern UI systems like Bits UI. This should also improve the accessibility side quite a bit.

When would be a good time for me to start working on it from your side? If you have any expectations or questions about the project, I’d be happy to hear them. Are there any guidelines I should follow?

Regarding the API, I know most of it is already documented by the community on vrchat.community, but I still wanted to ask you directly just in case.

@sterile cipher (please mention me back)

gray mulch
leaden axle
#

is the creators.vrchat.com website still up to date on Udon examples and stuff?
I have some code snippets here in Udon sharp that dont match what is written on the page or dont work as intended

shadow onyx
#

It depends on the page, some are more up to date than others

leaden axle
#

ah thats fair

autumn kiln
#

I was getting some CPU spikes in Editor mode from the file
World10\Packages\com.vrchat.worlds\Integrations\UdonSharp\Editor\UdonSharpRuntimeLogWatcher.cs
in function EditorApplication.update: UdonsharpEditor.RuntimeLogWatcher.OnEditorUpdate

This seems to be an editor only thing, which doesn't affect me in my Build & Test, but caused periodic stuttering in my editor

I adjusted it so that the line "EditorApplication.update += OnEditorUpdate;" was commented out, and that seemed to "fix everything"

I have no idea on what this file is supposed to do, so I'm wondering if anyone has any insight on what I just broke.

#

ChatGPT told me that that function was for "exceptions, stack traces, and log files"
However, I don't get why it was running all the time in edit mode, since I don't have any editor scripts, only things that run in play mode

#

and also, I would probably want any of my editor script to be pure C#, not U#, so it makes even less sense why U# would even be logged / watched in edit mode

shadow onyx
#

Judging by the script name, I think that's used for watching your client logs for Udon errors, which it'll then paste in your Unity console. It's the thing that often pastes "there was an Udon error, but you need Udon logging enabled to see the full error"
So, it's an Editor script that's always looking for in-game Udon errors, and there's no harm in disabling it if needed

#

Pretty sure you can disable it in the UdonSharp settings as well

maiden atlas
# autumn kiln I was getting some CPU spikes in Editor mode from the file World10\Packages\com...

I was getting the same thing and came here to ask basically the same question but I think I found my solution. I think if your VRC Logs are quite large it might be hitching due to trying to load them and parse the errors. My current log for my active session is like 80MB in total as I made a mistake and was throwing a lot of debug text into the log every frame which I think keeps triggering the script.

wise socket
#

how do i use a dedicated build server to upload avis?

dry pendant
dry pendant
#

how do i get the UdonBehaviour for a particular script i have (UdonBehaviour)this.GetComponents(typeof(UdonBehaviour))[1] but how can i find the index of the component

bitter juniper
dry pendant
bitter juniper
dry pendant
bitter juniper
dry pendant
# bitter juniper You solution seems to be not right for your problem. You should also explain wha...

call backs basically.
you can turn a script into a UdonBehaviour then pass it in to a arg of another script then use SendCustomEvent to intaract with the script without it being dependent on the script.
iv been using it for a "singleton popup" if a script wants user input it can just .Find the object, call PopUp with itself as a arg, then when the popup is interacted with the popup script uses SendCustomEvent to call a "yes" event or a "no" event back to the script that requested user input

bitter juniper
dry pendant
bitter juniper
dry pendant
# bitter juniper What does it complain about?

ah UdonSharpBehaviour works now, still same issue tho, as (UdonSharpBehaviour )script3.GetComponent(typeof(UdonSharpBehaviour )) still returns the UdonSharpBehaviour for script1. looks like GetComponent always works on the GameObject level instead of the script level

#

wait... can i just cast it

bitter juniper
dry pendant
bitter juniper