Create an Automatic Door - Udon / VRChat SDK3.0

Sdílet
Vložit
  • čas přidán 30. 07. 2024
  • Here's a tutorial on how to make a door open and close automatically, when a player gets near it
    While this script is not networked, it instead locally opens the door for all players in the scene; avoiding any extra networking chatter
    This was a script that I heard been talked about a bunch in the discord a while ago, and so I wanted to make a video explaining it, so it's easy to find.
    The video ended up being a bit long, but hopefully it was helpful. As always, if you have any questions, feel free to ask in the comments bellow! ^^
    #VRChat #Udon #SDK3

Komentáře • 137

  • @zydawn
    @zydawn Před 7 dny +1

    thanks. a very usefull routine. I tried to build one myself but after hours of failure i'm glad i found this.

    • @PlayerBush001
      @PlayerBush001  Před 7 dny

      hey, that's awesome! Even if you weren't successful, I always love hearing people giving udon a go ^^
      It took me multiple discoveries to get the code I showed here, so I'm glad I was able to help ^^

  • @odnnikchicken
    @odnnikchicken Před rokem +4

    Thank you for all your tutorials, they're always detailed and easy to follow. The techniques you teach are also very easy to implement and use in other, maybe more specific, Udon programs. You kickstarted my journey into building worlds with functionality, and I now consider it a hobby of mine. I just wanted to share my gratitude - for this video, your past videos, and any future tutorial you post! You're amazing!

    • @PlayerBush001
      @PlayerBush001  Před rokem +1

      aww, thanks for the kind words! I sometimes wonder if I go a little too detailed, and if it would be better to just be more vague and cover more stuff. I try and cover the fundamentals, and cover a different fundamental in each video (this one was the behaviour of 'event, onPlayerTriggerEnter' when re-enabled) so it can be used for later reference, but sometimes I feel it falls on deaf ears with some of the questions I get.
      Glad the videos have been helping so much, and thanks for the support! ^^

    • @odnnikchicken
      @odnnikchicken Před rokem +1

      @@PlayerBush001 yeah, it’s a difficult skill to be able to recognise the fundamental building blocks which can then be transferred and adapted to different cases. But the way you explain this is akin to some of my old high school teachers, which I greatly appreciate! Amazing work and I can’t wait to learn more from you

  • @krajsyboys
    @krajsyboys Před rokem +4

    I know about most of what UDON has to offer and how to make most stuff, but I watch these types of videos anyway incase I learn something new.
    This is one where I did learn something! I did know that the OnPlayerTriggerExit executed on respawn, but not on player leaving the game.
    That's definitely something to look out for. Thank you!

    • @PlayerBush001
      @PlayerBush001  Před rokem

      Threw me off on one of my scripts in the past. Glad I can help pass on the knowledge ^^

  • @MaxTGames
    @MaxTGames Před rokem +3

    i already finished the Joke Vid of it... but this one is actually easier to follow Good Job

    • @PlayerBush001
      @PlayerBush001  Před rokem

      Haha! You sir a truly 'strong and patient' like you said. I commend you for your effort ^^\

  • @tera_333
    @tera_333 Před rokem +1

    Another great explanation of how udon noodles work ^^ Thank you so much

    • @PlayerBush001
      @PlayerBush001  Před rokem

      Happy to help! those noodles are truly delicious ^^

  • @AKRFTR
    @AKRFTR Před rokem

    "I can still hear all the outtakes in my head" xD
    Another great video none the less, keep up the good work!

  • @PuddingASMR
    @PuddingASMR Před rokem +2

    You are a lifesaver!!! I was dreading trying to figure out how to make a private room locking system that counts or recognizes whether players are inside or not. This is super helpful in unlocking the private rooms when players leave, respawn, or crash etc etc. thank youuu!!!!! 🙏🏻😭
    Keep up the amazing tutorials

    • @PlayerBush001
      @PlayerBush001  Před rokem +1

      ooo, that's a cool use case for it! Glad this video helped ^^

    • @thatguydonut6566
      @thatguydonut6566 Před rokem

      How did you make it detect that there's nobody inside?

  • @nameredacted2220
    @nameredacted2220 Před rokem

    This is what i’ve been waiting for, thank you so much for making these vids as always keep up the good work and again thank you, i don’t know if you have done this yet but is there a way to make a random interval noise player? like a randomized noise queue in vrchat worlds?

    • @PlayerBush001
      @PlayerBush001  Před rokem

      Thanks! Glad the videos have been helping ^^
      As for your question... I'm sorry, I'm completely lost as to what you're asking ^^'

  • @gamezman709
    @gamezman709 Před rokem

    Do you think you'll make a tutorial down the line about the player tags for Udon? Im pretty sure they give a player roles from what i've read. Your tutorials are so simple and descriptive that something like that would be easy for an amateur like me. If not, do you know of any guides that do exist for it? Being able to add roles and role specific actions would be a cool thing to learn.

    • @PlayerBush001
      @PlayerBush001  Před 11 měsíci +1

      I have yet to play around with player tags as of yet, but it would definitely be something I would consider; given they are probably quite useful

  • @BuxtonHouse
    @BuxtonHouse Před 8 měsíci

    Hi there, im not sure if my Unity is outdated but i cant seem to have 2 animations under one .anim like i have to make the one door separate from the other and i think it creates a spanner in the works further down the line as i am so so new to this i wouldnt know how to sort it out

  • @user-dq5wi8mt7k
    @user-dq5wi8mt7k Před rokem +1

    Hello again! I was very grateful for sloving my udon problem perfectly last time! This time, I met another problem, but I believe it shouldn't be difficult, just a lack of knowledge on my part. I learned from other tutorial videos how to clone objects, and now I can see many objects with the same name in Unity. However, I'm wondering how to create a toggle that can make all the clones disappear (deleting is better, or being inactive is also okey)?

    • @PlayerBush001
      @PlayerBush001  Před rokem

      To spawn in an object, you can use a 'VRChat, instantiate' node, and that node will output a gameObject variable. That gameObject variable is the object you just spawned into the world, so if you were to put that into a gameObject array, and keep a list of all the objects spawned, you could then go through that array and delete all objects in that list.
      I've had some issues last time I played around with spawning in objects, but I believe the node 'unityEngine.gameobject, destroy' is the one you use. There is also the node 'networking, destroy', so perhaps try that if the first one doesn't work.
      That being said, the reason I'm not familiar with spawning and deleting objects, is that spawned in objects will never be synced. Instead, you can use an object pool to spawn in and out objects as you need them. It does mean that there will be a cap as to how many you can have in a scene (the amount in the pool), but for most cases, this is the best way to go (or it can be simplified with just a particle system). I have a video going over how to use an object pool, where I made a deck of cards, if you're interested (czcams.com/video/s96fkF2MsaY/video.html)
      Hope that helps ^^

  • @rarenederlanderopyoutube7793

    hey, question. is it possible to add a rule section before the door opens? like, acceptbutton before the door opens

  • @HarrySylveon
    @HarrySylveon Před 11 měsíci +1

    by any chance is it possible to copy and paste the automatic doors with the scripting, animations and trigger without it going weird or do I have to constantly repeat the whole process for each door in my world?

    • @PlayerBush001
      @PlayerBush001  Před 11 měsíci

      if you were to copy and paste an obj that contains everything as a child of it, then unity will sort everything for you. once copied, you can separate them out without breaking anything too.
      Hope that helps ^^

  • @mintzoeygames
    @mintzoeygames Před rokem +1

    Another question for map design; How do you make audio occlusion or audio low-pass filter for indoor areas and/or specific areas to muffle outside noise/music or just other world sounds but doesnt muffle voices, how would you do this? bonus points if its possible to make it a fade transition instead of it being an instant transition! Thank you so much

    • @PlayerBush001
      @PlayerBush001  Před rokem +1

      Sorry for the late reply!
      I don't believe there is any way for audio effects to effect the player (other than reverb zones).
      To add a low pass filter to an audioSource however, you simply need to go 'add component, Audio Low Pass Filter'. Now, this component has a slider that is a float value, and this can be modified either with an animation, or by using the node 'AudioLowPassFilter, set cutoffFrequency'.
      For a simple setup, I would recommend just using an animation & animator; and then when you hit a trigger when entering, get it to play an 'animator, (string, float, float, float) set float' node, to say how far along the animation you are. The reason for using the '(string, float, float, float)' option, is that it will give you settings to dampen the updating of the float, and it should be an easy way to add smoothness (testing needed).
      The only other method I can think of off the top of my head would be to use a cinemachine path, and then use 'cinemachinePathBase, FindClosestPoint' node to get the closest position that is on the path. Then evaluate that location, and see how far along that path you are, do a bit of math scaling, and set the low pass filter to be that new value. Honestly, I don't think the extra effort is worth it though, as irl, the transition from behind a pillar to in front of it is pretty quick.
      Hope that helped, or that you already found your solution ^^

    • @mintzoeygames
      @mintzoeygames Před rokem

      @@PlayerBush001 oof that seems pretty complicated, but i think i know what you mean, ill give a few tests a go!

  • @necatron73
    @necatron73 Před rokem

    Any chance of a animator off then back on after some time? I'm trying to make a ragdoll transition from animation idle to ragdoll on (which I can do) but then i want after a few seconds the animator turns back on and transitions to standing from fall.
    Its mainly the second part thats bugging me.

    • @PlayerBush001
      @PlayerBush001  Před rokem

      I'll be honest, I don't know what way I would go about doing this. It's pretty easy in unreal engine, but I don't know how unity handles rag-dolls ^^'

  • @auxiefox
    @auxiefox Před rokem +2

    i have a real question, was the joke vid just an un edited version of this? or did you do that all on purpose? xd

    • @PlayerBush001
      @PlayerBush001  Před rokem +1

      kind of... My current process for making a video is:
      1) Record a draft video. this will have lots of long pauses, basically on every sentence, to allow me to think through each step and what needs to be said.
      2) Then take the audio, do a 'truncate silence', to delete any long pauses and make them only 0.5 seconds long.
      3) Then upload that audio as a video, and get it to generate subtitles.
      4) Then take those subtitles and add grammer, delete repeats, improve word flow, improve explanations, and shorten parts that are too wordy or unimportant.
      5) Then record the audio for the new script. This will have a lot of mistakes, as I have a habit of skipping words, replacing them altogether, or loosing my place in the sentence. Also apply truncate silence to this as well, to make it faster to edit.
      6) duplicate the audio to keep it as a backup, and then delete any repeats or failed lines, and fine tune the audio to have natural pauses, and deal with any unwanted sounds like mouth noises, etc...
      7) re-record the visuals to follow any new changes made to the script. If the script hasn't changed too much from the original draft, I'll skip this and just use the draft (as was the case in this one).
      8) run the video through a script to delete any duplicate frames. This will get rid of any pauses, but will require me to add natural pauses back in (currently testing. Only did for last two tutorials).
      9) add both the visuals and the audio to davinci resolve, and sync them up.
      10) polish video, and do final audio eq'ing
      For this April fools video, I created the final video first. Then I just grabbed the audio from step 5, and then cut up the video to match. Then I just duplicated the parts, to fill in any gaps and match the scuffed lines ^^

    • @auxiefox
      @auxiefox Před rokem

      @@PlayerBush001 oh jeez, that's a lot! and i didn't even know you went on and did the subtitles!

  • @necatron73
    @necatron73 Před rokem +2

    Need some help.
    My I got my A.I.'s to talk using the simple A.I. prefab, a trigger on a sphere and linked that to an udon behaviour with the animation / audio tutorial you made.
    The problem is though if i have more that 2 triggers with the script it stops the other triggers from working.
    I also made a dynamic bone collider with triggers for each finger and thumb to interact with any dynamic bones o the a.i.
    Ive sent a friend request so I can show you the problem.

    • @PlayerBush001
      @PlayerBush001  Před rokem +1

      Sorry for the late reply.I'm not really able to help with this, but I'm glad that those tutorials helped get you started.
      As for the multiple triggers causing problems, that shouldn't be a problem. However, something to keep in mind, is that when you leave **any** trigger, it will call the 'event, onPlayerTriggerExit' node. This is likely where the problem is, if I were to hazard a guess (though at this point you may have already figured that out ^^').
      As for the interact between normal colliders and dynamic bone colliders, I would have to look into it, as I haven't played around with those

  • @jeshirekitenkatt1212
    @jeshirekitenkatt1212 Před 5 měsíci +1

    sometimes i wish you'd slow down when you type, or at least pause before you enter it. i often find myself having to repeat the same couple of seconds over and over and over because you type so fast, i can't see what was entered.

    • @PlayerBush001
      @PlayerBush001  Před 5 měsíci

      That's fair. This is more of a problem with how it's recorded and edited; as well as how unnatural it is to fully type them out. However, I do fully say each node I type, so if you enable captions, you should see the full name there; and it'll even be highlighted on videos with custom CC

  • @necatron73
    @necatron73 Před rokem +1

    Any idea how to have a sound play when someone whose not an admin or banned player (if the list is set up for banned players) the sound will play to notify admins but not the banned player.

    • @PlayerBush001
      @PlayerBush001  Před rokem

      didn't you ask the same thing yesterday? sent a reply to that one..

  • @mintzoeygames
    @mintzoeygames Před rokem +1

    Heyo, its me again! this time a lot more simple script in mind!
    With the particle system, how can I trigger it with a button?
    In my early days I made it a simple button that made the game object show/hide, but this made it really annoying to play with, because you would have to press it twice for it to shoot a particle again, and if you did it too quickly it would cut the animation before it stops ruining the emersion. how would you go about doing this?
    P.s. I looked up tutorials but all of them are using custom scripts (which i have no experience in) if its possible in udon that would be really nice, and its always OnPlayerEnter, I need it to be an Event Interact. Thanks once again!

    • @PlayerBush001
      @PlayerBush001  Před rokem +1

      Unfortunately, as far as I am aware, most of the particle system is not exposed.
      This means that usually you need to either show and hide the gameObject (like you mentioned), or create an animation of say the emission being active or not; create a toggle on the animator with a bool, and use it to toggle on and off different features.
      As for getting a single particle to play, sometimes the 'burst' function works well for this, but honestly I've had mixed results. Often it's more of a case of clever value managing between the animation timer and the particle spawn timer.

  • @VirtualBasketballAssociation
    @VirtualBasketballAssociation Před 11 měsíci +1

    How do i make it so when the object makes contact with the ground, it plays a sound (for example: a basketball)

    • @PlayerBush001
      @PlayerBush001  Před 11 měsíci +1

      If the sound is super short (like a basket ball hitting the ground), then you can use the script found in my first tutorial 'create a play audio button' (czcams.com/video/cQ3hWKY-NiA/video.html), and replace the 'event, interact' node with an 'event, on collision enter' node.
      If however you wanted to so something with a longer audio sound (like a bell), and thus needed it overlay and play multiple sounds at once; then you will want to also replace the 'audioSource, play' node with an 'audioSource, playOnce' node. For this node, you will have to also give it the audioClip you want it to play, and this can be done with either a public audioClip variable, or by using an 'audioSource, get clip' node, and giving it your audioSource.
      Hope that helps ^^

  • @elraptoro4203
    @elraptoro4203 Před 9 měsíci +1

    Amazing Video! Although i have a question, im my doors with sacc cars when i drive up to the door it doesn't count me to open it. i have to get out of the car then itll open but how could it count me in the car so the door could open whiles im still in the car, i used the last door udon you showed thinking itll work it didnt. Any help would be great!

    • @PlayerBush001
      @PlayerBush001  Před 9 měsíci

      Whenever the player sits/ stands in a station, their collider gets disabled. This means it won't trigger the event's 'onPlayerTriggerEnter' and 'onPlayerTriggerExit'.
      To do this, you will need to use the events 'onTriggerEnter' and 'onTriggerExit', and then check if it was the car that interacted with the trigger (can be done by just what layers the trigger interacts with). Be aware however, that if you respawn the car with 'transform, set position' while the car is inside the trigger, it won't play the event 'onTriggerExit'; as you teleported the car without using unity's physics system. Use 'rigidbody, set position' instead.
      As someone who re-coded my go karts to use sacchan's logic, I know just how hard it is to modify their code to do something different. But hopefully this helps lead you in the right direction ^^

  • @Cattuccino_
    @Cattuccino_ Před rokem +1

    Hello, I was wondering any chance on an audio guide I have been having trouble understand how to set up global audio where lets say rain effects are all around me not at a single point.
    and I notice other worlds have this problem as well but on audio the guide is how to make audio blockers, so you want to enter a house, and It's raining outside so once inside the house you stop hearing the rain, or it's nearly silent.

    • @PlayerBush001
      @PlayerBush001  Před rokem

      There are some different ways of approaching this. First, to make an audio source sound in the ears, instead of coming from a point in the world, you want to disable spatialize on the audioSource component. Then to make the audio reduce volume when someone goes inside, you just want a trigger in the world, then get it to play an animation of it reducing.
      However, you can make this better. First, I would make an udon script on the audioSource object, and make it a manager. Give it a target float, then on 'event, update', make the audioSource volume go towards that float smoothly using a 'float, lerp' node. Then, when you enter a new trigger zone, you can make a simple bit of code to give a new target volume for the manager script's target float.
      However, perhaps you always want the water to sound like it's coming from below/ water line. That would be best, but to do that, we need spatialize on. Then, on that same update loop, we want to update the position of the audioSource to always be at the player's position, for the x and z axis. Keep the y at the water line value. Now, the audio will always sound from the right position.
      However, when it comes to audio, you may also want it to sound 'muffled' when you enter the building. To do so would probably be similar to the muffled sound that you hear when outside of a club. To do that, you want to add an 'audio low pass filter' filter to your audioSource gameObject. Then you modify the cutoff frequency to match the distance your head is from the water audioSource. You will also want to make it lower when you go inside. And.. you will also want the water's volume too, to make it get louder the closer you are to the water.
      As for making a tutorial on this, I might do. Would definitely be something useful to have out there.
      Anyways, I hope that helps ^^

    • @Cattuccino_
      @Cattuccino_ Před rokem +1

      @@PlayerBush001 Oh, let me copy and paste this thank you so much for writing all this, and thank you for posting videos, a lot of Vrchat world makers seem to want to keep their secrets, and it makes the world making process stressful or the feeling of avoidance of wanting to do it all with the limited info that's out there.
      I kind of wish vrchat or a player could make a site for all the help guides players of made and put them all in one place for easy search.

    • @PlayerBush001
      @PlayerBush001  Před rokem

      @@Cattuccino_ glad it helped ^^
      while there is probably a bit of protection going on, especially with newer creators, I think it's mostly a problem of effort. Takes quite a bit of time and effort to help someone, so I think most creators don't really want to. I think that's fine, but it is a little unfortunate. Personally, I think those that are willing to spend hours and hours learning and doing stuff in unity, tend to be more introverted, so I think it's only natural
      If you are fine with written tutorials, I would recommend looking at the tutorials on vrclibraries. Also, check out vrcprefab's tutorial section, as there are a bunch of random tutorials there that are rather hard to find elsewhere.
      If your more into videos but don't mind presentations, check out TLX here on CZcams. There are some good talks there, and the one on ai is one I often recommend to anyone looking to do ai/ npcs (as I have yet to delve into it myself, thus no video)

  • @Pawlsar
    @Pawlsar Před rokem +1

    Wondering how do you add footsteps when you walk in VRC

    • @PlayerBush001
      @PlayerBush001  Před rokem

      I think there is a prefab for this, but i can't seem to find it....
      To do so however, you will need two small spheres; one for each foot. You will want to put these on a layer that interacts with your environment, but not with the layers 'ui, player, playerLocal, uiMenu, walkthrough or reserve2' (basically anything the player doesn't interact with). We will also need to make their sphere colliders are set to 'isTrigger', and add a rigidbody set to 'isKinematic'. We will also want to delete the 'mesh filter' and 'mesh Renderer', as they won't be used, but for testing purposes, keep those till you know it's working.
      Then, we will want to make this follow the players feet. this kinda similar to the first script on my 'obj follow player' tutorial (czcams.com/video/TlRSzmnDV18/video.html), so ill be referencing that script, as it updates the position of the object every frame. However, unlike that tutorial, we will want to follow the foot of the player, instead of just their position. To do so, you can put the local player playerapi into a 'playerapi, get bone position' node, and set it to follow the left/right foot. Now, we want to create an 'event, onTriggerEnter' and get it to play a foot step sound. have a look at my first 'play sound' tutorial for reference (czcams.com/video/cQ3hWKY-NiA/video.html), just change the event node.
      However, the node 'event, onTriggerEnter' only plays when the physics calculations see it go through an object, which doesn't happen when we teleport the object with 'transform, set position'. So, we will want to replace the 'transform, set position' node with a 'rigidbody, set position' node, so that this updates to the new location.
      you may also need to change the 'event, update' (which plays every frame) to an 'event, fixedUpdate' (which plays every physics frame), but I would only do that if you need to, to help save lower end machines like our fellow questers.
      ... and that should be it. If you want different sounds for different objects, you will need to get the gameObject from 'event, onTriggerEnter' (collision) value, and then get the info on what sound it should make; which could be done a couple of ways. Off the top of my head, you could use a tag, something in it's name, an udonScript on it, an audioSource that never plays, but has a clip in it, etc... (Haven't really found what is the best way yet)
      Haven't tested this either, but it should be something like this. Hope this helps ^^

  • @MrPalps
    @MrPalps Před 11 měsíci

    So I know that this is very unrelated, but you seem to know what your doing so I'll ask you, is there a way to create a chair that automatically resizes your avatar to match the size of the seat? To be specific btw, I need this for an avatar not a world.

    • @PlayerBush001
      @PlayerBush001  Před 11 měsíci

      There is for worlds (aa chairs is one asset) but not for avatars afaik.
      Seats in vrchat are just stations. The way seats work in vrchat, is that they teleport the player, so the players origin point matches the station. Then, if "seated" is checkmarked on the station, the player will play the 'seated' animation for that avatar. Because of this, vrchat has no way of knowing the butt's location on the avatar, and thus can't calibrate to the correct height and depth.
      The way worlds get around this, is by getting the distance between the foot and knee for height, and hip to knee for depth; and then just guess the rest. This is all done with coding via udon, which is a lot more powerful than what is available for avatars. This maybe is possible with the new avatar dynamics, but I don't believe so.
      The best I can think of is a slider adjuster in the avatar menu, or perhaps you might be able to make an object that players move around to adjust the seat. Just remember that all scaling will be done as if the player was standing in the station, as the only difference is the animation playing

  • @ThunderCurrie
    @ThunderCurrie Před rokem +1

    Do you still make tutorials? I would love to know how to make a UI text element that is a countdown

    • @PlayerBush001
      @PlayerBush001  Před rokem

      I do, just not at the same rate as I use to. This is something that would be pretty good to make, so I might cover this ^^

  • @BuxtonHouse
    @BuxtonHouse Před 8 měsíci +2

    REMEMBER TO UNTICK STATIC (in the top right) ;_;

  • @user-dq5wi8mt7k
    @user-dq5wi8mt7k Před rokem +1

    Hello PlayerBush001,Thank you very much for your videos!
    I'm having some difficulty creating a world in VRChat. Can you please advise me on how to detect when one object collides with another, and execute an event only if the velocity is above a certain value (So that there is a feeling of smashing only if the velocity is sufficient)?

    • @PlayerBush001
      @PlayerBush001  Před rokem

      Thanks! Glad they are helping ^^
      For detecting the collision of two objects, you will want to use the event 'onCollisionEnter'. With this node, you will get an 'collision, other' value, and this can be used to get some information about the collision. there are two nodes that I would use: either 'collision, impulse' ("The total impulse applied to this contact pair to resolve the collision") or 'collision, relative velocity' (The relative linear velocity of the two colliding objects). I would use relative velocity if you don't mind the two objects glancing over each other, while I would likely use impulse if they are meant to be smashed together (testing needed).
      Once you have chosen your node, you then want to plug the resulting vector3 into an 'vector3, get magnitude' node, to get how big the collision was. Then put that into a 'float, greater than' node, and finally put that into a branch node. Now, if the speed difference is greater than the float set, it will play the true arrow; into whatever code you want to play.
      A little long, but I hope that helps ^^

    • @user-dq5wi8mt7k
      @user-dq5wi8mt7k Před rokem

      @@PlayerBush001 Thank you very much! I have successfully tested! Additionally, I have discovered a fact that only impulse can be used here, as the relative velocity node will input vector3 at only once, and only impulse can ensure the detection of the velocity for each impact.

    • @PlayerBush001
      @PlayerBush001  Před rokem

      @@user-dq5wi8mt7k awesome! Glad to hear!
      Interesting observation with the impulse vs relative velocity. May have to look into that myself ^^

    • @user-dq5wi8mt7k
      @user-dq5wi8mt7k Před rokem

      @@PlayerBush001 well,I have tried many times and have come to different conclusions (the relative velicity is strange), so I dare not draw any conclusions now..

  • @greykenny
    @greykenny Před rokem +1

    Heya @Playerbush
    Do you have or do a tutorial making a working intercom where we can communicate to each other using a button like a ring camera

    • @PlayerBush001
      @PlayerBush001  Před 11 měsíci

      no, but it would be a good one to make. ZenZero Studio's does have one on this(czcams.com/video/n0vwKR79DyE/video.html), where he creates a zone that boosts a players audio, and this would work similarly.
      My torch video might be a good place to start(czcams.com/video/-p-QPxtWg3o/video.html). Take the logic from that video, but instead of getting it to turn on the torch, get it to amplify the owner's voice (the person who's holding the 'torch')(networking, get owner). Use the logic from ZenZero's studio, but instead of the two different event,s use a branch node to separate them, and use the synced bool to switch between them. If all goes well, you should have a megaphone setup, that will amplify you voice when you 'use' the object.
      Now, to turn that into an intercom, you can replace the 'event, onPickupUseDown' node, with an 'event, interact' --> 'networking, set owner(networking, localPlayer)' nodes, and this will make it a button, that also amplifies your voice for everyone. The direction will still be from your player (as I don't believe you can change this), but it should work well enough either way.
      Hope that helps ^^

  • @shaneparsons7797
    @shaneparsons7797 Před rokem

    I couldn't find a way to contact you but I have a really strange bug when creating world for VRChat, when a certain trigger is activated my Quest 2 headset 75% of the time goes into passthrough mode always at the same point when the trigger is activated any ideas?

    • @PlayerBush001
      @PlayerBush001  Před rokem

      Sorry, I don't have any idea. I'm only really knowledgeable around udon, and this seems more of a system or vrchat problem.
      As far as I know, Udon doesn't have access to the oculus pass-through
      If I had to say something, check that it's not something dumb like a cable hanging, causing it to double tap. Perhaps try Disabling double tap, and check if that fixes it. If so, you may have a faulty sensor (dunno why it would link to the trigger)
      Also might be a good idea to reinstall vrchat. It's a basic check, but sometimes that's all these things take

    • @shaneparsons7797
      @shaneparsons7797 Před rokem +1

      @@PlayerBush001 Thank you for getting back to me! I've actually discovered it was a sound I was using that maybe the bass vibrated the headset in such a way to trigger the double tap?
      However disabling the double tap function fixed the issue just a really weird thing to happen!
      I don't know what you have in the pipeline for Udon development but I would really like to see a tutorial on pathfinding? Something that either randomly moves around the world randomly or on a set path and then something on it finding it's way to the player?
      Just a little idea, thank you for all your uploads I have gone from knowing nothing a few days ago to creating my very own world that friends and family have loved and praised and I mostly owe that to your videos!

    • @PlayerBush001
      @PlayerBush001  Před rokem

      Glad to hear they are helping! ^^
      I was an interest problem to have. First I've ever heard of it, that's for sure
      As for ai scripts, I don't plan on covering them for now (have yet to play around with them in my own projects) but Centauri did a really good talk on ai's for vrchat (czcams.com/video/xVXXS7HX7Og/video.html). They also made an asset of premade ai's that you can try out, so I definitely recommend check them out if you want to look into it ^^

  • @mintzoeygames
    @mintzoeygames Před rokem +1

    Could you do a video on how to set different spawn points for certain people (when joining the world, not respawn points), this would be really helpful for an upcoming world that i would like "Staff, Security and Other people" to spawn in different locations when joining the world!
    If this is possible ofc!

    • @PlayerBush001
      @PlayerBush001  Před rokem +1

      you definitely, can, and I remember explaining this to someone, but i can't seem to find the comment...
      As for how you would go about doing so, you will want to use my admin door tutorial (czcams.com/video/ifJcPZV8T4U/video.html) as the base for your script. This will be used to create a whitelist of those that have a special spawn location.
      On that script, we will want to replace the 'event, interact' node with an 'event, start' node; as we want the code to run when the game beings.
      Then, much like how I did it in my 'change players respawn point' tutorial (czcams.com/video/qpCWzGmfXKI/video.html), if we are an admin, we will want to move the respawn obj to the special location. To do so, first create a public transform variable for both the new location, and the respawn obj. Then delete everything after the bottom branch node, and replace it with a 'transform, set position and rotation' node. Put the respawn obj into the instance slot, and grab the rotation and position of the target location obj, and set our respawn obj to be that
      Hope that helps ^^

    • @mintzoeygames
      @mintzoeygames Před rokem +1

      @@PlayerBush001 I can understand how it works, but I wouldn’t know how to make it work, if that makes sense 😅

    • @PlayerBush001
      @PlayerBush001  Před rokem +1

      It's not a video I'm happy to release/ broadcast publicly, given all the petty behaviour on the platform, but here is a video on how to make it. Was testing some vid stuff, so let me know if you noticed anything different (hopefully not)
      czcams.com/video/-ksCzNtXMe0/video.html

  • @KK-kh7py
    @KK-kh7py Před rokem +1

    Thank you for the tutorial! What about a scenario where the doors are opened by default, and whenever a player enters the trigger area, the doors play the close and open animation? In this case, every time a player enters the trigger area, the doors will play the animation, similar to the SCP gas checkpoint.

    • @PlayerBush001
      @PlayerBush001  Před rokem

      Glad you liked the video!
      As for your question, nothing would actually change scripting wise. If you flip the animations around in the animator, and adjusted the trigger to be only the middle of the inside; it would give you the desired effect ^^

    • @KK-kh7py
      @KK-kh7py Před rokem

      @@PlayerBush001 Im also thinking to make a door wherever a player enters the trigger area, check the player is VR or desktop, Input.GetkeyDown to send a custom event to open the door, like the doors in Murder world, i kinda know how to setup for desktop player, but i have no clue for VR.
      edit: nvm I figured it out myself

  • @user-qg9xv4jk1c
    @user-qg9xv4jk1c Před 5 měsíci

    Idk if im just stupid but everything works up until i test it out. The trigger is not activating when i go into play mode but the animation would go normal if i trigger the "isopen" box. I watched this so many times and it just wont trigger open without manually checking the box.

    • @PlayerBush001
      @PlayerBush001  Před 5 měsíci

      Make sure you have dragged and dropped the animator object into the animator variable. If you can't see it in the udon behaviour component, then make sure to make the variable public.
      If you have done that, I will need to see the code to help. Feel free to post a screenshot on the discord, so I can find what you might be missing

    • @user-qg9xv4jk1c
      @user-qg9xv4jk1c Před 5 měsíci

      @@PlayerBush001 Yeah im pretty sure but ill post it on your discord soon thank you

  • @OvernightOats1
    @OvernightOats1 Před 4 měsíci

    My player is sitting in a moving vehicle when entering trigger zone but it is not triggering, but it will trigger when I walk into it, is this an easy fix?

    • @PlayerBush001
      @PlayerBush001  Před 4 měsíci +1

      The player's collider gets disabled when they are in a station. The fix is to use onTriggerEnter instead of onPlayerTriggerEnter, and to check for the car. With that method, you will need to check for both the player (onPlayerTriggerEnter) or the vehicle (onTriggerEnter).
      Alternatively, you can have an object that follows the player's head, and detect for that instead (onTriggerEnter); but if you want it to work for multiple players, you will need to give an object to each player. This can be done with cyan player pool, with a player following script.
      So yea, not super simple, but I hope this helps ^^

    • @OvernightOats1
      @OvernightOats1 Před 4 měsíci

      thanks! Still testing different methods and learning but hopefully I can get it soon@@PlayerBush001

  • @pixyelph
    @pixyelph Před 11 měsíci +1

    Could you please make a video on how to set up object spawn/destroy in a world? your videos are awesome btw!!

    • @PlayerBush001
      @PlayerBush001  Před 11 měsíci +1

      I generally recommend that people use an object pool, rather than spawning and despawning objects (though that would be a good thing to cover as it does have it's use cases). The problem with spawning an object, is that it can't be synced with an object sync. Instead, (in theory) the only way to sync a spawned object would be to stored a bunch of synced variable/s on a permanent object, and then applied to the spawned object from there.
      Object pools on the other hand, work by having a bunch of objects that are disabled, and then activated as they are needed. It does mean there is a maximum amount of objects, but they are a lot easier to sync as needed. I made a video covering how to use object pools to make a deck of cards, so check that out if you are interested (czcams.com/video/s96fkF2MsaY/video.html)
      If object pools don't work for you and you don't need them to be synced, Vowgan has a video on spawning in objects that I would check out. I don't believe it covers despawning, (which is done with a "unity, destroy" node from memory (I only really do it with udon#)), however it nicely summaries spawning them in. It's also a little old, but hopefully not too much so
      hope that helps ^^

    • @pixyelph
      @pixyelph Před 11 měsíci

      @@PlayerBush001 omg thank you for the reply!!!! I’ll give this a try for sure!!!!

  • @cyberstar251
    @cyberstar251 Před měsícem

    can this be copied into other doors so i don't need to do animation controllers for each one? or will one set them all off?

    • @PlayerBush001
      @PlayerBush001  Před měsícem

      You will need an animation for each door. You will also need an animator controller for each door as well.
      However, if the door/ door child has the same name (and it swings the same direction) the animation file will be the same and can be reused. I believe you can also reused the same animator controller file too, as that won't change. Because of this, if you duplicate a door, it will work for that one as well.
      As for the udon script, each udon script has a public animator variable on it. This will tell the script (in the inspector) what object's animator to play the animation. If you want to reuse the script (which you should do when you can), all you would have to do is put a different animator into the public variable. If you duplicate the door with the button, unity will automatically change the variable on the new button to be the new door
      For more information on variables and the likes, have a look at my 'how to toggle anything' tutorial, where I go over variables in more detail (czcams.com/video/fuDK8fYNuh0/video.html)
      Hope that helps clear things up ^^

    • @cyberstar251
      @cyberstar251 Před měsícem

      @@PlayerBush001 thank you, im also trying to figure out the networking part so other players can see the doors open, i already found the one for the simple clickable door but im not sure if that networking script will work if i just copy that for this tutorial's program. also how do you switch between players?

    • @PlayerBush001
      @PlayerBush001  Před měsícem

      @@cyberstar251 the second half is all about how to make it networked...
      Basically every video I make includes a networked version, as it's kinda important for a multiplayer game. You just need to watch past the in-game test for local only

  • @keyf1106
    @keyf1106 Před 2 měsíci

    Great video, I was able to easily make the animation but when the door goes to open state it bounces the whole time

    • @keyf1106
      @keyf1106 Před 2 měsíci

      I'm thinking it's probably because my trigger is so small

  • @CabaBearr
    @CabaBearr Před rokem +1

    How does one make it so the door gives off a sound when opening/closing :0 ?

    • @PlayerBush001
      @PlayerBush001  Před rokem +2

      to do this via code, you will want to add an 'audioSource, play' node before the 'animator, set bool' node. You will however need to check if the door is already open, in case it's the second person to enter, as it will also play this event. To do so, you will want to add an 'animator, get bool' node, and check to see whether or not it matches the bool from the 'int, greater than' node. If there different, that means that the door is changing state, and so we want to play the 'audioSource, play' node, and then open the door with the 'animator, set bool' node. If not, the event doesn't need to play anything (we currently aren't bothering to check, as it didn't mater in the basic code).
      However, the easier way to do this is just to have an audioSource on the door itself, and enable 'play on awake'. Then for the door open/ close animation, you just need to turn off that object for one frame at the start of the animation; before re-enabling it. This is honestly what I would recommend if you aren't familiar with udon
      Hope that helps ^^

    • @AztecAngelo
      @AztecAngelo Před 9 měsíci

      @@PlayerBush001 I tried following what you said. Plugging the animator variable into an animator, getBool node into one half of a Boolean Equality node, and the Counter variable and int GreaterThan nodes plugged into the other half. Then that Equality node plugged into a branch. From the Branch I have the play audio node before the animator SetBool node on the false output, and the true output going direct to the animator SetBool. The sound effect fires when it should, but I do get a "Parameter 'Hash 0' does not exist" warning in the console; looks like its pertaining to the Animator.GetBool (int), and the animation no longer fires. Am I hooking this up incorrectly?

    • @PlayerBush001
      @PlayerBush001  Před 9 měsíci

      @@AztecAngelo Maybe? I don't know if that error message is really related. I would need to see an image of what you have in order to debug anything. Feel free to join the discord and post a pic (link in description... though don't know if it is in this older vid)

    • @AztecAngelo
      @AztecAngelo Před 9 měsíci

      I figured it out, I had two problems.
      1. I needed to change the animator.GetBool (int) to (string) and type in the animator variable name.
      2. I was connecting the true and false paths into the same Animator.SetBool node which was causing the animation to not fire. You need to duplicate that whole section for each path of the branch.

    • @AztecAngelo
      @AztecAngelo Před 9 měsíci

      @@PlayerBush001Thanks for the quick reply. I managed to get it working 5 mins ago 😅 I posted a reply with my fix to the issue to my original post in case anyone else ran into the same issue.

  • @Doodle_Pig
    @Doodle_Pig Před rokem +1

    Can i request a tutorial on how to make a player chasing object or npc using udon graph? if thats even possible? i always wanted to make a horror game in vrchat, but i have no idea how to script. if you have a method that you know of i would love to see a video on it.

    • @PlayerBush001
      @PlayerBush001  Před rokem +1

      Centauri did a really good talk at TLX on making ai for vrchat (czcams.com/video/xVXXS7HX7Og/video.html). There is also an asset to go along side the talk, that has a bunch of examples of ai.
      That being said, as this question's been asked like 3 times this week, so I may end up making a video on it at some point. Will need to figure out a flow for it though

    • @Doodle_Pig
      @Doodle_Pig Před rokem

      @@PlayerBush001 i didnt realise this was a popular request people had. Although i can imagine why. i checked out the link and i downloaded the asset they provided, i can tell already this will be very useful and will save me alot of time lol. Thanks alot

  • @LiamFlaunch
    @LiamFlaunch Před rokem +1

    Can you make a tutorial on how to make animated free roam AI? I really wanna know how to make it for a VRC game. I wanna be able to get chased by the AI and be able to defend myself from it. Horror game basically

    • @PlayerBush001
      @PlayerBush001  Před rokem +1

      I have yet to play around with ai scripts, as I've yet to need it in any of my projects. The only simple ai would be for a horror world, and I don't really like playing horror worlds
      If you are after some ai stuff though, Centauri did an awesome TLX talk about using ai in vrchat (czcams.com/video/xVXXS7HX7Og/video.html) and I would recommend watching that to get started. They also made a prefab with a bunch of example ai's to get you started. One of the ai's in their asset is a 'Basic Player Chasing AI', so that may be exactly what you need

    • @LiamFlaunch
      @LiamFlaunch Před rokem

      @@PlayerBush001 Thank you! I've been trying to find AI stuff for so long, and nothing was coming up for some reason
      I'll be looking into this channel and their pre fabs, much love ^^

  • @mintzoeygames
    @mintzoeygames Před 11 měsíci

    Hey hey, im back again for another idea!
    I have a new world in progress and you start in an elevator, and i want a 1% chance a special sound will play on spawn
    how would i go by making a random generator?

    • @PlayerBush001
      @PlayerBush001  Před 11 měsíci +1

      sorry for the late reply ^^'
      This would be done with a randomRange node, from 0 - 100. now that you have a random number from 0 - 99, you will want to plug it into the first slot of a 'float, less than' node. The bottom value will be the percent chance, so make it 1 for 1%, 5 for 5%, etc...
      After that, you will now have a bool value that will happen 1% of the time. Plug this into a branch node, and now the true value will play 1% of the time it is tried. In your case, plug an 'event, start' node into it, and an 'AudioSource, play' node coming out from the true arrow. And plug your target audioSource into the instance slot
      Hope that helps ^^

    • @mintzoeygames
      @mintzoeygames Před 11 měsíci

      @@PlayerBush001 sorry, i forgot to delete this, you already answered my question in the discord haha

    • @PlayerBush001
      @PlayerBush001  Před 11 měsíci +1

      @@mintzoeygames figured that might be the case (used my solution there to help answer), but it's always good to have it posted on the video for anyone else that might be after it ^^

  • @moonertooner
    @moonertooner Před rokem +1

    i did the animations correctly, but when i move away from the door, it doenst shut

    • @PlayerBush001
      @PlayerBush001  Před rokem +1

      Hmm.. the most likely reason for this is the int isn't calculating correctly. To check, in the graph, hit the dropdown menu on the counter int, and make it public so you can see it in the inspector (make sure to hit the 'compile' button in the top right of the udon graph also).
      Then, jump into playmode, and watch and see if that number is going back to 0 like it should when you exit the trigger. If not, then make sure the 'onPlayerTriggerExit' is subtracting 1 (or adding -1) from the int
      Hope that helps ^^

    • @moonertooner
      @moonertooner Před rokem +2

      @@PlayerBush001 okok i got it working, for the most part it works good when one player is in the world, but if another person joins, it breaks for the person who was already there and stays open, and for the person who just joined, it works fine

    • @PlayerBush001
      @PlayerBush001  Před rokem +1

      That is a.... weird glitch to have. I'll be honest, I'm unsure as to what could cause that.
      Mind selecting all the nodes, and copy and pasting that into a youtube comment? I'm curious as to what might be causing the problems (might have to do it in parts though, as I don't know the character limit for YT comments)

  • @glitter-maniac2006
    @glitter-maniac2006 Před rokem

    I love all your tutorial but I have a problem trying to find me tutorial and I was hoping you could solve my problem, I've been trying to find a tutorial that change the players Avatar once they hit a world trigger. But I have not been successful to find a tutorial for it, maybe you can make tutorial?

    • @PlayerBush001
      @PlayerBush001  Před rokem

      I'm glad my tutorials have been helping ^^
      As for your question, it is heavily frowned upon to change someone's avatar without them knowing it will happen; hence why a tutorial on that hasn't been made. Creating a tutorial on it will just invite people to add it without any care or reason, and so not advertising how to do it will result in there being far less cases of it happening.
      That being said, the way to do it is pretty simple. Grab the avatar pedestal prefab that comes with the sdk. Then open up it's udon graph, and replace the
      'event, interact'
      node with an
      "event, onPlayerTriggerEnter(playerApi)' --> 'playerApi, is local' --> 'branch"-(true)->
      nodes. Then you just need to change the size of the collider on the object, to be the area that you want the player to hit.
      Hope that helps get you on the right track ^^

  • @mr.nebula7930
    @mr.nebula7930 Před rokem +1

    hello! Can you make a tutorial showing have you can have an npc look at you

    • @PlayerBush001
      @PlayerBush001  Před rokem +1

      I currently don't have any tutorials on rotations, as I've yet to find an easy way to explain them; or even fully understand them myself. Rotations in unity use quaternions, and they are rather complicated and difficult to get your head around.
      For what you want, I could simply say to use the 'transform, lookat' node, and that will rotate an object to face a vector3 (for the head that would be 'networking, local player' --> 'playerApi, (head) get tracking data' --> 'playerApiTrackingData, get position'). However, the npc's head will be able to look 180 degrees, which would be messed up. So, you would need to clamp the rotation value. To do so, you can use a 'quaternion, FromToRotation' node, and give it the npc's head's position, and your player's head's position; and this will give you the rotation. Then you will want to clamp that value.... which is problematic with rotations. A 'quaternion, lookTowards' node to clamp the rotation between the neutral (parent to secondary transform rotation) and new rotation, but then the up/down and left/right rotation clamps would be the same (perhaps that would work).
      Therefore, I would instead be inclined to use a grab the players head's position, and subtract the npc's head's position from that, to get a vector3 facing towards the player. Then I would normalize that vector3 with a 'vector3, normalize' node. Now that I have a directional vector3, I would want a reference transform (could be the parent), and put the vector3 into a 'transform, InverseTransformDirection' node, to rotate the vector3 into local space. Then, I would use a 'vector3, project on plane' and test on both 'vector3, left' for the pitch, and 'vector3, up' for the yaw of the head, and store the rotations in another vector3. If either values were too large, I would clamp them with a 'mathf, clamp' node; and I would also use an if statement if they were rotating the other way, and get it to flip the value.
      Now that I have both the pitch and yaw, I can now grab the parent's rotation angle, and use a 'quaternion, multiplication' node, and multiply that rotation with our new stored rotation; and then finally put that into a 'transform, set rotation' node, to apply it to the head.
      So yea, not that easy of a task. Rotations in unity are super complicated for all but the easiest task.
      Alternatively, you could also do an animation for the different look rotations, and give it to the animator to go between the two. Ultimately, this is a problem that I haven't found an easy answer to...
      Hope that helps ^^'

  • @mintzoeygames
    @mintzoeygames Před rokem +1

    hello hello again! Im creating a brand new world and i wish to add a vip, admin or 'special' tag for multiple people, either for post events/prizes or simply admins, vips or friends. but i would like for there to be a medal or tag to float above a player/s to show they are 'VIP'. I see that i would have to take inspiration from your vip/admin room and change the script a bit, but how would i go by making a 2D or 3D tag to follow and rotate above the player i have in mind, above their player model regardless of their height, so its not too low to the point it gets hidden from their player model and not too high that it cant be seen.
    furthermore, how would i make it so i dont have to spawn 30 tags to all the individuals that have one or more tags. and furtthherrrrmore how would i make it so a tag knows theres another tag for it to move over to centre the two?
    for example: 1 tag would be: x0 & z0
    2 tags would be: x0.5 & z0, x-0.5 & z0
    and so on would be self explanatory, it keeps shuffling over to keep everything centred.
    If that makes any sense, that would be amazing. Thank you so so much

    • @mintzoeygames
      @mintzoeygames Před rokem

      I just had another thought, instead of it being rotation, its billboarded at least for text/image related tags (which is probably what im going to do most) but again, if this is possible please run through the 3D version too, containing how to set location and rotation of the player/s! Thanks again

    • @mintzoeygames
      @mintzoeygames Před rokem

      a good example is NeosVR how they have their tags/badges above peoples heads!

    • @PlayerBush001
      @PlayerBush001  Před rokem +1

      This is a hard one for me to answer, as ui is not my strong suit.
      First, vrchat doesn't give us access to the player's 'scale', which is what you would need to do this the easy way. There is currently no way to figure out how tall an avatar is, other than doing calculations to find distances between bones, to guestimate a players size (there are always outliers...). Phasedragon (i believe it was him) did make an asset that measures the distance between a players eyes to try and get this scale value, but it falls apart rapidly with floating point errors, so it only really works if the world location is less than (100,100,100). Also would need to tell everyone else in the network what the value was, as it only works for the local player. Also also; there is no way to tell if a player has changed their avatar, and so you never know when you need to recalculate the scale factor. All in all, it's a pain.
      As for making it above their head, you can use 'playerApi, (head)get tracking data' --> 'playerApi tracking data, get position', to get the location of a player's head (works on non-local players too). A standard height offset will probably be fine enough, even if they are really small or a moderately large avatar (will fall apart for giants, but I've yet to see someone main one of those). This would be the approach I would go for for now.
      As for making an object billboard, you can either use the nodes 'transform, look at' to rotate an object towards a location (vector3); or you can calculate the rotation with 'quaternion, FromToRotation' and multiply that to a 'vector3, get forward' node.
      That being said, you seem to want to do some calculations in the 2D space, to make everything self centre. I'm pretty sure Unity has some tools for this to do this automatically, as it is something a lot of game devs need to use. That being said, it's also a space I know very little about, so I won't be much help for ya. If you do find out, I would love to know.
      So yea, not really an answer, but hopefully that gives you some pointers ^^

    • @PlayerBush001
      @PlayerBush001  Před rokem +1

      As for the objects themselves, I would do this completely locally.
      Have an 'vip' manager object in the world, with enough child nameTag objects for everyone in the world; or max vips, depend on what's smaller (not that it really maters as they will be disabled when not in use). Then, on event start, create an array of all the players in the world (see change player audio distance tutorial (czcams.com/video/hCK3oAH7WJg/video.html)). Afterwards, you will then want to create a second, permanent playerApi array, and this one will store all the vips in the world(also create an int to work as a counter). To fill it, we want to go through our array of players, and we want to check each player with the list of vips (see admin room tutorial(czcams.com/video/ifJcPZV8T4U/video.html)), to see if they are a vip. If they are, we add them to the slot indicated by our int counter, and increment our counter by 1 ('playerApi[], set value(counter)'). Then, as the code is going through the array of players, and if it finds another player, it will put it in the next slot, according to our counter.
      Now, once it goes through all players, it will have an array of all the vip players, and a bunch of empty slots. You will then want to go through this vip array, and do a couple of things for each vip. First, check that the slot doesn't = null; then use 'transform, get child(int index)' --> 'transform, get gameObject' --> 'gameObject, setActive(true)' to get a nametag object, get it's gameobject, and make it activated; so now we will have a nametag for this vip. Then, you will want to have an udon script on this nameTag object, that deal with everything like position, name on text, and so on and so forth. Use a 'gameobject, (type)getComponent (type udonBehaviour)' to get the udon script on said object, and then use an 'udonBehaviour, set program variable', to change a public playerApi variable on the script, to be the player we want it to follow.
      then do this all again, on 'event, onPlayerJoined' and 'event, onPlayerLeft', so that it updates the icons whenever anyone arrives or leaves

    • @mintzoeygames
      @mintzoeygames Před rokem

      @@PlayerBush001 I know you said it wasn’t your strong suit but would it be too much to ask for a video on it, my dyslexia kills me reading that and I want to make sure this works! But if you can’t do it for now or not at all that is completely fine!

  • @chaosmyth6247
    @chaosmyth6247 Před rokem

    Can you make a tutorial on teleporting gameobjects please?

    • @PlayerBush001
      @PlayerBush001  Před rokem +1

      To teleport a gameobject, you simply need to use the node 'transform, set position'. I have an upcoming tutorial that might address this, but I did also use this node in my 'change spawn location' tutorial, to move the player respawner to the new checkpoint (czcams.com/video/qpCWzGmfXKI/video.html), which may work as a good enough reference point
      Hope that helps ^^

  • @kuyajames1
    @kuyajames1 Před rokem +1

    Do you have a Discord and/or Discord community that subscribers like me could use?

    • @PlayerBush001
      @PlayerBush001  Před rokem +1

      not currently, as I prefer people ask in the yt comments section where it is easier for others to find later, resulting in less duplicate questions. I may start one up later though, in order to do group projects or the likes ^^
      If you need one on one help/ bug-fixing; I highly recommend the official vrchat discord, as they have an udon-questions channel, with a bunch of people that are more than willing to help ^^

    • @kuyajames1
      @kuyajames1 Před rokem +1

      @@PlayerBush001 Yeah, I wanted a community to go to for your kind of VRChat content. I'm a new world creator for VRChat and a lot of your videos introduced me into Udon visual scripting, eventually leading to U#.

    • @kuyajames1
      @kuyajames1 Před rokem +1

      @@PlayerBush001 I credited you for your tutorials in my new world that I released recently. It's called Sunset Shores Suite, currently on Community Labs as of typing this. Thanks again for your tutorials and I hope to see more new content soon! 🧡

    • @PlayerBush001
      @PlayerBush001  Před rokem +1

      ​@@kuyajames1 Wow, that's a really nice world, especially for your first world! Great use of assets, and the optimization is really well done. Congrats! ^^
      Honestly, the only thing that I found problematic was the video player's audio. If you are right at the head of the bed, or the far side of the balcony, the audio cuts off. I would recommend increasing the audio's "far" distance on the audioSource, and perhaps consider making it '2d', so it doesn't sound like it's coming from the tv. That might be worse for movies (though it is a preference thing), but I find it much nicer for general world music.
      Otherwise, it's a stellar world; albeit a little simplistic (though some would say that makes it better). If I had seen it in the wild, I never would have guessed it was a first go.
      Keep it up! ^^

    • @PlayerBush001
      @PlayerBush001  Před rokem

      also noticed the wall behind the main settings panel doesn't have collision. I'm assuming you did this due to issues with the settings panel working. Perhaps adding a custom cube collider that is slightly offset behind the panel, or if that doesn't work, consider increasing the setting's panel's canvas to block the player.
      Also, the skybox is a little too pixelated. While it's great for world size (and that your world does really well), it is a little much. Consider increasing it a bit more, though if you intend for players to spend more time indoors, than leave it as it is ^^
      Lastly, this use to be a problem (might not be anymore), despite all I've said here, I would avoid updating the world while it is in community labs. Had a couple of my worlds really struggle to get out of the labs, because I kept updating them. They usually get out with 200-300 views, but I've had a world that took 1500, due to me updating it **heaps** at launch. I wouldn't stress about it too much if it's an important update, but I would recommend holding off updating it in general; at least for the first week or so

  • @fluttershytea2787
    @fluttershytea2787 Před rokem +2

    i like the fake video better

    • @PlayerBush001
      @PlayerBush001  Před rokem +2

      Haha! that video's going no
      that video
      **cough*
      That video is going nowhere! ^^

  • @UserTM13
    @UserTM13 Před rokem

    Thanks for your lessons. Do you have a discord channel for questions/answers? I can't get a very simple script. I want to learn how to smoothly change the color of the sky and fog by pressing a button. I'll be very grateful for your help.

    • @PlayerBush001
      @PlayerBush001  Před rokem

      Not currently, as I prefer people ask in the yt comments section where it is easier for others to find later, resulting in less duplicate questions. I may start one up later though, in order to do group projects or the likes.
      If you need one on one help/ bug-fixing; I highly recommend the official vrchat discord, as they have an udon-questions channel, with a bunch of people that are more than willing to help. you can also post pictures which can be especially useful for udon graph ^^
      As for what you are after, it's a bit of a loaded question. For doing the fog, the two nodes you will need is 'renderSettings, set fogColor' and 'renderSettings, set fogDensity' (and perhaps 'renderSettings, set fog' if it is not turned on)
      The problem is with the changing of the sky colour. To do so, you will need a custom skybox shader, which isn't something a lot of newcomers will be comfortable with. Perhaps ask around for help with this, as shader coding is a whole 'nother beast compared to c#/ udon. Personally, if I were to do it, i would use the asset 'amplify shader editor' that makes shader coding into node-based like udon or shader graph; but it is a $40 asset on sale, which makes it a tough sell if you are just causally make a world. Either way, with a custom shader, you will want to set it up so that there is a float that you can use to transition between them.
      Once you have that, you can use 'renderSettings, get skybox' node to get the skybox, and then you can use a 'material, set float' node to change the value of the transition float.
      In order to smooth the transition, you can do all this on update, and have an int for both the target value, and the current value. The, each frame you can use a 'mathf, lerp' node, and lerp between the two values, making current value closer to target value. Then, update the skybox and fog settings.
      So yea.. not the easiest, but I hope this helps you at least know where to look ^^

    • @UserTM13
      @UserTM13 Před rokem

      @@PlayerBush001 It was really not easy, but I managed and got about what I wanted. Thank you so much, you're the best!

    • @PlayerBush001
      @PlayerBush001  Před rokem

      @@UserTM13 nice one! Was a bit of a loaded answer, but I'm glad you made it through ^^