Animate

July 18, 2023 ยท View on GitHub

from tdw.replicant.actions.animate import Animate

Play an animation.

The animation will end either when the animation clip is finished or if the Replicant collides with something (see self.collision_detection).

  • The collision detection will respond normally to walls, objects, obstacle avoidance, etc.
  • If self.collision_detection.previous_was_same == True, and it was the same animation, and it ended in a collision, this action ends immediately.

Fields

  • record The HumanoidAnimationRecord of the animation.

  • collision_detection The CollisionDetection rules.

  • forward If True, play the animation forwards. If False, play the animation backwards.

  • loop If True, the animation will continuously loop and the action will continue until interrupted.

  • status The current status of the action. By default, this is ongoing (the action isn't done).

  • initialized If True, the action has initialized. If False, the action will try to send get_initialization_commands(resp) on this frame.

  • done If True, this action is done and won't send any more commands.


Functions

__init__

Animate(animation, collision_detection, forward, library, previous, ik_body_parts, loop)

ParameterTypeDefaultDescription
animationstrThe name of the animation.
collision_detectionCollisionDetectionThe CollisionDetection rules.
forwardboolIf True, play the animation forwards. If False, play the animation backwards.
librarystrThe name of the animation's library.
previousOptional[Action]The previous action. Can be None.
ik_body_partsList[ReplicantBodyPart]Maintain the IK positions of these body parts.
loopboolIf True, the animation will continuously loop and the action will continue until interrupted.

get_initialization_commands

self.get_initialization_commands(resp, static, dynamic, image_frequency)

ParameterTypeDefaultDescription
respList[bytes]The response from the build.
staticReplicantStaticThe ReplicantStatic data that doesn't change after the Replicant is initialized.
dynamicReplicantDynamicThe ReplicantDynamic data that changes per communicate() call.
image_frequencyImageFrequencyAn ImageFrequency value describing how often image data will be captured.

Returns: A list of commands to initialize this action.

get_ongoing_commands

self.get_ongoing_commands(resp, static, dynamic)

Evaluate an action per-frame to determine whether it's done.

ParameterTypeDefaultDescription
respList[bytes]The response from the build.
staticReplicantStaticThe ReplicantStatic data that doesn't change after the Replicant is initialized.
dynamicReplicantDynamicThe ReplicantDynamic data that changes per communicate() call.

Returns: A list of commands to send to the build to continue the action.

get_end_commands

self.get_end_commands(resp, static, dynamic, image_frequency)

ParameterTypeDefaultDescription
respList[bytes]The response from the build.
staticReplicantStaticThe ReplicantStatic data that doesn't change after the Replicant is initialized.
dynamicReplicantDynamicThe ReplicantDynamic data that changes per communicate() call.
image_frequencyImageFrequencyAn ImageFrequency value describing how often image data will be captured.

Returns: A list of commands that must be sent to end any action.