Player Small Interactions Guide

Subscript: j\player_interaction_small

Input data:

  • motion_player_in – a short motion that puts the player in the right position for interaction (12-30 frames).
  • motion_player_main – the main interaction motion.
  • motion_player_out – an exit motion for the scene with partial return of control. It starts as soon as the player stops interacting with an object/world. At this time, the player can already walk and rotate the camera horizontally.
  • motion_weapon_in – a motion for the weapon during motion_player_in.
  • motion_weapon – a motion for the weapon during motion_player_main + motion_player_out + extra (maybe slightly longer than the motion of the player).
  • Civil_mode_free – forces the use of civil free mode, if the scene was only made for free.
  • scene_hud – enables an automatic scene HUD, starting with the first frame. Always needed, if there is an interaction between the player and the world, otherwise, the player’s hand position does not match the object. Will deactivate on its own after the deactivation of the civil mode.
  • If more control is required to turn on/off, the HUD scenes can still be turned on by tags residing in animations – the script will automatically turn the HUD scenes on upon encountering the scene_hud_on tag, and deactivate them upon the use of the scene_hud_off tag.
  • object_ex_loc_name – the locator name within motion_ex_object, the point where the player is pulled to during motion_player_in. If this locator does not exist or the name is not correct, the player is pulled to the model space point (posrot).

 Output data:


  • motion_ex_object – an object to which the player will be pulled up and where object_ex_loc_name is expected to be.
  • motion_main_start – out reporting that motion_player_in is over, the synch point of motion_player_main and the motion object the player is interacting with.
  • finish – out reporting that the scene is over.

How to Use

If a scene only requires an animation of the player (peeping out/fatigue/crawl-throughs/inspection of an object without touching it).

Just add the block and enter the player's animations.

If a scene shows an interaction with an object 

Picking up an object/pressing a button/pushing an object, etc. The animation of the object should begin at the same time and match the animation of the player's motion_player_main. The motion_main_start aids in the synchronization of motions. The number of objects, in this case, may be unlimited.

Note: to reduce the number of objects, an interaction object can be used as the point the player will be pulled to. The name of the locator to which the player will be pulled is entered in the field object_ex_loc_name field.

If a scene was made for the Danger mode

If you uncheck the civil_mode_free box, everything will work the way it should.  

If a scene involves an interaction with objects in both danger AND free (mostly concerns one-handed interactions)

Uncheck the civil_mode_free box. If the motion is correct, no further adjustments are needed. The same motion will be suitable in both situations and the logic will choose the free state or danger state correspondingly.

If a scene was only made for the free state (with no weapons or both hands taking part in an interaction)

If there is no need for a weapon animation, check the civil_mode_free checkbox. Leave the motion_weapon_in and motion_weapon fields empty.

Submitting a scene for animation

1) Add an effect, select the dynamic\objects\axis_xyz_helper model for it.

2) Place the effect where the player should be at the beginning of an interaction, thus creating the motion_ex_object. Name it start_point.

3) Add another instance of the same effect with the same model and place it at the point where the weapon is. Name it object_point.

4) Add another instance of the same effect and place it where the player should be at the end of the scene (if the player needs to move somewhere during the scene). Name it end_point.

5) Select the points, weapons, and geometry that the animator needs to consider and Export to FBX.

Preparing a scene in Maya

No matter where the geometry is, after importing into Maya, all the geometry needs to be made into a child of the axis_xyz_helper (player position). The axis_xyz_helper (player position) must also be placed in the player’s pos_rot initial position.

To simulate the player’s posture when looking down (approximately where the used object is expected to be seen), an auxiliary rig needs to be made.

  • create a cc_*look* controller
  • group
  • place the group in the camera position and make it a child of cc_spine2
  • parent constraint cc_*look* → grp_cc_spine3

The animation for looking down is best placed in a separate layer.

Motions Requirements

Object interactions while still holding a weapon

Player:

  • * _in  (xform), accrue 400, at the 15th frame, the left hand should be completely withdrawn so that this motion also works in the free state.
  • * _main  (xform).
  • * _out  ends with a weapon at the edge of the screen to hide the IK.

 Tags:

  • scene_hud_in  as agreed with a Designer.
  • scene_hud_off  as agreed with a Designer, it usually looks best at the frame 0 motion_player_out.

wpn_base

  • *_in – relative to loc_wpn_base.
  • *_main  relative to loc_wpn_base.

Weapon animations end later and have inertia. To hide the moment where the IK begins and blends with the AS, the weapon needs to be moved off the screen a bit so that the left hand can leave the frame. The fingers and the left hand do not have to finish the end of the animation, they will be taken care of by the IK system in the engine.

The motion/base blend logic will occur according to the accrue value in motion_player_out.

* - a motion name, common for the player, wpn_base, and object.

On this page:


Exodus SDK © 2005-2023, 4A Games Limited. Developed by 4A Games®.
4A Games® is a registered trademark, and 4A Games Limited, Exodus SDK and their respective logos are trademarks of 4A Games Limited.
Published by Deep Silver. Deep Silver is a division of PLAION GmbH, Austria. Deep Silver and Plaion are registered trademarks of PLAION GmbH.
Metro Exodus is inspired by the internationally best-selling novels METRO 2033 and METRO 2034 by Dmitry Glukhovsky.
All other trademarks, logos and copyrights are property of their respective owners. All rights reserved.
By using this site, downloading or using the Exodus SDK or related content, you are agreeing to be bound by the terms of the End User License Agreement.


EULA