Chorded Actions

If i have a chorded action (say Alt+A) as well as another action (just A) how do i stop the chorded action from executing BOTH the non-chorded and chorded version when invoked?

HI @aerospike_andy ,
I’m leaving you a couple of tutorials that might be useful for what you want to do:

Documentation:

Video Tutorials

Hope it helps!

1 Like

Kinda - I’ve seen 2 of these vids before, the 2nd one there (the kick one) was how i discovered chorded actions in the first place.

So I did do this which changed the behaviour:

This however only triggers the first time i hold down the right mouse button - subsequent press and hold does nothing - WHY? Tried it with DOWN instead of hold - same behaviour

Nothing I seem to do with the order of the controls being consumed seems to matter unfortunately.

It seems to be this issue:

This seems to have fixed it:

image

1 Like

OK so back to the chorded thing:

In this setup holding down A or W or whatever whilst holding down Alt does both the rotation actions (at the top) and the dolly/pedestal movement stuff at the bottom?

Should this ordering not mean that the lower actions are not activated?

1 Like

How to enable Chorded Action remappings in a main menu?

So I did work this out btw - effectively it was about them all activating at the same time (as configured via the “hold time threshold”) - i offset them by like 1/10th of a second and now it works as intended

1 Like

That’s not a Chorded Action. That’s a hack. A workaround.

Errr - no it’s a way to differentiate between 2 actions (one chorded) and another using the same set of keys - it IS a chorded action - just in order to use the same key to do something else i needed to offset the hold time threshold…

What you talkin bout guv? Do you actually know what I am trying to do here? Let me explain for a sec:

I need to use wasd to move the player around - i also wanna use wasd for changing the orientation of a placeable object - but as a chorded action (hold alt and w/a/s/d) - the issue i was having was that when i did the orientation thing (holding down alt) it also moved the player around - less than ideal - now they were both set at 0.5 (the default) hold threshold - which makes sense that they would both actuate at the same time - coz they are set at the same threshold - i set the player movement one to be 0.1 and the orientation (chorded action) to 0.0 and all is working fine now…job’s a goodun - not sure how this is a hack…

Unfortunately i only have one left hand so keeping it in more or less the same spot is useful…

How would you do it?

I see you tried reordering the inputs. That was supposed to work. But I was also led to believe that using a Trigger/Chord would work as intended and not have the side effect as you describe here.

One solution might be this:

  1. Chorded input sets variable b_chordedPressed to true.
  2. In the WASD movement input, check for b_chordedPressed. If false, move pawn.

Unfortunately, this would lead to a bit of pawn movement. Also a hack.

I really don’t have an answer for you. I’m taking a deep dive into the EIA code now.

If it works for you, that’s good. Get done what what you need to do. GL.

I wouldn’t use any of that junk and just code them in natively.

A button press just checks that no direction is also pressed before activating whatever it needs to.

Direction presses checks if Also A is pressed before activating something else.

Depending on game type you may need different rule sets and more complex checks.

Or separate the inputs with a Pawn mode and Placement mode.

More junk please.

so how is this “supposed” to be done?

Context switching. But this assumes that the pawn does not move during placement.

UI button/s allow player to enter/exit placement mode. This switches the input context between pawn inputs (WASD for movement) and placement inputs (WASD for placement).

I can’t say for sure that that is how your game is set up. That I don’t know. But knowing now the issue that you’re dealing with, this would be my approach.

Rather than “context" this use case is likely to be different actor controls alltogeter.

When you enter placement mode, you possess a different actor with a different controller.

When you exit, you go back to possessing the original actor.

It’s still “context" in the sense that it becomes contextual to what you are supposed to control.

Which is indeed best practice…

You are able to move while “in placement mode” - unless you mean use a different actor just for the orientation change…coz you cannot (and indeed do not want to) move while doing this (hence overloading the use of WASD for this)

This developer has a pawn walking, and a pawn flying. There is a IMC (input mapping context) for walking and an IMC for flying. There are BP nodes to add and remove the IMCs, effectively switching between them.

In your case you would have an IMC for pawn locomotion, and a separate IMC for placement.