Player Name Tags Above Head - Multiplayer - Unreal Engine 5 Tutorial [UE5]

Поділитися
Вставка
  • Опубліковано 26 вер 2024

КОМЕНТАРІ • 75

  • @apon22
    @apon22 Місяць тому +1

    Man, you are so good creating tutorials! You explain everything in a very clean way, I love it. Nice job!

  • @nand-studios
    @nand-studios Рік тому +4

    why has this perfect tutorial only 10 comments? ❤❤ best ue5 tutorial for nametags!!!!!

  • @jeldrikgaal5342
    @jeldrikgaal5342 Рік тому +5

    Best unreal tutorials !!

  • @VanFS3K
    @VanFS3K 3 місяці тому +2

    FYI, I believe the isValid check on the GetWidget call is redundant. Sending a nullptr into the cast will fail the cast. Probably can just put the SetTimerByFunctionName on the failed cast.

  • @atthiyya
    @atthiyya 2 місяці тому +1

    Thanks a lot! You are my savior trully, thanks God after struggle for a half day, your magic helps me!

  • @tamerdrop
    @tamerdrop Рік тому +4

    you are the best. you deserve 100K likes and views. I was going to ask if you can help on creating a main menu screen and everything because I think you're the only person that can do it the best. :)

    • @NiceShadow
      @NiceShadow  Рік тому

      Hey thanks, what features for a menu screen do you search for that aren't shown already in other tutorials? :)

    • @tamerdrop
      @tamerdrop Рік тому

      They usually make a menu screen where you can start the game but it's never dynamic.
      Like where should the character start exactly?
      Or when you're at the main menu. The background is just a picture not a dynamic scene.

    • @NiceShadow
      @NiceShadow  Рік тому +2

      @@tamerdrop Yes that's a good idea for a tutorial. Like a main menu where you can open different pages (settings, credits, ...) and invite friends to a party and then start playing from a map that you can choose in the main menu?

    • @tamerdrop
      @tamerdrop Рік тому

      Exactly! :)
      @NiceShadow

    • @NiceShadow
      @NiceShadow  Рік тому +1

      @@tamerdrop Nice, I could imagine doing some tutorials about that

  • @zheka3d631
    @zheka3d631 7 місяців тому

    Thank you! Cool guide! You helped me set up nicknames in my game!

  • @Hanarki98
    @Hanarki98 4 місяці тому +1

    Thanks you bro, your tutorial really saves my ass!!

  • @professordragon
    @professordragon Місяць тому

    Nice tutorial! Using the timer and calling OnRep again manually seems like a workaround though, is there a better way to approach this?

  • @bruh-vc7kw
    @bruh-vc7kw 5 місяців тому +1

    my client player is showing names but not the sever player any solution to it???

    • @iamagenius2646
      @iamagenius2646 4 місяці тому

      Add a delay brother ... If your logic is ok this can solve it. You can try to get a variable in your pawn and update the overhead widget on every tick with that string. If you need a delay everything will work if widgets updates on tick, if not. there is a logic error.

  • @Leo-iz2eg
    @Leo-iz2eg Рік тому

    thank you for this video!

  • @renanmgs
    @renanmgs Рік тому +1

    Life saver

  • @ChaojianZhang
    @ChaojianZhang 8 місяців тому

    In short, use Tick to implement rotation.

  • @Rrrrnnyg
    @Rrrrnnyg 6 місяців тому

    Good tutorial, it would be better if you did't drag the right mouse button to shake the screen which make me dizzy

    • @NiceShadow
      @NiceShadow  6 місяців тому

      yes I try to improve it in the future

  • @iamagenius2646
    @iamagenius2646 4 місяці тому

    So you want to make a player tag for a Steam game ? You tried the approach where on the BeginPlay > if locally controlled > get controller > get state > player name > set player name on server so it rep notifies, but ...
    It gives errors. Idk why. Add delay of 5 sec. Now it works.
    God dammit unreal, really ? really ?

  • @javascripted_
    @javascripted_ 9 місяців тому +1

    I have one theoretical question. In my game I have a team system where you can start a team and invite nearby players.
    I only want these nametags to be shown for players that are on your team. I have a variable that is an array that stores a reference of each teammate. I know I can use that array to hide/show the nametags accordingly, just not sure how to replicate this properly. Hoping someone has a good idea, and hoping I don't have to add a bunch of logic on the tick event?

    • @javascripted_
      @javascripted_ 9 місяців тому +3

      I figured it all out. I had to add stuff to the on tick, but not much. If anyone has questions reach out.

    • @natecoet3291
      @natecoet3291 7 місяців тому +1

      @@javascripted_ I would be interested in knowing how you did it and what you added if you care to share :)

  • @Nin10doLetsPlay
    @Nin10doLetsPlay 7 місяців тому +2

    Im using a Ball Character, thus when moving around the widget is rotating with the Ball. How do i fix this?

    • @NiceShadow
      @NiceShadow  7 місяців тому +1

      Attach the widget component to a spring arm. Turn of the spring arm Do Collision Test and set Inherit Ptich, Yaw, Roll to false. The target arm length you can set to 0 or to whatever you want.

    • @Nin10doLetsPlay
      @Nin10doLetsPlay 7 місяців тому +1

      @NiceShadow Thanks for the answer, but I already fixed it by creating a new actor just for the widget and updating its position to match the players position on tick. Which approach do you think is better?

    • @NiceShadow
      @NiceShadow  7 місяців тому +1

      @@Nin10doLetsPlay ok, the spring arm approach is better I think

    • @Nin10doLetsPlay
      @Nin10doLetsPlay 7 місяців тому +1

      @NiceShadow I just tried the Spring Arm approach and it didn't work. Do I have to attach it to the ball?

  • @Headcrap
    @Headcrap Рік тому +2

    Really helpful and awesome tutorial, although i have a question. How do you make the widget above player's head not change scale when the player gets away?

    • @NiceShadow
      @NiceShadow  Рік тому +3

      Thank you! If you click on the widget component you can set Space to Screen instead of World. Then you also don't need to make the widget component face the camera on tick anymore. But if it is set to Screen it also renders through walls.

    • @Headcrap
      @Headcrap Рік тому

      @@NiceShadow and is there also a way to keep the widget above the player's head when the character gets respawned? because it doesn't attach to the player again after the respawn. the destroy actor function destroys the player together with the widget, but the respawn only respawns the player and the mesh but not the overhead widget

    • @NiceShadow
      @NiceShadow  Рік тому

      @@Headcrap So the widget is away after respawn?

    • @Headcrap
      @Headcrap Рік тому

      @@NiceShadow yeah it is, it stays when the third person actor turned into a ragdoll before respawn, and even after respawning it's at the ragdoll's location instead of the freshly respawned player. If using destroy actor, the widget gets destroyed together with the ragdolized character and doesn't show up anymore after the respawn.

    • @NiceShadow
      @NiceShadow  Рік тому +1

      @@Headcrap Then you could also try to add a new widget component in your blueprint after respawning

  • @beilog7489
    @beilog7489 6 місяців тому +1

    Amazing! Works like a charm!

  • @jakedubs
    @jakedubs 5 місяців тому

    Hey, I also implemented this method in my game i.e. using the game instance for storing the name and calling a repnotify on server. The problem with this method is that you can't hide the widget if you want to show the name whenever another character gets close or not because the name tag widget exists on the server.. I'm not sure how you would get around this.

    • @NiceShadow
      @NiceShadow  5 місяців тому

      It exists locally for every player. You can set a timer (Looped) on event begin play in the character. Then you can get the actor location of this character (self) and the actor location of get player pawn where you can get the distance between these two locations. Depending if the distance is bigger as a certain value you set the visibility of the name tag widget. The widget component itself has nothing to do with replication, it's just there because you added it by default to the character. Only the name value within the widget is replicated but this has nothing do regarding adjusting the visibility of the widget component.

    • @leejames-f4z
      @leejames-f4z 4 місяці тому

      @@NiceShadow is it too expensive? if i just set Collision ,it just can be enabled only for character whatever you want anyway and then when the other character is overlap with it then pop up the widget

    • @NiceShadow
      @NiceShadow  4 місяці тому

      @@leejames-f4z It's ok to do it so. But I would suggest that you constantly (for example with a timer that you set on event begin play) get the actor location (self) and do a distance node from that to get player pawn -> get actorlocation. And if the distance is bigger than a specific value it hides otherwise pops up.

  • @afterlife1578
    @afterlife1578 6 місяців тому

    when i respawn my character, the function is not called, and the name is not updated. any ideas as to why its not working?

    • @afterlife1578
      @afterlife1578 6 місяців тому

      if I remove the branch of check is locally controlled in set up local, it seems to be working, and using my steam name as well, otherwise it shows my pc name. is this a correct way?

    • @iamagenius2646
      @iamagenius2646 4 місяці тому

      It is better to store the data in the player state

    • @sitifathimahmuthmainnah1245
      @sitifathimahmuthmainnah1245 9 днів тому

      @@iamagenius2646 How is that possible? When I store 'Player name' in Player State and switch Map Level it doesn't work

  • @sa3adman
    @sa3adman 8 місяців тому

    Why didnt make the widget space screen instead of world ? woldnt it automatically remove from local player and face the other cameras ?

    • @NiceShadow
      @NiceShadow  8 місяців тому +1

      yes it would but it would also render through walls

  • @fod_ua
    @fod_ua Рік тому

    Nice tutor. Why you not use Widget Details - Space Screen. for rotation widget to the player?

    • @NiceShadow
      @NiceShadow  Рік тому +2

      You can do that too. But screen space widgets render through walls and have always the same scale. For example if there are 2 characters nect to each other but 200m away from you, the name tags would overlap. To prevent that the nametag could be only made visible in a near distance. So both ways have pros and cons 😄

  • @troyar
    @troyar 7 місяців тому

    Hello, the tutorial is genail and it works, but I have a problem, I am creating a game with a lobby and the new players do not see the name of those who are already in session and the players who are already in session do see the correct name of New players, any advice to fix that? thanks for the tutorial

    • @NiceShadow
      @NiceShadow  7 місяців тому

      Thanks, I considered that already when creating this system. The repnotify function should trigger for new joining players so I don't know why it's not working... Maybe you missed a step

    • @troyar
      @troyar 7 місяців тому

      @@NiceShadow Thank you very much for responding, what happens to me is very strange, in the same onrep I put the name in the widget and in a text render and in the text render it works fine for everyone at all times... something strange about my character again thanks for the tutorial, greetings

  • @SAMAR_178
    @SAMAR_178 6 місяців тому

    hey my client name is just shown as nametag and is not changed what mistake could have I made??

    • @TheMusicTechTeacher
      @TheMusicTechTeacher 2 місяці тому

      Maybe the node you grabbed was text box and not editable text box?

  • @SirMint2002
    @SirMint2002 11 місяців тому

    nao entendo muito sobre mas quando deixo o is locally controlled o nome nao aparece nos dois personajens, poderia me explicar?

    • @iamagenius2646
      @iamagenius2646 4 місяці тому

      Is locally controlled means that you execute logic on the actor that can receive input on this machine aka this is not a simulated actor

  • @adam4eissa
    @adam4eissa Рік тому

    how i implement this if player name from api thank you sorry am beginner

    • @NiceShadow
      @NiceShadow  Рік тому

      Maybe try in your game instance to set the name variable based on your api result. So instead to set the name of the editable text box in the main menu

    • @adam4eissa
      @adam4eissa Рік тому

      can you send me any tutorial for that am beginner Sory @@NiceShadow

    • @NiceShadow
      @NiceShadow  Рік тому

      @@adam4eissa I'm not doing individual tutorials

    • @adam4eissa
      @adam4eissa 11 місяців тому

      whyyyyyyyyyyyyyyyyyyyyyyyyyyyyy create one & upload it for everyone we need to learn @@NiceShadow

    • @NiceShadow
      @NiceShadow  11 місяців тому +2

      @@adam4eissa my time is limited and I've to set priorities

  • @fredericfox6123
    @fredericfox6123 9 місяців тому +1

    Good tutorial, but by god stop jiggling the blueprints around, I am getting a stroke.

    • @NiceShadow
      @NiceShadow  9 місяців тому

      Thanks, I'll try my best for future videos 😀

  • @nand-studios
    @nand-studios Рік тому

    Do you know how to setup a steam-multipalyer playerlist?
    I think you can explain it the best! @NiceShadow

    • @NiceShadow
      @NiceShadow  Рік тому

      steam friends list? or what exactly?

    • @nand-studios
      @nand-studios Рік тому

      a list of players connected to the server

    • @NiceShadow
      @NiceShadow  Рік тому +2

      @@nand-studios I'll create a tutorial about that

    • @nand-studios
      @nand-studios Рік тому

      THANKS 🙏

  • @Yunishaa1
    @Yunishaa1 4 місяці тому

    Great video as always! Could you also show how to add steam icon next to the name?