2
0
Эх сурвалжийг харах

Introduction to 2d animation added. #526

Dennis Ploeger 7 жил өмнө
parent
commit
e6521082bb
38 өөрчлөгдсөн 481 нэмэгдсэн , 0 устгасан
  1. BIN
      learning/features/animation/img/animation_add.png
  2. BIN
      learning/features/animation/img/animation_add_call_func_track.png
  3. BIN
      learning/features/animation/img/animation_add_keyframe.png
  4. BIN
      learning/features/animation/img/animation_add_sampleplayer2d.png
  5. BIN
      learning/features/animation/img/animation_add_track.png
  6. BIN
      learning/features/animation/img/animation_animation_panel.png
  7. BIN
      learning/features/animation/img/animation_animation_panel_overview.png
  8. BIN
      learning/features/animation/img/animation_animation_panel_reference.png
  9. BIN
      learning/features/animation/img/animation_animation_player_tree.png
  10. BIN
      learning/features/animation/img/animation_call_func_add_keyframe.png
  11. BIN
      learning/features/animation/img/animation_call_func_keyframe.png
  12. BIN
      learning/features/animation/img/animation_convenience_buttons.png
  13. BIN
      learning/features/animation/img/animation_create_animationplayer.png
  14. BIN
      learning/features/animation/img/animation_create_new_animation.png
  15. BIN
      learning/features/animation/img/animation_illustration.png
  16. BIN
      learning/features/animation/img/animation_keyframe_editor_key.png
  17. BIN
      learning/features/animation/img/animation_keyframe_editor_toggle.png
  18. BIN
      learning/features/animation/img/animation_keyframe_editor_transition.png
  19. BIN
      learning/features/animation/img/animation_keyframes.png
  20. BIN
      learning/features/animation/img/animation_loop.png
  21. BIN
      learning/features/animation/img/animation_normal_track.png
  22. BIN
      learning/features/animation/img/animation_play_from_beginning.png
  23. BIN
      learning/features/animation/img/animation_properties_keyframe.png
  24. BIN
      learning/features/animation/img/animation_reference_animation_controls.png
  25. BIN
      learning/features/animation/img/animation_reference_animation_management.png
  26. BIN
      learning/features/animation/img/animation_reference_timeline_controls.png
  27. BIN
      learning/features/animation/img/animation_reference_timeline_zoom_level.png
  28. BIN
      learning/features/animation/img/animation_reference_track_control.png
  29. BIN
      learning/features/animation/img/animation_select_sampleplayer2d.png
  30. BIN
      learning/features/animation/img/animation_set_length.png
  31. BIN
      learning/features/animation/img/animation_simple.gif
  32. BIN
      learning/features/animation/img/animation_timeline.png
  33. BIN
      learning/features/animation/img/animation_track.png
  34. BIN
      learning/features/animation/img/animation_track_interpolation.png
  35. BIN
      learning/features/animation/img/animation_track_rate.png
  36. BIN
      learning/features/animation/img/animation_track_settings.png
  37. 1 0
      learning/features/animation/index.rst
  38. 480 0
      learning/features/animation/introduction_2d.rst

BIN
learning/features/animation/img/animation_add.png


BIN
learning/features/animation/img/animation_add_call_func_track.png


BIN
learning/features/animation/img/animation_add_keyframe.png


BIN
learning/features/animation/img/animation_add_sampleplayer2d.png


BIN
learning/features/animation/img/animation_add_track.png


BIN
learning/features/animation/img/animation_animation_panel.png


BIN
learning/features/animation/img/animation_animation_panel_overview.png


BIN
learning/features/animation/img/animation_animation_panel_reference.png


BIN
learning/features/animation/img/animation_animation_player_tree.png


BIN
learning/features/animation/img/animation_call_func_add_keyframe.png


BIN
learning/features/animation/img/animation_call_func_keyframe.png


BIN
learning/features/animation/img/animation_convenience_buttons.png


BIN
learning/features/animation/img/animation_create_animationplayer.png


BIN
learning/features/animation/img/animation_create_new_animation.png


BIN
learning/features/animation/img/animation_illustration.png


BIN
learning/features/animation/img/animation_keyframe_editor_key.png


BIN
learning/features/animation/img/animation_keyframe_editor_toggle.png


BIN
learning/features/animation/img/animation_keyframe_editor_transition.png


BIN
learning/features/animation/img/animation_keyframes.png


BIN
learning/features/animation/img/animation_loop.png


BIN
learning/features/animation/img/animation_normal_track.png


BIN
learning/features/animation/img/animation_play_from_beginning.png


BIN
learning/features/animation/img/animation_properties_keyframe.png


BIN
learning/features/animation/img/animation_reference_animation_controls.png


BIN
learning/features/animation/img/animation_reference_animation_management.png


BIN
learning/features/animation/img/animation_reference_timeline_controls.png


BIN
learning/features/animation/img/animation_reference_timeline_zoom_level.png


BIN
learning/features/animation/img/animation_reference_track_control.png


BIN
learning/features/animation/img/animation_select_sampleplayer2d.png


BIN
learning/features/animation/img/animation_set_length.png


BIN
learning/features/animation/img/animation_simple.gif


BIN
learning/features/animation/img/animation_timeline.png


BIN
learning/features/animation/img/animation_track.png


BIN
learning/features/animation/img/animation_track_interpolation.png


BIN
learning/features/animation/img/animation_track_rate.png


BIN
learning/features/animation/img/animation_track_settings.png


+ 1 - 0
learning/features/animation/index.rst

@@ -5,4 +5,5 @@ Animation
    :maxdepth: 1
    :maxdepth: 1
    :name: toc-learn-features-animation
    :name: toc-learn-features-animation
 
 
+   introduction_2d
    cutout_animation
    cutout_animation

+ 480 - 0
learning/features/animation/introduction_2d.rst

@@ -0,0 +1,480 @@
+Introduction to the 2D animation features
+=========================================
+
+Overview
+--------
+
+The :ref:`class_AnimationPlayer` node allows you to create anything
+from simple to complex animations.
+
+In this guide you learn to:
+
+-  Work with the Animation Panel
+-  Animate any property of any node
+-  Create a simple animation
+-  Call functions with the powerful Call Function Tracks
+
+In Godot you can animate anything you find in the Inspector. Animations
+are changes to properties over time. This means you can animate anything
+visual in nature: sprites, UI elements, particles, the visibility, and
+color of textures. But not only. You can also control gameplay related
+values and call any function.
+
+Create an AnimationPlayer node
+------------------------------
+
+To use the animation tools we first have to create an
+:ref:`class_AnimationPlayer` node.
+
+The AnimationPlayer node type is the data container for your animations.
+One AnimationPlayer node can hold multiple animations, that can
+automatically transition to one another.
+
+.. figure:: img/animation_create_animationplayer.png
+   :alt: The AnimationPlayer node
+
+   The AnimationPlayer node
+
+Click on the AnimationPlayer node in the Node tab to open the Animation
+Panel at the bottom of the viewport.
+
+.. figure:: img/animation_animation_panel.png
+   :alt: The animation panel position
+
+   The animation panel position
+
+It consists of five parts:
+
+.. figure:: img/animation_animation_panel_overview.png
+   :alt: The animation panel
+
+   The animation panel
+
+-  Animation controls (i.e. add, load, save, and delete animations)
+-  The tracks listing
+-  The timeline with keyframes
+-  The track modifiers and keyframe editor (when enabled)
+-  The timeline and track controls, where you can zoom the timeline and
+   edit tracks for example.
+
+See the `animation panel reference <#animation-panel-reference>`__ below
+for details.
+
+Computer animation relies on keyframes
+--------------------------------------
+
+On the computer animations rely on keyframes. A keyframe defines the
+value of a property at a certain point in time.
+
+White and blue diamond shapes represent keyframes in the timeline.
+
+.. figure:: img/animation_keyframes.png
+   :alt: Keyframes in Godot
+
+   Keyframes in Godot
+
+The engine interpolates values between keyframes, resulting in a gradual
+change in values over time.
+
+.. figure:: img/animation_illustration.png
+   :alt: Two keyframes are all it takes to obtain a smooth motion
+
+   Two keyframes are all it takes to obtain a smooth motion
+
+The timeline lets you insert keyframes and change their timing. It also
+defines how long the animation is.
+
+.. figure:: img/animation_timeline.png
+   :alt: The timeline in the animation panel
+
+   The timeline in the animation panel
+
+Each line of the Animation Panel is an animation track. Normal and
+Transform tracks reference node properties. Their name or id is a path
+to the node.
+
+.. figure:: img/animation_normal_track.png
+   :alt: Example of Normal animation tracks
+
+   Example of Normal animation tracks
+
+.. tip::
+
+   If you animate the wrong property, you can edit a track's path anytime.
+   Double click on it and type the new path. Play the animation using the
+   "Play from beginning" button |Play from beginning| (Default shortcut:
+   Shift+D) to see the changes instantly.
+
+Tutorial: Creating a simple animation
+-------------------------------------
+
+Scene setup
+~~~~~~~~~~~
+
+For this tutorial, we'll going to create an AnimationPlayer node and a
+sprite node as a AnimationPlayer node child.
+
+.. figure:: img/animation_animation_player_tree.png
+   :alt: Our scene setup
+
+   Our scene setup
+
+The sprite holds an image texture and we animate that sprite to move
+between two points on the screen. As a starting point, move the sprite
+to a left position on the screen.
+
+.. tip::
+
+   Adding animated nodes as children to the AnimationPlayer node is not
+   required, but it is a nice way of distinguishing animated nodes from
+   non-animated nodes in the Scene Tree.
+
+Select the AnimationPlayer node and click on "Add animation" (|Add
+Animation|) in the animation tab to add a new animation.
+
+Enter a name for the animation in the dialog box.
+
+.. figure:: img/animation_create_new_animation.png
+   :alt: Add a new animation
+
+   Add a new animation
+
+Adding a track
+~~~~~~~~~~~~~~
+
+To add a new track for our sprite, select it and take a look in the
+toolbar:
+
+.. figure:: img/animation_convenience_buttons.png
+   :alt: Convenience buttons
+
+   Convenience buttons
+
+These switches and buttons allow you to add keyframes for the selected
+node's location, rotation, and scale respectively.
+
+Deselect rotation, because we are only interested in the location of our
+sprite for this tutorial and click on the key button.
+
+As we don't have a track already set up for the transform/location
+property, Godot asks, wether it should set it up for us. Click on
+"Create".
+
+This creates a new track and our very first keyframe at the beginning of
+the timeline:
+
+.. figure:: img/animation_track.png
+   :alt: The sprite track
+
+   The sprite track
+
+The track name consists of a Node Path, followed by a colon, followed by
+a reference to its property, that we would like to modify.
+
+In our example, the path is ``AnimationPlayer/Sprite`` and the property
+is ``transform/pos``.
+
+The path always starts at the AnimationPlayer node's parent (so paths
+always have to include the AnimationPlayer node itself).
+
+.. note::
+
+   Don't worry if you change the names of nodes in the Scene Tree, that you
+   already have tracks for. Godot automatically updates the paths in the
+   tracks.
+
+The second keyframe
+~~~~~~~~~~~~~~~~~~~
+
+Now we need to set the destination where our sprite should be headed and
+how much time it takes to get there.
+
+Let's say, we want it to take 2 seconds to go to the other point. By
+default the animation is set to last only 1 second, so change this in
+the timeline controls animation panel's lower panel to 2.
+
+.. figure:: img/animation_set_length.png
+   :alt: Animation length
+
+   Animation length
+
+Click on the timeline header near the 2 second mark and move the sprite
+to the target destination on the right side.
+
+Again, click the key button in the toolbar. This creates our second
+keyframe.
+
+Run the animation
+~~~~~~~~~~~~~~~~~
+
+Click on the "Play from beginning" (|Play from beginning|) button.
+
+Yay! Our animation runs:
+
+.. figure:: img/animation_simple.gif
+   :alt: The animation
+
+   The animation
+
+Back and forth
+~~~~~~~~~~~~~~
+
+As you can see, the "loop" button is enabled by default and our
+animation loops. Godot has an additional feature here. Like said before,
+Godot always calculates the frames between two keyframes. In a loop, the
+first keyframe is also the last keyframe, if no keyframe is specified at
+the end.
+
+.. figure:: img/animation_loop.png
+   :alt: Animation loop
+
+   Animation loop
+
+If you set the animation length to 4 seconds now, the animation moves
+back and forth.
+
+Track settings
+~~~~~~~~~~~~~~
+
+Each track has a settings panel at the end, where you can set the update
+rate and the track interpolation.
+
+.. figure:: img/animation_track_settings.png
+   :alt: Track settings
+
+   Track settings
+
+The update rate of a track tells Godot when to update the property
+values. This can be:
+
+-  Continuous: Update the property on each frame
+-  Discrete: Only update the property on keyframes
+-  Trigger: Only update the property on keyframes or triggers
+
+.. figure:: img/animation_track_rate.png
+   :alt: Track rate
+
+   Track rate
+
+In normal animations, you usually use "Continuous". The other types are
+used to script complex animations.
+
+The interpolation tells Godot how to calculate the frame values between
+the keyframes. These interpolation modes are supported:
+
+-  Nearest: Set the nearest keyframe value
+-  Linear: Set the value based on a linear function calculation between
+   the two keyframes
+-  Cubic: Set the value based on a curved function calculation between
+   the two keyframes
+
+.. figure:: img/animation_track_interpolation.png
+   :alt: Track interpolation
+
+   Track interpolation
+
+Cubic interpolation leads to a more natural movement, where the
+animation is slower at a keyframe and faster between keyframes. This is
+usually used for character animation. Linear interpolation creates more
+of a robotic movement.
+
+Keyframes for other properties
+------------------------------
+
+Godot doesn't restrict to only edit transform properties. Every property
+can be used as a track where you can set keyframes.
+
+If you select your sprite while the animation panel is visible, you get
+a small keyframe button for all of the sprite's properties. Click on
+this button and Godot automatically adds a track and keyframe to the
+current animation.
+
+.. figure:: img/animation_properties_keyframe.png
+   :alt: Keyframes for other properties
+
+   Keyframes for other properties
+
+Edit keyframes
+--------------
+
+For advanced use and to edit keyframe in detail, enable the keyframe
+editor (|Keyframe editor|).
+
+This adds an editor pane on the right side of the track settings. When
+you select a keyframe, you can directly edit its values in this editor:
+
+.. figure:: img/animation_keyframe_editor_key.png
+   :alt: Keyframe editor editing a key
+
+   Keyframe editor editing a key
+
+Additionally, you can also edit the transition value for this keyframe:
+
+.. figure:: img/animation_keyframe_editor_transition.png
+   :alt: Keyframe editor editing a transition
+
+   Keyframe editor editing a transition
+
+This tells Godot, how to change the property values when it reaches this
+keyframe.
+
+You usually tweak your animations this way, when the movement doesn't
+"look right".
+
+Advanced: Call Func tracks
+--------------------------
+
+Godot's animation engine doesn't stop here. If you're already
+comfortable with Godot's scripting language GDScript and API you know
+that each node type is a class and has a bunch of callable functions.
+
+For example, the :ref:`class_SamplePlayer2D` node type has a function
+to play a sample.
+
+Wouldn't it be great to play a sample at a specific keyframe in an
+animation? This is where "Call Func Tracks" come in handy. These tracks
+reference a node again, this time without a reference to a property.
+Instead a keyframe holds the name and arguments of a function, that
+Godot should call when reaching this keyframe.
+
+To let Godot play a sample when it reaches a keyframe, follow this list:
+
+Add a SamplePlayer2D to the Scene Tree and add a sample library and a
+sample to it.
+
+.. figure:: img/animation_add_sampleplayer2d.png
+   :alt: Add SamplePlayer2D
+
+   Add SamplePlayer2D
+
+Click on "Add track" (|Add track|) on the animation panel's track
+controls.
+
+Select "Add Call Func Track" from the list of possible track types.
+
+.. figure:: img/animation_add_call_func_track.png
+   :alt: Add Call Func Track
+
+   Add Call Func Track
+
+Select the SamplePlayer2D node in the selection window. Godot adds the
+track with the reference to the node.
+
+.. figure:: img/animation_select_sampleplayer2d.png
+   :alt: Select SamplePlayer2D
+
+   Select SamplePlayer2D
+
+Select the timeline position, where Godot should play the sample by
+clicking on the timeline header.
+
+Enable the Keyframe Editor by clicking on |Keyframe editor|.
+
+Click on "Add keyframe" near the settings of our func track (|Add
+keyframe|) and select the keyframe.
+
+.. figure:: img/animation_call_func_add_keyframe.png
+   :alt: Add a keyframe to the call func track
+
+   Add a keyframe to the call func track
+
+Enter "play" as the function name and set the argument counter to 1.
+Select "String" as the first argument type and use the sample name as
+the argument value.
+
+.. figure:: img/animation_call_func_keyframe.png
+   :alt: Keyframe settings of a call func track
+
+   Keyframe settings of a call func track
+
+When Godot reaches the keyframe, Godot calls the SamplePlayer2D node's
+"play" function with the sample name.
+
+References
+----------
+
+Animation panel reference
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. figure:: img/animation_animation_panel_reference.png
+   :alt: The animation panel reference
+
+   The animation panel reference
+
+The animation panel has the following parts (from left to right):
+
+Animation controls
+^^^^^^^^^^^^^^^^^^
+
+.. figure:: img/animation_reference_animation_controls.png
+   :alt: Animation controls
+
+   Animation controls
+
+-  Play animation backwards from current position
+-  Play animation backwards from the animation end
+-  Stop animation
+-  Play animation forwards from the animation beginning
+-  Play animation forwards from the current position
+-  Direct time selection
+
+Animation management
+^^^^^^^^^^^^^^^^^^^^
+
+.. figure:: img/animation_reference_animation_management.png
+   :alt: Animation management
+
+   Animation management
+
+-  Create a new animation
+-  Load animation
+-  Save animation
+-  Duplicate animation
+-  Rename animation
+-  Delete animation
+-  Animation selection
+-  Automatically play selected animation
+-  Edit animation blend times
+-  Extended animation Tools
+
+Timeline zoom level control
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. figure:: img/animation_reference_timeline_zoom_level.png
+   :alt: Timeline zoom level contro
+
+   Timeline zoom level contro
+
+Timeline control
+^^^^^^^^^^^^^^^^
+
+.. figure:: img/animation_reference_timeline_controls.png
+   :alt: Timeline control
+
+   Timeline control
+
+-  Length of animation
+-  Steps of animation
+-  Toggle loop animation
+
+Track control
+^^^^^^^^^^^^^
+
+.. figure:: img/animation_reference_track_control.png
+   :alt: Track control
+
+   Track control
+
+-  Add track
+-  Move track up
+-  Move track down
+-  Delete track
+-  Extended track tools
+-  Toggle keyframe editor
+
+.. |Play from beginning| image:: img/animation_play_from_beginning.png
+.. |Add Animation| image:: img/animation_add.png
+.. |Keyframe editor| image:: img/animation_keyframe_editor_toggle.png
+.. |Add track| image:: img/animation_add_track.png
+.. |Add keyframe| image:: img/animation_add_keyframe.png
+