Тёмный
Michael Pattison
Michael Pattison
Michael Pattison
Подписаться
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!
UE5 | Project Aphid - AntiGravity
1:59
21 день назад
UE5 | Interfaces & Casting - Hierarchy
22:17
3 месяца назад
UE5 | Actor Manager System - Tutorial
24:41
3 месяца назад
UE5 | Ultimate Dialogue System - Tutorial - Pt4
35:02
5 месяцев назад
UE5 | Epic Fixed Camera System - Tutorial - Pt3
29:36
8 месяцев назад
UE5 | Epic Fixed Camera System - Tutorial - Pt2
29:22
8 месяцев назад
UE5 | Epic Fixed Camera System - Tutorial - Pt1
30:15
8 месяцев назад
Комментарии
@GameCreatorOfGod
@GameCreatorOfGod 12 часов назад
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.
@Josh_Alfaro
@Josh_Alfaro 2 дня назад
Can anyone explain how the Dialogue Index works? The Map integer with two values seems confusing, how does it apply to the “Add Dialogue” nodes?
@mpattym
@mpattym 18 часов назад
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. :)
@Josh_Alfaro
@Josh_Alfaro 18 часов назад
@@mpattymtremendous! Thank you!🙏🏻
@masonbrown-l3b
@masonbrown-l3b 2 дня назад
does anyone know why i cant access inherit variables in details panel gear menu? im stuck at the 7:30 mark
@GameCreatorOfGod
@GameCreatorOfGod 4 дня назад
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.
@Josh_Alfaro
@Josh_Alfaro 5 дней назад
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.
@BrettSenneker
@BrettSenneker 7 дней назад
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.
@HoracioSchvemler
@HoracioSchvemler 8 дней назад
Very good, it took me a while but I finally did it, thanks to you.
@sorbetlong
@sorbetlong 9 дней назад
cool system and UI! im gonna watch and do this tutorial series but i want to ask if you are gonna add save system to this.
@mpattym
@mpattym 9 дней назад
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.
@vyacheslavkuzmak3086
@vyacheslavkuzmak3086 11 дней назад
Are you going to show how to create such design in your tutorials? Your ui looks really unic
@mpattym
@mpattym 11 дней назад
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?
@tendowav
@tendowav 11 дней назад
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
@tendowav
@tendowav 11 дней назад
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?
@mpattym
@mpattym 11 дней назад
@@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. :)
@hamidrezaoloumi
@hamidrezaoloumi 11 дней назад
unique and different design, 👌 looks great, amazing 👏
@LiteratoGames
@LiteratoGames 12 дней назад
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?
@LiteratoGames
@LiteratoGames 11 дней назад
I solved using only InputAction, thanks!!
@digitalphear1960
@digitalphear1960 13 дней назад
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
@HoracioSchvemler
@HoracioSchvemler 13 дней назад
Super Gracias!!
@snared_
@snared_ 14 дней назад
So basically you can make up to a million USD off of things made in unreal before you have to start paying them royalties?
@mpattym
@mpattym 12 дней назад
That last time I checked that was the case for game related projects. However it would be best to check out the UE website regarding royalties. :)
@bharatharima2180
@bharatharima2180 15 дней назад
Can you please tell me about facial montage setup
@mpattym
@mpattym 12 дней назад
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.
@HoracioSchvemler
@HoracioSchvemler 15 дней назад
Perfect, just what I was looking for
@arturmincberger9236
@arturmincberger9236 16 дней назад
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)?
@mpattym
@mpattym 16 дней назад
@@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.
@F18studio
@F18studio 17 дней назад
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?
@kylemason01
@kylemason01 17 дней назад
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.
@mpattym
@mpattym 17 дней назад
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. :)
@ramiru3264
@ramiru3264 9 дней назад
@@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.
@mpattym
@mpattym 9 дней назад
@@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.
@kylemason01
@kylemason01 17 дней назад
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.
@mpattym
@mpattym 17 дней назад
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. :)
@kylemason01
@kylemason01 17 дней назад
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.
@mpattym
@mpattym 17 дней назад
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.
@silentwindstudio
@silentwindstudio 17 дней назад
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?
@sorbetlong
@sorbetlong 19 дней назад
i cant select any options how can i fix that
@gil6970
@gil6970 19 дней назад
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
@mysticprophecyroblox
@mysticprophecyroblox 20 дней назад
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
@mpattym
@mpattym 20 дней назад
@@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.
@mysticprophecyroblox
@mysticprophecyroblox 20 дней назад
@@mpattym Ah thanks
@vagustruman4488
@vagustruman4488 21 день назад
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?
@elganzandere
@elganzandere 22 дня назад
This looks fantastic man.
@mpattym
@mpattym 22 дня назад
Thank you. :)
@lawebley
@lawebley 22 дня назад
Really sweet work man
@mpattym
@mpattym 22 дня назад
Thanks. :)
@silentwindstudio
@silentwindstudio 22 дня назад
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.
@silentwindstudio
@silentwindstudio 22 дня назад
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!
@patrickrogers5025
@patrickrogers5025 24 дня назад
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!
@Novarcharesk
@Novarcharesk 26 дней назад
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.
@Novarcharesk
@Novarcharesk 26 дней назад
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.
@mysticprophecyroblox
@mysticprophecyroblox 27 дней назад
Awesome. works great in my first person game : D
@silentwindstudio
@silentwindstudio 29 дней назад
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
@mysticprophecyroblox
@mysticprophecyroblox Месяц назад
Would this work in first person? As in having a cursor to select the options when the dialogue is open
@mpattym
@mpattym Месяц назад
Yes, it's set up to use mouse clicks so it should make a difference if you're using 1st or 3rd person.
@mysticprophecyroblox
@mysticprophecyroblox Месяц назад
@@mpattym Awesome
@M3t4lstorm
@M3t4lstorm Месяц назад
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)?
@mpattym
@mpattym 22 дня назад
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.
@jview611anime5
@jview611anime5 Месяц назад
Thank you for all the incredible tutorials, they are very helpful!
@mpattym
@mpattym Месяц назад
Glad you like them!
@DBROstalos
@DBROstalos Месяц назад
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.
@mpattym
@mpattym Месяц назад
I'm sorry you're having some issues. Debugging is fairly straightforward so if you need some assistance, feel free to jump on my discord.
@DBROstalos
@DBROstalos Месяц назад
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
@DBROstalos
@DBROstalos Месяц назад
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
@natsudragneel-sh4rh
@natsudragneel-sh4rh Месяц назад
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
@dobrx6199
@dobrx6199 Месяц назад
Nice!
@driftmirror
@driftmirror Месяц назад
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.
@mpattym
@mpattym Месяц назад
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. :)
@abdoulraoufgambo
@abdoulraoufgambo Месяц назад
yeah it's Michael again !!! I'm so excited !!
@mpattym
@mpattym Месяц назад
If you've made it this far, don't forget to subscribe so you don't miss future parts as there will be more. :)
@jview611anime5
@jview611anime5 Месяц назад
First:D
@evanwestermann1542
@evanwestermann1542 Месяц назад
How could i make the actor component a variable that could be set at begin play. So that i could change dialog for each instance of the character
@mpattym
@mpattym Месяц назад
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.
@evanwestermann1542
@evanwestermann1542 Месяц назад
@@mpattym Thanks
@lilianwolf4717
@lilianwolf4717 Месяц назад
Fantastic tutorial, i have one question how would you do gamepad controlls for the dialogue options?
@yukes1
@yukes1 Месяц назад
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.