0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在QML動(dòng)畫設(shè)計(jì)中通過指定關(guān)鍵幀創(chuàng)建時(shí)間線動(dòng)畫

嵌入式小生 ? 來源:嵌入式小生 ? 作者:iriczhao ? 2022-10-10 11:27 ? 次閱讀

在QML動(dòng)畫設(shè)計(jì)中,可以通過指定關(guān)鍵幀創(chuàng)建時(shí)間線動(dòng)畫;還可以將時(shí)間線綁定到組件(如滑塊)的屬性值,以這種方式控制動(dòng)畫。

一、創(chuàng)建動(dòng)畫

無論是關(guān)鍵幀動(dòng)畫還是綁定到屬性值的動(dòng)畫,首先要做的就是創(chuàng)建時(shí)間線。步驟如下

(1-1)創(chuàng)建時(shí)間軸

(1)在Timeline視圖中,選擇+(Add Timeline)按鈕添加時(shí)間線設(shè)置,并在Timeline Settings對(duì)話框中添加動(dòng)畫。

(2)在Timeline Settings標(biāo)簽中:

在Timeline ID字段中,鍵入id值用于描述timeline。

在Start frame字段中,設(shè)置timeline的第一幀(允許為負(fù)數(shù))。

在End frame字段中,設(shè)置timeline的最后一幀。

(3)在Animation Setting標(biāo)簽中:

在Animation ID字段中,鍵入ID描述一個(gè)動(dòng)畫。

選中“Running in Base State”復(fù)選框以在應(yīng)用基本狀態(tài)時(shí)運(yùn)行動(dòng)畫。

在Start frame字段中,設(shè)置動(dòng)畫的第一幀。

在End frame字段中,設(shè)置動(dòng)畫的最后一幀。

在Duration字段中,以毫秒為單位設(shè)置動(dòng)畫的長(zhǎng)度。

選擇“Continues”復(fù)選框可以無限循環(huán)動(dòng)畫(該選項(xiàng)為可選項(xiàng))。

選中“Ping pong”復(fù)選框可在動(dòng)畫結(jié)束時(shí)將其向后播放到開始,即表示一種反彈效果(該選項(xiàng)為可選項(xiàng))。

在Finished字段中,選擇動(dòng)畫完成后要轉(zhuǎn)換到的狀態(tài)。

(4)選擇Close關(guān)閉對(duì)話框并保存設(shè)置。

到目前為止,我們已經(jīng)創(chuàng)建了Timeline和動(dòng)畫,然后我們可以為屬性設(shè)置動(dòng)畫的關(guān)鍵幀了。

(1-2)創(chuàng)建多條時(shí)間線

在實(shí)際QML動(dòng)畫設(shè)計(jì)過程中,我們可以創(chuàng)建多個(gè)時(shí)間線。創(chuàng)建多個(gè)時(shí)間線可以用于:是在不同的狀態(tài)下使用不同的時(shí)間線。

(1)在Timeline視圖中,打開Timeline Settings對(duì)話框。

(2)點(diǎn)擊Timelineline Setting標(biāo)簽的右上方“+”按鈕,即可創(chuàng)建另一個(gè)時(shí)間線(當(dāng)不需要的時(shí)候,點(diǎn)擊“-”按鈕即可刪除該條時(shí)間線)

(3)在Animation Settings選項(xiàng)卡下的表格中,為狀態(tài)設(shè)置時(shí)間線。

要為創(chuàng)建的時(shí)間線設(shè)置關(guān)鍵幀值,首先在States中選擇狀態(tài),且需要保證時(shí)間線在Timelines視圖中可用。

二、設(shè)置關(guān)鍵幀值

當(dāng)我們?cè)趧?chuàng)建時(shí)間線時(shí),Qt Design Studio將會(huì)為時(shí)間線創(chuàng)建一個(gè)動(dòng)畫。在實(shí)際開發(fā)中,我們也可以為一個(gè)時(shí)間線創(chuàng)建多個(gè)動(dòng)畫。例如,可以創(chuàng)建動(dòng)畫來運(yùn)行時(shí)間軸的一小段或反向運(yùn)行時(shí)間線。

要?jiǎng)赢婽imeline視圖中的組件,我們需要為動(dòng)畫的屬性設(shè)置關(guān)鍵幀值。Qt Design Studio會(huì)自動(dòng)在兩個(gè)關(guān)鍵幀之間添加插值,并均勻地設(shè)置它們的值。

為一個(gè)組件的屬性設(shè)置關(guān)鍵幀值,步驟如下:

(1)在Navigate視圖中,選擇需要?jiǎng)赢嫷慕M件。

(2)在Properties視圖中,選擇Action->Insert Keyframe為想要?jiǎng)赢嫷膶傩圆迦腙P(guān)鍵幀。如下圖所示:

(3)在Timeline視圖中,選擇Per Property Recording按鈕開始記錄屬性更改。

(4)在時(shí)間線上的屬性名稱旁邊的字段中輸入屬性的值(確保播放頭在第0幀)。然后按“Enter”保存設(shè)置,如下圖所示:

10945a74-3743-11ed-ba43-dac502259ad0.png

(5)將時(shí)間線上的播放頭移動(dòng)到另一幀并指定該幀上的屬性值。

(6)在指定了所需的值后,再次選擇Per Property Recording以停止記錄。

三、將時(shí)間線綁定到屬性

當(dāng)我們將時(shí)間線綁定到組件屬性時(shí),動(dòng)畫的當(dāng)前幀由該屬性的值控制。

假如有這樣一個(gè)示例:將時(shí)間軸綁定到slider組件,時(shí)間軸上的動(dòng)畫通過slider的滑動(dòng)值來確定。

其時(shí)間線和關(guān)鍵幀設(shè)置步驟如下:

(1)首先,我們從Components中拖一個(gè)slider到2D或Navigator視圖中。

(2)在Navigator視圖中,選擇slider并進(jìn)入其Properties視圖中,設(shè)置To屬性為1000(如果想用滑塊控制完整的動(dòng)畫,滑塊的From和To值應(yīng)該與時(shí)間線的Start Frame和End Frame值匹配。)

(3)在Timeline Settings對(duì)話框中,可以選擇右上角“-”按鈕刪除動(dòng)畫。

(4)在Expression binding中,輸入slider.value綁定表達(dá)式。如下圖所示:

10addd78-3743-11ed-ba43-dac502259ad0.png

四、將動(dòng)畫綁定到狀態(tài)

我們可以將動(dòng)畫綁定到狀態(tài),這意味著當(dāng)進(jìn)入狀態(tài)時(shí),動(dòng)畫會(huì)自動(dòng)運(yùn)行。

將動(dòng)畫綁定到狀態(tài)的步驟如下:

(1)在Timeline Setting對(duì)話框底部的表格中:

雙擊Timeline字段中的值,并選擇帶有要綁定到狀態(tài)的動(dòng)畫的時(shí)間線。

雙擊Animation字段中的值并選擇要綁定到狀態(tài)的動(dòng)畫。

如果想要在不運(yùn)行動(dòng)畫的情況下將狀態(tài)綁定到動(dòng)畫中的某個(gè)關(guān)鍵幀,需在Fixed Frame字段中設(shè)置關(guān)鍵幀:

10d01532-3743-11ed-ba43-dac502259ad0.png

五、管理關(guān)鍵幀

在本小節(jié)中,描述如何編輯、拷貝、刪除關(guān)鍵幀。

(5-1)編輯關(guān)鍵幀

要?jiǎng)h除屬性更改記錄,在時(shí)間軸線右鍵單擊屬性名稱并選擇“Remove Property”即可:

10ed3a86-3743-11ed-ba43-dac502259ad0.png

要在當(dāng)前的播放幀上向組件的關(guān)鍵幀軌道添加關(guān)鍵幀,在時(shí)間線上右鍵單擊組件名稱并選擇“Add Keyframes at Current Frame”即可。

(5-2)編輯關(guān)鍵幀的值

如果我們需要微調(diào)關(guān)鍵幀的值,可以雙擊關(guān)鍵幀標(biāo)記或右鍵單擊菜單,在彈出菜單中選擇“Edit Keyframe”。

“Edit Keyframe”對(duì)話框中,顯示了當(dāng)前幀動(dòng)畫的屬性以及當(dāng)前幀的屬性值。

(5-3)拷貝關(guān)鍵幀

在編輯關(guān)鍵幀的時(shí)候,可以從組件的關(guān)鍵幀軌道復(fù)制關(guān)鍵幀,并將它們粘貼到另一個(gè)組件的關(guān)鍵幀軌道上。

右鍵單擊組件ID并在上下文菜單中選擇Copy All Keyframes,右鍵單擊另一個(gè)組件ID,并在上下文菜單中選擇Paste Keyframes,通過上述兩個(gè)步驟即可復(fù)制所有關(guān)鍵幀。

(5-4)刪除關(guān)鍵幀

右鍵單擊想要?jiǎng)h除的關(guān)鍵幀,在上下文菜單中選擇“Delete Keyframe”即可刪除關(guān)鍵幀。

如果需要從所選組件中刪除所有關(guān)鍵幀,需要在時(shí)間線中右鍵單擊組件名稱,并在上下文菜單中選擇“Delete All Keyframes”。

要預(yù)覽設(shè)計(jì)的動(dòng)畫,在Timeline視圖中執(zhí)行以下操作之一即可:(1)沿著時(shí)間線拖動(dòng)播放頭。(2)選擇播放按鈕或按下空格鍵(Space)。

如果需要預(yù)覽完整的UI,選擇畫布工具欄上的(Show Live Preview)按鈕或按Alt+P。

總結(jié)

對(duì)于時(shí)間線動(dòng)畫,本質(zhì)上是插值動(dòng)畫,不會(huì)將屬性立即就更改為目標(biāo)值,而是由插值來驅(qū)動(dòng),而且可以選擇動(dòng)畫曲線,來控制動(dòng)畫的插值方式。(選中關(guān)鍵幀,右鍵單擊彈出上下文菜單,選擇“Edit Easing Curve”編輯動(dòng)畫曲線):

110841a0-3743-11ed-ba43-dac502259ad0.png





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    806

    瀏覽量

    31223
  • Framers
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    6685

原文標(biāo)題:在Qt Design Studio中創(chuàng)建時(shí)間線動(dòng)畫

文章出處:【微信號(hào):嵌入式小生,微信公眾號(hào):嵌入式小生】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    招聘平面燈光動(dòng)畫設(shè)計(jì)

    平面燈光動(dòng)畫設(shè)計(jì)發(fā)布日期2014-05-12工作地點(diǎn)重慶-重慶市學(xué)歷要求不限工作經(jīng)驗(yàn)不限招聘人數(shù)1待遇水平面議年齡要求25-35性別要求不限有效期2014-08-07職位描述1.熟悉戶外建、構(gòu)筑物
    發(fā)表于 05-12 13:27

    三維產(chǎn)品動(dòng)畫設(shè)計(jì)價(jià)值

    靈活的表現(xiàn)形式、強(qiáng)大的說服力和生動(dòng)的效果,從而給客戶帶來新奇的感受,受眾能夠直觀的了解產(chǎn)品的功能、結(jié)構(gòu)、特點(diǎn)。以上便是本次藝源動(dòng)畫分享的內(nèi)容,三維產(chǎn)品動(dòng)畫設(shè)計(jì)通過多角度全方位的演示,
    發(fā)表于 08-24 14:12

    嵌入式系統(tǒng)動(dòng)畫設(shè)計(jì)方法的適用度分析,不看肯定后悔

    不需安裝第三方軟件的動(dòng)畫設(shè)計(jì)方法分析需要安裝第三方軟件的動(dòng)畫設(shè)計(jì)方法分析可用于嵌入式系統(tǒng)開發(fā)的腳本語言
    發(fā)表于 04-28 06:38

    如何去實(shí)現(xiàn)RK3326 android系統(tǒng)的開關(guān)機(jī)動(dòng)畫設(shè)計(jì)

    如何去實(shí)現(xiàn)RK3326 android系統(tǒng)的開關(guān)機(jī)動(dòng)畫設(shè)計(jì)呢?其程序該怎樣去編寫?
    發(fā)表于 02-17 06:31

    LabVIEW如何使用Flash動(dòng)畫

    LabVIEW如何使用Flash動(dòng)畫已經(jīng)用Macromedia Flash創(chuàng)建了一個(gè)動(dòng)畫。我想在LabVIEW中用ActiveX控件來觀
    發(fā)表于 03-22 19:58

    【開發(fā)者說】XstoryMaker快速書寫劇本場(chǎng)景動(dòng)畫

    頂點(diǎn)對(duì)圖形進(jìn)行類似肌肉與骨骼的運(yùn)動(dòng)設(shè)計(jì)。 (4) 動(dòng)畫關(guān)鍵幀插入與預(yù)覽:輕觸時(shí)間軸選擇不同的時(shí)間軸,擺放畫面到新的位置,引擎會(huì)自動(dòng)為用戶進(jìn)行補(bǔ)
    發(fā)表于 09-14 12:04

    基于自適應(yīng)關(guān)鍵幀的視頻序列拼接方法

    由于視頻幀數(shù)量較大,視頻序列拼接時(shí)容易造成拼接誤差大、耗時(shí)較多,為有效解決此問題,提出一種基于自適應(yīng)關(guān)鍵幀的視頻序列拼接方法。將固定間隔采樣作為關(guān)鍵幀并對(duì)其進(jìn)行
    發(fā)表于 11-15 11:31 ?66次下載
    基于自適應(yīng)<b class='flag-5'>關(guān)鍵幀</b>的視頻序列拼接方法

    一種可變步長(zhǎng)提取關(guān)鍵幀提取方法

    為快速有效地檢測(cè)網(wǎng)絡(luò)的拷貝視頻,針對(duì)現(xiàn)有關(guān)鍵幀提取算法時(shí)間復(fù)雜度高、關(guān)鍵幀不具有代表性的缺點(diǎn),提出一種可變步長(zhǎng)提取關(guān)鍵幀提取方法。根據(jù)視頻
    發(fā)表于 01-26 14:35 ?0次下載

    小波關(guān)鍵幀提取的動(dòng)作評(píng)價(jià)

    Faber-Schauder插值小波對(duì)參考動(dòng)作序列運(yùn)動(dòng)最劇烈關(guān)節(jié)的四元數(shù)分量時(shí)間序列分別提取關(guān)鍵幀。通過合并4組關(guān)鍵幀,設(shè)置閾值剔除相似度
    發(fā)表于 03-07 11:28 ?0次下載
    小波<b class='flag-5'>關(guān)鍵幀</b>提取的動(dòng)作評(píng)價(jià)

    微軟曝win10 21H2引入全新的動(dòng)畫設(shè)計(jì)

    對(duì)于微軟來說,即將到來的Windows 10 2021版更新,將會(huì)引入全新的動(dòng)畫設(shè)計(jì)。
    的頭像 發(fā)表于 12-18 09:23 ?1211次閱讀

    視頻關(guān)鍵幀的提取原則和判定標(biāo)準(zhǔn)

    關(guān)鍵幀是一幅能描述鏡頭 主要內(nèi)容的。鏡頭檢測(cè)的基礎(chǔ)上,針對(duì)視頻數(shù)據(jù)中有大量的冗余信息,可以采用提取鏡頭關(guān)鍵幀的方法來表達(dá)鏡頭的主要內(nèi)容。得到關(guān)鍵
    的頭像 發(fā)表于 07-02 16:34 ?6196次閱讀
    視頻<b class='flag-5'>關(guān)鍵幀</b>的提取原則和判定標(biāo)準(zhǔn)

    QML動(dòng)畫設(shè)計(jì),太“難”了

    alwaysRunToEnd:該屬性接收布爾類型的參數(shù)。該屬性保存動(dòng)畫是否運(yùn)行到完成才停止。當(dāng)loops屬性被設(shè)置時(shí),這個(gè)屬性是最有用的,因?yàn)?b class='flag-5'>動(dòng)畫將正常播放結(jié)束,但不會(huì)重新啟動(dòng)。
    的頭像 發(fā)表于 09-09 10:16 ?1610次閱讀

    如何在OpenHarmony上實(shí)現(xiàn)逐動(dòng)畫?

    動(dòng)畫是常見的一種動(dòng)畫呈現(xiàn)形式,本例就為大家介紹如何通過 translate(),setInterval(),clearAllInterval() 等方法實(shí)現(xiàn)逐
    的頭像 發(fā)表于 06-18 15:14 ?915次閱讀
    如何在OpenHarmony上實(shí)現(xiàn)逐<b class='flag-5'>幀</b><b class='flag-5'>動(dòng)畫</b>?

    鴻蒙開發(fā)之發(fā)動(dòng)畫

    動(dòng)畫的原理是一個(gè)時(shí)間段內(nèi),多次改變UI外觀,由于人眼會(huì)產(chǎn)生視覺暫留,所以最終看到的就是一個(gè)“連續(xù)”的動(dòng)畫。UI的一次改變稱為一個(gè)動(dòng)畫
    的頭像 發(fā)表于 02-01 15:25 ?653次閱讀
    鴻蒙開發(fā)之發(fā)<b class='flag-5'>動(dòng)畫</b>篇

    通過視頻提取及批量取模轉(zhuǎn)換實(shí)現(xiàn)基于STC32的點(diǎn)陣LED動(dòng)畫播放

    通過視頻提取及批量取模轉(zhuǎn)換實(shí)現(xiàn)基于STC32的點(diǎn)陣LED動(dòng)畫播放
    的頭像 發(fā)表于 06-27 02:16 ?404次閱讀
    <b class='flag-5'>通過</b>視頻<b class='flag-5'>幀</b>提取及批量取模轉(zhuǎn)換實(shí)現(xiàn)基于STC32的點(diǎn)陣LED<b class='flag-5'>動(dòng)畫</b>播放