character jumping/ falling

i was starting a third person game. i’m having a problem with jumping. i’m trying to make it so when the character is jumping and moving up he is in one position, but when hes moving down he is in a different position. (ex. “diving” upwards, and arms up falling when hes going down.
also, when he is not moving forwards he would jump straight up and not be diving at an angle.

is there a way to do this?

I would suggest timing the action. Say it takes 0.5 sec to reach the top of his jump: then would make a 1 sec action in which his arms would go up before 0.5 sec and down after 0.5 sec.
As for jumping straight up just have is so when only the jump button is pressed (without any motion buttons being pressed) it plays a different jump action.
Does this help or do you need more specific instructions?
I could post a basic demo file if you want. :eyebrowlift:

The best would eb a python script comparing the current objects position with the last objects position. e.g.


import GameLogic
PoldPos = "__oldPosition"
threshold = .01 
def activateAll(cont):
  for actuator in cont.actuators:
    cont.activate(actuator)
def deactivateAll(cont):
  for actuator in cont.actuators:
    cont.deactivate(actuator)
def isFalling(obj):
    if not PoldPos in obj:
      obj[PoldPos] = obj.worldPosition
    falling = obj[PoldPos][2] - obj.worldPosition[2] > threshold
    obj[PoldPos] = obj.worldPosition
    return falling
def whenFalling(cont):
  if isFalling(cont.owner):
    activateAll(cont)
  else:
    deactivateAll(cont)

Add this script as e.g. “Falling.py”. Then configure a Python controller in module mode with “Falling.whenFalling”.
All connected actuators gets activated when the object is falling and deactivated when the object is not falling.
Add a sensor that makes sure it sends a pulse every time the object might fall.
I suggest to use a collision sensor in False-pulse-Mode. (That means the module is triggered when the object does not collide with something -> assume it is falling).

I hope it helps