#udon-general
59 messages · Page 52 of 1
how do you think i should go about doing that...
make a seperate object that just has the purpose of being a behaviour instance?
or combine both the scripts into the same one
Make a new UdonBehaviour variable, drag it out into the graph and plug it into the instance field on SendCustomNetworkEvent.
Then on the object you have this behaviour on, go to the inspector and drag the object that has the resetdrinks into the the empty variable for the udonbehaviour
do we have any kind of reroute nodes yet?
sorry, how do i make a UdonBehaviour variable?
OHWAIT
think i got it
Is there an Udon prefab for making gokart-like vehicles? Or would I need to roll my own?
Define reroute? There is Branch (if else)
@rigid plume Look at Jetdog8808's post in #udon-showoff (17/3/2021)
like this?
ow
if you want more, you need to make a UdonBehaviour[] and loop over that
im trying to turn off a bunch off objects at the same time
That's my example on toggle object (not networked)
But since you're doing this networked, I recommend you send a networked event to the same object, then loop over it locally
So you only send one event and not N events
wow that looks quite complicated
It's somewhat limited, but you should be able to merge paths down the line, but not like this picture sadly
They do have a node for pathing though
Forgot the name of it, but it does allow you do something similar.
-> | -> path
| -> path
| -> path
the block node?
I'm not sure whether it adds any load. the reroute nodes
- look nice and small
- work on any type (e.g. an int can be rerouted, not just the execution noodle)
- make it compile the exact same as if they didn't exist.
Think I'll just request it on Canny later
Not quite what I was looking for. I guess I'll implement my own vehicle then.
Finally I've been able to sift the culprit of all my problems.
The code, as is, will just print the text, float, or int in the last log, everything is fine.
However, if the marked bool in the first branch is false, Test 2 and Test 3 will return NULL.
Is this known yet? Is it "supposed to be that way"? I can't find anything about that on Canny.
Any attempt of accessing any variable will result in null too, not just tostring. E.g. dividing an existing float will also return null, and so will e.g. returning the name of a gameobject
n00b question: Is there a way to give an object physics without making it a pickup?
OK, here we go again :) I am trying to create a curtain which will open when a button is toggled on, and close the curtain when the button is toggled off. I've created a sequence in Unity's Animator, and have assigned an Animator Boolean 'IsOpen' to start the open animation and hold the curtains open while this boolean is set to true, and to close it and hold it closed when it's set to false. What node would I use to set this animator boolean in udon, so it can be set to a button in world? (hope that makes sense)
Part 2 of my video series for basic VRCHAT world building with the VRCSDK3 Udon kit. This series will be designed for beginners. I will try to cover every step from start to finish of each vrchat world creation tutorial. The goal of the videos is to allow users to follow and recreate the functions being demonstrated in a step by step manner when...
this should help
what's going wrong in this piece of code? it's not doing anything
you are missing a reference in instance I think
you have to reference the udon behavior you're referring to
am I missing something? This says integer, not layermask?
This is how I was doing it for a light in world, this toggles multiple objects at once so if you are only doing one you can leave out the extra objects... not sure if this helps at all
i got it, i hooked up the setobjectactive nodes the wrong way. thanks alot! (also your pfp is super cute)
How do I get the arconsine of a float in Udon?
mathf.acos I think
....and then the channel loaded
I have a question.
Who made the wickerbeast called BadBeast?
Whos is the creator?
Who
@ember spade ask in avatars, we dk
Ok.
is it possible to control and move a gameobject from a button station? as if it was a remote robot
Yes
What would be a good way to sync the rotation of an object and have it interpolate?
use an animation to rotate it and instead of syncing the position of the object sync the start of the animation maybe
I want to manually sync the rotation of a player though
get the rotation of the object in the last frame and add it to the rotation of the player and teleport the player to that rotation?
that would only work if the player were in the center of the object tho
Wait hold on I feel like I need to explain this more properly
I'd like to have objects at the 'feet' of every player capsule, and these objects should rotate when the player capsules do.
But due to what this is for, I can't actually just get the rotation of the players. Hence why I'd like to just sync the rotation instead
@mighty fjord why can’t you get a player’s rotation? Could you not just pool a set of objects and for each player when they join one is taken from the pool and their own client handles making the object follow them?
Stations are the reason I can't get the player rotations
Ah, not yet worked with those 👀
And besides, using the default object syncing means it'd try to sync more vectors than necessary
Heyhey!
I'm trying to make a object stick to a surface when a person throws it towards the surface, but I can't figure it out.
The surface has a rigidbody set to .isKinematic = true, and a collider
The object has a rigidbody, box collider and a vrc pickup script.
Additionally OnCollisionEnter when it colliders with the surface, the object gets set to: .isKinematic = true, .useGravity = false, pickupScript.enable = false
Though it just bounces off and falls down.
I've confirmed that the OnCollisionEnter method gets called properly, and .isKinematic = true gets set via the log output.
Does anyone have a clue why that happens?
When I manually drag the object via the scene view onto the surface while the game runs inside the unity player then it freezes properly.
kinematic and gravity are controlled by the udonbehaviour's sync position setting
if you switch to the udon network beta, the objectsync component manages that instead and you can call setkinematic on it
Oh interesting, thank you
Now I just gotta ask stupidly, how can I switch to it?
Is that the open beta in steam?
no, there are two parallel betas going on right now. The one I'm referring to has instructions pinned in #udon-networking
Thanks!
Setting up some nodes, When using the "Transform Set Rotation" what goes in the W Field?
I read up the Unity Quaternion page but dint understood much of it o.o
quaternions are not something you mess with by directly editing the individual values. It doesn't translate to degrees or anything that is easily understandable. Instead, you can work with a vector3 aka euler angles and convert it to quaternions
euler angles on the other hand are much easier to understand: x is pitch, y is yaw, z is roll, at least in the case of unity
ah ok, euler eplanation does look easier to understand and use i suppose. Ill try to play with it on a different angle
you have to call the function on the objectsync itself, not just set the rigidbody properties
Do anyone know how to make a slider for bloom and temperature or anyone have a prefab for that
Actually, what's better for networking, manually syncing position and rotation or using the pre-defined sync that comes with the current Udon component?
For Udon# and Udon VM itself... I'm trying to make a debugging console and utilities that many components can share. By this case I'm wanting to use events, delegates and static methods, which doesn't seem to be supported. What is another approach?
you'll have to have your scripts have a reference to the debug console script
and they can just send an event to that script with all the necessary parameters
Is there a way to make a global toggle in udon that works just like a global toggle in sdk2?
All i know is that using a custom network event you can have an object toggle at the same time for all players,
but if there were to be people who joined after that event took place, it will just be set in the default state for them...
check out the UdonExampleScene that comes with the SDK - the checkbox on the UI Examples prefab does this
Oo thanks!
Okay, I redid my Canny post. Spend several hours now searching for additional info on the bug and looking for possible causes, creating probably the most detailed Canny post in existence xd
https://feedback.vrchat.com/vrchat-udon-closed-alpha-bugs/p/branches-decompose-variables-to-null-in-certain-scenarios
any clue why this isn't working? i think the logic is right but i'm not used to visual scripting
it's supposed to toggle the seating on interact
let me guess, usestation and set seated aren't working
yeah exactly
....i literally just posted a link to canny explaining this bug above your post xd.
To work around this, just make a new driver seat and get localplayer node for each the true and false branch
all good, we're here to help ^^
any idea how??
also how could i make a transition betwen animations when picking up an object?
how exactly do you mean? Do you want it to move between fixed poses/rotations/locations? Or do you want full independent control, like an RC car has?
@tulip flax
it seems interact isn't working while seated :\
If I understand your concept properly, you'd have to have a couple things.
First a way to detect if a button is HELD down/continually pressed.
Second you would need to have an update loop run that updates the position of the target gameObject's transform by a certain amount per frame (making use of the Time.deltaTime data likely). For this, it is most commonly done like pic related, where drone is the transform on the target game object, and multiplier is a custom value that you can set to make the target move faster or slower in a given period of time.
Forgot to do the reply thing. See above
You would also use deltaTime technique to apply any sort of rotation that you may want to have on the target.
Oh, forgot to specify in the pic, in between the update and Set position, you would want to probably have a branch node specifying whether or not to run the movement code depending on if the button is being pressed/held or not.
oh, so i have a navagent wich follows a pickup,but what i want is for entity attached to the navagent to transition betwen idle and walking when someone picks up object
thanks! ill try to give it a try, but yeah i basically wanted to have an rc car that can move while the player is just sitting in a station, not an avi but a world thing
for the animation thing,i want it to go from idle to walking when the navagent moves, this is what i got so far but it dosnt seem like it works
the navagent moves but it just stays in the idle animation
I'm shite with animations currently, so I won't be able to help you with that particular bit, sorry.
no worries, just asking
rc car is my main focus tbh,i have a station that has a camera wich is attached to the lil car,once i can make the control for it work within the world ill be like piloting a race drone or something
also is there a way i can translate wasd into the movement of the car? since desktop players cant really grab a controller
You'd probably want to use an Input node such as Input -> GetKey
The key input parameter is a list of options, pick your desired key from there.
My vrchat chat isnt loading and i don't use steam because i have the app in my oculus quest 2.
This channel is for questions regarding the Udon programming language. Maybe ask your question with more details in #vrchat-general-2 , or, if nobody can help, try #vrchat-support .
idk how ppl get it wrong xD its on the channel name
Oh ok thank you.
ANd sorry for using it wrong.
Maybe take a look at Jetdog8808's post in #udon-showoff (17/3/2021), they made a driveable car prefab that also accepts wasd.
Might be able to learn one or two things from that, since you could say it's probably similar to the script of an RC car, just with an attached seat.
^ a solid idea
This channel is for questions regarding the Udon programming language.
If you want to commission an avatar, join the VRC traders discord linked in #community-servers .
Sorry.
the quick and dirty way is to get them as booleans and translate that into the same thing you use the joystick for with conditional OR
that has a way of falling apart in more complex implementations tho lol
there is a controller inputs prefab (search here for controller inputs) and it does all the handling for you, and you can make changes to that
Can you force player to pick up an item with VRC_Pickup?
not really
can I play oculus quest 2 without pc or laptop?
yes, its fully standalone
When people join my world it seems like it takes quite awhile (at least locally) for hand gestures to start working, is there any known cause of this I could fix?
@somber hawk thats usually common if they are on desktop, is it becoming a vr thing or just desktop?
Happens to me in VR on PC, and also happens to Quest friends 🤷
Not sure if it affects desktop or not
thats weird, id start a canny on it finally if it is effecting VR now cus its been a weird issue on desktop for a good few months now
you sure that their gestures arent disabled?
Yeah I'm fairly certain they aren't unless there could be some way they could be magically auto disabled when entering a world or something. I notice this almost every time I enter it and my gestures aren't usually disabled
My world also seems to take quite awhile to load up even though I don't think it's terribly complex, not sure if this could be related to it
could be a lot of reasons, if it is just your world, then it might be the world. but ik that for desktop, getsures dont work after a minute or 2
Someone a idea? I saw a Mirror that only reflects the avatar but you can basicly see trough it so everything that is behind it.
@heady tusk yes, that would be a camera mirror
the B club uses a ton of thos mirrors
Thanks a lot guys 😄
O.o theres a shader now?
guys one of my object toggles stopped working and it's drivin me mad
it uses the exact same script as other toggles and they work just fine
could it be that the collider i have the script on is inside of another trigger collider?
its super weird because it does work in CyanEmu but once i upload it the collider doesn't show up
could you post the code that isn't working?
?whatisudon
VRChat Udon is a programming language built by the VRChat Development Team for use in VRChat worlds! It enables complex behaviors and logic in VRChat worlds. Read more about Udon in our documentation: https://docs.vrchat.com/docs/what-is-udon
What’s this Udon thing anyways? VRChat Udon is a programming language built completely in-house by the VRChat Development Team. It is designed to be secure, performant, and easy to use via the VRChat Udon Node Graph, a built-in visual programming interface that uses nodes and wires (we call them “no...
Why cant I use expressions? I use mythumbstick to go into the expressions options but it wont work and I can't use emojis
I'm on quest btw
Wow ArchiTechAnon, you predicted it xd
Can someone lead me in the right direction to the "latest" pool table prefabs available? (not for beta)
@elder lake https://github.com/Terri00/vrc8ball <-- for udon. works best
Thanks gamer
np homie =3
anybody know if its possible to have an udon world set a users avatar? like if they die in the gamemode im creating, it would switch them to a ghost avatar?
what you could do (this is what ive seen) is have an avatar button as a respawn button so when you respawn, it also swaps your avatar because its an avatar changer
Oh nice, that would work perfectly! thanks for the idea~
so uhhh, decided to test my udon map in vr for once. can't enter the world tho, I'm missing the selection ray from my controller...? any ideas...? xd
non-vr works no problem
first, make sure the UdonExampleScene works in VR, it serves as a good test base
I... might have deleted that. woops.
oh wait nevermind, just didn't see it
nope, no selection ray to be found
found it, it's the blue dot down there...
any news on ComputeShader support in Udon?
If the UdonExampleScene is not working in your project, then something has gone very wrong. To further diagnose the issue, you can make a new project, import just the SDK3 package, and try to Build & Test the UdonExampleScene there. If that works, then the issue is something you've done in your project. If it doesn't work, then it's likely a VRChat installation / setup issue.
maybe wrong unity version? You should be on 2018.4.20f1
version is correct. I'm setting up the new project. If that doesn't work I'll quickly start VRChat regularly and check that it isn't my exe
yeah, if you can't even get into the world in that way then it's probably not even related to unity at all
I'll let steam check my files while assets import into unity
welp, maybe this is the reason
if vrchat starts normally just fine, then it's possible that the SDK is simply pointing to the wrong installation of vrchat. You can change that in the sdk settings tab
Random question that I probably will never use the answer to anyways, is it possible to use some kind of shader to make it appear as if people are on a different gravity than you? Bit of a random question, yeah, but I was thinking of how cool it'd be to make something like the Infinity Castle from Demon Slayer and I'm not sure if that'd be possible.
Demon Slayer-Muzan Kibutsuji Wrath | Slaughtering Kisukie's | [English Dub]
technically possible but extremely complicated and jank
you can see an example here but don't expect him to distribute a prefab https://vrchat.com/home/world/wrld_bff9dcbd-d43a-4815-8dea-ef0d9455feba
i can't even start vrchat by normal means. seems some crashed task is hogging access to the headset, I'll restart my pc real quick
ok, everything works after the restart
i suspect vorpx, had a halted task even though i never started it
How do I make it so you can walk though a wall?
turn collider off in the inspector
door is probs not big enough
to remove the collider?
it has none, but if there is a border above it with a collider, that might be causing the issue
Does anyone know how to copy rotation and position of a VR camera? I have a script that moves a camera based on player's head position but for VR it also gets translated by another number which I don't know how to control
add an udonbehaviour and enable sync position. You can safely leave the udon source empty
can i send variables over the network?
Nope, you would have to use synced variables, or include the parameter as part of the event name
If your animation states are limited to a fixed set of values the second option would probably be the better path to take
How do you remove the master lock on the Udon Youtube player?
Synchronize Position only applies to syncing the transform of the object, custom synced variables would use the [UdonSynced] attribute, e.g. [UdonSynced] int myVariable;
There's some examples of using synced variables at https://github.com/MerlinVR/UdonSharp/tree/master/Assets/UdonSharp/Examples/Utilities/Synced
why people can grab my avatar, but not me?
there's special world where we can do that- but i can't while my friend can-
i changed to multiple avatar and it still didn't worked -
@misty berry i don't know- ..how could i add it?-
im using rift s
maybe i should reinstall vrchat?
i did all the update -
@misty berry i had this problem for weeks now, most people can grab player in udon world who permit it, but i did see some people like me who couldn't
i tried it right now, my friend could grab me and other people around them
everyone could grab be, but i couldn't grab anyone
it has been like this for weeks now
i dont think we are talking about the same thing 😛
ohh..
im going to rewrite my question to make it more clear ^^ :
Hi - i had a problem in vrchat since a month ago-
does someone here know Yemeet Quest 1.2 or VF Livestream? they're world where you can grab players around you, and they can grab you too
strangely, i can't grab people, but they can grab me, it seem like i wasn't alone in this situation from what i've seen
i don't know why- changing to my friend avatar which worked for them, didn't worked for me, reinstalling vrchat didn't worked, disabling space calibrator and OVR advanced settings didn't changed anything, clearing cache didn't helped either, my vrchat is currently on the last version "build 1063", i tried in desktop mod, full body too. i have Rift S-
why does it don't work? how can i grab people too in those world? why does it work for other player?
( just putting a hand on them and grabbing like you would with a normal object in game )
i managed to find a way to make it work,- i cleared everythings but not local avatar in advanced settings. restarting, Holding Triger on someone and waiting 3 seconds~
does VRCInstantiate a world object make it that scale? hmm
so i know nothing about udon and whatnot but i would like to add reset buttons for the chess / checkers boards. how would i go about doing this? https://gyazo.com/aa8108e097553d87c477ea50aff42482
As I put myself in third person on vrchat without virtual reality or oculus
I tried to update the SDK3 for worlds, and after solving some of the errors, I still get some errors I can't resolve: https://i.gyazo.com/aefa89d33ead7aabde32536a66e65f83.png
Are you missing cinemachine?
It should be in the package manager
it's installed, I've even tried to update it to the newest version, but that didn't work, and after reinstalling of the SDK, it downgraded cinemachine
well, at the moment I rolled back to backup from before. But eventually I want to upgrade the SDK :/
I may try it at a later time again
Did you try restarting unity? Usually enough to get rid of those errors
And otherwise making sure all your other extensions like udonsharp were up to date as well
yes, I tried that, a dozen times, in between updating, after updating
I removed udon sharp
hey, I'm trying to set up the pool table. This instruction is unclear. What does it want me to do?
okay. found what the creator was referencing, but it doesn't look the same...
Looks like you're missing something that this prefab requires. Are there any instructions around things you need to install first?
Your console may have some errors that would provide some context - perhaps you're missing UdonSharp?
Is there any way to speed up or have insight into how synced variables are when someone joins a world? It seems like sometime's it takes many seconds to sync, and because of this some of the "locking" I have on certain controls can be bypassed for a short period of time after you join since it doesn't have the latest state yet
have I got a networking update for you...
I have yet to look at udon networking. Sounds complicated. But from what I hear the people working on it are doing a great job at improving it^^
I have finally found my avatar I wanted, but it’s PC only. Obviously I can still wear it on quest but I’m a robot. Are they ever going to make all avatars quest compatible one day??
Avatars are user generated content.
wrong channel? #udon-general
but you might be interested that they are adding a quest fallback function in the next patch
Yea. So instead of robots, it's gonna be brushies. 🤣
Quest go brrrrblack screen
Dear udon developers, is it foreseen that i can use not only a string, but also a variable as an EXTERN parameter in the assembler? And not only the address or variable identifier in PUSH, but a string as in EXTERN? For example like this:
.data_start
debugLogConst: %SystemString, null
.data_end
.code_start
.export _start
_start:
PUSH, "Hello world"
EXTERN, debugLogConst
.code_end
Is it possible to check if a bone on a player exists?
I know you can parent to bones, but I would like to be able to do a fallback list. Does eyebones exit? Yes: Parent censorbar to eyes. No: parent it to head. Head don't exist? blur the whole player.
yes, if it returns 0,0,0 then it doesn't exist on that avatar
Thank you.
Unless its actually at 0,0,0 but thats quite a degenerate case lol
I nudge the world up enough and have 0Y as the respawn plane.
Yeah even if you didnt I would argue that the heat death of the universe is more likely to happen than that
Waiting for someone to fall to -100 Y is cruel and unusual punishment.
I also need to go to the canny and ask if an example could be put in the SDK for getKeydown.
Sure. This program logs "Hello, World" on start:
.data_start
function_0: %SystemString, "UnityEngineDebug.__Log__SystemObject__SystemVoid"
.data_end
.code_start
.export _start
_start:
PUSH, "Hello, World"
EXTERN, function_0
JUMP, 0xFFFFFFFC
.code_end
Thats actually quite neat. You can write self-modifying code with that
Quick question, is it possible to have a video player that can only play, navigate and replay one youtube video? Would like to do that as a form of crediting external contributers.
sure, just set that video to the default loaded url, and remove the functions / ui to play, navigate etc.
Technically, all you need is the Update > GetKeyDown > Branch
ooh fancy, thanks momo. Will see how well this works^^
we do include a simple 'OnMouseDown' example, but generally don't encourage keyboard / mouse input as they're platform-specific
I was making a Jouster and needed keyboard AND VR controls. That was just what I ended up with.
Speaking of the patch lol
if you use Input Events, you can have the same event for both Desktop and VR: https://docs.vrchat.com/docs/input-events
IIRC there's a "loop" option on the player too so you would just need to check that to get it to keep playing
Oof, achievement "Generics" unlocked
i have a small problem with pickups people on quest / pc are not able to see the other hold that item. how would i fix this?
You need to make sure that the world has the exact same hierarchy on both versions. If you need different things in each version, you can disable and enable objects between them but you can't delete.
they do have the same hierarchy..
do i need to add something like on sdk 2.0 e.g object sync? if so how would i go about doing this?
Oh if it's just not syncing at all, then it's unrelated to quest/pc cross platform differences.
You need to add an udonbehaviour and check sync position
Thank you phase you life saver!
Question, does VRC Team foresee possible HTTPClient or other means of HTTP communication to be exposed by Udon? I.e. GET and POST to a webservice through either means of JSON/XML? Would be awesome to have a data source to store player scores, etc.
We do not currently have any http communication on the roadmap outside of Dynamic Images (which are scheduled to be added this year)
Is there a way to differentiate VRCStations with Udon? I want to do the InputUseEvent, but don't want it to be firing unless the player is in THAT station.
Meh, I'll have to do a script on the station to set a local bool to true/false on enter/exit station. Then have a branch check after the inputUseEvent
POST would be incredibly dangerous, no way. Just POST to 192.168.0.1/cgi-bin/restart.cgi and you would knock half the people offline.
But once we are able to get dynamic images we would have a reliable way of data transport into VRC. You could encode your JSON response as an image and then parse that in Udon.
maybe report the world if it's knocking you offline...?
I fail to see the issue
it's one of those things where people will just hack around with existing systems if VRC doesn't implement it, we're already able to get dynamic images and such fine. There isn't really anything stopping people from making companion clients that fill the holes VRC leaves in its communication, it's more just a question of having it be attractive enough to the end user
POST would allow for so much more. GET generally only fetches data, while POST would allow you to submit and modify data, and opens up a whole new world of possibilities. And downloading a companion client is something completely different compared to VRChat making it available in the client.
yes...? GET also allows sending data...?
Yes, but most forms and systems are built around requiring POST. You can't do nearly as much damage with GET requests.
I don't know how these things that have existed in web browsers for 20+ years are "incredibly dangerous"
and this is all under the presumption the user would need to whitelist each domain
Browsers are restricted by CORS. You can't make a POST request to your local router from a random website.
CORS limits you to only send to the same domain. A HTTP client in VRChat doesn't have a domain context.
you're whitelisting each domain though? The domain context in this case is the domains that the user has whitelisted for the world. VRC could also trivially just filter out local network requests
VRC's context is already presumed to be much more restrictive than a normal website, in web browsers you don't say "I want to allow this Facebook request that this random blog is doing for tracking" you say "I want to block all facebook tracking requests with an addon or setting on Firefox"
meanwhile VRC's proposed -- anything, to do with external connections says "world is attempting to access website <website domain> do you want to allow this?"
All this discussion shows me why VRC doesn't want to support this, as nice as it would be to have 🙂 You open up a massive class of attacks that would be difficult to effectively mitigate, and imagine the PR & adoption issues if you could get full-blown hacked (e.g. ransomware) by joining some random world you just wanted to check out because it looks cool and they forgot to blacklist this one thing. Even in browsers with incredible security teams behind them you end up with RCEs like the Zoom one with running local servers and the browser being able to make requests to it.
Restricted functionality like only allowing some sort of simple k/v data storage that they provide via their own APIs or first-class support for third parties like Firebase DB would be more doable but still have a ton of things to figure out. Once you allow external requests with parameters, you get into privacy territory too because now somone can exfiltrate data about players to another location which potentially be sold to third parties.
They allow external requests with parameters, they're called video players. Which have URL's locked behind the allow untrusted URL's thing, which has been stated to be slated for replacement with a per-domain whitelist that the user decides. If you want to worry about RCE, basic GET or POST support is the absolute least of your worries. VRC has had close brushes in the past with exploits that were on the permanent hardware brick tier because they used big software projects outdated be 4+ years that had numerous critical security issues. They're building a content creation platform where you can send arbitrary asset bundles loaded from native code on a game engine that is not made for security. They expose a giant surface of the .NET and Unity libraries which call directly into native code which you are told to not depend on for security. There are so many larger issues than sending a string to some website that it's not funny. The things people are worried about VRC adding already are doable, they're just more painful to use for the people who aren't trying to exploit them. Their only saving grace is that the people skilled enough to take advantage of this stuff don't have incentive to target it
The video player requires hard coded URLs though right? And you can't set things like HTTP headers or add get params right? Allowing that starts to allow for sending raw in-game data to external servers which is assume is one of the things they want to avoid introducing.
For my RCE comments I could have been more clear, I don't mean native RCEs because like you said I asssume there's already plenty of attack surface there, but more that allowing arbitrary HTTP opens up another layer to attack which could lead to more RCE capabilities, but also other types of attacks (e.g. phishing, sending a message in some application).
I don't know much about Unity/.NET security so I can't speak to that, but if you're claim is "it's already vulnerable because of that so introducing another layer isn't a big deal", I don't think I agree since it could make it even easier (all this depending on how it's done of course), so at least there's still a barrier with how it is.
All I'm trying to say is that it seems complicated to get right, and I think it's likely they have higher priority items to focus on than figuring this out right now. But yeah I'd love to see some support for this type of thing in the future.
I'm saying the order of magnitude is night and day. Yeah you should avoid introducing vulnerabilities, but if this was a real concern, Udon would not exist, VRC would not exist.
And all you need to do for external requests is make a large list of URLs you send in order
numerous people have done this
and out of all the API's that exist, HTTP is one that should be the most battle-hardened
concern about VRC fucking up because they don't know what they're doing is not misplaced, but concern about the API itself should pale in comparison to what exists to the point that it's silly to complain about.
I'm mostly saying that being alarmist about this, but not everything else already there means your priorities are misplaced
haha maybe I'm just woefully underestimating how much interesting attack surface exists 😂 I should read up and learn more about it. It'd be fun to poke around
I'm sure everyone is all for reducing potential attack vectors, but when the appropriate measures have been put in place to prevent abuse there shouldn't be an issue allowing many of the features that people seem to get paranoid about being abused
Like the silly arbitrary limitation of VRCUrl's constructor not being usable at runtime, hopefully once they implement better whitelisting functionality they can remove that since it has never stopped the abuse they wanted to prevent but has hampered legitimate use cases
ive had this script identical in old projects; but its throwing an exception. Am I missing something?
testing with Cyan Emu, error is ``Inner Exception:
---> VRC.Udon.VM.UdonVMException: An exception occurred during EXTERN to 'VRCSDKBaseVRCPlayerApi.__TeleportTo__UnityEngineVector3_UnityEngineQuaternion__SystemVoid'.
Parameter Addresses: 0x000000A5, 0x000000A6, 0x000000A7
---> System.NullReferenceException: Object reference not set to an instance of an object
at VRC.Udon.Wrapper.Modules.ExternVRCSDKBaseVRCPlayerApi.__TeleportTo__UnityEngineVector3_UnityEngineQuaternion__SystemVoid (VRC.Udon.Common.Interfaces.IUdonHeap heap,`
all variables are populated, using gameobject vars as empties for transform points
The bottom teleportTo can't work. Well it should, but currently you can't access variables from a false branch when they are also referenced on the true branch. Use a seperate "getLocalPlayer" and "getRotation" for the lower teleportTo and it should work.
i had this setup at first; same exception
this is what you meant correct?
Yes. Are there any other branches before this?
maybe
lmao
its compares string to preset with a chain of "or" bools
other than that no\
Could you find out which variable arrives as "null" and at which point it turns into null?
Basically just spam the thing with debug logs. Also use tostring, as e.g. constants won't be null if nothing is done with them.
Also, if all of these above are just "or", you can get rid of a few redundant nodes
In general these or towers look a bit scary, a simple chain of ors would probably be easier and, if conditional or is implemented correctly, will be faster, too.
For the bug, I assume there is nothing between the or towers and the branch we see in the first pic? If so, this is indeed very strange. Does the bug occur both on true and false? If only on false, are you sure emptyHotel is set? If on true, can you try creating a whole new flow path for the custom event? In most cases this kind of stuff happens either at new branches or at two flow paths joining together.
i was able to rule out the entire tree; ill keep testing these variables to see what comes out as null
this is an on interact thing; slow is okay (i'm lazy)
@steel nova if you want to check if a certain string matches with any in a list of strings, the cleaner and easier to debug way to do it would be to store the strings in an array then use a for loop to iterate through. Set a bool to false beforehand, then for loop, if any matches set bool to true
Do we have a "break" node yet to exit for-loops?
If not, would it make sense to ask for one on canny, or would such a feature be of too low priority? Could be implemented in the same update that gives us switch statements (real ones with lookuptables and binsearch, not the ifelse chaos we have in u# xd) and scaling logic nodes, e.g. an or that lets you add, say, more than two bools? :p
as right as you are, ive isolated the problem to the getlocalplayer node, seems to break if i either A) use multiple or B) reference multiple nodes from one
I think you're asking for a bit much from the nodes in the plannable future when your ints are turning null : p. There is a canny for break nodes: https://vrchat.canny.io/vrchat-udon-closed-alpha-feedback/p/break-a-for-loop U# will be implementing jump tables on switches at the very least in the near
future, but it requires better constant folding handling first.
imagine being in 2021 and still having to work with nulls
what isn't
lovely stuff
hello, are the Udon's Get blocks 'returning' an instance supposed to be connected (by that instance) to only 1 another block?
if so, why do they allow to be connected to more of them, which breaks?
if not, is it a known issue that it breaks?
to give an example: this is the GetPlayersText script controlling the list of players in Udon's examples scene, and it works
but if you do this, it doesn't work properly anymore. more precisely: it stops getting the following text fields when user is not valid
There's multiple cannys on that reporting different scenarios, e.g. here's my canny that tries to explain the issue while including links to related ones: https://feedback.vrchat.com/vrchat-udon-closed-alpha-bugs/p/branches-decompose-variables-to-null-in-certain-scenarios .
That said, I don't think these nodes returning null after certain multireferences and joined flow paths is "asking a bit much" when both are shown to work in the automated doors tutorial my momo. Of course, in the case of the video it only shows these things on flow paths that start as seperate, avoiding the bug, but someone who's learning udon will see this as proof that multireferencing on different flow paths and joining split paths is normal and working.
in my case, at least from what i can gather, it doesn't return null. instead, looking at the assembly, it simply does not execute the instance = array[index] equivalent and instead reuses the instance that was received in the last loop in the if user.isValid() block
Still, the problem seems very similar. Try using a unique "get corresponding text field" block for each set text.
And if that don't work use more gun try setting a new int to int i's value before the isValid and using this variable on both "get corresponding text field" blocks
there's nothing to try, really, you're just describing the default working version
Ah wait my bad i only saw the lower image and didn't bother scrolling higher...xd
also this is enough to make it work :p
(creates the exact same assembly as the original)
Enigma
any udon pens about with easy setup?
why does my game crash every time I open it, and I just made my account today.
That does not sound like an Udon question. Udon is VRChat's own programming language. For client issues please see #user-support-old
theirs zero instruction on what area to place the quest material too?
for qv pens atleast.. and that sucks v.v
Does anyone know how I can do justures with one hand in VR chat I have tried binding
Yo! Looking to control a few material floats using Udon. Still new to UDON so what's the practice for moving a LERPs t= between 0 and 1. I'm thinking I'll have to setup some time math using a update? 🤔
anyone have a udon script that turns the mirror off when you walk away from it?
@tame ruin architect pens work for both pc and qc out of the box
Set up a trigger around the mirror and use the onExit event instead of a button to turn it off. That's probably the simplest and most effective way to do it.
Hello. I am new and I have a question about the game avatars, to import I mean. It says I need to spend more time in the game, but how much time do I have to play exactly? Cause I try to import an free avatar that someone posted and I downloaded it, I imported it into the Unity and when I wanted to import it into the VRCHATSKD, it says "World Creator Status: Not yet allowed" and " Avatar Creator Status: Not yet allowed" , I know I have to wait some time and I know how to import, but how much TIME exactly I have to play the game if I may ask? Thank you. <33
This channel is for questions about Udon, our system for building worlds in VRChat. That said - we don't specify an exact amount of time - but it's more than you've spent so far. Just take some more time, make some friends, visit worlds - learn what VRChat is all about! You'll soon gain the ability to upload your own avatars and worlds.
@dapper lion do you have a link to these pens ?
Oh okay, thank you for the info. I just went to a questions chat, I don't really know what UDON really meant or QUEST but I guess now I know, I don't know where to ASK or PUT A QUESTION exactly but at least thanks for help. ✨
check #faq to learn about where to ask particular questions
please chek #faq to learn where to ask questions - this channel is for questions about Udon 😄
Poor Momo needing to tell multiple people in a row that 😔
can you turn off auto compile every time something is changed? Big graphs get super hard to work with when it tries to compile every time i grab a noodle lol
We'll consider this - however, it would mean you could do something that breaks you graph and you might not know until you go to compile it many operations later 
PS - it's probably not Compiling that's taking time, but rather the recursive search of flow nodes to make sure you haven't just made an infinite loop. Turning off compiling would not fix that.
how do i make a new udon graph? for me its stuck on a past graph i did.
you should be able to click the new graph in the assets window and then in the inspector -> tell it to open it in the graph editor
Mo - Mo - Mo - Monster Kill ! ! !!
I do not know if this counts as udon, as the distinction between SDK3 and udon isn't very clear on this server, but please could someone help me with a very tiny issue?
I'm using a canvas for some text in my avatar world, taken from the VRC prefabs in SDK3. There's a panel and then a header on top. I applied a material with emission to the back panel, but the text clips with it now.
How do I fix this?
Is ''Euler'' linked to ''Set LocalRotation'' the same thing as using ''Set LocalEulerAngles?''
yes
did anything change with video players? i haven't made any changes to my world which was working fine last week, and now it's a white screen when it attempts to load videos.
lol wtf
so vimeo links don't work anymore?
vimeo might have changed somethings that might require youtube-dl to fix
seems to be just private links that are broken
also that was a problem from 13 days ago, last time i played videos on my world was last friday
well that's fun, i need to use the embedded url now :\
@floral dove When someone respawns OnPlayerRespawn node get only triggered locally and does not appear to be sent out to other players is this by design?
Yes
So it's only supposed to be called for person 'A' when they respawn, and not 'B' at all? If so, then what's the point of the VRCPlayerApi output from it?
Easy access to the object
Perhaps update the documentation to reflect that it triggers for the local player instead of A player
So how do I do raymarching/metaball stuff with Udon?
You dont. Use shaders. Unless you want to live with like 1 fps kek
Ah, good to know. Now to find shaders that do what I am looking for
I made a simple raymarching shader before, and its not too crazy complicated with simple lighting/shading.
But good luck
Ahh yeah. Lava lamps are fun
In fact lava lamps are used for IT security, because of their inherent randomness. Cloudflare uses them as part of their encryption protocols
But yeah. I'm just trying to figure out how to do that stuff to have a neat visual for a hangout inside of a lava lamp
I dont know enough about raymarching to help you. But I do know that what you want to do, you have to do with shaders.
I also have just started reading documentation on making a VRChat map, so I've got little to no experience with this beforehand
Is it possible to access custom c# scripts from an udon script, or does it only allow whitelisted pre-built ones or other udonbehaviors?
AFAIK you can't really access custom scripts if it does not inherit the UdonBehavior base class. You're given whitelisted methods to work with, and that's it...
If you want to replicate a C# script's functionality in Udon, then UdonSharp might help you out - check the pins in this channel.
Which branch is the new input system in currently?
the new Input System has been released publicly and is available in the main release.
(it is also included in the Udon Networking Update beta branch)
Solid.
Is there a part of the example scene that contains example(s) of the Input system logic? If so, I seem to be overlooking it...
No, we haven't created and integrated an example yet. Basic idea is to use the boolValue for button inputs and the floatValue for axis inputs: https://docs.vrchat.com/docs/input-events
here's an example built with graphs
So these are events. Is there a standardized way to check for input states outside of these events? Like check if the grip is active during a custom delayed event or update loop?
no, this is an event based system
So to detect arbitrary grip state, i'd need to read from the Input class with that google sheets guideline still?
no, just keep a bool around to store the state
Does the event get called on all behaviors? or the behaviors on the game object being acted upon?
all behaviours
Oh, alright then. Good. Thanks.
I'd request that that particular detail is notated in that input-events doc page.
Cause it's a bit different from some other events that are context specific (like pickup events)
the detail in this case is that if you add an Input Event to an UdonBehaviour, it will get called on that Behaviour? It sounds like the real issue is that VRCPickup should be clearer that it calls OnPickupUseDown/Up on any UdonBehaviours on the same object. That sort of component is the exception, not the rule, for events.
Is there a way to exclude chunks of code from being recompiled or generally considered when making changes to other chunks of nodes in Udon?
About 80% of code for the HQ sampler is done, but it's becoming impossible to work with. Takes about 10 seconds to spawn in a new node or to connect two :(.
I believe most of the waiting time is due to a recursive search we do to make sure the new node isn't creating an infinite loop when you connect up its flow, nothing to do with compilation directly. No way to turn this off in the SDK, but we're working on making it better.
that sounds good, there's probably a lot of stuff that checks for loops when it really shouldn't, e.g. connecting non-flow-noodles, changing values of constants, just spawning new nodes, etc.
Should probably only ever check this when a new flow noodle is created, and then do it only on the blob of nodes it's been attached too.
Any ETA on this? If it's not to long I'll just postpone the project a bit, am still waiting for the rights to some of the sounds anyways^^
it's a high-priority item, aiming to get into the next release. Probably about two weeks away since we just had a release.
That's great to hear! Thank you for the heads up^^
So for InputGrab, when would the bool ever be false?
Oh I should've tried the prefab sent first lol. So the event is called constantly? At what point in the Unity lifecycle are those events called?
What exactly is the Deal with Start() and OnEnable() ? they both appear to do the same thing..
I created an animation that simply toggles off the get.component, and then another switch to toggle it on.. preety basic i know but it works.. so cant really complain.
start only gets executed once, OnEnable triggers repeatedly, start should only run once wheras the OnEnable will be run every time it’s turned on. If the script retains it’s state when being disabled Start won’t be run a second time but OnEnable will. (Additionally, Start is run at the beginning of the initialization sequence of an object whera...
My original post on that, I had the same question, and still kind of don't get it
https://ask.vrchat.com/t/my-questions-answers/5139/2?u=joker_is_punk
Ah so basically all in all if i have the scripts disabled, OnEnable gets called and just like that its on.. so Start() is preety run runtontick
Well i think i get it.. but Cyans triggers would be abit more than helpful right now.. i've designed a completely new Funland and its all Udon.. i have no animations at all (apart from dummy animations ive made) my entire park is 20mb.. its a serious achievement over the whopping 220mb as in animations.. it runs like a dream and then i came to the triggers and i was like.. should i just leave the rides on with occlusion culling.. nobody would ever know.. but then decided to just go back to a trigger system.. cyan's looks decent.. i guess i will have to become a patron to get his latest releases.
Does anyone know what UdonSyncPalyer(AVPro) does not loop after I check the loop checkbox?
I did follow the above settings, but it did not work
Any way to Application.OpenURL(string) yet or still closed off?
At the beginning of the game video will not automatically play
If you have slow internet, the video player can sometimes just fail and not work at all. Not sure if it's been changed in the library, but AVPro downloads the video first then plays it.
where i can find it?
My video player prefab does a timer to wait until some seconds have passed before loading in order to avoid "loading phase" issues many people experience.
Wasn't replying to you; was asking a question of my own. https://docs.unity3d.com/ScriptReference/Application.OpenURL.html
OpenURL is still locked.
No alternate method via VRCSDK? O_o
Start runs once when the object is first ready in the scene, OnEnable will run every time the object is enabled from an inactive state.
Nope. Security reasons. People could open malicious URLs if allowed arbitrarily.
I see.. well in that case all should be good then.. i've figured out everything but the triggers.. lmao
but I use youtube Url, which also does not auto-play and Loop
🤷I've had too many issues with doing stuff to the video player immediately on load (including directly autoplaying a video) that I switched to a delayed system with a custom input for autoplay url (the AVProVideoPlayer script url input is left empty and video play is triggered via script after the wait period with PlayURL).
But if you have loop off and autoplay on with an autoplay URL, in theory that's all you should need for it to autoplay.
Assuming that I do not know what object is in my right hand, how would I have my right hand drop any object it may be holding?
You can get the pickup in your right hand by doing networking.localplayer.gdtpickupinhand. then you can call vrc_pickup.drop. make sure to do an isvalid check on it to make sure it actually exists before trying to drop it
Thanks, it worked.
Is there any cool Udon stuff I can do to my avatars? I'm a programmer irl and im wondering what the possibilities are
avatars are seperate from udon
you make udon do stuff to your avatar in a world, but you cant add udon to an avatar as an avatar
ah damn, guess ill be doing that when im bored of avatar creations
Hello guys. I made a button triggered door animation with a help from a Youtube tutorial. It works fine but I want to play a press animation on the button itself (I already made the .anim, the button going down and up again) but I have no idea how to add this simple animation to the button when its pressed. Someone can help me please?
Not sure if this is the right place to post this, but I've got a world I'm nearing completion on, the original version that was uploaded and put on labs was pretty rough, (and a few months ago). I'm thinking of axing the original ID, and re-uploading the complete world under a new ID. Is there any rule against doing this? Just don't want to get slapped. Thanks!
I have a litte problem with a check when a collider enters a trigger :
if (rb != null) {
...
}```
This little script is supposed to check wether the object has a rb or not, but Udon says "There is no 'Rigidbody' attached to the "Cube (2)" game object" - when reaching the actual line checking "rb != null".
How can I check if an object has a rigidbody then ?
@nocturne moat I dont know how to use animations, but if your animation is simple enough you could just move the transform around ?
I already made the animation itself. Its pretty simple. I need the node graph configuration to play the animation clip once when I interact with the button.
animations by themselves are legacy and not supported by udon. But that's fine, because instead you can put multiple animations together into an animator. You can set up the transitions so that it is normally in an idling animation and when you activate a trigger, it transitions to the press animation. When the press animation is done, it can transition back to the idle.
Udon would come into play simply by calling "settrigger" on the animator
I'm not sure what you're asking, it sounds like that's already working. Does cube (2) have a rigidbody?
no, but I expected (rb != null) to return false, not an error
Thank you! Do you mean something like this?
if by error you mean the script crashing, then no, cube (2) wouldn't cause it to crash. However there is such a thing as "protected" objects in vrchat and if udon tries to do anything with them, the script will crash. Protected objects are things like players, menus, and cameras. That's why utilities.isvalid is a thing. Just do something like if (!utilities.isvalid(other)) return; this will immediately stop trying to do anything if other is either protected or null
In this situation, the tiggering object is not a protected one. However I believer my problem maybe be due to testing through CyanEmu, ill check again through vrc
@grand temple Ok now I have the controller with the sequence and the Udon Behavior in the trigger object with the button as target. What nodes do I need in the Udon Graph now to make it work? Sorry for the inconvenience but i'm totally noob at this stuff 😦
No worries at all! Just make an animator variable in the list on the left, and then mark it public so it shows up in the inspector. Then in graphs just add an set trigger node, which you should be able to navigate to by searching for animator. Plug in the animator variable so it knows which one you're referring to, and then you can put some text in there like "Press" which would match with adding a trigger called "Press" to your animator
@grand temple it seems my problem was indeed specific to cyanEmu
Thank you again for your time ^^ I don't know if I get it right 🤔
yep exactly
What do you mean by adding a trigger to the animator?
in the parameters tab
there's a plus button to add parameters, one is called a trigger
and then you can use that trigger as a condition in the transition
yeah
@grand temple Thank you! it works! ❤️
I've created a Udon script which creates an object. It works for the person who triggers it but no one else sees the object it creates.
How can I get this script to trigger for all users (and also sync the random number used for the rotation of the spawned object)?
depends. After it's been spawned, does that object need to move around and be grabbed by players
in other words, does the spawned object need to be properly synced?
It's a dice, so it's important that everyone sees the same rotation.
so yes, it does need to be properly synced
then you can't use instantiate. You'll need to use an object that already exists, or a "pool" of objects that already exist
is it impossible to sync an instantiated object?
it's not supported
if it's just one object then it's pretty easy, just a synced boolean really. Even a handful of objects wouldn't be too hard. If you need more than that though, it's a bit more involved. Or alternatively you could switch to the udon networking branch and use the built in object pool that's available there
question does anyone know how to make a particle impact sound?
i have the particle setup but i want it to make a sound on impact
asking for a friend
pretty much everything i ask is for them haha
Das any one have a Working Bloom Slider on UdonSharp or Graph
How do i make that if i activate the Low Mirror it deactivates the high mirror automatically? I got a tutorial that showed a general toggle but couldn't find anything about toggling multiple objects. That's how it is currently set up.
just add another gameobject variable and always turn that one off regardless, rather than doing the whole getactiveself > unary negation thing
yes, that's called legacy locomotion. You can enable it by doing on start > get networking localplayer > enable legacy locomotion
I guess i'm better off waiting for CyanTriggers to release before i continue with UDON. I really don't understand anything lol
It's a little out of date, but hopefully this helps!
https://youtu.be/E0D9Z8-HVBI
Since mirrors are super popular but also rather intensive, it's important to have different versions for people on different hardware. I'll also be using this to show off For loops and how they can be used to iterate through arrays. This is also the first video I've done more serious editing for, as well as having scripted the intro and outro. T...
Couldn't help but notice that the graph doesn't compile in the second clip in that teaser posted by Momo in #udon-showoff.
Will it be possible to turn off auto-compiling?
I completely removed all the auto-compiling while testing. Yes, I'll make a setting to turn it off. But - it's usually very fast compared to other things going on in the background.
Looking forward to it these updates ^^
Is it possible to copy the variables of an object to another object using that is currently using the same Udon script?
If you copy-paste a node, the paste should have the same variable values as the original. If you mean copying a value to a different type of node, you'll have to select and copy-paste the individual values
Absolutely can't wait for the update tho 😍
ctrl+v pastes the node and varibles. ctrl+shift+v just pastes the node with nothing
so im having issue uploading a avatar to my vr chat account its telling me i need to spend more time in the app and played vr chat it self for 4 days now and yet i still haven't gotten email even after making friends what can i do to fix that
- This the Udon-questions channel, a channel to ask questions about Udon, the programming language.
- Just play more. There is no "fix" other than being active and not being a nuisance to others with e.g. particles, avatar effects, etc.
I hate that type of question.... The answer is literally RIGHT THERE. You just said the answer, and you are still asking the question.
This is why the romans killed Socrates.
Because all we would do is say the answer like it was a question.
U don know.
No one does. But that was probably why they killed him.
I'd want someone dead, if everything out of there mouth was a answer question.
Though honestly, I think the user support channel should be in the "general" section.
- We see how many people come here for help because it's the first "questions" channel they see, and
- User support fits general more than "development" anyways.
Not directly related to this specific question, just a suggestion/statement.
It's not the fact it's the wrong channel. I get that.
My issue is he knows the answer, because he said the answer, but still asked anyways.
That's so annoying.
Simply replying "you stated the answer in yoru question" is not helpful, the fact that they asked the question in the first place means they are looking for help. Most people gain New User within 2-3 days, so them asking for help after playing for 4 days is a legit question. Maybe they were unknowningly doing something wrong that hindered their promotion, or something else they needed to do to unlock it.
He didn't ask how to get new user status. He asked why he can't upload.
in my case I didn't get the level I thought I should have because I hadn't linked my account with all the game time on it
He asked why he couldn't upload, which is directly tied to his trust status. And all of this is off-topic for the udon channel.
asked a similar question
Yea. That's fair. In that case saying: "I think that I didn't link my account on time, what can I do to fix this mistake?" would be a good question.
He asked "I got an email saying I need to play for longer, before I can upload content. How do I upload content?"
There are no dumb questions. But there are useless question.
is it possible to change a PostProcessVolume weight with udon ?
Not directly, but you can do it through an Animator
I havent used animators yet, didnt know they could be used for that.
does anybody know what to do when the udon graph does this?
Im a little confused, all I see about Animator seems to relate to actual animated meshes, im not too sure how to proceed, any resources you could point me to ?
You can animate most component properties. This might help: https://youtu.be/95jRByYHE4Y
These features are currently available only on our Open Beta version - check our Discord for more information.
Learn how to make doors that automatically open and close to let players through. This tutorial will use the Udon Graph to work with Player Triggers, Haptics (aka controller vibration) and controlling Animators with Udon.
Music i...
wow ... now thats a detailed answer :D
thank you
Have you restarted unity?
restarted like closed out and opened back up?
yes
multiple times
no
For some reason unity is stuck in play mode.
or thinks it is.
The UnityEngine.debug file would have more info why, if you can post that.
What I do when that happens is that I load another window layout, and I've even set up one for Udon for when I run into that issue. You can change the window layout under the 'Window' dropdown at the top of Unity, then go into 'Layouts' section and you should find the default one again.
Had to step away I'll do that when I get back
okay where do I find that?
it will be in the unity folder
how do i remove the sdk from a project
because i think my installation is fucked and i wanna reinstall
this is the only thing i see under the sdk menu
Looking into soon but thought I'd ask here beforehand. Setting up git for use with Unity + VRChat + Udon + Udonsharp. possible, worth it or too much hassle?
I don't see the need
keep VRChat worlds under version control?
I mean I suppose. What are you trying to make?
I mean in general, so if I want to change one of my worlds I can just create a new branch for it without risking destroying everything?
not sure if things work differently in Unity though
Yeah that's not really needed for vrchat. You can just duplicate your scene and edit the new one
In unity
Hmmm okey then
Remove it from your assets folder.
What is your unity version?
2018.4.20f1
yeah you can totally use version control. There are many very good reasons to do so. Personally I like to use Plastic SCM because setup is a lot simpler than git
Have you restarted unity after removing the package?
doing that rn
nope
nothing
same issue
also the package manager doesnt show up in the window menu
Never used Plastic SCM, i'll give it a look, thanks 🙂
Gave it a quick google, Plastic SCM is used by NASA, MIcrosoft, facebook etc. guess I've been living under a rock 😂
send a ss of your console
fixed it now we good
what was the issue?
Can I make people able to change only into specific, whitelisted avatars in my world?
Nope.
Hmmm I cannot check an avatar by ID with udon?
Not ones that users are wearing. Player data is intentionally protected against worlds. Things like player account data (rank, ID, etc) as well as the avatars and the actual "player object in scene" is all protected. That's why there is a PlayerAPI type to access certain limited pieces of player information like bone and tracking position/rotation and methods for manipulating the player in scene in limited ways (like velocity, teleporting, etc).
Is there a prefab that I'm missing that will automagically "parent" something to a player's tracking data on join? And by parent, I meant that update pos/rotation on the tracking data.
I'm trying to find an example somewhere, but can't find it.
I remember seeing something of what I'm asking for somewhere, but I can't find it.
The UdonExampleScene in the Networking beta sdk has a an example
thanks
I think it's the ChooserContainer, it follows the head tracker with some smoothing
If you just want a basic one, here it is. I could have sworn there was in the Live SDK but I guess not.
I set the position in LateUpdate since that's the earliest we can get the accurate position and rotationn.
Thanks.
I was asking if there was an example of assigning something to each player on join that attaches to their tracking.
Well, I could probably just do on player enter...
hmmm
I smell cheese about
I was thinking overcomplicated and giving EVERY player their own items. When I only needed a local object to track collision with other players.
https://puu.sh/Ht9Wh/8bc649d269.png
How would I transfer this to the target if they entered my local collider?
I think I got it.
hmmm I see... is it possible to force players into an avatar on join tho? Or negate them to change their avatar other than by interacting with the world?
could make spawn a box, and when they press a buttn that changes their avatar. and spawns them into the actual map
What literally said, but that doesn't prevent them from changing afterwards. This could be mitigated by some checks to the distance between two connected bones, where if the distance between said bones (such as the hip to right upper leg, or whatever fits the need) changes, then they would be teleported back into spawn until they change back into the "correct" avatar(s).
It's extremely convoluted method of forcing an avatar, doable I supposed but rather unreliable imo.
there is also proof of a concept where you can track the menu and cover up buttons such as:the avatar buttons. but idk how efficient that would be and it took the person who figured that out 2-4 weeks iirc lol
but imo: this is all theoretical at this point and makes no sence to do so unless it is for like... an event with 100+ users and you need everyone to use optimized avatars no matter what. but it still doesnt make sence
Yea, wouldn't advise messing with player menus as that is something that will very easily break in the future if VRC updates the UI again (which will definitely happen at some point).
(multiple breaking points since the UI updates are coming in phases)
^
The best option is to urge users to use a specific avatar(s) as well as if needed, what literally mentioned with a button that switches their avatar on interact and then teleports them into the actual world area.
or like how roots home has a button that says "you must allow untrusted urls" sort of style where it blocks you until you click a thing that can only be found if you read the instructions. but put "please change into a better avatar" instead
mhm
Messing with the playermenu is an all around bad idea. There was that horror map that did it, and if you had to go you had to forcequit.
yea, it is a very dangerous/yes powerful ability to do many things that are either intentional or downright not ok
Getting an event added on avatarchange would be a nice fix. Just have a script waiting for the event to fire and boom send to spawn.
expose VRCPlayerAPI on it. So you can tell who did it.
Then for gamemakers, they can do a variable bool check. Is game started? No? Send to pre-game lobby. Yes? Send to worldspawn.
Trying to make a dial the player can 'grab' and turn, is using vrc_pickup on the object and udon update>setposition the wrong way to go about this? Got it working perfectly in Unity (can spin it, cant change it's position) but vrc_pickup still moves the object to the players hand in game.
My way around this is to have an update statement that sets the position of the object back to its starting position each frame.
VRCAvatarPedestal has a method called SetAvatarUse, does that not change the avatar?
@chilly aspen that's odd, I've done the same (update>setposition) but it still jumps to the players hand when they grab it. Do you use vrc_pickup to make it 'grab-able'?
Is it update, and not fixedupdate or lateupdate? Also yes, I use the VRC Pickup component.
If it's update, then it shouldn't jump to player hand if the setposition is set to the starting vector set when OnPickup() was fired.
The only way it would do that is if the Udon script crashed.
It is update and first step is to setposition w/ a fixed vector3. Hmmm.
man I was expecting a wall of text after 15 minutes lol
I know udon isn't crashing because the rest of the script is running.
Ha yee, started replying but thought I'd better verify my code
I have an object that performs fine, maybe the order of components matter? Here's mine
Tried pickup on an object and a simple setpos, able to grab it and walk away.
Is the order and inputs of the components on your object identical to the 2 photos? (Set isTrigger to false)
only thing I see different is you have gravity and kine checked, and rigidbody above the collider
Try changing those, and also use transform.position = vectorInput instead of transform.SetPosition. If that doesn't work, then there's 1 more method we can try.
actually, I've got allow manipulation enabled as well
no beans. works in unity 'play', cannot change position, but in vrc it jumps to the hand. will give transform.position = vectorInput a try
i have a problem that i can't figure out. i keep getting this error. everytime i reimport the sdk it keeps wanting to import these files
i've totally deleted the sdk files and started over, but no luck either
it will say "nothing to import" if i try to reimport the sdk again immediately, but if i press play, these files pop back up to import again
I don't know anything about errors importing the SDK, try a new unity project and new SDK download.
@mossy sequoia do you get that when building/uploading or just when hitting play in unity? If the latter, ignore it - just Unity telling you the videoplayer didn't find anything to play.
@onyx granite its the same thing when i build it. the player pops up an error in game also
@mossy sequoia checked and I get the exact same one any time I hit 'play' in unity w/ a videoplayer and it's never caused me problems in VRC. I could be wrong but I believe this is normal. if you clear errors and build/upload, do you have an issue using the videoplayer ingame?
I have a rather puzzling math problem I was hoping to get feedback on solving.
A player shoots a ray forward. The ray travels over a flat plane without collision.
How would one get the vector coordinates of Point A in the diagram?
Are there any udon prefabs for a slider you can grab to adjust?
Hi does anyone have the link for the udon boxing discord?
Create a trigger box above the flat plane and set it to a new layer. Now cast a ray from playertransform + (viewdirection * maxdistance) towards the player and make it only check that layer.
The udon example world you should already have in your sdk has a slider
✌️ So i want to use a door as a trigger, and when interacting with it it should teleport the player to a empy game object/position. Can't really find a tutrial for that. And when i search something in the Node like on the tutorials, its not showing up. Using Node
Ok i think i found one, but i can't find 'teleport To' under VRC. There is no SDK3Base.....
You're probably looking for transform.setposition
Part 20 of my video series for basic VRCHAT world building with the VRCSDK3 Udon kit. This series will be designed for beginners. I will try to cover every step from start to finish of each vrchat world creation tutorial. The goal of the videos is to allow users to follow and recreate the functions being demonstrated in a step by step manner whe...
Oh i got it
Its different then his
PlayerApi then Teleport to
I think there is a uSharp example of teleporting?
He is showing teleportation when going on a platform, if you want to use a trigger, just change in the first script 'On Player Trigger ENter to Interact'
there is a graph example if you want to use that for teleportation
Already got it. But thanks! 👍
how do I get a reference to the gameobject that an udon script is running on?
in the examples I see a 'target' variable but I don't see what sets it
oh wait, do you just assign it manually in the inspector?
is this not a good way to get the player to drop a pickup as soon as they 'use' it?
when I run it, it gives an error at this point
same for this (I'm not sure what the difference is yet tbh)
usually I like to make a public variable like thisPickup and drag the gameobject in using the inspector
sounds tedious to set up for a large number of objects, but I'll see if it works
if you've got a bunch you might try using prefabs
so, funny you should mention that -- when I tried using prefabs, it didn't work
I assumed Udon didn't work in prefabs
yup that's how I do it
hmmm
OK in that case I'll look further into what was going wrong when I tried putting it in a prefab
double check that in the prefab the reference is right
make sure its not sdk2
wow, putting the pickup reference in a variable absolutely worked, thank you
and to be specific, what wasn't working when it was a prefab, was just making it an ordinary udon-less pickup -- it wouldn't be synced unless the empty udon graph was put on as an override to the prefab, rather than inside the prefab
come to think of it, is it normal to need to put an empty udon graph on a pickup in order for it to be synced, or is that just a weird workaround
a friend taught me that but now I'm wondering if it was part of the problem
you need an empty udon behaviour to checkmark the “sync position” thing so it syncs its position with everyone
ahh OK
however, using many sync position objects can get laggy. like the jenga game. everytime you try to reset that game with 6+ users in the lobby. it gets super cray cray
oh right, that was the problem -- "sync position" was literally getting unchecked
if I checked it in the prefab, it would be unchecked when I came out
if I checked it as an override to the prefab, it would be unchecked when I built
if I applied the entire udon graph as an override, and then check it, it would work
Wow that is clever, thank you. This will work.
is that a known bug?
at the time I was just like "ugh whatever" but now I'm wondering if I should report it
that it unchecks itself when building? id try to look at the scripts it might be tied to that might be inverting the ”sync position” checkmark
what scripts
hmm: I guess 🤔 you probs dont have any scripts then. so it might be a bug. try and hit the play button and check if the ”SP” check mark is still checked
I'll take a look next time I'm in there, yeah
I think I'll make a proper thread on the forum for it
thanks!
after updating to the most recent patch of the worlds sdk3, I got this message. anybody know how to interpret this? I already tried reimporting all on my project and deleting all udon and vrchat folders and reimporting with the unitypackage straight from the vrchat website
Does it persist through an Editor restart?
yes it does
some more info, I have the most recent release of udonsharp from the udonsharp github. not sure if that has anything to do with it, but none of those scripts will compile either
I combed the prefab pages and did some searches but I didn't find anything. Does anybody know if physics doors are possible in udon or if there's a prefab?
Ofcourse thats possible. Just need to do the maths to do that.
It depends on how you want to implement them. You could do with Unitys Joints. Otherwise you can caculate Angular Momentum yourself. Networking is another problem you would have to solve...
I want to make a swinging door that you can push with your hands but returns to center (closed) position. Like a kitchen door in a restaurant
Yeah definitely possible.
But sounds like networking would be an issue
Should even be doable with standard Unity joints
And then networking should be trivial as well
I guess I'd have to code it to update a vector4 at a certain rate?
you basically just put sphere colliders on everyones hands
Yeah, this is relatively trivial... but only if you really know how Unitys Physics Works and the VRC SDK
yeah and know how to code 😉
to a point
thanks for answering as usual! You are the helpfulhelper
And you probably also want to add a collider for the player body itself otherwise it might get weird
hmm ok
Be aware that moving colliders without rigidbodies is problematic tho. So add Rigidbodies that are Kinematic to your Collider objects.
Is there a way to detect what XY(Z) coordinate the UI pointer hits on a custom VRCUIShape collider?
I don't think you can do that for the built in UI pointer but if you do a raycast you can get texturecoords. It has to be a mesh collider with UVs though
alternatively you could use linear algebra to calculate it directly
Well, I'm still trying to work out how I can visually represent the default UI pointer whilst holding a pickup, cause the pointer still works for a hand holding a pickup, but it just isn't visibly shown.
What I have currently is a custom raycast that is supposed to "mimic" the alignment of the built-in pointer so that the built-in one can handle the UI event interactions automagically but I can still visually represent the pointer to the player while they are holding the pen pickup. The problem is that depending on the angle at which one points at a UI (in VR specifically), the "mimic" becomes no longer accurate. I've had a number of players complain about that.
My options that I've thought of so far are:
- Get the exact source and direction information or collision point of the built-in raycast, and mimic visually.
- Do a butt-load of custom algebra to calculate which UI element is being interacted with via custom raycast and somehow trigger the proper events on any particular Unity UI element.
- Assign individual colliders to each unique UI element and write boilerplate code to delegate the event per UI element (this one is cursed, in concept alone)
I've been told that there is no discernible way to determine the built-in pointer's origin and direction (which I still don't understand why...), and as far as I know, one cannot Invoke Unity UI events manually through Udon. So... I'm kinda stuck...
If I can get the mimicing working properly, that'd be the best option as it's the most performant.
good good good, does anyone have an udon graph example to deactivate multiple empty at the same time in the hierarchy please?
-have the empties in an array
-have a for loop that starts at 0 and ends at array.GetLength
-take array[for loop index] and deactivate it
even got a graph for you if it's still too vague
Hmmm i see, it's much clearer to me now, thank you!
Made a canny that I think would help me solve my problem https://feedback.vrchat.com/vrchat-udon-closed-alpha-feedback/p/please-expose-playereyeheight-and-trackingscale-to-udon
hi hi! so im very very new to making worlds, all i have is a home world in which i purchased from someone and i know how to do the mostbasic editing but i wanna add pens and im very confused! i dont know if its udon or not but i found the link to these https://booth.pm/en/items/1555789 in this chat so if im in the wrong chat just let me know!!
i added the pens just fine, but when i test my world they dont actually work? when i move around the pens they actually already start drawing in unity so i figured they would work but when i test in vrc they dont, pens also dont work when i press play and move them. im lost and dont know what to do! can someone help?
Anyone else having issues with video players since a couple weeks ago?
They basically dont work for me and my friends anymore
do you know if udonsharp is imported?@spice musk
going to be honest i have no clue what that is lmao @dapper lion so im going to assume no!
go to the pins in this channel and find udopsharp github and download the latest unitypackage and import
the reimport the pens (sdk3)
bringing in udonsharp broke my mirror 😂 maybe i just shouldnt have pens, this is too confusing me lol
oh really? okay maybe i didnt break it lmao
let me try one more time before i decide to give up
i kind of doubt it but is there a prefab or guide to make the discord thing? i found it in aworld i think it was called three lions pub ?
if you're referring to the panel where you can submit feedback, that is not available for SDK3 due to limitations for security reasons. It's only available on SDK2, but you can find it here https://www.patreon.com/posts/vrchat-discord-35045864
Ooh thanks, understandable
What Is "Udon"? 🤔
?whatisudon
VRChat Udon is a programming language built by the VRChat Development Team for use in VRChat worlds! It enables complex behaviors and logic in VRChat worlds. Read more about Udon in our documentation: https://docs.vrchat.com/docs/what-is-udon
What’s this Udon thing anyways? VRChat Udon is a programming language built completely in-house by the VRChat Development Team. It is designed to be secure, performant, and easy to use via the VRChat Udon Node Graph, a built-in visual programming interface that uses nodes and wires (we call them “no...
I'm making sure I reinstalled the sdk properly, but the step "Go into Plugins, and delete the VRCSDK folder, as well as the VRCSDK.meta file in the Plugins folder." is unclear. I found a Plugins folder buried in some of the directories in the project folder, but none of them have VRSDK folders within them.
hey i wonder if i could have a udon example map to try out stuff
actually #avatar-help might be a better place thinking about it..
yeah imma move there
@jade sable the sdk has an example scene
example folder
(and yes i already have the correct unity)
and last question, i cant find the login page
go to very top, got to vrcsdk, and go to the control panel
its cause its not there
what it look like?
no, stay on 2018.4.20f1
ok
wait, you imported the sdk3 worlds right?
ok, so you found the example scene right?
what do you mean? login page, did you find the control panel yet?
trying
it should be at the bery top where file and edit are
oh hey vrchat sdk is now on the top menu
(new project)
uh
what
every single applications poped up
while loading
yeah i have a problem
like a bunch of compilers and stuff?
bro. you are having like the worst luck ive ever seen when someone is trying to figure out unity if so
ok im back
oof
avast says no problems
though my pc was spamed by nvidia, discord, steam, etc
take 3?
yea, ive had that happen on me on rare acassions and they usually suck if youre on a big project and havnt backed up in awhile, so it just corrupts the whole thing. luckily you had nothing but still very unlucky
you restarted pc tho right?
nah i task manager(ed) the applications
id do a restart when that happens. have everything fresh
sorry i know how to get custom avatar on oculus quest 2
?
i'm not quackity
in real life
ok im back
and restarted
this is udon
oke thk
ok attempt 2
wish me luck
(ill need it)
Hey guys! I'm interested in reading subtitle data from VRC's AVPro video player, is this possible with udon?
im re-importing in case the sdk was partly installed
aaaaaaaaand it worked with no spam
nice
thanks
I know that the AVPro player itself supports subtitles and has accessor methods as seen here but unsure if I can use these in udon /U# https://www.renderheads.com/content/docs/AVProVideo/articles/feature-subtitles.html
udon doesnt seem to work at all for some reason for me
the udon graph menu went from opening to a broken welcome screen to being completely broken
ive reimported the World SDK multiple times too :(
it very much is
got it working by deleting the udon folders and then reimporting worlds3sdk
literally a "have you tried restarting" solution lmao
@hallow pumice - is there any other information about the NullReferenceException you're seeing when you try to upload? When you highlight the error in the console, it may give you more information about the missing item.
I was asked to move this question to this channel:
Did anyone ever figure out the "NullReferenceException: Object reference not set to an instance of an object" error when uploading a world? I can't seem to find a resolution to that issue.
Other behavior includes having no upload image, and the check box for upload image is unavailable. Also, I can tell the upload screen is different.
I tried to uninstall and install the latest sdk3, but that hasn't changed anything. I can build and test this world with no trouble. I just can't upload it.
I'm hoping this is a known issue with a known solution.
https://github.com/oneVR/VRWorldToolkit/releases
Import this and check VRWorld Toolkit > World Debugger from the top bar
Let me check that now and I can post them here.
Also - try to upload the UdonExampleScene, that should work if you haven't modified it at all. If that works, then the issue is in your scene vs in the SDK.
And yeah - check out @native estuary's debugger, highlights a lot of common issues.
Let me find that and try it.
I will try this right after I try Momo's suggestion.
Warning: The referenced script (Unknown) on this Behaviour is missing!
Warning: The referenced script on this Behaviour (Game Object 'VRC_PlayerVisualDamage') is missing!
Error: NullReferenceException: Object reference not set to an instance of an object
VRCSDK2.RuntimeWorldCreation.Start () (at Assets/VRCSDK/Dependencies/VRChat/Scripts/RuntimeWorldCreation.cs:82)
Those are the messages that appear in the console.
Search your hierarchy for "t:pipelinemanager" and remove any that aren't with the scene descriptor
If you search the channel you'll see this is a common error that is auto-fixed by the VRWorld Toolkit debugger, but that doesn't tell you how it fixes it. I believe the above is the issue (based on @native estuary commenting it at one point)
Yeah 82 is the pipeline manager issue
I wonder how so many people get to that error state - maybe adding a VRC Scene Descriptor to another object?
That's what I assume at least, then most likely just removing the other descriptor but not removing the pipeline
I do have a brief explanation of the issue in the debugger
Its kinda unfortunate. Unitys "RequireComponent" Attribute automatically creates a component, but does not automatically remove it, if the dependency is removed. However if two scripts are always dependant on one another, they should be merged into one component. You can also still ensure SOLIDness that way.
Like if a Pipeline Component doesnt make any sense by itself, then why can it even exist by itself?
However Im not sure if the descriptor gets stripped, so maybe thats a valid point.
Yeah
Also @floral dove there's some people that get confused by this wording in the docs and accidentally do both dots instead of just one of them
I mean it says either. And its an unordered list.
But I would recommend putting a bold OR in between those two
And probably put the easier method using the prefab first, and adding a "manually"-statement in the other one
Agreed this just confuses new people
Good point, I'll update that to just recommend the VRCWorld prefab. Which page is that on?
Before getting started, ensure you have a Unity project with the SDK set up. If you want a great intro to creating your first world with pre-created assets, a tutorial video, and detailed steps, check out the VRChat Home Kit! Step 1 - Setting up a scene The first thing you need is a scene. This can ...
Ah, that's why I didn't recognize it. All the Udon stuff is under its own section.
Yeah this is the old docs 😄
This should be overhauled completely to be more generic
I try to point everyone towards the Udon docs to get started
but until they're built in to a Unity window it will be confusing as to where to go
But the problem also is there is no proper starter steps for the udon docs
Most of it feels like it assumes you already know how to setup a basic world
Do I just import this into my project and it does "the magic", or do I need to perform other operations after I install it?
Can you elaborate on this a little? I want to understand this better, but I'm not sure I know where to view this information.
Also, I did try your experiment. I started a new project, installed the latest sdk3, then ran the Udon example scene, then uploaded it. No issues. It uploaded just fine.
Would you like a screenshot or other report before I start fixing them? Would that be helpful to you if I provide that info?
Unless something feels not explained enough or unclear to you then feedback is welcome but if you feel like everything looks good you can fix them
I think I see the issue that Momo mentioned earlier. It's at the top of the list. I'll screen cap it for the educational value, then go ahead and do the fixes.
The pages here, read in order, will assume no knowledge of putting together a world, and guide you through using Build & Test and diving into the UdonExampleScene. I know most people skip / dislike the Readme so I'm making videos to cover the concepts there but the info is there for newbies: https://docs.vrchat.com/docs/what-is-udon
No need for screen-cap, very few people search when they have questions, it will be gone in a day 😛
I would run these three from those
Roger. Done.
I'm trying it now.
Its still working on it, but this appears to have solved my issue. Thank you so much!!!
Like most of it's fine but after doing the steps there and going into the Readme included in VRChatExamples this part gets tricky to some people. Like yes it includes the explanations for everything but there's no step by step on the basics. A lot of people can't absorb information properly from huge blocks of text like this.
I have a hard enough time just looking at graphs.. thank god for cyans triggers once we have those.. life will be easier.
Yeah, I understand that. I was limited when making that Readme by needing it all to be plain text to be easily included, so I formatted it as best as I could to make the big blocks easier. But I know lots of people need graphics and videos to understand the material, so I'm working on getting those built and hosted on the Readme site.
Sounds good 👌
And don't get me wrong I think you are always doing a good job on udon and how active you are helping people on discord
Thanks, I honestly appreciate that a lot, as I appreciate the effort you put into making the tools to help people out and guiding them to the answers here.
i have a canvas set to default as UI layer is uninteractable yet i still cant seem to use the buttons and sliders ingame
did you add a VRCUIShape to the canvas?
oh, didnt realise that i had to do that
Yep - that should do it
thank you so much!
also, in order to massively cut down on testing times, is there a way to set an object as the local player inside the unity editor
cant test it in unity itself because Vector2 player = Networking.LocalPlayer.GetPosition(); fails as theres no local player
be careful with the above - it's very handy but works differently than the actual VRChat Client - be sure to Build & Test often to make sure that things actually work the way that CyanEmu shows
yeah, will do but it would help prototyping
I understand the pool table prefab has to be at y=0, but not sure why. is that part of the raycast check?
I try my first Udon Steps and I would like to trigger a sound when the player controller walks into BoxTrigger, but I don't get it working. I tried already several different variants but somehow i don't get it ? I hope someone here can help me to get this simple first step done.
The white connections that come out of triangles are the "Flow" connections. Your flow goes into a branch which has checks if a provided boolean is true. Since youre not providing a boolean it uses a default value (the checkbox) which is false in your image. OnPlayerTriggerEnter is an "event" which means that it only gets invoked when it actually occured. You do not need to do any kind of boolean comparison.
First of all thx for the very fast response! I understood I should take "branch" out and connect "the triangle" from Trigger directly to "the triangle" of the Play function ... but sadly when I hit did that and hit test and build it gave me 4 times an error to which I said "ok" and then I entered my world but the function didn't worked?
What kind of error?
Its working ! ...I don't have the audio on play on load, so the world is silent after loading. Then I run into the trigger and the sound starts ! ... I don't know what I did to get rid of the errors but they don't appear any longer. That was quick. So now i have to thing again how manage to animated or script load on on position a full folder of several "ply" files. Normaly in Unity 2020.3.1 i use just a plugin of my Volumetric Capture software and done. But for 2018.4.20 there is no such plugin. I manage with the PCX package from github to get Point cloud scans of rooms and stil frame of my volumetric video into 2018.4.20 and i spend now several hours with the hope that i understand the scripts used inside of the 2020 plugin but in two of the main Script the 2020 plugin used the "UnityEnigine.VFX" as the script writer wanted some more advanced function for visualisation but for me would be the normal PointCloud in movement already enough 🙂 ... but this is a much more advanced problem. Thx for your super fast help "TheHelpfulHelper" but i guess in this ply topic i am somehow alone.
Can somebody explain what Udon is?
?whatisudon
VRChat Udon is a programming language built by the VRChat Development Team for use in VRChat worlds! It enables complex behaviors and logic in VRChat worlds. Read more about Udon in our documentation: https://docs.vrchat.com/docs/what-is-udon
What’s this Udon thing anyways? VRChat Udon is a programming language built completely in-house by the VRChat Development Team. It is designed to be secure, performant, and easy to use via the VRChat Udon Node Graph, a built-in visual programming interface that uses nodes and wires (we call them “no...
Again thx a lot ... I start to understand now how it works ... sure I am crazy at the beginning but i manage now already Play unPause and Pause ... thx again for your help ...
My vrchat isnt letting me login what dose that mean?
they're having a server issue
lol
How long will it take to fix it?
Its might take about latter to night is what I was told but not sure yet EST hmm like to say 11 or 1 not sure
How do I dynamically create an array in Udon (and set a variable to it)?
I have a public int[] x, so the size can be set in the editor.
Now I want a few other arrays (y, z) to be constructed with the same length, one is an int array filled with 0s, and the other a bool array filled with falses.
like, we have a constructor for arrays taking an int, I suppose this is length, but I did not find a way to set the other arrays y or z to such a constructed array
Hello! How do I make pick up items not local when being picked up? Only thing I can find is from 2 years ago. It says to add object sync, but I don't see it in unity. I assume it's not there anymore because of an update?
At the moment, add an empty Udon Behaviour component to it and check "Sync Position." Object Sync as a component is available in the Networking Beta and we should be seeing it in the near future.
thank you!
@floral dove Reagarding the unity UI i know this is quite common knowledge however its not documented anywhere on the docs perhaps add something to that regard
will udon network events run on gameobjects that are disabled on other clients? IE I enable a cube, and run a network event on that cube while someone else has it locally disabled
From what I know Udon is paused on objects that are disabled so NO it will not run on those clients that have it disabled
Can anyone tell me why this is returning Null for the RandomNumber float value when testing it in Unity? As far as I can tell it should be working.
the graph is known to have issues when you combine flow together like that. I don't think you need onmousedown, interact works just fine on it's own
I haven't seen flowpaths combined from two events doing that yet. huh.
If you know even a bit of C# I recommend doing worlds in UdonSharp 🙂 Check Pins @hushed gazelle
Ahh of course, duh.
I keep forgetting combining flowpaths has issues, thanks.
Also mousedown was just so I could test it in Unity through the game window.
if you want to test in editor, check out cyanemu https://github.com/CyanLaser/CyanEmu
Would be really interested in why combining as seen above sometimes doesn't work, while this works perfectly
I think the difference is that in geek's example, they are immediately setting a variable after the combine
oh wait no... oh god no. I didn't test the MidiNoteOff branch. I don't have any midi device that sends MidiNoteOff.
That's still a singular workflow, it's just making individual calls to those variables at different times. Edit: Oh wait, missed the block Also @stark adder I am well-versed in C#, I personally avoid UdonSharp because I do this for fun and code for work. I ain't mixing the two.
maybe it's still broken after all, dang it xd
Ah 🙂 Well I do C# both for fun and work.. 😄
(but please, PLEASE automatically reroute MidiNoteOn with a vel of 0 to MidiNoteOff automatically... Please.)
if the nodes already did that, we would have
1- not have this hacky thing seen above
2- no problems with combining paths in this situation
3- all Udon MIDI maps would work with MIDI spec, aka. with all keyboards
Trust me, @stark adder you want a hard gap between work and personal relaxation where possible or you can burn out badly in the long run. Sticking to the graphs is a nice insulator for me.
Idk Graphs are just so.. Unorganized for me and in graphs I would be able to do even 1% of my world..
@hushed gazelle Doing this: https://gist.github.com/Miner28/a455a1444a729dc33ecf826da11564a4 in graphs.. I think I'd rather go and jump from window than do that in graph
Or doing one of my 8K lines long scripts in graphs.. Big NOPE
Yeah I'm not saying UdonSharp is bad, just that there's a reason I personally don't use it.
Yea, I understand your reason 🙂 Its true that sometimes its just good to separate work from your as you said personal relaxation
i actually find them pretty organized. It's just that they are currently slow to set up when doing bigger stuff, but that'll be fixed in the next push. e.g. Now it takes 6-8 seconds to spawn a new node in this xd
and node programming in general is a godsend when working in close cooperation with designers with less to no programming experience, lets them change stuff easily without needing to really "know how to code"
And another thing is some things like Jagged arrays.. Not possible in graphs, possible in UdonSharp
For what I do I used Jagged array more than 1 time
Or not sure, basically never done Udon Graph but there are no parameters to functions right ?
Idk 😄 Just not something for me.. lol
But I'd like to try and recreate one of my scripts to Graphs though.. Would be really fun to see how it looks.. 😄
But sadly I don't have a week for just recreating a script to graphs for fun
Outside of VRChat, when doing anything that isn't gameplayfeature programming, normal code is absolutely the go-to. You wouldn't want to write parsers for hardware that spams a constant flow of bits in nodes. You wouldn't want to write networking in nodes. Stuff like that.
But in Udon, same as Whaddageek, I like to use nodes for everything because... it's relaxing^^
flashbacks to the time i did my entire bachelor's thesis practical project in nodes in UE4...
This is just the basic VR movement. Can't zoom out far enough to include everything on the purple area on the left xd
how do you make physical buttons? I dont seem to be able to find a tutorial anywhere
(useful to add that i use U#)