Click and Drag Interaction System (Amnesia)


Posted this before the crash but it didn’t get saved,

Basically I want to make the same click and drag door opening and drawer opening system,
I know its similar to the “Crank Rotation” in the Blueprint Communication example but I’m not sure how to swap out the rotation feature for a movement one.

I’ve found a few nodes like:

But im unsure to their design or purpose as their is a lack of documentation, Im also unsure whether or not to begin with the Crank or the Chain as the base, as they are fairly similar but use different methods e.g. Crank is interpolated so can get to any angle, while the crank only slides from A to B so, in this case you couldn’t have a slightly ajar door or drawer.

If anyone has any info on this or show me a good place to start that would be appreciated,


I think you need a couple of different Blueprints to cover all bases.

Drawer could be vector or a float(how far from XYZ along an axis).
A door could be 3 rotations… max min and current rotation.

Ahh, okay coincidentally today I had a browse around on the Content examples and forgot how rifled it was with content, player characters, and mechanics,
So what I did was I took the one that was used for the physics control and slider manipulation, so it looks like the basis is filled in for me again, I just need to figure out how im going to tweak and break apart the blueprint slider system to try and replicate that of a desk with multiple drawers.

Thanks a lot for the reply though .

I should be able to handle that from here, which leads me on to another question…

Im looking to implement other features seen in games like Amnesia and Half-Life, that is the ability to rotate the object your holding in space, this is mainly a question based around holding down multiple keys e.g.

While holding and object ( After clicking it ) and while holding “R” on the keyboard, your Mouse X+Y manipulation changes to become the objects world rotation, I think if you also CLICK again while holding the object and “R” you then get to bring it closer and further away…

The exacts aren’t important its more the implementation of holding down multiple keys, keys that may also commit other functions to then swtich to perform others…

The only way i can imagine doing it is with a list of bool and branches, but that seems terrible too obvious and possible inefficient,
Anyone have any light to share on the matter?

Well, the booleans are the way to go I would say.

Remember to use the AND node if you need multiple booleans to be true instead of doing multiple branches. (remember to press add pin for more than 2 booleans)

Ahh thanks for the heads up, I don’t make enough use of my AND nodes, I think my code is just a little too simple at the moment, but with time will improve :smiley:

Thank you for the help though :slight_smile: