欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種動(dòng)畫制作方法、裝置和動(dòng)畫播放方法、裝置的制作方法

文檔序號(hào):6597580閱讀:179來(lái)源:國(guó)知局
專利名稱:一種動(dòng)畫制作方法、裝置和動(dòng)畫播放方法、裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及電腦動(dòng)畫領(lǐng)域,尤其涉及一種動(dòng)畫制作方法、裝置和動(dòng)畫播放方法、裝置。
背景技術(shù)
動(dòng)畫產(chǎn)業(yè)在最近的幾年進(jìn)入了一條快速發(fā)展的軌道,動(dòng)畫制作產(chǎn)量迅猛上升,而 大量的動(dòng)畫制作工具也應(yīng)運(yùn)而生。拋開(kāi)相對(duì)復(fù)雜的3D動(dòng)畫制作,在相對(duì)簡(jiǎn)單的2D動(dòng)畫制 作中,雖然有大量不同的制作、播放工具,但動(dòng)畫制作、播放的基本原理相同將一個(gè)或多個(gè) 編輯好的圖片編入一個(gè)文件,并設(shè)置好每個(gè)圖片之間的播放時(shí)間間隔,然后以每個(gè)圖片作 為單獨(dú)的一幀進(jìn)行播放,達(dá)到2D動(dòng)畫的效果。發(fā)明人在實(shí)施本發(fā)明的過(guò)程中發(fā)現(xiàn),現(xiàn)有的動(dòng)畫制作技術(shù)存在明顯的缺點(diǎn)首先,現(xiàn)有的動(dòng)畫制作工具對(duì)動(dòng)畫圖片的利用率較低,例如在相同背景下的動(dòng)畫, 每一幀都必須添加該背景信息,造成該背景信息的浪費(fèi);其次,現(xiàn)有的動(dòng)畫制作工具不支持 對(duì)動(dòng)畫包圍盒的計(jì)算,不利于動(dòng)畫的后期合成制作。

發(fā)明內(nèi)容
本發(fā)明提供一種動(dòng)畫制作方法、裝置和動(dòng)畫播放方法、裝置,可以提高對(duì)動(dòng)畫圖片 的利用率,減少動(dòng)畫制作過(guò)程中的工作量,同時(shí)支持對(duì)動(dòng)畫包圍盒的計(jì)算,便于動(dòng)畫的后期 制作。為達(dá)到上述技術(shù)效果,本發(fā)明提供的動(dòng)畫制作方法包括確定動(dòng)畫單元的關(guān)鍵幀;所述動(dòng)畫單元在播放過(guò)程中,出現(xiàn)非線性變化時(shí)所在的 幀為所述動(dòng)畫單元的關(guān)鍵幀;設(shè)置所述動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù);所述關(guān)鍵幀數(shù)據(jù)中記錄該動(dòng)畫單元在所述關(guān)鍵 幀的參數(shù)。優(yōu)選的,所述動(dòng)畫單元在播放過(guò)程中,進(jìn)行線性變化時(shí)所在的幀為所述動(dòng)畫單元 的過(guò)渡幀;動(dòng)畫單元的過(guò)渡幀數(shù)據(jù)中記錄該動(dòng)畫單元在所述過(guò)渡幀的參數(shù);所述過(guò)渡幀數(shù) 據(jù)在所述動(dòng)畫單元播放過(guò)程中,根據(jù)該動(dòng)畫單元的過(guò)渡幀數(shù)據(jù)實(shí)時(shí)計(jì)算得出。優(yōu)選的,所述動(dòng)畫單元包括圖元和\或骨骼;所述關(guān)鍵幀和過(guò)渡幀的參數(shù)包括動(dòng) 畫單元在當(dāng)前幀的水平位置參數(shù)、垂直位置參數(shù)、旋轉(zhuǎn)角度參數(shù)、縮放比例參數(shù)。對(duì)應(yīng)的,本發(fā)明提供的動(dòng)畫播放方法包括在當(dāng)前幀遍歷動(dòng)畫的所有動(dòng)畫單元;獲取各動(dòng)畫單元在當(dāng)前幀的關(guān)鍵幀數(shù)據(jù);若動(dòng)畫單元在當(dāng)前幀不存在關(guān)鍵幀數(shù) 據(jù),則根據(jù)所述動(dòng)畫單元在其它幀的關(guān)鍵幀數(shù)據(jù),計(jì)算該動(dòng)畫單元在當(dāng)前幀的過(guò)渡幀數(shù) 據(jù);在當(dāng)前根據(jù)各動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更新。優(yōu)選的,動(dòng)畫單元在播放過(guò)程中,出現(xiàn)非線性變化時(shí)所在的幀為所述動(dòng)畫單元的
5關(guān)鍵幀;所述關(guān)鍵幀數(shù)據(jù)中記錄該動(dòng)畫單元在所述關(guān)鍵幀的參數(shù);所述關(guān)鍵幀的參數(shù)在動(dòng) 畫制作過(guò)程中進(jìn)行設(shè)置;所述動(dòng)畫單元的過(guò)渡幀數(shù)據(jù)中記錄該動(dòng)畫單元在所述過(guò)渡幀的參 數(shù);所述過(guò)渡幀數(shù)據(jù)在所述動(dòng)畫單元播放過(guò)程中,根據(jù)該動(dòng)畫單元的過(guò)渡幀數(shù)據(jù)實(shí)時(shí)計(jì)算 得出;所述關(guān)鍵幀和過(guò)渡幀的參數(shù)包括動(dòng)畫單元在當(dāng)前幀的水平位置參數(shù)、垂直位置參 數(shù)、旋轉(zhuǎn)角度參數(shù)、縮放比例參數(shù)。優(yōu)選的,所述動(dòng)畫單元包括圖元和\或骨骼;所述在當(dāng)前幀遍歷動(dòng)畫的所有動(dòng)畫 單元包括當(dāng)所述動(dòng)畫單元為圖元時(shí),反向遍歷圖元隊(duì)列;當(dāng)所述動(dòng)畫單元為骨骼時(shí),依次 遍歷骨骼隊(duì)列。優(yōu)選的,當(dāng)動(dòng)畫單元為骨骼和與所述骨骼綁定的圖元時(shí),骨骼在當(dāng)前幀根據(jù)該骨 骼的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更新后,保存所述骨骼的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù) 據(jù);與所述骨骼綁定的圖元在當(dāng)前幀根據(jù)該圖元的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更新 后,再根據(jù)所述骨骼的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更新。優(yōu)選的,所述在當(dāng)前幀遍歷動(dòng)畫的所有動(dòng)畫單元之后,還包括計(jì)算動(dòng)畫在當(dāng)前幀 的包圍盒。優(yōu)選的,所述計(jì)算動(dòng)畫在當(dāng)前幀的包圍盒包括預(yù)置包圍盒四個(gè)頂點(diǎn)的初始化坐標(biāo);預(yù)置包圍盒四個(gè)頂點(diǎn)的最小X軸坐標(biāo)和最小 Y軸為正無(wú)窮大、最大X軸坐標(biāo)和最大Y軸坐標(biāo)為負(fù)無(wú)窮大;在當(dāng)前幀遍歷所有動(dòng)畫單元,各動(dòng)畫單元在當(dāng)前幀根據(jù)其關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù) 據(jù)進(jìn)行變換更新;完成遍歷后,以當(dāng)前幀各動(dòng)畫單元中最小X軸坐標(biāo)、最小Y軸坐標(biāo)作為包圍盒的最 小X軸坐標(biāo)、最小Y軸坐標(biāo);以當(dāng)前最大X軸坐標(biāo)、最大Y軸坐標(biāo)作為包圍盒的最大X軸坐 標(biāo)、最大Y軸坐標(biāo);以所述包圍盒的最小X軸坐標(biāo)、最小Y軸坐標(biāo)、最大X軸坐標(biāo)、最大Y軸坐標(biāo)作為 所述包圍盒的四個(gè)頂點(diǎn),生成所述動(dòng)畫在當(dāng)前幀的包圍盒。本發(fā)明提供的動(dòng)畫制作裝置包括動(dòng)畫單元?jiǎng)?chuàng)建模塊,用于創(chuàng)建動(dòng)畫單元;所述動(dòng)畫單元包括圖元和/或骨骼;動(dòng)畫數(shù)據(jù)設(shè)置模塊,用于設(shè)置動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù);動(dòng)畫單元在播放過(guò)程中,出 現(xiàn)非線性變化時(shí)所在的幀為所述動(dòng)畫單元的關(guān)鍵幀;所述關(guān)鍵幀數(shù)據(jù)中記錄所述動(dòng)畫單元 在所述關(guān)鍵幀的參數(shù)。優(yōu)選的,所述動(dòng)畫單元在播放過(guò)程中,進(jìn)行線性變化時(shí)所在的幀為所述動(dòng)畫單元 的過(guò)渡幀;動(dòng)畫單元的過(guò)渡幀數(shù)據(jù)中記錄該動(dòng)畫單元在所述過(guò)渡幀的參數(shù);所述過(guò)渡幀數(shù) 據(jù)在所述動(dòng)畫單元播放過(guò)程中,根據(jù)該動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù)實(shí)時(shí)計(jì)算得出。優(yōu)選的,所述關(guān)鍵幀和過(guò)渡幀的參數(shù)包括動(dòng)畫單元在當(dāng)前幀的水平位置參數(shù)、垂 直位置參數(shù)、旋轉(zhuǎn)角度參數(shù)、縮放比例參數(shù)。本發(fā)明提供的動(dòng)畫播放裝置包括動(dòng)畫播放模塊,用于播放動(dòng)畫;動(dòng)畫播放模塊在每一幀均遍歷所有動(dòng)畫單元,根據(jù) 各動(dòng)畫單元在當(dāng)前幀的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更新;過(guò)渡幀獲取模塊,用于動(dòng)畫單元在當(dāng)前幀不存在關(guān)鍵幀數(shù)據(jù)時(shí),根據(jù)所述動(dòng)畫單 元在其它幀的關(guān)鍵幀數(shù)據(jù),計(jì)算該動(dòng)畫單元在當(dāng)前幀的過(guò)渡幀數(shù)據(jù),并通過(guò)所述動(dòng)畫播放模塊進(jìn)行播放。優(yōu)選的,所述動(dòng)畫播放模塊包括動(dòng)畫遍歷單元,用于在動(dòng)畫單元?jiǎng)?chuàng)建模塊創(chuàng)建的動(dòng)畫單元為圖元時(shí),在每一幀均 反向遍歷圖元隊(duì)列;在動(dòng)畫單元?jiǎng)?chuàng)建模塊創(chuàng)建的動(dòng)畫單元為骨骼時(shí),在每一幀均依次遍歷 骨骼隊(duì)列;幀數(shù)據(jù)獲取單元,用于獲取在當(dāng)前幀各動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù);在當(dāng)前幀動(dòng)畫單 元不存在關(guān)鍵幀數(shù)據(jù)時(shí),通過(guò)過(guò)渡幀獲取模塊獲取該動(dòng)畫單元在當(dāng)前幀的過(guò)渡幀數(shù)據(jù);動(dòng)畫播放單元,用將各動(dòng)畫單元在當(dāng)前幀根據(jù)其關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)變換更 新后進(jìn)行播放。優(yōu)選的,所述動(dòng)畫播放模塊還包括臨時(shí)存儲(chǔ)單元,用于當(dāng)動(dòng)畫單元為骨骼和與所述骨骼綁定的圖元時(shí),骨骼在當(dāng)前 幀根據(jù)其關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更新后,保存所述骨骼的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀 數(shù)據(jù);與所述骨骼綁定的圖元在當(dāng)前幀根據(jù)該圖元的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變 換更新后,再根據(jù)所述臨時(shí)存儲(chǔ)單元中存儲(chǔ)的所述骨骼的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變 換更新。優(yōu)選的,所述動(dòng)畫播放裝置還包括包圍盒計(jì)算模塊,用于在動(dòng)畫播放過(guò)程中,動(dòng)畫播放模塊完成對(duì)所有動(dòng)畫單元的 遍歷更新之后,根據(jù)各動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù),計(jì)算動(dòng)畫在當(dāng)前幀的包圍盒。優(yōu)選的,所述包圍盒計(jì)算模塊包括坐標(biāo)初始化單元,用于預(yù)置包圍盒四個(gè)頂點(diǎn)的初始化坐標(biāo);預(yù)置包圍盒四個(gè)頂點(diǎn) 的最小X軸坐標(biāo)和最小Y軸為正無(wú)窮大,設(shè)置包圍盒的最大X軸坐標(biāo)和最大Y軸坐標(biāo)為負(fù) 無(wú)窮大;頂點(diǎn)數(shù)據(jù)獲取單元,用于在動(dòng)畫播放模塊在當(dāng)前幀對(duì)所有動(dòng)畫單元進(jìn)行遍歷更新 的過(guò)程中,獲取各動(dòng)畫單元的頂點(diǎn)數(shù)據(jù);頂點(diǎn)計(jì)算單元,用于將頂點(diǎn)數(shù)據(jù)獲取單元獲取的所有動(dòng)畫單元的頂點(diǎn)數(shù)據(jù)中,以 最小X軸坐標(biāo)和最小Y軸坐標(biāo)作為包圍盒的最小X軸坐標(biāo)和最小Y軸坐標(biāo);以當(dāng)前最大X 軸坐標(biāo)和最大Y軸坐標(biāo)作為包圍盒的最大X軸坐標(biāo)和最大Y軸坐標(biāo);包圍盒生成單元,用于以所述頂點(diǎn)計(jì)算單元計(jì)算得出的包圍盒最小X軸坐標(biāo)、最 小Y軸坐標(biāo)、最大X軸坐標(biāo)、最大Y軸坐標(biāo)作為所述包圍盒的四個(gè)頂點(diǎn),生成所述動(dòng)畫在當(dāng) 前幀的包圍盒。本發(fā)明提供的動(dòng)畫制作方法、裝置和動(dòng)畫播放方法、裝置,將一個(gè)動(dòng)畫分為多個(gè)并 行的動(dòng)畫單元,在每一幀動(dòng)畫圖片中,用戶只需要針對(duì)出現(xiàn)變化的動(dòng)畫單元進(jìn)行相應(yīng)的關(guān) 鍵幀數(shù)據(jù)設(shè)置,在播放過(guò)程中就可自動(dòng)生成過(guò)渡幀數(shù)據(jù),既減少動(dòng)畫制作的工作量,又使動(dòng) 畫幀與幀之間銜接更加流暢、動(dòng)作更加自然。同時(shí),本發(fā)明提供的動(dòng)畫制作方法、裝置和動(dòng) 畫播放方法、裝置支持對(duì)動(dòng)畫當(dāng)前幀的包圍盒計(jì)算,便于動(dòng)畫的后期合成制作。


為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可 以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明提供的動(dòng)畫制作方法實(shí)施例流程示意圖;圖2為本發(fā)明提供的動(dòng)畫播放方法實(shí)施例流程示意圖;圖3為本發(fā)明提供的動(dòng)畫制作及播放方法第一實(shí)施例流程示意圖;圖4為本發(fā)明提供的動(dòng)畫制作及播放方法第二實(shí)施例流程示意圖;圖5為本發(fā)明提供的動(dòng)畫制作及播放方法圖元變換示意圖;圖6為本發(fā)明提供的動(dòng)畫制作及播放方法動(dòng)畫播放示意圖;圖7為本發(fā)明提供的動(dòng)畫包圍盒計(jì)算流程示意圖;圖8為本發(fā)明提供的動(dòng)畫制作裝置實(shí)施例結(jié)構(gòu)示意圖;圖9為本發(fā)明提供的動(dòng)畫播放裝置第一實(shí)施例結(jié)構(gòu)示意圖;圖10為本發(fā)明提供的動(dòng)畫制作裝置及播放裝置施例結(jié)構(gòu)示意圖;圖11為本發(fā)明提供的動(dòng)畫播放裝置動(dòng)畫播放示意圖;圖12為本發(fā)明提供的動(dòng)畫播放裝置第二實(shí)施例結(jié)構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明提供一種動(dòng)畫制作方法、裝置和動(dòng)畫播放方法、裝置,可以提高對(duì)動(dòng)畫圖片 的利用率,減小動(dòng)畫制作過(guò)程中的工作量。在本發(fā)明各實(shí)施例中,所述動(dòng)畫單元可以是圖 元、或骨骼、或兩者的結(jié)合。所述圖元是可編輯的最小圖形單位,是用于操作和組織畫面的 最基本的元素。一幅畫面由一個(gè)或多個(gè)圖元組成。圖元是一組簡(jiǎn)單的、通用的幾何圖形或 字符。所述骨骼在動(dòng)畫中一般通過(guò)改變其朝向和位置來(lái)生成動(dòng)畫,動(dòng)畫中通常由若干互相 連接的骨骼構(gòu)成骨架結(jié)構(gòu),骨架上一塊骨骼的變化將帶動(dòng)其它與之連接的骨骼的變化。參見(jiàn)圖1,為本發(fā)明提供的動(dòng)畫制作方法實(shí)施例流程示意圖。如圖1所示在步驟100,確定動(dòng)畫單元的關(guān)鍵幀。動(dòng)畫單元在播放過(guò)程中,出現(xiàn)非線性變化時(shí) 所在的幀為動(dòng)畫單元的關(guān)鍵幀。更為具體的,動(dòng)畫單元在播放過(guò)程中,進(jìn)行線性變化時(shí)所在 的幀為動(dòng)畫單元的過(guò)渡幀。在步驟101,設(shè)置動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù);關(guān)鍵幀數(shù)據(jù)中記錄該動(dòng)畫單元在關(guān)鍵 幀的參數(shù)。同樣的,動(dòng)畫單元的過(guò)渡幀數(shù)據(jù)中記錄該動(dòng)畫單元在過(guò)渡幀的參數(shù)。需要注意 的是過(guò)渡幀數(shù)據(jù)并非在動(dòng)畫制作過(guò)程中設(shè)置,而是在動(dòng)畫播放過(guò)程中,根據(jù)該動(dòng)畫單元的 關(guān)鍵幀數(shù)據(jù)實(shí)時(shí)計(jì)算得出。更為具體的,所述關(guān)鍵幀和過(guò)渡幀的參數(shù)包括動(dòng)畫單元在當(dāng)前幀的水平位置參 數(shù)、垂直位置參數(shù)、旋轉(zhuǎn)角度參數(shù)、縮放比例等參數(shù)。本發(fā)明提供的動(dòng)畫制作方法,將一個(gè)動(dòng)畫分為多個(gè)并行的動(dòng)畫單元,在每一幀動(dòng) 畫圖片中,用戶只需要針對(duì)出現(xiàn)非線性變化的動(dòng)畫單元進(jìn)行相應(yīng)的關(guān)鍵幀數(shù)據(jù)設(shè)置,在播 放過(guò)程中就可自動(dòng)生成過(guò)渡幀數(shù)據(jù),使動(dòng)畫在播放中幀與幀之間銜接流暢、自然,減少動(dòng)畫 制作的工作量。參見(jiàn)圖2,為本發(fā)明提供的動(dòng)畫播放方法實(shí)施例流程示意圖。如圖2所示在步驟200,在當(dāng)前幀遍歷動(dòng)畫的所有動(dòng)畫單元。更為具體的,當(dāng)動(dòng)畫單元為圖元
8時(shí),反向遍歷圖元隊(duì)列;當(dāng)動(dòng)畫單元為骨骼時(shí),依次遍歷骨骼隊(duì)列。在步驟201,判斷各動(dòng)畫單元在當(dāng)前幀是否存在關(guān)鍵幀數(shù)據(jù),若判斷為是,則執(zhí)行 步驟202 ;若判斷為否,則執(zhí)行步驟203。在步驟202,獲取各動(dòng)畫單元在當(dāng)前幀的關(guān)鍵幀數(shù)據(jù)。在步驟203,根據(jù)動(dòng)畫單元在其它幀的關(guān)鍵幀數(shù)據(jù),計(jì)算該動(dòng)畫單元在當(dāng)前幀的過(guò) 渡幀數(shù)據(jù)。更為具體的,根據(jù)動(dòng)畫單元在其它幀的關(guān)鍵幀數(shù)據(jù),計(jì)算該動(dòng)畫單元在當(dāng)前幀的 過(guò)渡幀數(shù)據(jù)的計(jì)算方式包括根據(jù)當(dāng)前幀與關(guān)鍵幀之間間隔的幀數(shù),以及關(guān)鍵幀數(shù)據(jù)之間 的線性插值、或關(guān)鍵幀數(shù)據(jù)的平均值、或其它包含關(guān)鍵幀數(shù)據(jù)的數(shù)學(xué)函數(shù)計(jì)算該動(dòng)畫單元 在當(dāng)前幀的過(guò)渡幀數(shù)據(jù)。在步驟204,在當(dāng)前根據(jù)各動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更新。本發(fā)明提供的動(dòng)畫播放方法,在播放過(guò)程中可以實(shí)時(shí)的通過(guò)關(guān)鍵幀數(shù)據(jù)計(jì)算動(dòng)畫 單元的過(guò)渡幀數(shù)據(jù),使動(dòng)畫幀與幀之間銜接更加流暢、動(dòng)作更加自然。同時(shí),本方法使動(dòng)畫 制作過(guò)程中,只需要針對(duì)出現(xiàn)非線性變化的動(dòng)畫單元進(jìn)行相應(yīng)的關(guān)鍵幀數(shù)據(jù)設(shè)置即可,減 少動(dòng)畫制作的工作量。為了更好的理解本發(fā)明提供的動(dòng)畫制作方法、動(dòng)畫播放方法,下面將二者結(jié)合在 一起進(jìn)行描述。參見(jiàn)圖3,為本發(fā)明提供的動(dòng)畫制作及播放方法第一實(shí)施例流程示意圖。在本實(shí)施 例中,將詳細(xì)的描述動(dòng)畫制作及播放方法的流程。如圖3所示在步驟300,設(shè)置動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù)。在本發(fā)明實(shí)施例中,動(dòng)畫單元可以是圖 元或骨骼。更為具體的,一個(gè)動(dòng)畫由一個(gè)或多個(gè)動(dòng)畫單元組成;在動(dòng)畫的每一幀圖片中,用 戶只需要針對(duì)出現(xiàn)變化的動(dòng)畫單元進(jìn)行關(guān)鍵幀數(shù)據(jù)設(shè)置;所述關(guān)鍵幀數(shù)據(jù)中記錄動(dòng)畫單元 的在該關(guān)鍵幀的參數(shù),具體包括動(dòng)畫單元的水平位置參數(shù)、垂直位置參數(shù)、旋轉(zhuǎn)角度參數(shù)、 縮放比例等參數(shù)。本步驟只在制作動(dòng)畫的流程中執(zhí)行,播放動(dòng)畫的流程不需要執(zhí)行本步驟。本實(shí)施例以圖元為例,現(xiàn)假設(shè)需要完成一個(gè)包含60幀的動(dòng)畫一指針繞表盤一 周。在本例中,動(dòng)畫由2個(gè)圖元組成表盤的h圖元、指針的i圖元,預(yù)置好指針與表盤的初 始位置后,h圖元和i圖元自動(dòng)生成在第1幀的關(guān)鍵幀數(shù)據(jù)。由于在整個(gè)動(dòng)畫中,只有指針 存在變化,表盤是不動(dòng)的,所以在設(shè)置各圖元其后的關(guān)鍵幀數(shù)據(jù)時(shí),只需設(shè)置i圖元的關(guān)鍵 幀數(shù)據(jù)即可。h圖元無(wú)需改動(dòng),因此動(dòng)畫的制作的針對(duì)性更強(qiáng),效率得到提高。因?yàn)橹羔槃蛩俚睦@表盤一周,故i圖元的第1幀和第60幀為其關(guān)鍵幀。在制作該 動(dòng)畫時(shí),首先設(shè)置好各圖元的位置后,其第1幀的動(dòng)畫效果如圖fe所示,i圖元在第一幀的 關(guān)鍵幀數(shù)據(jù)自動(dòng)生成,其角度為O度;設(shè)置表盤的中心為i圖元的中心,i圖元在第60幀的 旋轉(zhuǎn)角度為360度,如圖W所示。需要說(shuō)明的是,當(dāng)動(dòng)畫單元為圖元時(shí),該圖元的變換可以包括以任一點(diǎn)為中心對(duì) 進(jìn)行旋轉(zhuǎn)、平移、縮放、斜切變換的等。當(dāng)動(dòng)畫單元為骨骼時(shí),其變換可以包括以骨骼的起 始點(diǎn)為中心對(duì)骨骼進(jìn)行旋轉(zhuǎn)、平移、縮放變換等信息。在步驟301,開(kāi)始播放動(dòng)畫,在每一幀都遍歷動(dòng)畫的所有動(dòng)畫單元,判斷所有動(dòng)畫 單元在當(dāng)前幀是否存在關(guān)鍵幀數(shù)據(jù);若存在,則執(zhí)行步驟302 ;若不存在,則執(zhí)行步驟303。 優(yōu)選的,當(dāng)動(dòng)畫單元為骨骼時(shí),依次遍歷骨骼隊(duì)列;當(dāng)動(dòng)畫單元為圖元時(shí),反向遍歷圖元隊(duì) 列。因?yàn)楫?dāng)動(dòng)畫單元為圖元時(shí),各圖元之間可能存在遮擋關(guān)系,而動(dòng)畫制作過(guò)程中,最底層被遮擋的圖元一般排在圖元隊(duì)列末端,所以反向遍歷圖元隊(duì)列可以保證動(dòng)畫具有正確的層 次關(guān)系。在步驟302,獲取在當(dāng)前幀各動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù)。在步驟303,根據(jù)動(dòng)畫單元在其它幀的關(guān)鍵幀數(shù)據(jù),計(jì)算該動(dòng)畫單元在當(dāng)前幀的過(guò) 渡幀數(shù)據(jù)。更為具體的,根據(jù)動(dòng)畫單元在其它幀的關(guān)鍵幀數(shù)據(jù),計(jì)算該動(dòng)畫單元在當(dāng)前幀的 過(guò)渡幀數(shù)據(jù)的計(jì)算方式包括根據(jù)當(dāng)前幀與關(guān)鍵幀之間間隔的幀數(shù),以及關(guān)鍵幀數(shù)據(jù)之間 的線性插值、或關(guān)鍵幀數(shù)據(jù)的平均值、或其它包含關(guān)鍵幀數(shù)據(jù)的數(shù)學(xué)函數(shù)計(jì)算該動(dòng)畫單元 在當(dāng)前幀的過(guò)渡幀數(shù)據(jù)。在本發(fā)明實(shí)施例中,以通過(guò)計(jì)算關(guān)鍵幀數(shù)據(jù)的線性插值獲取當(dāng)前 幀的過(guò)渡幀數(shù)據(jù)為例,但不能以此限定本發(fā)明的保護(hù)范圍。更進(jìn)一步的,因?yàn)閯?dòng)畫單元的關(guān)鍵幀與關(guān)鍵幀之間都是線性變化的關(guān)系,所以對(duì) 于在當(dāng)前幀沒(méi)有關(guān)鍵幀數(shù)據(jù)的動(dòng)畫單元,只要獲取其前后關(guān)鍵幀的關(guān)鍵幀數(shù)據(jù),及中間間 隔的幀數(shù),就可以通過(guò)計(jì)算線性插值,得出該動(dòng)畫單元在當(dāng)前幀的過(guò)渡幀數(shù)據(jù)。在本實(shí)施例的舉例中,指針勻速的繞表盤一周,i圖元在第1幀和第60幀具有關(guān)鍵 幀數(shù)據(jù)。根據(jù)i圖元在第1幀和第60幀的關(guān)鍵幀數(shù)據(jù),以及間隔的幀數(shù),可以通過(guò)計(jì)算其 線性插值,得出在第2幀,i圖元的過(guò)渡幀數(shù)據(jù)是相對(duì)i圖元在第1幀的位置,其旋轉(zhuǎn)角度 為6度,其余參數(shù)對(duì)應(yīng)變換;i圖元在第3幀的過(guò)渡幀數(shù)據(jù)是相對(duì)i圖元在第1幀的位置, 其旋轉(zhuǎn)角度為12度;其余各幀以此類推。在步驟304,根據(jù)各動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更新并顯示,所 有動(dòng)畫單元的變換更新組合在一起,形成動(dòng)畫在當(dāng)前幀的完整圖片。在動(dòng)畫的每一幀都執(zhí) 行步驟301至步驟304,直至動(dòng)畫播放結(jié)束。在本實(shí)施例的舉例中,指針勻速的繞表盤一周的完整動(dòng)畫如圖6所示。實(shí)施本發(fā)明提供的動(dòng)畫制作及播放方法,只需要設(shè)置該動(dòng)畫在第一幀的圖片,對(duì) 于其后的變化,只需要針對(duì)出現(xiàn)關(guān)鍵變化的幀設(shè)置關(guān)鍵幀數(shù)據(jù),在播放過(guò)程中就可以自動(dòng) 生成過(guò)渡幀數(shù)據(jù),使動(dòng)畫的幀與幀之間銜接更加流暢。同時(shí),本發(fā)明提供的動(dòng)畫制作方法可 以將一個(gè)動(dòng)畫分為多個(gè)并行的動(dòng)畫單元,在每一幀中,只需要針對(duì)出現(xiàn)變化的動(dòng)畫單元進(jìn) 行關(guān)鍵幀數(shù)據(jù)設(shè)置,其它的動(dòng)畫單元?jiǎng)t無(wú)需改動(dòng),增強(qiáng)動(dòng)畫制作的針對(duì)性,減少動(dòng)畫制作的 工作量。參見(jiàn)圖4,為本發(fā)明提供的動(dòng)畫制作及播放方法第二實(shí)施例流程示意圖,在本發(fā)明 實(shí)施例中,動(dòng)畫由骨骼和與所述骨骼綁定的圖元共同組成,播放該動(dòng)畫的流程如圖4所示在步驟400,完成骨骼和圖元的關(guān)鍵幀數(shù)據(jù)設(shè)置后,開(kāi)始播放動(dòng)畫。在步驟401,在每一幀首先遍歷動(dòng)畫的所有骨骼,判斷各骨骼在當(dāng)前幀是否存在關(guān) 鍵幀數(shù)據(jù);若存在,則執(zhí)行步驟402 ;若不存在,則執(zhí)行步驟403。在步驟402,獲取在當(dāng)前幀各骨骼的關(guān)鍵幀數(shù)據(jù)。在步驟403,根據(jù)骨骼在其它幀的關(guān)鍵幀數(shù)據(jù)計(jì)算線性插值,得出該骨骼在當(dāng)前幀 的過(guò)渡幀數(shù)據(jù)。當(dāng)然,本實(shí)施例中也可以通過(guò)其它的數(shù)學(xué)函數(shù)計(jì)算骨骼在當(dāng)前幀的過(guò)渡幀 數(shù)據(jù),本發(fā)明以計(jì)算線性插值的方式獲取過(guò)渡幀數(shù)據(jù)為例。在步驟404,根據(jù)各骨骼的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更新。在本發(fā)明實(shí)施 例中,所述骨骼包括父骨骼和子骨骼。一個(gè)父骨骼可以包括多個(gè)子骨骼,形成骨架。子骨骼根據(jù)父骨骼的變換進(jìn)行相應(yīng)的變換。在步驟405,保存各骨骼在當(dāng)前幀的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)。在步驟406,在當(dāng)前幀遍歷動(dòng)畫的所有圖元,判斷各圖元在當(dāng)前幀是否存在關(guān)鍵幀 數(shù)據(jù);若存在,則執(zhí)行步驟407 ;若不存在,則執(zhí)行步驟408。在步驟407,獲取在當(dāng)前幀各圖元的關(guān)鍵幀數(shù)據(jù)。在步驟408,根據(jù)圖元在其它幀的關(guān)鍵幀數(shù)據(jù)計(jì)算線性插值,得出該圖元在當(dāng)前幀 的過(guò)渡幀數(shù)據(jù)。在步驟409,根據(jù)各圖元的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更新。在步驟410,獲取保存的各骨骼在當(dāng)前幀的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)。在步驟411,各圖元根據(jù)與自身綁定的骨骼在當(dāng)前幀的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù), 再次進(jìn)行變換更新。實(shí)施本發(fā)明提供的動(dòng)畫制作及播放方法,將圖元與骨骼綁定,且骨骼的變換將帶 動(dòng)圖元的變化,使動(dòng)畫的制作更加方便,針對(duì)性更強(qiáng),易于實(shí)現(xiàn)動(dòng)畫過(guò)程中的各種復(fù)雜的變 換,且效果更加流暢自然。同時(shí),本發(fā)明提供的動(dòng)畫制作及播放方法提高了對(duì)動(dòng)畫單元及關(guān) 鍵幀數(shù)據(jù)的利用率,進(jìn)一步減少動(dòng)畫制作過(guò)程中的工作量。參見(jiàn)圖7,為本發(fā)明提供的動(dòng)畫包圍盒計(jì)算流程示意圖。動(dòng)畫的包圍盒是檢測(cè)動(dòng)畫 的邊界、碰撞等問(wèn)題的關(guān)鍵,精確的碰撞檢測(cè)對(duì)提高動(dòng)畫的真實(shí)性、增強(qiáng)虛擬環(huán)境的沉浸感 起著至關(guān)重要的作用。本發(fā)明提供的動(dòng)畫播放方法在完成遍歷更新動(dòng)畫單元后,還支持對(duì) 該動(dòng)畫當(dāng)前幀的包圍盒計(jì)算。其流程如圖7所示在步驟700,預(yù)置該動(dòng)畫包圍盒四個(gè)頂點(diǎn)的初始化坐標(biāo)。更為具體的,預(yù)置包圍盒 四個(gè)頂點(diǎn)的最小X軸坐標(biāo)和最小Y軸為正無(wú)窮大、最大X軸坐標(biāo)和最大Y軸坐標(biāo)為負(fù)無(wú)窮 大。更進(jìn)一步的,在動(dòng)畫制作中,一般定義圖片的左上角為X軸和Y軸坐標(biāo)的起始坐 標(biāo)。在本發(fā)明實(shí)施例中,預(yù)置包圍盒左上角的坐標(biāo)為(+8,+8),右上角的坐標(biāo)為(_8,+8),左 下角的坐標(biāo)為(+8,-8),右下角的坐標(biāo)為(-8,-8)。如此設(shè)置的意義在于,在后續(xù)步驟中遍 歷動(dòng)畫單元時(shí),動(dòng)畫單元的左上角坐標(biāo)必然小于預(yù)置的包圍盒左上角坐標(biāo),從而利于完成 對(duì)包圍盒頂點(diǎn)坐標(biāo)的初次更新替換,包圍盒其它三個(gè)頂點(diǎn)的坐標(biāo)預(yù)置方式同理。在步驟701,遍歷當(dāng)前幀動(dòng)畫的所有動(dòng)畫單元,各動(dòng)畫單元根據(jù)其當(dāng)前幀的關(guān)鍵幀 數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更新。在步驟702,在各動(dòng)畫單元完成變換更新后,以當(dāng)前幀各動(dòng)畫單元中最小X軸坐 標(biāo)、最小Y軸坐標(biāo)作為包圍盒的最小X軸坐標(biāo)、最小Y軸坐標(biāo);以當(dāng)前最大X軸坐標(biāo)、最大Y 軸坐標(biāo)作為包圍盒的最大X軸坐標(biāo)、最大Y軸坐標(biāo)。更為具體的,在各動(dòng)畫單元完成變換更新后,將當(dāng)前包圍盒的頂點(diǎn)坐標(biāo)與各動(dòng)畫 單元在當(dāng)前幀的頂點(diǎn)坐標(biāo)進(jìn)行比較、替換,當(dāng)與所有動(dòng)畫單元比較后,包圍盒的四個(gè)頂點(diǎn)坐 標(biāo)分別為左上角的坐標(biāo)(最小X軸坐標(biāo),最小Y軸坐標(biāo)),右上角的坐標(biāo)(最大X軸坐標(biāo), 最小Y軸坐標(biāo)),左下角的坐標(biāo)(最小X軸坐標(biāo),最大Y軸坐標(biāo)),右下角的坐標(biāo)(最大X軸 坐標(biāo),最大Y軸坐標(biāo))。在步驟703,根據(jù)步驟702中最終確定的包圍盒四個(gè)頂點(diǎn)坐標(biāo),生成該動(dòng)畫在當(dāng)前 幀的包圍盒。
實(shí)施本發(fā)明實(shí)施例提供的動(dòng)畫包圍盒計(jì)算方法,可以實(shí)時(shí)的計(jì)算得出的動(dòng)畫在當(dāng) 前幀的包圍盒,從而使包圍盒的面積盡可能小,其邊界與動(dòng)畫盡可能接近,使碰撞檢測(cè)更加 精確,提高動(dòng)畫的真實(shí)性、增強(qiáng)虛擬環(huán)境的沉浸感,便于動(dòng)畫的后期制作。參見(jiàn)圖8,為本發(fā)明提供的動(dòng)畫制作裝置實(shí)施例結(jié)構(gòu)示意圖,如圖8所示,該裝置 包括動(dòng)畫單元?jiǎng)?chuàng)建模塊1,用于創(chuàng)建動(dòng)畫單元;所述動(dòng)畫單元包括圖元和/或骨骼。動(dòng)畫數(shù)據(jù)設(shè)置模塊2,用于設(shè)置動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù);動(dòng)畫單元在播放過(guò)程中, 出現(xiàn)非線性變化時(shí)所在的幀為動(dòng)畫單元的關(guān)鍵幀;關(guān)鍵幀數(shù)據(jù)中記錄動(dòng)畫單元在關(guān)鍵幀的 參數(shù)。更為具體的,動(dòng)畫單元在播放過(guò)程中,進(jìn)行線性變化時(shí)所在的幀為動(dòng)畫單元的過(guò) 渡幀;動(dòng)畫單元的過(guò)渡幀數(shù)據(jù)中記錄該動(dòng)畫單元在過(guò)渡幀的參數(shù)。關(guān)鍵幀和過(guò)渡幀的參數(shù) 包括動(dòng)畫單元在當(dāng)前幀的水平位置參數(shù)、垂直位置參數(shù)、旋轉(zhuǎn)角度參數(shù)、縮放比例參數(shù)。過(guò)渡幀數(shù)據(jù)不在動(dòng)畫數(shù)據(jù)設(shè)置模塊2中設(shè)置,而是在動(dòng)畫播放過(guò)程中,根據(jù)該動(dòng) 畫單元的關(guān)鍵幀數(shù)據(jù)實(shí)時(shí)計(jì)算得出。本發(fā)明提供的動(dòng)畫制作裝置,將一個(gè)動(dòng)畫分為多個(gè)并行的動(dòng)畫單元,在每一幀中, 只需要針對(duì)出現(xiàn)變換的動(dòng)畫單元進(jìn)行設(shè)置,減少動(dòng)畫制作的工作量。參見(jiàn)圖9,為本發(fā)明提供的動(dòng)畫播放裝置第一實(shí)施例結(jié)構(gòu)示意圖,如圖9所示,該 裝置包括動(dòng)畫播放模塊3,用于播放動(dòng)畫。動(dòng)畫播放模塊在每一幀均遍歷所有動(dòng)畫單元,根 據(jù)各動(dòng)畫單元在當(dāng)前幀的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更新。過(guò)渡幀獲取模塊4,用于動(dòng)畫單元在當(dāng)前幀不存在關(guān)鍵幀數(shù)據(jù)時(shí),根據(jù)該動(dòng)畫單元 在其它幀的關(guān)鍵幀數(shù)據(jù),計(jì)算該動(dòng)畫單元在當(dāng)前幀的過(guò)渡幀數(shù)據(jù),并通過(guò)動(dòng)畫播放模塊3 進(jìn)行播放。更為具體的,過(guò)渡幀獲取模塊4計(jì)算過(guò)渡幀數(shù)據(jù)的計(jì)算方式包括根據(jù)當(dāng)前幀與 關(guān)鍵幀之間間隔的幀數(shù),以及關(guān)鍵幀數(shù)據(jù)之間的線性插值、或關(guān)鍵幀數(shù)據(jù)的平均值、或其它 包含關(guān)鍵幀數(shù)據(jù)的數(shù)學(xué)函數(shù)計(jì)算該動(dòng)畫單元在當(dāng)前幀的過(guò)渡幀數(shù)據(jù)。在以下實(shí)施例中,以 計(jì)算關(guān)鍵幀數(shù)據(jù)的線性插值的方式獲取當(dāng)前幀的過(guò)渡幀數(shù)據(jù)為例,但不能以此限定本發(fā)明 的保護(hù)范圍。本發(fā)明提供的動(dòng)畫播放裝置,可以根據(jù)動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù)實(shí)施例的計(jì)算出過(guò) 渡幀數(shù)據(jù)進(jìn)行播放,使動(dòng)畫幀與幀之間的銜接更加流暢,動(dòng)畫更加自然。同時(shí),本播放裝置 的應(yīng)用將大大較少動(dòng)畫制作過(guò)程中的工作量。為了更好的理解本發(fā)明提供的動(dòng)畫制作裝置、動(dòng)畫播放裝置,下面將二者結(jié)合在 一起進(jìn)行描述,但二者的功能實(shí)現(xiàn)是互不影響的,不能一次限定本發(fā)明的保護(hù)范圍。參見(jiàn)圖10,為本發(fā)明提供的動(dòng)畫制作裝置及播放裝置實(shí)施例結(jié)構(gòu)示意圖。與上一 實(shí)施例相比,在本實(shí)施例中,將更為詳細(xì)的描述裝置各模塊的功能和結(jié)構(gòu)。本實(shí)施例提供的 裝置如圖10所示動(dòng)畫制作裝置的動(dòng)畫單元?jiǎng)?chuàng)建模塊1,用于創(chuàng)建動(dòng)畫單元。在本發(fā)明實(shí)施例中,一 個(gè)動(dòng)畫可以包括多個(gè)動(dòng)畫單元。更為具體的,動(dòng)畫單元?jiǎng)?chuàng)建模塊1創(chuàng)建的動(dòng)畫單元包括圖 元和骨骼兩種,在本實(shí)施例中,現(xiàn)假設(shè)需要完成一個(gè)包含四幀的動(dòng)畫,內(nèi)容為一個(gè)小人雙手 勻速的由平舉到斜向上舉。在本例中,動(dòng)畫單元?jiǎng)?chuàng)建模塊1創(chuàng)建的小人由A、B、C、D、E、F六
12個(gè)圖元,以及與小人的雙手B、C圖元綁定的骨骼組成,骨骼在動(dòng)畫播放過(guò)程中是不可見(jiàn)的, 如圖11中的Ila所示。動(dòng)畫制作裝置的動(dòng)畫數(shù)據(jù)設(shè)置模塊2,用于設(shè)置動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù)。在動(dòng)畫的 第1幀,用戶設(shè)置好各圖元、骨骼的位置后,動(dòng)畫數(shù)據(jù)設(shè)置模塊2會(huì)自動(dòng)創(chuàng)建其關(guān)鍵幀數(shù)據(jù), 保存初始位置。在動(dòng)畫其后的每一幀的圖片中,用戶只需要針對(duì)出現(xiàn)非線性變換的動(dòng)畫單 元進(jìn)行關(guān)鍵幀數(shù)據(jù)的設(shè)置,該關(guān)鍵幀數(shù)據(jù)中記錄動(dòng)畫單元的參數(shù),具體包括動(dòng)畫單元的水 平位置參數(shù)、垂直位置參數(shù)、旋轉(zhuǎn)角度參數(shù)、縮放比例等參數(shù)。在本實(shí)施例的舉例中,由于在小人活動(dòng)的過(guò)程只是雙手運(yùn)動(dòng),即只有與B、C圖元 綁定的兩塊骨骼存在變化,B、C圖元隨骨骼變化。故在設(shè)置關(guān)鍵幀數(shù)據(jù)時(shí),只需設(shè)置與B、C 圖元綁定的兩塊骨骼的關(guān)鍵幀數(shù)據(jù)即可。因?yàn)樾∪穗p手運(yùn)動(dòng)為線性過(guò)程,故通過(guò)動(dòng)畫數(shù)據(jù) 設(shè)置模塊2設(shè)置與B、C圖元綁定的兩塊骨骼在第1幀和第4幀的關(guān)鍵幀數(shù)據(jù)即可。在第1 幀,與B、C圖元綁定的兩塊骨骼為0度;在第4幀,與B、C圖元綁定的兩塊骨骼相對(duì)于在第 1幀的位置,繞其與小人身體的結(jié)合點(diǎn),分別順時(shí)針和逆時(shí)針向上旋轉(zhuǎn)45度。動(dòng)畫播放裝置的動(dòng)畫播放模塊3,用于播放動(dòng)畫。動(dòng)畫播放模塊3在每一幀均遍歷 所有動(dòng)畫單元,根據(jù)各動(dòng)畫單元在當(dāng)前幀的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更新。更為 具體的,動(dòng)畫播放模塊3包括動(dòng)畫遍歷單元31,用于在動(dòng)畫單元為圖元時(shí),反向遍歷圖元隊(duì)列;在動(dòng)畫單元為 骨骼時(shí),依次遍歷骨骼隊(duì)列。因?yàn)楫?dāng)動(dòng)畫單元為圖元時(shí),各圖元之間可能存在遮擋關(guān)系,而 動(dòng)畫制作過(guò)程中,最底層被遮擋的圖元一般排在圖元隊(duì)列末端,所以反向遍歷圖元隊(duì)列可 以保證動(dòng)畫具有正確的層次關(guān)系。幀數(shù)據(jù)獲取單元32,用于獲取各動(dòng)畫單元在當(dāng)前幀的關(guān)鍵幀數(shù)據(jù),當(dāng)某一動(dòng)畫單 元在當(dāng)前幀不存在關(guān)鍵幀數(shù)據(jù)時(shí),通過(guò)過(guò)渡幀獲取模塊4獲取該動(dòng)畫單元在當(dāng)前幀的過(guò)渡 幀數(shù)據(jù)。動(dòng)畫播放單元33,用將各動(dòng)畫單元在當(dāng)前幀根據(jù)其關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)變換 更新后進(jìn)行播放。在本發(fā)明實(shí)施例的舉例中,動(dòng)畫播放單元33首先根據(jù)骨骼的關(guān)鍵幀數(shù)據(jù) 或過(guò)渡幀數(shù)據(jù)對(duì)其進(jìn)行變換更新,并在臨時(shí)存儲(chǔ)單元34中保存骨骼在當(dāng)前幀的關(guān)鍵幀數(shù) 據(jù)或過(guò)渡幀數(shù)據(jù)。然后動(dòng)畫播放單元33遍歷所有圖元,雖然各圖元沒(méi)有變換更新,但因?yàn)?B、C圖元與骨骼綁定,動(dòng)畫播放單元33在臨時(shí)存儲(chǔ)單元34中獲取骨骼在當(dāng)前幀的關(guān)鍵幀 數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)中,并根據(jù)該關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)對(duì)B、C圖元進(jìn)行變換更新。所有 動(dòng)畫單元的變換更新幀同步,組合在一起形成完整的動(dòng)畫效果。在本實(shí)施例的舉例中播放 動(dòng)畫時(shí),小人舉起雙手的4幀完整動(dòng)畫如圖11a、lib、11c、Ild所示。優(yōu)選的,動(dòng)畫播放模塊3還包括臨時(shí)存儲(chǔ)單元34,用于當(dāng)動(dòng)畫由骨骼和與所述骨 骼綁定的圖元共同組成時(shí),在骨骼根據(jù)其關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)完成在當(dāng)前變換更新 后,保存所述骨骼的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)。而與所述骨骼綁定的圖元在當(dāng)前幀根據(jù)該 圖元的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更新后,再根據(jù)臨時(shí)存儲(chǔ)單元34中存儲(chǔ)的骨骼 的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更新。過(guò)渡幀獲取模塊4,用于動(dòng)畫單元在當(dāng)前幀不存在關(guān)鍵幀數(shù)據(jù)時(shí),根據(jù)該動(dòng)畫單元 的關(guān)鍵幀數(shù)據(jù)計(jì)算線性插值,獲取該動(dòng)畫單元在當(dāng)前幀的過(guò)渡幀數(shù)據(jù),并通過(guò)動(dòng)畫播放模 塊3進(jìn)行播放。
更為具體的,因?yàn)閯?dòng)畫單元的關(guān)鍵幀與關(guān)鍵幀之間都是線性變化的關(guān)系,所以對(duì) 于在當(dāng)前幀沒(méi)有關(guān)鍵幀數(shù)據(jù)的動(dòng)畫單元,過(guò)渡幀獲取模塊4只要獲取其前后幀的關(guān)鍵幀 數(shù)據(jù),及中間間隔的幀數(shù),就可以通過(guò)計(jì)算線性插值,得出該動(dòng)畫單元在當(dāng)前幀的過(guò)渡幀數(shù) 據(jù)。假設(shè)在本實(shí)施例的舉例中,小人的雙手由第1幀的平舉到第4幀舉到斜上45度, 過(guò)渡幀獲取模塊4通過(guò)獲取與B、C綁定的兩塊骨骼在第1幀和第4幀的關(guān)鍵幀數(shù)據(jù),及其 間隔的幀數(shù),可以計(jì)算出兩塊骨骼在第2幀的過(guò)渡骨骼數(shù)據(jù)的角度參數(shù)為15度;在第3幀 的過(guò)渡骨骼數(shù)據(jù)的角度參數(shù)為30度。實(shí)施本發(fā)明提供的動(dòng)畫制作裝置及播放裝置,只需要設(shè)置該動(dòng)畫在第一幀的圖 片,對(duì)于其后的變化,動(dòng)畫播放裝置裝置可以在播放過(guò)程中通過(guò)計(jì)算關(guān)鍵幀數(shù)據(jù)自動(dòng)生成 過(guò)渡幀數(shù)據(jù),使動(dòng)畫幀與幀之間的銜接流暢。同時(shí),本發(fā)明提供的動(dòng)畫制作裝置可以將一個(gè) 動(dòng)畫分為多個(gè)并行的動(dòng)畫單元,且可以實(shí)現(xiàn)多種動(dòng)畫單元之間的綁定和聯(lián)動(dòng),在每一幀中, 只需要針對(duì)出現(xiàn)變化的動(dòng)畫單元進(jìn)行關(guān)鍵幀數(shù)據(jù)設(shè)置,其它的動(dòng)畫單元?jiǎng)t無(wú)需改動(dòng),減少 動(dòng)畫制作的工作量。參見(jiàn)圖12,為本發(fā)明提供的動(dòng)畫播放裝置第二實(shí)施例結(jié)構(gòu)示意圖,如圖所示,本實(shí) 施例提供的動(dòng)畫播放裝置不僅包括動(dòng)畫播放模塊3、過(guò)渡幀獲取模塊4,還包括包圍盒計(jì) 算模塊5。包圍盒計(jì)算模塊5用于在動(dòng)畫播放過(guò)程中,動(dòng)畫播放模塊3完成對(duì)所有動(dòng)畫單元 在當(dāng)前幀的遍歷更新之后,根據(jù)各動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù)和過(guò)渡數(shù)據(jù),計(jì)算所述動(dòng)畫在當(dāng) 前幀的包圍盒。動(dòng)畫的包圍盒是檢測(cè)動(dòng)畫的邊界、碰撞等問(wèn)題的關(guān)鍵,精確的碰撞檢測(cè)對(duì)提 高動(dòng)畫的真實(shí)性、增強(qiáng)虛擬環(huán)境的沉浸感起著至關(guān)重要的作用。本實(shí)施例提供的包圍盒計(jì)算模塊5具體包括坐標(biāo)初始化單元51,用于預(yù)置包圍盒四個(gè)頂點(diǎn)的初始化坐標(biāo);預(yù)置包圍盒四個(gè)頂 點(diǎn)的最小X軸坐標(biāo)和最小Y軸為正無(wú)窮大,設(shè)置包圍盒的最大X軸坐標(biāo)和最大Y軸坐標(biāo)為 負(fù)無(wú)窮大。更進(jìn)一步的,在動(dòng)畫制作中,一般定義圖片的左上角為X軸和Y軸坐標(biāo)的起始坐 標(biāo)。在本發(fā)明實(shí)施例中,坐標(biāo)初始化單元51預(yù)置包圍盒左上角的頂點(diǎn)坐標(biāo)為(+8,+8),右 上角的頂點(diǎn)坐標(biāo)為(_8,+8),左下角的頂點(diǎn)坐標(biāo)為(+8,-8),右下角的頂點(diǎn)坐標(biāo)為(-8,-8)。 如此預(yù)置的意義在于,頂點(diǎn)數(shù)據(jù)獲取單元52在后續(xù)步驟中獲取動(dòng)畫單元的頂點(diǎn)坐標(biāo)時(shí),動(dòng) 畫單元的左上角頂點(diǎn)坐標(biāo)必然小于包圍盒預(yù)置的左上角坐標(biāo),利于頂點(diǎn)計(jì)算單元53完成 坐標(biāo)的初次更新替換,坐標(biāo)初始化單元51預(yù)置的包圍盒其它三個(gè)頂點(diǎn)坐標(biāo)的理由同上。頂點(diǎn)數(shù)據(jù)獲取單元52,用于在動(dòng)畫播放模塊3在當(dāng)前幀對(duì)所有動(dòng)畫單元進(jìn)行遍歷 更新的過(guò)程中,獲取各動(dòng)畫單元的頂點(diǎn)數(shù)據(jù)。頂點(diǎn)計(jì)算單元53,用于將頂點(diǎn)數(shù)據(jù)獲取單元52獲取的所有動(dòng)畫單元的頂點(diǎn)數(shù)據(jù) 中,以最小X軸坐標(biāo)和最小Y軸坐標(biāo)作為包圍盒的最小X軸坐標(biāo)和最小Y軸坐標(biāo);以當(dāng)前最 大X軸坐標(biāo)和最大Y軸坐標(biāo)作為包圍盒的最大X軸坐標(biāo)和最大Y軸坐標(biāo)。更為具體的,在各動(dòng)畫單元變換更新過(guò)程中,頂點(diǎn)計(jì)算單元53將頂點(diǎn)數(shù)據(jù)獲取單 元52獲取的動(dòng)畫單元的頂點(diǎn)坐標(biāo)與當(dāng)前包圍盒的頂點(diǎn)坐標(biāo)進(jìn)行比較、替換,當(dāng)各動(dòng)畫單元 完成變換更新后,52獲取了當(dāng)前幀所有動(dòng)畫單元的頂點(diǎn)坐標(biāo),頂點(diǎn)計(jì)算單元53計(jì)算得出的 包圍盒四個(gè)頂點(diǎn)坐標(biāo)分別為左上角的坐標(biāo)(最小X軸坐標(biāo),最小Y軸坐標(biāo)),右上角的坐標(biāo)(最大X軸坐標(biāo),最小Y軸坐標(biāo)),左下角的坐標(biāo)(最小X軸坐標(biāo),最大Y軸坐標(biāo)),右下 角的坐標(biāo)(最大X軸坐標(biāo),最大Y軸坐標(biāo))。包圍盒生成單元M,用于以頂點(diǎn)計(jì)算單元53得出的包圍盒四個(gè)頂點(diǎn)坐標(biāo),生成該 動(dòng)畫在當(dāng)前幀的包圍盒。實(shí)施本發(fā)明實(shí)施例提供的動(dòng)畫包圍盒計(jì)算方法,可以實(shí)時(shí)的計(jì)算得出的動(dòng)畫在當(dāng) 前幀的包圍盒,從而使包圍盒的面積盡可能小,其邊界與動(dòng)畫盡可能接近,使碰撞檢測(cè)更加 精確,提高動(dòng)畫的真實(shí)性、增強(qiáng)虛擬環(huán)境的沉浸感,便于動(dòng)畫的后期制作。本發(fā)明實(shí)施例提供的動(dòng)畫播放裝置支持對(duì)動(dòng)畫包圍盒的計(jì)算,可以實(shí)時(shí)的計(jì)算得 出的動(dòng)畫在當(dāng)前幀的包圍盒,從而使動(dòng)畫包圍盒面積盡可能小,其邊界與動(dòng)畫盡可能接近, 使碰撞檢測(cè)更加精確,提高動(dòng)畫的真實(shí)性、增強(qiáng)虛擬環(huán)境的沉浸感,便于動(dòng)畫的后期合成制 作。以上所揭露的僅為本發(fā)明一種較佳實(shí)施例而已,當(dāng)然不能以此來(lái)限定本發(fā)明之權(quán) 利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助 軟件加必需的硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以全部通過(guò)硬件來(lái)實(shí)施?;谶@樣的理解, 本發(fā)明的技術(shù)方案對(duì)背景技術(shù)做出貢獻(xiàn)的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái), 該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使 得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例 或者實(shí)施例的某些部分所述的方法。
權(quán)利要求
1.一種動(dòng)畫制作方法,其特征在于,包括確定動(dòng)畫單元的關(guān)鍵幀;所述動(dòng)畫單元在播放過(guò)程中,出現(xiàn)非線性變化時(shí)所在的幀為 所述動(dòng)畫單元的關(guān)鍵幀;設(shè)置所述動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù);所述關(guān)鍵幀數(shù)據(jù)中記錄該動(dòng)畫單元在所述關(guān)鍵幀的 參數(shù)。
2.如權(quán)利要求1所述的動(dòng)畫制作方法,其特征在于,所述動(dòng)畫單元在播放過(guò)程中,進(jìn)行 線性變化時(shí)所在的幀為所述動(dòng)畫單元的過(guò)渡幀;動(dòng)畫單元的過(guò)渡幀數(shù)據(jù)中記錄該動(dòng)畫單元在所述過(guò)渡幀的參數(shù);所述過(guò)渡幀數(shù)據(jù)在所 述動(dòng)畫單元播放過(guò)程中,根據(jù)該動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù)實(shí)時(shí)計(jì)算得出。
3.如權(quán)利要求1或2所述的動(dòng)畫制作方法,其特征在于,所述動(dòng)畫單元包括圖元和\或 骨骼;所述關(guān)鍵幀和過(guò)渡幀的參數(shù)包括動(dòng)畫單元在當(dāng)前幀的水平位置參數(shù)、垂直位置參數(shù)、 旋轉(zhuǎn)角度參數(shù)、縮放比例參數(shù)。
4.一種動(dòng)畫播放方法,其特征在于,包括在當(dāng)前幀遍歷動(dòng)畫的所有動(dòng)畫單元;獲取各動(dòng)畫單元在當(dāng)前幀的關(guān)鍵幀數(shù)據(jù);若動(dòng)畫單元在當(dāng)前幀不存在關(guān)鍵幀數(shù)據(jù),則 根據(jù)所述動(dòng)畫單元在其它幀的關(guān)鍵幀數(shù)據(jù),計(jì)算該動(dòng)畫單元在當(dāng)前幀的過(guò)渡幀數(shù)據(jù);在當(dāng)前根據(jù)各動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更新。
5.如權(quán)利要求4所述的動(dòng)畫播放方法,其特征在于,動(dòng)畫單元在播放過(guò)程中,出現(xiàn)非線 性變化時(shí)所在的幀為所述動(dòng)畫單元的關(guān)鍵幀;所述關(guān)鍵幀數(shù)據(jù)中記錄該動(dòng)畫單元在所述關(guān) 鍵幀的參數(shù);所述關(guān)鍵幀的參數(shù)在動(dòng)畫制作過(guò)程中進(jìn)行設(shè)置;所述動(dòng)畫單元的過(guò)渡幀數(shù)據(jù)中記錄該動(dòng)畫單元在所述過(guò)渡幀的參數(shù);所述過(guò)渡幀數(shù)據(jù) 在所述動(dòng)畫單元播放過(guò)程中,根據(jù)該動(dòng)畫單元的過(guò)渡幀數(shù)據(jù)實(shí)時(shí)計(jì)算得出;所述關(guān)鍵幀和過(guò)渡幀的參數(shù)包括動(dòng)畫單元在當(dāng)前幀的水平位置參數(shù)、垂直位置參數(shù)、 旋轉(zhuǎn)角度參數(shù)、縮放比例參數(shù)。
6.如權(quán)利要求5所述的動(dòng)畫播放方法,其特征在于,所述動(dòng)畫單元包括圖元和\或骨骼;所述在當(dāng)前幀遍歷動(dòng)畫的所有動(dòng)畫單元包括當(dāng)所述動(dòng)畫單元為圖元時(shí),反向遍歷圖 元隊(duì)列;當(dāng)所述動(dòng)畫單元為骨骼時(shí),依次遍歷骨骼隊(duì)列。
7.如權(quán)利要求6所述的動(dòng)畫播放方法,其特征在于,當(dāng)動(dòng)畫單元為骨骼和與所述骨骼 綁定的圖元時(shí),骨骼在當(dāng)前幀根據(jù)該骨骼的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更新后,保 存所述骨骼的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù);與所述骨骼綁定的圖元在當(dāng)前幀根據(jù)該圖元的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更 新后,再根據(jù)所述骨骼的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更新。
8.如權(quán)利要求4至7中任一項(xiàng)所述的動(dòng)畫播放方法,其特征在于,所述在當(dāng)前幀遍歷動(dòng) 畫的所有動(dòng)畫單元之后,還包括計(jì)算動(dòng)畫在當(dāng)前幀的包圍盒。
9.如權(quán)利要求8所述的動(dòng)畫播放方法,其特征在于,所述計(jì)算動(dòng)畫在當(dāng)前幀的包圍盒 包括預(yù)置包圍盒四個(gè)頂點(diǎn)的初始化坐標(biāo);預(yù)置包圍盒四個(gè)頂點(diǎn)的最小X軸坐標(biāo)和最小Y軸為正無(wú)窮大、最大X軸坐標(biāo)和最大Y軸坐標(biāo)為負(fù)無(wú)窮大;在當(dāng)前幀遍歷所有動(dòng)畫單元,各動(dòng)畫單元在當(dāng)前幀根據(jù)其關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn) 行變換更新;完成遍歷后,以當(dāng)前幀各動(dòng)畫單元中最小X軸坐標(biāo)、最小Y軸坐標(biāo)作為包圍盒的最小X 軸坐標(biāo)、最小Y軸坐標(biāo);以當(dāng)前最大X軸坐標(biāo)、最大Y軸坐標(biāo)作為包圍盒的最大X軸坐標(biāo)、最 大Y軸坐標(biāo);以所述包圍盒的最小X軸坐標(biāo)、最小Y軸坐標(biāo)、最大X軸坐標(biāo)、最大Y軸坐標(biāo)作為所述 包圍盒的四個(gè)頂點(diǎn),生成所述動(dòng)畫在當(dāng)前幀的包圍盒。
10.一種動(dòng)畫制作裝置,其特征在于,所述裝置包括動(dòng)畫單元?jiǎng)?chuàng)建模塊,用于創(chuàng)建動(dòng)畫單元;所述動(dòng)畫單元包括圖元和/或骨骼;動(dòng)畫數(shù)據(jù)設(shè)置模塊,用于設(shè)置動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù);動(dòng)畫單元在播放過(guò)程中,出現(xiàn)非 線性變化時(shí)所在的幀為所述動(dòng)畫單元的關(guān)鍵幀;所述關(guān)鍵幀數(shù)據(jù)中記錄所述動(dòng)畫單元在所 述關(guān)鍵幀的參數(shù)。
11.如權(quán)利要求10所述的動(dòng)畫制作裝置,其特征在于,所述動(dòng)畫單元在播放過(guò)程中,進(jìn) 行線性變化時(shí)所在的幀為所述動(dòng)畫單元的過(guò)渡幀;動(dòng)畫單元的過(guò)渡幀數(shù)據(jù)中記錄該動(dòng)畫單元在所述過(guò)渡幀的參數(shù);所述過(guò)渡幀數(shù)據(jù)在所 述動(dòng)畫單元播放過(guò)程中,根據(jù)該動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù)實(shí)時(shí)計(jì)算得出。
12.如權(quán)利要求11所述的動(dòng)畫制作裝置,其特征在于,所述關(guān)鍵幀和過(guò)渡幀的參數(shù)包 括動(dòng)畫單元在當(dāng)前幀的水平位置參數(shù)、垂直位置參數(shù)、旋轉(zhuǎn)角度參數(shù)、縮放比例參數(shù)。
13.—種動(dòng)畫播放裝置,其特征在于,所述裝置包括動(dòng)畫播放模塊,用于播放動(dòng)畫;動(dòng)畫播放模塊在每一幀均遍歷所有動(dòng)畫單元,根據(jù)各動(dòng) 畫單元在當(dāng)前幀的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更新;過(guò)渡幀獲取模塊,用于動(dòng)畫單元在當(dāng)前幀不存在關(guān)鍵幀數(shù)據(jù)時(shí),根據(jù)所述動(dòng)畫單元在 其它幀的關(guān)鍵幀數(shù)據(jù),計(jì)算該動(dòng)畫單元在當(dāng)前幀的過(guò)渡幀數(shù)據(jù),并通過(guò)所述動(dòng)畫播放模塊 進(jìn)行播放。
14.如權(quán)利要求13所述的動(dòng)畫播放裝置,其特征在于,所述動(dòng)畫播放模塊包括動(dòng)畫遍歷單元,用于在動(dòng)畫單元?jiǎng)?chuàng)建模塊創(chuàng)建的動(dòng)畫單元為圖元時(shí),在每一幀均反向 遍歷圖元隊(duì)列;在動(dòng)畫單元?jiǎng)?chuàng)建模塊創(chuàng)建的動(dòng)畫單元為骨骼時(shí),在每一幀均依次遍歷骨骼 隊(duì)列;幀數(shù)據(jù)獲取單元,用于獲取在當(dāng)前幀各動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù);在當(dāng)前幀動(dòng)畫單元不 存在關(guān)鍵幀數(shù)據(jù)時(shí),通過(guò)過(guò)渡幀獲取模塊獲取該動(dòng)畫單元在當(dāng)前幀的過(guò)渡幀數(shù)據(jù);動(dòng)畫播放單元,用將各動(dòng)畫單元在當(dāng)前幀根據(jù)其關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)變換更新后 進(jìn)行播放。
15.如權(quán)利要求14所述的動(dòng)畫播放裝置,其特征在于,所述動(dòng)畫播放模塊還包括臨時(shí)存儲(chǔ)單元,用于當(dāng)動(dòng)畫單元為骨骼和與所述骨骼綁定的圖元時(shí),骨骼在當(dāng)前幀根 據(jù)其關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更新后,保存所述骨骼的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù) 據(jù);與所述骨骼綁定的圖元在當(dāng)前幀根據(jù)該圖元的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更 新后,再根據(jù)所述臨時(shí)存儲(chǔ)單元中存儲(chǔ)的所述骨骼的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更新。
16.如權(quán)利要求13至15中任一項(xiàng)所述的動(dòng)畫播放裝置,其特征在于,所述動(dòng)畫播放裝 置還包括包圍盒計(jì)算模塊,用于在動(dòng)畫播放過(guò)程中,動(dòng)畫播放模塊完成對(duì)所有動(dòng)畫單元的遍歷 更新之后,根據(jù)各動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù),計(jì)算動(dòng)畫在當(dāng)前幀的包圍盒。
17.如權(quán)利要求16所述的動(dòng)畫播放裝置,其特征在于,所述包圍盒計(jì)算模塊包括坐標(biāo)初始化單元,用于預(yù)置包圍盒四個(gè)頂點(diǎn)的初始化坐標(biāo);預(yù)置包圍盒四個(gè)頂點(diǎn)的最 小X軸坐標(biāo)和最小Y軸為正無(wú)窮大,設(shè)置包圍盒的最大X軸坐標(biāo)和最大Y軸坐標(biāo)為負(fù)無(wú)窮 大;頂點(diǎn)數(shù)據(jù)獲取單元,用于在動(dòng)畫播放模塊在當(dāng)前幀對(duì)所有動(dòng)畫單元進(jìn)行遍歷更新的過(guò) 程中,獲取各動(dòng)畫單元的頂點(diǎn)數(shù)據(jù);頂點(diǎn)計(jì)算單元,用于將頂點(diǎn)數(shù)據(jù)獲取單元獲取的所有動(dòng)畫單元的頂點(diǎn)數(shù)據(jù)中,以最小X 軸坐標(biāo)和最小Y軸坐標(biāo)作為包圍盒的最小X軸坐標(biāo)和最小Y軸坐標(biāo);以當(dāng)前最大X軸坐標(biāo) 和最大Y軸坐標(biāo)作為包圍盒的最大X軸坐標(biāo)和最大Y軸坐標(biāo);包圍盒生成單元,用于以所述頂點(diǎn)計(jì)算單元計(jì)算得出的包圍盒最小X軸坐標(biāo)、最小Y軸 坐標(biāo)、最大X軸坐標(biāo)、最大Y軸坐標(biāo)作為所述包圍盒的四個(gè)頂點(diǎn),生成所述動(dòng)畫在當(dāng)前幀的 包圍盒。
全文摘要
本發(fā)明提供一種動(dòng)畫制作方法、裝置和動(dòng)畫播放方法、裝置。動(dòng)畫制作方法包括確定動(dòng)畫單元的關(guān)鍵幀;動(dòng)畫單元在播放過(guò)程中,出現(xiàn)非線性變化時(shí)所在的幀為動(dòng)畫單元的關(guān)鍵幀;設(shè)置動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù);關(guān)鍵幀數(shù)據(jù)中記錄動(dòng)畫單元在關(guān)鍵幀的參數(shù)。動(dòng)畫播放方法包括在當(dāng)前幀遍歷動(dòng)畫的所有動(dòng)畫單元;獲取各動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù);若動(dòng)畫單元在當(dāng)前幀不存在關(guān)鍵幀數(shù)據(jù),則根據(jù)動(dòng)畫單元在其它幀的關(guān)鍵幀數(shù)據(jù),計(jì)算動(dòng)畫單元在當(dāng)前幀的過(guò)渡幀數(shù)據(jù);在當(dāng)前根據(jù)各動(dòng)畫單元的關(guān)鍵幀數(shù)據(jù)或過(guò)渡幀數(shù)據(jù)進(jìn)行變換更新。實(shí)施本發(fā)明提供的動(dòng)畫制作方法、裝置和動(dòng)畫播放方法、裝置,可以提高對(duì)動(dòng)畫圖片的利用率,減小動(dòng)畫制作過(guò)程中的工作量。
文檔編號(hào)G06T13/00GK102129705SQ20101004444
公開(kāi)日2011年7月20日 申請(qǐng)日期2010年1月18日 優(yōu)先權(quán)日2010年1月18日
發(fā)明者熊智敏 申請(qǐng)人:騰訊科技(深圳)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
铅山县| 凉山| 托里县| 天全县| 永胜县| 盐城市| 宜川县| 调兵山市| 阿拉善右旗| 胶州市| 景泰县| 北票市| 剑川县| 佛坪县| 和龙市| 静乐县| 托里县| 临澧县| 巴塘县| 沙洋县| 鄂托克旗| 广宗县| 靖安县| 台南市| 理塘县| 和静县| 图们市| 怀安县| 家居| 陈巴尔虎旗| 淳安县| 友谊县| 彝良县| 岳池县| 新郑市| 遂川县| 灵台县| 区。| 漳浦县| 武隆县| 湘西|