Arms movement animation to get items

Hi there.

In a FPS perspective, I want to pick up items from the scenario in a more realistic way - showing the arms/hands animation of the character for the player.

The point is: is this something too hard to perform? Can someone enlighten me of the steps to transform this idea into reality?

Please, avoid comments like “you’ll need a full-stack team who know how to program, design; you’ll also need money, advanced knowledge in 3D animation, physics, etc”. What I need is technical.


Edit – better explanation

I don’t want a tutorial explaining how to create the arms’ animation. I just need to know how to say to UE “hey, when the user press the right-click of the mouse, please, run this animation unto that item.”.

Hi there,
This seems like a good scenario for using an Animation Montage. We use Montages fairly often for playing attack or interaction animations as they can easily be called from a Blueprint and they can override whatever else is playing on the character at the time. They require a small bit of setup in the Animation Blueprint.

Detailed info here: Animation Montage | Unreal Engine Documentation

Good luck!

Honestly, one of the easiest ways to prototype this out is using “Stage Freezes” through matinee (UE4 - Blueprints). I have done this many times in UE3 in order to show an idea. (And it works rather well).
A “stage freeze” is where a series of matinee’s (or in UE4 - Blueprints / detailed sequences), hold their current status until something occurs which either tells them to cancel, backtrack, or continue to the next phase.

Example:
The Final Desired Effect: When the player gets close enough to an item and they look at it, their hand raises and waits for me to click the X button to tell them to pick the item up. Once the button is clicked, then the hand will grab the item. After grabbing the item, the player will either put it in their jacket, eat it if it is food, or hold onto it in their hand for later use.

Simple Breakdown:
** A set of animations needs to be created with each animation ending where the next will pick up. **

  • Animate the hand reaching out and freezing in front of the player
  • Animate a simple breathing loop with the hand in the extended position from the ^above] animation end point.
  • Animate the hand reaching out and making a grabbing motion
  • Animate the hand placing the object in the players jacket

**Interaction Methods: **
(For this demonstration) the interaction of the objects is most likely going to be determined based upon (If the player is looking at an item or not) and (If the player is close enough to the item to interact with it)
Knowing that, some type of look-at triggering needs to take place, but be limited to the distance of the player. (e.g. If the player is too far away, the look-at trigger won’t initiate, and therefore interaction is disabled).

The reason it is broken up like this, is so that if/else conditions can be implemented into the break points (Between each animation condition). If you were to try and visualize what is happening here, it would look something like this (Not accurate script syntax - simply an example):

if player.distance IS <= 100 then
(
activate look-at
play animation (‘Raise Hand’) and hold
)
else
(
deactivate look-at
)

if input.controller.x pressed then do
(
if look-at state == true then
(
play animation (‘grab item’) and hold
)
else
(
reverse animation (‘Raise Hand’)
deactivate look-at
)
)

This will allow for proper animation splits to conform to the progression of blueprints or detailed sequences.

-Jeremy-

Hey guys, thanks for your answers! They were very helpful!

But I get myself confused. Ray told me that Animation Montage is a good scenario to turn my idea into reality; otherwise, JBaldwin mentioned the “Stage Freezes” and now I don’t know how to keep going. What’s the best/right/easiest way to take? Ray’s or JBald’s?

And about JBald’s post: dude, you was very very clear in your entry. I had a piece of the logical concept right in my mind, but you clarified me some questions about my problem in general. I mean, you showed me a concise way that’ll shape a better flowframe of my business.

Thank you two guys for your answers.

The technique I was referring to is not a description of a “One Answer Solves All” solution. The question shouldn’t be which technique to use, because both should be married together. I simply was speaking about one way to approach the progression of visually scripted elements / gameplay progression / quests / etc. and how to prototype those using one of several techniques to integrate the progression of animation. However within that description, Animation Montage could play a huge roll in properly dealing with animation as scripted events progress or gameplay dynamically changes based on conditions like (whether or not a player looks at something).

-Jeremy-