The new Enhanced Input System is a mess: 1. Allowing the players to remap keys ingame requires you to build a dedicated save-game system just for the Enhanced Inputs, because the inputs are data-files now and thus reset every time the game starts. 2. The values in the enhanced inputs do NOT reset, meaning axis mapping (e.g. Move Forward & Move Backward) requires you to set the value of the input to zero again after "Cancelled" or "Completed". 3. You have to create all these data assets, generating more possibilities for bugs to appear - since Unreals file dependencies are prone to errors. 4. Creating inputs takes way longer than it did with the old system. Equally changing your inputs takes way longer, as you now have to go through all these files instead of having them all cleanly in one place. 5. I personally don't like all that logic in the new inputs ticking in the background, although the impact is rather negligible. I also don't like the necessity to cast for adding input contexts (as I don't use the controller for inputs), but that's just me. 6. Switching input methods requires more work now and is way more convoluted than it did before. Before all an input switch took was a branch after the input function, wheres now you not only have to handle all these extra input data files, (cast and) add the input context, but you also have to recreate all this extra logic for the inputs. 7. Prototyping with the Enhanced Input system takes way longer than it did before. Wanna just quickly set up a project to test out something? Well now you have to create all these input data assets for it to work. It's also way harder for a team to prototype, as now everyone has to learn and completely understand the new Enhanced Input system, whereas before everyone could understand & edit the inputs by just looking at the Project Settings page. There is nothing you couldn't do with the old system, Epic should have just expanded and overhauled the old system with new options, instead of deprecating a good, working system.
@jacobpipers
3 ай бұрын
? Files mean you can export these files to other projects easily and you should have a sa e system in a game.
@vampiremaffia
8 ай бұрын
I got stuck in one of those abandoned GameDev courses that do not contain updates for (slightly) higher UE versions that implement changes that makes clicking along with the course material nearly impossible. All and all I tried all sort of Enhanced Input Blueprint schemes for the basic SWAD keys movements but nothing worked. Your tut was well structured (had to rewind several times because the pace is high and things like 'Split struct pin' of the Rotate vector module were entirely new to me). When I finally got everything the way you showed us, my character still didn't move (I was already 5 hours in this SWAD hell), could it be that Project Settings --> Engine - Enhanced Input also needed to be configured with the MappingContext? Whether that was the case or not, it turned out ... that I had to click with the mouse pointer into the game window ('active level editor viewport') [in play mode obviously] and only _then_ the SWAD keys worked. In those 6 hours I probably tried several working solutions that failed because of the absence of that single (focus bringing) mouse click. Anyway, your clever solution (other schemes I tried were clunkier) is now in my project and SWAD is working!
@peanut_games
8 ай бұрын
That's crazy, but there are many such cases in the field of programming. It's often the simplest causes that are overlooked. But yeah you do need to click the viewport every time lol, it's not something I'd ever have thought to suggest. As of 5.3 now they did change something pretty significant but you don't need any project settings changed for it to work in general, there are some subsystems within enhanced input that do require some settings ticked ( Enable World Subsystem ). They also totally deleted Player Mappable Input Configs. In any case, glad you got it working!
@DynamicalisBlue
Жыл бұрын
I think the system is great as it provides a lot of modularity that many games will need when you have multiple pawn/vechicle types. But it does make it unnecessarily more complicated for games that only have a single pawn type. It would be nice if the engine defaulted to a basic character control layout that was simpler to use and when devs need the extra control, let them opt-in themselves.
@peanut_games
Жыл бұрын
My thoughts as well. I definitely see the appeal in games with multiple player characters with the same controller. That's how it used to be actually, enhanced input is in UE4 but as an optional beta plugin. To be honest I'm not sure why they're deprecating the old system. What specifically threw me off when looking into it was the modifiers for axis inputs, they're kinda janky lol like why can't I just specify the axis that I want it to use - X Y or Z. The swizzle stuff is just confusing to new users.
@AdeptusIncompetus
Жыл бұрын
@@peanut_games So if I'm going to just have a single character pawn, how should I be doing this instead? Because definetly feels more cumbersome than before.
@peanut_games
Жыл бұрын
@@AdeptusIncompetus Depends what you mean specifically.. Of course you have the option to stick with the engine versions that still use the old input system, but if you want to keep updating the engine with your game you'll probably be forced to get used to enhanced input as it is. As of 5.1.1 Epic has included most of the inputs already set up in new projects so you can take a look at and expand on that.
@AdeptusIncompetus
Жыл бұрын
@@peanut_games I'll take a look at these, thanks for the response. Specifically, I'm interested in a singleplayer character similar to the Thief series, where you only ever play using a single type of pawn.
@DaMu24
Жыл бұрын
Wrong, that's what templates are for. Have only one pawn/vehicle type in your game? Load a template with a compiled IA mapping, double-check your bindings, then never touch it again. Nice.
@Restart-Gaming
Жыл бұрын
WOW Makes it more of a pain just to test out a map now you have to spend the time to make it all work first what next we have to provided our own light
@riotechmod
Жыл бұрын
Currently the main issue is that I can't follow any old tutorials anymore, I'm new and for me it's frustrating.. I was working on my old project and somehow I don't know why I did that ..I updated the Unreal and now I'm stuck because my vehicles stop showing any moments .. and I didn't know much about blueprints..I completely stuck 😩.. idk how to re-create that again..
@Shrooblord
Жыл бұрын
When I first learned about the system, I got entirely overwhelmed. I've been working with Unreal since Unreal 4 came out, but I just couldn't get the hang of it. It looked so complicated and _weird_ . So from an 'outside perspective' as a first-timer looking in, I'd say, yeah, definitely convoluted in some way. But I read the documentation again yesterday, and watched some videos on YT like this one, and realised that, actually, the system is amazing. It allows you to switch contexts like when you're crouching or swimming, just by adding and removing Mapping Contexts. It allows us to get rid of those horrible branch "if pyramid" structures and (should) remove bugs in our input handling by design. And it allows you to do stuff like react to different 'points' in the input handling like you also show in the video. I can't wait to start building a combat combo-move system, which was a daunting task before, but now seems easy with the Modifiers, Triggers, and Contexts systems. :D TL;DR: Complicated system needs guidance and intro tutorials and/or nice easy 'quick setup' defaults -- but is extremely powerful and cool. Excited to try it out!
@peanut_games
Жыл бұрын
Sounds about right, I've been working with it for a couple weeks now in a mobile camera asset. There are input conflicts between Touch 1 and Touch 2 events, like it triggers panning while you're trying to zoom in, and with enhanced input I can simply toggle them on and off. Like you said it avoids having "Is Panning" "Is Zooming" etc. That being said, for a standard FPS with only one player character with fixed abilities it seems to have no benefit aside from not being possibly deleted in the future lol.
@JyotiJyotiJyotiJyotiJyoti
26 күн бұрын
As someone who is new to Unreal, when I saw the yellow text in the settings I was couldn't understand what was wrong. This video helped me a lot. Thanks !
@peanut_games
26 күн бұрын
Absolutely I can imagine! Glad I could help :)
@peteyoshea
Жыл бұрын
Awesome tutorial! So cool to see you jumping in and answering everyone's questions as well. Like and subbed 🤘
@peanut_games
Жыл бұрын
Thanks :)
@cornflake2563
6 ай бұрын
You are using gamemode override as BP third person that comes with default. How do I make the walk back animation with a new game mode
@MrsAnnish
10 ай бұрын
Thanks a lot! Very useful. My camera doesn't go up and down still, what can be my mistake? Thanks again.
@peanut_games
10 ай бұрын
I'd need more details, do other actions work? With no info first I'd check that the Mouse XY is assigned to the Input Action and that the Input Action event in your Event Graph is referencing the correct Input Action.
@dnonct
7 ай бұрын
You need to go on your character (pawn) blueprint, and find "Use controller rotation pitch", on the right side of the screen to activate it, and now you can move your mouse up and down too
@gill8182
2 ай бұрын
@@dnonct not the OP but Thank You! This is very overlooked.
@mrxcs
3 ай бұрын
The new Enhanced Input System does not have "Listen for Input Action" on Widgets, meaning I can't make custom UI logics easily.
@THEAETIK
8 ай бұрын
"OK so it's a 2D Vector meaning one axis per Input Action" Epic Games "Evangelist" drops from F-22 raptor fighter jet: Swizzle Input Axis Value my dearest simpleton, 2 axis in one! *sips f'ing tea*. Seriously though, this is so complicated where it seems to not need to be. Thanks for the explanations however.
@-.._.-_...-_.._-..__..._.-.-.-
4 ай бұрын
Unity allows the inputs to be based on their physical location on the keyboard, rather than their character value, because most people don't use the QWERTY layout.
@wadeeliason969
Жыл бұрын
Reminds me of Unity's new input system
@BrianFoster
Жыл бұрын
In the sense that it is WAY more complicated, right? I was thinking the same thing.
@wadeeliason969
Жыл бұрын
@@BrianFoster Yah. I do find it easier to work with I got confused in the coding aspect of unities new input system
@MyrKnof
Жыл бұрын
I followed this to the tee to try and toggle a directional light and nothing works, not even the old method. Spent all evening trying, and I'm getting so god damn frustrated.. I also cant believe documentation around a thing so simple and essential can be so dog shit I gotta look up YT videos to understand it.
@peanut_games
Жыл бұрын
Is this for a flashlight? If so, Directional Light is for sky light. Regardless, isolate the issue from the input system for now and just right click on the event graph and type 'F keyboard' and select the F key event to hardwire to the F key. It should just take Toggle Visibility with your light component as the Target after that.
@synthesis117
2 ай бұрын
thank you so much this is the only video that really made me understand it......not a huge fan of this system requires a lot more work in the event graph wish they would give you the option to use the OG one if you want
@peanut_games
2 ай бұрын
Thanks for watching :) It has its benefits, for example it allowed me to create a mobile camera touch input marketplace product with all the mappings intact - without making it a whole project so it can plug into an existing project. That being said, I think it does complicate the common use case.
@rageinthecage3900
9 ай бұрын
NewPlayerMappableInput is now deprecated too 🙃Kind of demotivating when you are about to learn it (because you have too) old system was way easier for quick prototyping
@peanut_games
9 ай бұрын
yeah... they also deprecated input configs entirely for some reason.
@pingusmcdingus5124
Жыл бұрын
Would be great if you could've covered gamepad thumbstick mapping and modifier keys like alt and ctrl.
@peanut_games
Жыл бұрын
I might expand on that but thumbstick should be the same as keyboard + mouse ( maybe without negate ) and if you mean to require, for instance, ctrl + another input to perform an action, that uses the chorded action trigger. Once selecting Chorded Action as a trigger you can expand the same row and you can set the other action to combine it with.
@chunkmeister88
Жыл бұрын
Thank you so much! I use an alternate keyboard layout, and I was struggling to remap the default player controls from the ThirdPerson template to my desired bindings. I found success by simply changing each of WASD to the corresponding keys (WARS), but I couldn't figure out why that worked/how specific keys were being mapped to forward/left/backward/right. Your explanation of the swizzle was exactly what I needed. Subscribed!
@peanut_games
Жыл бұрын
Great to hear, as I do try to provide more than 'copy me', thanks!
@rk3450
Жыл бұрын
i can understand that u know stuff in unreal bro but please explain it properly at 4:28 ur saying to give enhancedinputaction movment again in between some video skip and in 4:47 ur saying to start with begin play its getting confusng wheather i have do all the blueprint stuff in single event graph or something is happening in between. i gave all the input in single blueprint now nothing is working. please do not skip video in between bro do a single shot video so that beginner like me will learn something
@peanut_games
Жыл бұрын
There's no process being skipped, I only cut out idle time with the goal of not wasting peoples time. I'm saying in order for the input actions to work, you have to use a BeginPlay event ( or preferably On Possess ) to tell the controller to accept Enhanced Input actions, which I then show by adding the Add Mapping Context node. You can do that from the controller or the character, it's up to you. Also note if you want a workable reference you can create a new project in the newest version and the basic inputs will be set up for Enhanced Input already.
@davidoaken2786
Жыл бұрын
...... i really dont get how this is better than the old system.
@peanut_games
Жыл бұрын
lol I hear you, it's basically only useful if you have multiple pawn types with significantly different controls - it's very modular
@awaydays8935
8 ай бұрын
with this new system I lost an idea how to make characters direction change smoother while walking or running.
@xiaozhen27
Жыл бұрын
Thanks for the video! The enhanced mapping makes things easier to set up in my opinion. Your setup also looks more straight forward than the 5.1 Third's person. I am struggling to get the player controller/forward vector to face the direction of the input though. Any idea what is wrong? I already have Orient Rotation to Movement on.
@peanut_games
Жыл бұрын
Hey thanks for watching! To get characters to face movement there are actually 2 flags you have to set. One is in Character Movement and the other is in the Controller. I'm not at my pc right now but if you hover over the Orient to Movement flag and it should provide a good description of what else it needs and what it overrides.
@xiaozhen27
Жыл бұрын
@@peanut_games Thanks! I think it is something along the like of set controller yaw. I tested your solution again and realized I still need to get forward vector or it is just going to walk in world XYZ
@peanut_games
Жыл бұрын
@@xiaozhen27 I gotcha, I think I misunderstood earlier. Input wise, Orient Rotation to Movement doesn't do anything - that's only for making the character and their mesh face the direction they're moving. Sounds like you got the solution, you have to rotate the input vector by *controller* rotation ( just Z ) so it's based off your third person camera view, unless you're going for some variation of top-down tank controls.
@xiaozhen27
Жыл бұрын
@@peanut_games Not totally. While setting controller yaw enabled the character to rotate, it does not set the right vector...
@peanut_games
Жыл бұрын
@@xiaozhen27 Are you trying to make the character look the same direction as the third person camera?
@khronyk6139
8 ай бұрын
the modularity of this is incredible, a life saver for me :)
@thomassparks827
Жыл бұрын
This does not actually work as the tutorial still has the engine's deprecated movement in the background. If you remove the deprecated stuff, it stops working entirely. Followed instructions exactly sans footstep noises, Could not walk after removing deprecated inputs.
@peanut_games
Жыл бұрын
I completely replaced the old input events and removed the action mappings project settings, so first thing I'd double check is that you're initiating Enhanced Input in the BeginPlay event.
@jimmyc2223
Жыл бұрын
4:57 Say that fast 10x Instruction unclear, now I bit off my tongue Jokes aside, thank you for your tutorial. You helped an old timer(UE4 user) like me a lot.
@peanut_games
Жыл бұрын
lol don't make me add disclaimers :P Good to hear, thanks for watching :)
@dimensional7915
Жыл бұрын
I'm coming from knowing Unitys new input mapping system and I have to say while UE5's enhanced input system makes sense I have no idea why they picked the word Swizzle for the modifier that changes what value a input registers under (given x, y, or z). tried googling it but just got that Swizzle is a mixed alcoholic beverage so perhaps the devs had a few of those when making the feature lol
@peanut_games
Жыл бұрын
lmao that's great, and the definition below it is "swizzle, another term for swizz" which is defined as "a thing that is disappointing or represents a mild swindle." But I did watch a video on how to mathematically rotate a vector ( I'm glad UE can do it for you ) recently and 'swizzle' was actually spoken... So if you add 'math' to your search it will show it basically means the same thing as the drink definition, you 'stir' the vector, or - "In computer graphics, swizzles are a class of operations that transform vectors by rearranging components." So, still inspired by alcoholic beverages but people really do use the term in computer graphics and trigonometry 🤔😆
@clementred3801
Жыл бұрын
Every tutorial is freaking different, IDK what to do anymore ...
@peanut_games
Жыл бұрын
ahah oh no, what are you trying to do?
@devu4740
Жыл бұрын
Finally a good fucking tutorial.
@GeneralVanceStubbsCousin
Жыл бұрын
This is going to be a pain to jump to, I’m trying to make an RTS camera so this is gonna be a challenge.
@peanut_games
Жыл бұрын
Keep in mind new projects now come with Enhanced Input set up with basic controls so you can that for reference. Good luck!
@Kein_Alias
Жыл бұрын
Hey, nice one! & Keep it Up! :) Can You Check Combo & Chorded Action in 5.1.1? For some reason its not working for me.
@peanut_games
Жыл бұрын
Thanks! Set it as a trigger in the mapping context, that will allow you to expand the index tab, it's easy to miss sometimes.. Then you can select which action to combine with. Chorded action is pressed at the same time and combo is a sequence, combo must use the Triggered execution pin not Started
@TheJoysofBeingaSmallAnimal
Жыл бұрын
Can you talk about enhanc ed input Android operation? Enhanced android zoom, enhanced android touch rotation perspective,
@peanut_games
Жыл бұрын
looking into it
@Warfalcon
Жыл бұрын
Quick and to the point, appreciate it. I'm day 3 of learning UE (little to no programming knowledge). How much different is the BP for click to move, like an ARPG? All the videos I see for this new input method is for wasd. Thanks!
@peanut_games
Жыл бұрын
Hey thanks for watching! It's very different, but you can just create a new project with the top down preset where exactly that is included. Epic converts screen space to world space then does a line trace to get the location for the character to self-navigate to like runescape. Input-wise all it is, is a mouse click event.
@Warfalcon
Жыл бұрын
@@peanut_games Thanks I will l take a look at those files and see if I can get a understanding on the BP
@fleurbird
Жыл бұрын
Good content! I personally think the new system is overcomplicated. I wonder what the benefits are.
@peanut_games
Жыл бұрын
I'm actually working on a mobile thirdperson camera asset... so as you'd expect there are actions like touch with 1 finger to pan and 2 fingers to zoom, but when you start to zoom with 2 fingers, it also pans at the same time since it's unintentionally detecting the single finger input as well. With this system I can easily disable the pan input when zooming starts, without excessive variables like "Is Zooming". That's one example
@fleurbird
Жыл бұрын
@@peanut_games oh awesome! You just earned a follower
@TheMetalProject
Жыл бұрын
Id really like to keep the exact same camera look system but have it locked behind my right mouse button. I want the camera locked until i hold the right mouse button, then i can move freely. I have spent 3 days of my life scouring information and videos and can't figure out how to make my Look triggered by a button.This system has been incredibly aggravating to learn on.
@peanut_games
Жыл бұрын
Make an Input Action, something like 'Activate Camera Look', set it to right mouse button in its own Input Mapping Context. Put that in the event graph and from Started, Completed, Cancelled, you can add and remove that mapping context that has the look axis in it. That's the strength of enhanced input, you can dynamically add and remove inputs. You could also use a Chorded Trigger, might be more straight forward.
@TheMetalProject
Жыл бұрын
Thanks i really appreciate the time/info. im gonna give it a shot
@peanut_games
Жыл бұрын
@@TheMetalProject oops I meant add the axis binding ( mouse look ) in its own mapping context not the right click lol, keep the right click in the normal mapping context... good luck!
@weijunchen1290
Жыл бұрын
How to I get which key I pressed? How do I know Is Keyboard or Controller ?
@peanut_games
Жыл бұрын
There is one way, it's a bit odd. Use the 'Query Keys Mapped to Action' node. This will give you all keys assigned to the action. Now you have to filter them. Plug the output array into a ForEachLoop, check that each key 'Is Input Key Down' = True and those that pass will be the ones being pressed for that action, then you can use 'Is Keyboard Key' or 'Is Gamepad Key'. I could make a video on the weekend if that would help.
@weijunchen1290
Жыл бұрын
@@peanut_games In the old way have the key output, so I know which key I pressed, I think they should keep the key output for Enhanced input too🤣
@erikringwalters
Жыл бұрын
Great video! I'm interested to see how these new input actions work with swiping on mobile devices.
@peanut_games
Жыл бұрын
Thanks, I believe it's pretty much the same. In addition to keyboard there are motion, touch, and gesture menus, I don't see a swipe verbatim but there are options like pinch, flick and rotate for inputs. Under Touch they have Touch 1-10, which is apparently number of fingers on the screen. But yeah, looks like it's all or mostly predefined in UE and is implemented the same as with keyboard input.
@mybadstudios
Жыл бұрын
I can't find any info on the entire internet on how to use Chorded actions. How do I say "Shift+Click" or "Shift + W" ? Every video on the internet says the same things and nobody explains how to do that :( Can you help explain that please?
@peanut_games
Жыл бұрын
you add chorded action as a Trigger in the mapping context, then open the dropdown menu that appears on that same line, you'll see a new arrow on the left.. you can open it and set the action that must be actuated at the same time. The thing is you don't set keys to press together, you set an action to press together. You have to set up the actions and their key mappings separately. So for example if your click is assigned to an Interact action but want +shift to trigger it, you have to make another action I'll dub Interact_Chord, and assign shift to that action. Then add the chorded action trigger to 'Interact' with 'Interact_Chord' as the chorded action.
@mybadstudios
Жыл бұрын
@@peanut_games So just to clarify.... I have a mapping and context setup to say "Left Click fires weapon 1" to fire my alt weapon with Shift+Click I have to setup a button for Shift and in the context say "When Shift is pressed do a chorded action looking for main weapon being fired also" and that will then fire of my alt weapon INSTEAD of the weapon assigned to left click? See, the game I am making has 4 weapons and I decide which one to use by using left and right mouse buttons and the shift key. This means I have 3 input actions to create and then via the context I can turn those 3 input actions into 4 separate mappings but if I understand you correctly, how does the context know that if I left click AND shift, ignore the mapping assigned to left click only? Or is that exactly what it does? Please oh please, mate, a 1 minute video showing a demonstration would be highly appreciated!
@peanut_games
Жыл бұрын
@@mybadstudios I think I'll do that, this question has come up a few times in various formats. I work seasonally and I'm getting into working full time again so it's been pretty brutal trying to find time to make videos but this weekend looks promising. To try and answer for now though, yes that's my understanding that it's recorded as a totally separate input. That being said, any button order will trigger the chorded input, it doesn't care about the order as long as in the end they're both pressed ( combo is for a sequence ). So in this case you'd have to make sure to hit shift FIRST, or you'll end up triggering the left click only action for a moment. So yeah that sounds right, with your case I'd make a standard, default action called IA_AltWeapon and assign Left Shift to it ( DON'T give it its own event in the Event Graph ), add a Chorded Action trigger to the 2 respective alt weapon actions with Left/Right Click as the main input and IA_AltWeapon as the Chorded Action.
@mybadstudios
Жыл бұрын
@@peanut_games I managed to get my inputs configured. Thanks ever so much! Now that I know how to do it, it is so simple. lol :D Again, thanks so much for the assist
@Masterbleu1
Жыл бұрын
how would you do something like a swimming or flying method?
@peanut_games
Жыл бұрын
Input-wise it's the same thing except don't exclude the X and Y axes from Add Movement Input. Set movement mode to flying or swimming in Character Movement.
@Masterbleu1
Жыл бұрын
@@peanut_games thanks i will give it a go
@halftonellc
Жыл бұрын
Hello! I'm trying to follow your tutorial to a T but when I finish the actual input mapping and go to my BP editor none of that extra stuff shows up. Do you know why?
@halftonellc
Жыл бұрын
In the event graph
@peanut_games
Жыл бұрын
@@halftonellc What extra stuff do you mean?
@halftonellc
Жыл бұрын
@@peanut_games Sorry if my verbiage isn't correct, but do you know on the event graph all the nodes/components that just pop up? Well, when I followed your tutorial and several others perfectly, nothing came up. Only three components for the standard things you always get for blue prints
@peanut_games
Жыл бұрын
@@halftonellc You mean the 3 default event nodes BeginPlay, OnActorBeginOverlap and Tick? If this is in your player character it sounds like it's a child character blueprint and all the events are handled in the parent, that's why you're not seeing anything. Modify the parent class, it's shown in the top right corner of your blueprint, or create the same events in the child to override them.
@ForeverNils
Жыл бұрын
4:54 cast to player controller fails :( did you setup maps and modes?
@peanut_games
Жыл бұрын
Player characters should always have player controllers.. Possession could be a tick late for whatever reason resulting in a failed cast since in that tick there technically is no controller, try On Possess instead of Begin Play.
@Cloroqx
Жыл бұрын
Always use the OnPossessed event for this.
@peanut_games
Жыл бұрын
@@Cloroqx Epic uses BeginPlay but it's in the controller, in hindsight that's clearly the difference... they actually did it exactly like that in the doc page before they updated 5.1 with it
@gingerwhale871
Жыл бұрын
how can I do a Dash or Jump with this system?
@peanut_games
Жыл бұрын
It's much simpler than the examples I showed, the same with less steps - I picked the most complicated ones intentionally. It's all the same except there are no modifiers, just leave them blank. Create a new input blueprint for jump, etc and add it + bind the key in the mapping context.
Пікірлер: 105