Doc: Add timeline animation tutorial
Add a tutorial describing how to use timeline animation and binding animations to properties. Task-number: QDS-6460 Change-Id: I99a586842f6cc6fe3acb0785757eb1d2de86df54 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
245
doc/qtdesignstudio/examples/doc/animationTutorial.qdoc
Normal file
@@ -0,0 +1,245 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2022 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Design Studio documentation.
|
||||
**
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Free Documentation License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Free
|
||||
** Documentation License version 1.3 as published by the Free Software
|
||||
** Foundation and appearing in the file included in the packaging of
|
||||
** this file. Please review the following information to ensure
|
||||
** the GNU Free Documentation License version 1.3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\page animation-tutorial.html
|
||||
\ingroup gstutorials
|
||||
\sa {Creating Timeline Animations}
|
||||
|
||||
\title Timeline Animation Tutorial
|
||||
\brief Illustrates how to create timeline animations and bind them to
|
||||
properties in \QDS.
|
||||
|
||||
\image animation-tutorial.gif
|
||||
|
||||
The \e{Timeline Animation} tutorial illustrates how to create timeline animations
|
||||
and bind them to properties in \QDS. First you create a keyframe animation
|
||||
which you control the running state of with a switch in the UI. Next, you
|
||||
create another keyframe animation where you use a slider in the UI to
|
||||
control the position of the playhead.
|
||||
|
||||
The starting point of this tutorial is the Animation Tutorial project,
|
||||
you can download it from
|
||||
\l{https://git.qt.io/public-demos/qtdesign-studio/-/tree/master/tutorial%20projects/animation-tutorial/AnimationTutorial/Start}
|
||||
{here}.
|
||||
|
||||
You can download the completed project from
|
||||
\l{https://git.qt.io/public-demos/qtdesign-studio/-/tree/master/tutorial%20projects/animation-tutorial/AnimationTutorial/Completed}
|
||||
{here}.
|
||||
|
||||
This tutorial requires that you know the basics of \QDS, see
|
||||
\l{Getting Started}.
|
||||
|
||||
\section1 Creating a Timeline Animation
|
||||
|
||||
First, you create an animation where the ball bearing continuously rotates
|
||||
around its Y axis.
|
||||
|
||||
\section2 Adding a Timeline and an Animation
|
||||
|
||||
To add a timeline to your project:
|
||||
|
||||
\list 1
|
||||
\li In the \uicontrol Timeline view, select
|
||||
\inlineimage icons/plus.png
|
||||
.
|
||||
This creates a timeline and one animation.
|
||||
\li On the \uicontrol {Animation Settings} tab in the
|
||||
\uicontrol {Timeline Settings} dialog:
|
||||
\list
|
||||
\li Set \uicontrol Duration to 7500.
|
||||
This sets the duration of the animation in milliseconds.
|
||||
\li Select \uicontrol {Contiunous}.
|
||||
This sets the animation to start over again when it reaches the
|
||||
end.
|
||||
\endlist
|
||||
\image animation-tutorial-timeline-1.png
|
||||
\li Select \uicontrol {Close}.
|
||||
\endlist
|
||||
|
||||
You can see the timeline in the \uicontrol Timeline and
|
||||
\uicontrol Navigator views.
|
||||
|
||||
\section2 Adding Keyframes
|
||||
|
||||
Next, you add keyframes to animate the rotation of the ball bearing:
|
||||
|
||||
\list 1
|
||||
\li In the \uicontrol Navigator view, select \e {ballbearing1}.
|
||||
\li In the \uicontrol Properties view, select
|
||||
\inlineimage icons/action-icon.png (Actions)
|
||||
next to \uicontrol Rotation > \uicontrol {Y}.
|
||||
\li Select \uicontrol {Insert Keyframe}.
|
||||
\image animation-tutorial-insert-keyframe.png
|
||||
\li In the \uicontrol Timeline view, select the
|
||||
\uicontrol {Per Property Recording} button to start recording property
|
||||
changes.
|
||||
\image animation-tutorial-per-property-recording.png
|
||||
\li In the \uicontrol Timeline view, move the playhead to the end of the
|
||||
animation (frame 1000).
|
||||
\li In the \uicontrol Properties view, set \uicontrol Rotation >
|
||||
\uicontrol Z to 360.
|
||||
This creates a second keyframe.
|
||||
\li Select the \uicontrol {Per Property Recording} button to end the per
|
||||
property recording. To preview the animation, drag the playhead along the
|
||||
timeline.
|
||||
\endlist
|
||||
|
||||
\section2 Controlling the Running State of the Animation
|
||||
|
||||
There is a toggle switch in the UI of this project. To use this switch to
|
||||
control the running state of the animation:
|
||||
|
||||
\list 1
|
||||
\li In the \uicontrol Navigator view, select \e {timelineAnimation}.
|
||||
\li In the \uicontrol Connections view, go to the \uicontrol Bindings tab.
|
||||
\li Select \inlineimage icons/plus.png
|
||||
to create a binding.
|
||||
\li For the binding you created, set:
|
||||
\list
|
||||
\li \uicontrol Property to \e {paused}.
|
||||
\li \uicontrol {Source Item} to \e {switch1}.
|
||||
\li \uicontrol {Source Property} to \e {checked}.
|
||||
\endlist
|
||||
\image animation-tutorial-binding.png
|
||||
\endlist
|
||||
|
||||
You can preview the animation and try the toggle switch in the live preview.
|
||||
To run the live preview, select \key Alt + \key{P}.
|
||||
|
||||
\section1 Creating a Timeline and Binding it to a Property
|
||||
|
||||
Next, you create the exploded view animation of the ball bearing. You don't
|
||||
want this animation to run automatically but instead you want to control it
|
||||
with a slider in the UI.
|
||||
|
||||
\section2 Adding a Timeline Inside a Component
|
||||
|
||||
You create this animation inside the ball bearing component, to do this:
|
||||
|
||||
\list 1
|
||||
\li In the \uicontrol Navigator view, select \e {ballBearing1}.
|
||||
\li Select \key {F2} to go into the component.
|
||||
\li In the \uicontrol Timeline view, select
|
||||
\inlineimage icons/plus.png
|
||||
to add a timeline and open the \uicontrol {Timeline Settings} dialog.
|
||||
\li Select \inlineimage icons/minus.png
|
||||
next to the \uicontrol {Animation Settings} tab to remove the animation
|
||||
in this timeline.
|
||||
You do not need an animation when you bind the timeline to a property.
|
||||
\li Select \uicontrol {Close}.
|
||||
\endlist
|
||||
|
||||
\image animation-tutorial-timeline-2.png
|
||||
|
||||
\section2 Adding Keyframes
|
||||
|
||||
Now, you add keyframes for the different parts of the ball bearing:
|
||||
|
||||
\list 1
|
||||
\li In the \uicontrol{Navigator} view, select \e{inner_race}.
|
||||
\li In the \uicontrol Properties view, select
|
||||
\inlineimage icons/action-icon.png (Actions)
|
||||
next to \uicontrol Translation > \uicontrol Y.
|
||||
\li Select \uicontrol {Insert Keyframe}.
|
||||
\li In the \uicontrol Timeline view, select the
|
||||
\uicontrol {Per Property Recording} button to start recording property
|
||||
changes.
|
||||
\li In the \uicontrol Timeline view, move the playhead to the end of the
|
||||
animation (frame 1000).
|
||||
\li In the \uicontrol Properties view, set \uicontrol Translation >
|
||||
\uicontrol Y to 0,50.
|
||||
\li Select the \uicontrol {Per Property Recording} button to end the per
|
||||
property recording.
|
||||
\li Next, you set the keyframe values for the other parts of the ball
|
||||
bearing. For the following parts, set the \uicontrol Translation >
|
||||
\uicontrol Y value for frame 1000:
|
||||
\list
|
||||
\li \e balls to 1,00.
|
||||
\li \e retainer to 1,50.
|
||||
\li \e shield_left to 1,80.
|
||||
\li \e shield_right to -0,30.
|
||||
\endlist
|
||||
\image animation-tutorial-ballbearing-animation.png
|
||||
\endlist
|
||||
|
||||
You can preview the animation by dragging the playhead in the
|
||||
\uicontrol Timeline view.
|
||||
|
||||
\section2 Controlling the Animation with a Slider
|
||||
|
||||
Now, you use the slider on the main screen to control the exploded
|
||||
view animation that you created.
|
||||
|
||||
To do this, you first need to define a property for the slider:
|
||||
|
||||
\list 1
|
||||
\li In the \uicontrol Navigator view, select \e Node.
|
||||
\li On the \uicontrol Properties tab in the \uicontrol Connections view,
|
||||
select \inlineimage icons/plus.png
|
||||
.
|
||||
\li In the \uicontrol {Property Type} field, enter \e {Item}.
|
||||
This field is a drop-down list, but you can also type text.
|
||||
\li In the \uicontrol {Property Value} field, enter \e {null}.
|
||||
\endlist
|
||||
\image animation-tutorial-property.png
|
||||
|
||||
Next, you set the property you just created to control the timeline
|
||||
animation:
|
||||
|
||||
\list 1
|
||||
\li In the \uicontrol {Timeline} view, select
|
||||
\inlineimage icons/animation.png
|
||||
.
|
||||
\li In the \uicontrol {Expression binding field}, enter
|
||||
\c {property0.value}.
|
||||
\li Select \uicontrol {Close}.
|
||||
\endlist
|
||||
|
||||
Next, you go out from the component back to the main project and bind the
|
||||
property to the slider:
|
||||
|
||||
\list 1
|
||||
\li In the toolbar, select the \e {Screen01.ui.qml} breadcrumb.
|
||||
\image animation-tutorial-breadcrumb.png
|
||||
\li In the \uicontrol {Navigator} view, select \e {ballbearing1}.
|
||||
\li In the \uicontrol {Connections} view, go to the
|
||||
\uicontrol {Bindings} tab.
|
||||
\li Select \inlineimage icons/plus.png
|
||||
.
|
||||
\li For the binding you just created:
|
||||
\list
|
||||
\li Set \uicontrol {Source Item} to \e {slider}.
|
||||
\li Remove the value from \uicontrol {Source Property}.
|
||||
\endlist
|
||||
\image animation-tutorial-binding-2.png
|
||||
\endlist
|
||||
|
||||
\section1 Previewing
|
||||
|
||||
Now, the animations are done. To preview and test your application,
|
||||
select \key Alt + \key{P}.
|
||||
|
||||
*/
|
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 5.0 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 15 KiB |
BIN
doc/qtdesignstudio/examples/doc/images/animation-tutorial.gif
Normal file
After Width: | Height: | Size: 1.5 MiB |