Welcome to my channel, your go-to destination for comprehensive and user-friendly tutorials on using Unreal Engine! Whether you're a seasoned developer or just starting your journey in game design, my step-by-step guides cover more advanced techniques and setups to get you going on your game development journey.
Dive into the world of Unreal Engine with me and unlock the full potential of your game development projects. Subscribe now to stay updated on the latest tips, tricks using the Unreal Engine. Let's bring your virtual worlds to life together!
Ok So, I added a camera switch in the master AC_DialogueBase And it works, it switches back and forth. Now I am lost and need help if possible. When playing montage anims it only plays on him and not my player even though Im loading my player montage anims. I know I added play montage in skeleton mesh component but I can not find a way to choose what one.
Sure, the Dialogue Index variable (just the single int) is used at runtime and it increased each time it gets to an 'Add Dialogue' node. This is so it knows how many steps into the dialogue it has gotten. The 'Dialogue Progress' variable (The map with the int key and int value) is used to store what options the player has gotten selected. If auto progressing, it'll populate with 0. The key value used when adding progress is the 'Dialogue Index', so where it has gotten to, and the value is the actual option picked by the player. When progressing dialogue, when it gets to an 'Add Dialogue' node, it checks if there is any progress in the map for the current Dialogue index. If there is, it passes through, if not, it updates the text/dialogue. I hope this helps. :)
I found out after making this it is just about the same as any add in dialogue . But this is better as you can hard code anything in. Just one problem and I will recheck this video but my state index does not change and show text after the first follow through. Other then that this is a great system.
Hey man, really great stuff. Even though I can follow for the most part, it would be helpful for us noobs if you talk more about the underlying concepts of the logic that’s being built in more depth and detail, and using examples of what the logic your building does as part of the whole inventory system. I know it seems obvious, but what’s missing in most tutorials, and what would really set you apart, is referencing the big picture while the parts are being built. That’s the most critical thing to understand that allows us to orient ourselves within each function your building. Maybe using a flow chart or something for illustration, just food for thought. Great job otherwise, really appreciate you brother, cheers.
Any reason why the new interact system would cause multiple dialogue widget to open? When I click on one of my response options, it progresses the dialogue and reveals a second version of the first dialogue index that becomes stuck on screen.
Just to clarify, whilst this inventory system is the main inspiration for the inventory system tutorial, the goal of that series is to teach you how to make any type of inventory system. In terms of the general concepts they are however very similar and yes, I do at some point plan to cover saving the inventory and world item data. This will probably be after I've done an episode on setting up something like a chest, where you have two separate inventories shown on screen and you can transfer items between them.
I won't be showing how to create this UI specifically but I'll certainly be going over some of the concepts. Whilst I have plenty more to still go over, was there anything in particular you want to know how to achieve?
I'm having a weird problem that will happen when I revisit a part of the branch I've just gone through, where the widget doesn't appear but the mode still enters UI only, thus rendering me stuck. If you have any ideas about where I should look to troubleshoot, I'd love to hear your thoughts. Thanks
Okay upon writing this, i've realized that the issue occurs when I use SetDialogueBranch but not when I use RemoveDialogueProgress. Makes me think I'm not updating my progress correctly?
@@tendowav Its hard to say specifically without seeing it. All I can suggest is double checking how you've setup the 'Set Dialogue Branch' node. If you're still having issues, feel free to jump on my discord where you share some screenshots. :)
Hello Michael!! Your systems are very useful, thanks for it!! I'm having a trouble to use this AI's in the input, this cause I using UE 4 (AI isn't implemented yet, I think) for an web deploy project, can I have another option?
See this is neat. I've always dreamed of a game like [command and conquer] but you can [powdertoy] "make" stuff. Like zoom in to factory and build a tank block by block 3D style. Complexity effects unit price. units cost humans unless automated like my auto tank or my auto quad drones in trailmakers in higher teir way after wood and stone levels of course. you gather better and better materials as you progress and clear missions and grind some of the easier ones for stuff to feed the growing army You're tech level is directly up to you.. bad a making stuff¿ 😆 use in game coin ground from Easy levels and grab builds on market that other players made 😀 complex crap like lasers and that
I've not done facial animation myself but from my understanding, if the skeleton has facial bones, you would play a montage/animations the same way. Some games choose to have two character models though, one with and without these bones. If this is the case, you would need to switch the skeletal mesh to the relevant one before playing the montage.
I can't wait to see more of your tutorials. They are so professional and well structured, thank you so much for them! I also have a question regarding the problem I encountered. If I start with default 3rd person camera and trigger the CameraTrackSwitcher with blend time set to zero, the player has no time to adjust to the new camera (therefore new movement relations) which ends with either player ,,bouncing off'' the CameraSwitcher's box collision or walking towards wrong direction. It is related to how BP_CameraTrack is rotated in relation to the BP_CameraTrackSwitcher I think. If we set the blend time to for example 2 sec it is easier to intuitively press proper movement keys I guess. Do you have any advice on how to tackle that problem (assuming that I want the camera to switch immediately)?
@@arturmincberger9236 one option would be to add a camera switcher delay threshold. So if the player has just switched the camera, there's a few seconds delay before the camera can switch again.
Hello, I like your tutorials you have. I've been following along this tutorial and ran into a issue with the interaction component in AC_UIManager. I am getting a error saying "Accessed non trying to read property InteractionComponant." I do have a A "AC_Interaction" component on my BP_ThirdpersonCharacter but still can't access it. Do you have a solution to this issue?
Also another issue I found with this system is that say you have two nearby volumes for the camera switching, and you dont have a default 3rd person camera because movement is based on the camera yaw or view the character can sort of run around in a loop between the cameras switching because of this movement style being based on cameras. We need a way to make it so that for those that just use fixed cameras throughout this cant happen.
I'm not entirely sure what you mean but I would imagine what I mentioned in my reply to one of your other comments would probably resolve this as it will only switch the cam when you first overlap the switcher. :)
@@mpattymI think what he meant by this is that, he wants to retain the direction control from the previous camera until the player press another direction which switches the control on the new camera to avoid the run looping between the two collisions. You can recreate this issue by setting up the two cameras facing each other with collision right next to each other then try to run on the next collision.
@@ramiru3264 Ah okay. For something like this, I'd probably store the movement direction vector before switching the camera and use that temporarily before switching to using the movement direction vectors that calculated using the current camera view. You can always include an vinterp to smooth this out if needed.
Also did you factor the event that we have the switchers overlapping and also no third person camera to switch back to. For instance my whole game idea is wholly fixed camera.
When I designed the system it was with the intention of having a main track to switch back too. If you don't need this, you can ignore the on end overlap event on the track switcher. This will mean they cam will remain at the last track it was switched too until the player overlaps another one. You can probably omit most of the logic that was added to the player character as the only thing you would need is just the camera track variable.. You will need to make sum adjustments the track switcher where when its first overlapped, you set the cam owner on the camera track stored in the character to null and then set the ref to the link track in the newly overlapped switcher. This allows the track switcher to know what current track you're using and set it's cam owner to null so it no longer ticks when overlapping with other switchers. Hope this helps. :)
Interfaces are also a suitable alternative to getting the correct pawn/character etc for your overlap events. :) Great videos as well btw! Keep up the good work.
Thank you. :) Regarding your statement, I'm not sure what you mean. I assume you're referring to the casting in the camera track switcher but this is just checking that the overlapped actor is the relevant player character. Unless you have multiple player characters that don't share a base character parent, using an interface just adds unnecessary extra steps.
I have a weird bug related to the "RemoveDialogueProgress" function. I have it in several parts of my dialogue, but it only works if I haven't chosen any option, I believe something else needs to be done for it to work. For example, if I had a chain of 3 dialogs and at the end I remove the progress with value of 3, the dialog goes back to the first one, but if I click in the option, it will skip all dialogues and close it, as if it knew where to go. Any ideas?
Literally came back to use your line trace method for my bow mechanic to direct the bows location when fired. The other typical methods don't give as much accuracy as this one. Thank you again
Probably an obvious question, but would it work fine to have multiple instances of a particular item? Such as 90 cubes around the map, rather than a single cube with the quantity value set to 90? Just before I delve into the tutorials : P
@@mysticprophecyroblox yes, with what I've currently shown, they get pooled into a single item base (assuming they're the same item) when picked up. If you only ever want items in the world to be 1 item. (No stacking) You'll just need to update the drop function to create a new item object of the same type of the relevant type and remove 1 from the pooled total. Then assign to the spawned world item.
Hey, Micheal; Im trying to run the Options button, but it keeps having the the reference to the AC in the widget be read as None instead. Is there sowmthing I could be missing a step?
If you are wondering if this series worth your time, the answer is a big YES, this series is the best tutorial you will find on UE dialogue systems on RU-vid.
I just want to say thank you Michael for putting all the effort on this series, I am working on my first game and I will definitely use a system like this(including the real time of the day) for complex dialogues!
I’m having an issue with progressing the dialogue. I have added in everything correctly from what I can see but when I click on the buttons it does not progress even though I have another stage of dialogue. Any help on this would be greatly appreciated!
I'm trying to combine this with a bit of my own stuff. What I'm attempting is to have what you have, different dialogue options, but I want them both to reconvene to the same outcome. In the blueprints, it goes from the Add Dialogue node, as normal, then to the Switch on Enum_DialogueState, then to Switch on Int, all as normal... But THEN, the two Switch on Int nodes I have, one for each dialogue option, is being fed into the same Add Dialogue for the next part. Now this seems not to be the problem. It's that for some reason, instead of running that final Add Dialogue, it skips over to the Close Conversation function, and closes it down. It LOOKS like I've organised everything as you've said, but I'm unsure as to why this is happening.
OMG, literally JUST after posting this, I saw that I did connect the State pin to the Selection input 🤣 Ah well. At least this will remind anyone who gets into this bind in the future.
This is not only the best dialogue system guide on RU-vid, but probably the best UE5 related tutorial I have watched so far. Thank you, Michael! +1 sub
This is basically the registry pattern, what benifit does this have over adding an instance variable to the actor (first exmaple) and 'hardcoding' the reference vs 'hardcoding' the UID (in two places)?
This just makes it easier to get a specific actor references for scripted events. When you're spawning things dynamically, it's not always easy to get a reference to the actor in the level. You could use the get actors of class but when you want a specific actor this can be wasteful as you'll have to loop through the actors to find the one you want. Personally, this is one method of many I utilize to get the reference I need depending on the situation.
Very good video in terms of pure knowledge but it's almost impossible to use on practice. I'm 5 hours into tutorial and have my first problem -- no interactions/anything with mouse character. And my only way to fix it is start again and try to find if there is any mistakes on my end, so I just have to drop it and try to find the other tutorial, it's almost impossible to debug and find what I did wrong.
Hey, on 5:22 I've noticed right away at the beginning of the video but was waiting for a miracle -- I don't have any Interfaces except Interact so I can't continue
Ok I got it, I was following since the first lesson, you need to press compile after you add these interfaces at the beginning, every single one separately
hm, I run into problems with the radial. My Hol Durations and Timer is 0 on UIManager. Within the Interact Scripts I can print the values correct but when I access the Interaction Component in UI Manager the variables are 0. Any Idea? I also Printed the Actor and the actors are the same.... Update if I Remove the Set the Current Hold Duration after Interact it works
The greatest sin of any tutorial is not showing the final product at the start so your viewers know what they'll be making. Think of this from a viewers perspective: inventory systems can be done in so many different ways, so how do I know if this style will fit what I need? Even if its a multi part series that not finished, showing an example from an existing game will give your viewers at least an idea of where this is headed.
Thank you for the feedback. I can certainly agree with your statement but my goal is to teach you how you can make 'any' type of inventory. What I'm currently showing would be applicable to most types. Once you know some of the core concepts of how to make an inventory system it becomes a lot easier to build it how you want. For example, what I'm showing here is the start of two different inventory systems I've made. One that could be compared to Minecraft and another that is similar to Fallout/Skyrim, of which are very different. If there are any specific aspects you'd like me to cover, feel free to let me know. :)
You would create a class variable of the dialogue component. You'll then be able to select any child BP of the dialogue component. You can then use this to add component by class to create the component on begin play.
Hi Michael. Thanks very much for your videos. I've tried a few more advanced dialogue systems for my game, and yours is by far the most elegant I've come across! I have a quick question I hope you can help me with, if you don't mind. I'm trying to add functionality whereby if you've collected an item, the dialogue reflects that, such as in your Blacksmith example. I'm having real trouble working out the logic, though, in particular what to cast to and what the object input should be. I've tried creating an ItemCollected variable in the NPC Dialogue component, but I can't seem to set that in the Item blueprint because I'm not sure what I should be casting to. Any advice hugely appreciated.