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

用于產(chǎn)生動畫數(shù)據(jù)的方法和裝置的制作方法

文檔序號:6410190閱讀:196來源:國知局
專利名稱:用于產(chǎn)生動畫數(shù)據(jù)的方法和裝置的制作方法
技術領域
本發(fā)明涉及用于產(chǎn)生動畫數(shù)據(jù)的方法和裝置,尤其涉及旋轉動畫數(shù)據(jù)的產(chǎn)生。
在利用所謂手工操作(manual works)制作動畫片時,通常要執(zhí)行以下步驟首先確定從動畫片的開頭到結束用于平滑想要動畫運動(animation motion)的所需幀數(shù),然后產(chǎn)生該全部所需幀的各個圖象。但是,為了產(chǎn)生經(jīng)確定數(shù)目的全部幀的圖象需要大量的時間和勞動。
與此同時,目前已普及了通過采用計算機制圖學技術制作動畫片的方法。這一方法對于三維動畫片的制作尤其效果顯著。
作為采用這種計算機制圖學產(chǎn)生動畫數(shù)據(jù)的方法之一,已有一種關鍵幀內(nèi)插的方法。根據(jù)這一方法,如圖5實線四邊形所示,用戶將主要變化點的圖象看作所需動畫片中的關鍵幀,并只產(chǎn)生這種關鍵幀的圖象。
一般來說,關鍵幀是由操作者利用在動畫片中的各組成單元(此后稱為目標)圖象的三維布局來產(chǎn)生的。這種目標的圖象數(shù)據(jù)被作為在存儲器等中的模型數(shù)據(jù)來制備,并可由操作者從存儲器等中讀出以便使用。模型數(shù)據(jù)可按照二維或三維的方式來表示。
在圖5中,關鍵幀之間的虛線四邊形幀(內(nèi)插幀)是利用在內(nèi)插幀之前和之后的關鍵幀中目標間的相關性通過內(nèi)插處理自動地產(chǎn)生的。具體來說,一旦被包括在內(nèi)插幀之前或之后的前面和后面關鍵幀中的目標已被移動或已被旋轉,就通過對來自被包括在這些前面和后面關鍵幀中的目標的數(shù)據(jù)進行內(nèi)插處理來計算兩個關鍵幀之間的內(nèi)插幀中目標的移動位置或旋轉變化。對于每一個目標執(zhí)行這種內(nèi)插處理。
因此有可能產(chǎn)生在三維空間中連續(xù)運動的動畫數(shù)據(jù)。于是在基于上述計算機制圖學技術的動畫數(shù)據(jù)產(chǎn)生裝置中,通過只對關鍵幀的圖象數(shù)據(jù)進行管理就能夠相當容易地產(chǎn)生一系列動畫數(shù)據(jù)。
在一種制作動畫片的方法中,其使在兩個關鍵幀之間目標的任何變化成為兩維或三維的目標繞三維空間中的一軸旋轉,關于在內(nèi)插幀中對目標的內(nèi)插處理有以下公知的相關技術。
通常通過將三維空間中目標的旋轉分解成為繞X軸、Y軸和Z軸的旋轉角分量來對其進行描述,X軸、Y軸、和Z軸是表示三維空間的三個坐標軸。即通過將旋轉分解成為繞X軸的角分量、繞Y軸的角分量和繞Z軸的角分量來對其進行描述。盡管根據(jù)某些應用的目的會利用極坐標來描述旋轉,但在相關技術中這種情況非常少。
在此以前,已知相關技術的動畫數(shù)據(jù)產(chǎn)生裝置,其通過首先彼此獨立地內(nèi)插繞X軸、Y軸和Z軸的旋轉角分量,然后將這些分量組合來獲得內(nèi)插幀中每一目標的內(nèi)插數(shù)據(jù)。
但是,根據(jù)相關技術的動畫片制作裝置,其產(chǎn)生旋轉動畫數(shù)據(jù)的方法,是繞X軸、Y軸和Z軸彼此獨立地內(nèi)插旋轉角分量的,所以雖然獲得了簡化計算的優(yōu)點,但所提供的旋轉是與動畫片繪制者想得到的旋轉不相同的,因此變得不自然。
上述缺點的產(chǎn)生是因為例如目標在繞X、Y和Z軸旋轉的旋轉分量被作為獨立和線性旋轉分量進行處理時對該目標的旋轉進行了內(nèi)插的緣故。
具體來說,根據(jù)內(nèi)插幀和在該內(nèi)插幀之前和之后的兩個關鍵幀的位置,確定在該內(nèi)插幀中的旋轉角(在兩個關鍵幀之間的中間位置的旋轉角)。如果繞X、Y和Z軸的旋轉角彼此獨立地被確定,則每一內(nèi)插幀中旋轉的變化將使在各個內(nèi)插幀中目標的旋轉軸彼此不相同。因為在X、Y和Z軸之間無相關性,所以即使在繞每一根軸的線性旋轉的情形下,在通過組合繞三根軸的彼此獨立的旋轉分量時其獲得的每一內(nèi)插幀中的旋轉在各個幀中也是獨立的。
現(xiàn)在假定目標OB是如圖6A至6C所示的球形圖象,第一關鍵幀F(xiàn)1中的球形圖象OB從圖6A的狀態(tài)被旋轉成為在第二關鍵幀F(xiàn)2中的圖6B的圖象。在這一情形下,如以上述方式進行旋轉時旋轉軸被改變,所以第一關鍵幀F(xiàn)1和第二關鍵幀F(xiàn)2之間的內(nèi)插幀若利用相關技術的動畫數(shù)據(jù)產(chǎn)生方法來形成時,將得出如圖6C中的實線箭頭ARC所示旋轉軌跡的動畫。
這一旋轉是與圖6C中虛線箭頭ARO所示的在第一關鍵幀F(xiàn)1和第二關鍵幀F(xiàn)2之間繞一根軸的自然的旋轉運動不相同的,因此是非自然的。
有鑒于此,本發(fā)明的目的是提供一種能夠?qū)崿F(xiàn)自然旋轉動畫的方法和裝置,即使在執(zhí)行旋轉內(nèi)插的情形下,其在關鍵幀之間利用內(nèi)插產(chǎn)生動畫數(shù)據(jù)。
根據(jù)本發(fā)明的一個方面,提供了用于產(chǎn)生由多個幀組成的動畫數(shù)據(jù)的方法。該方法包括以下步驟通過沿選定的時間軸排列動畫的組成單元來設定多個關鍵幀;獲得相應于組成單元在兩個關鍵幀之間的運動的一根旋轉軸;以及在將該運動處理為繞該旋轉軸的旋轉時通過內(nèi)插組成單元的該運動來形成內(nèi)插幀。
根據(jù)本發(fā)明的另一個方面,提供了用于產(chǎn)生由多個幀組成的動畫數(shù)據(jù)的裝置。該裝置包括通過沿選定的時間軸排列動畫的組成單元用于設定多個關鍵幀的裝置;獲得相應于組成單元在該兩個關鍵幀之間的運動的一根旋轉軸的裝置;以及在將該運動處理為繞該旋轉軸的旋轉時通過內(nèi)插組成單元的運動來形成內(nèi)插幀的裝置。
根據(jù)本發(fā)明的再一個方面,提供了一種動畫數(shù)據(jù)產(chǎn)生裝置,該裝置包括存儲多個關鍵幀的數(shù)據(jù)的裝置,在這些關鍵幀中,動畫的組成單元被沿選定的時間軸排列;獲得一根相應于組成單元在兩個關鍵幀之間的運動的旋轉軸的裝置;通過繞一根旋轉軸旋轉組成單元來獲得在兩關鍵幀之間的內(nèi)插幀的裝置;以及輸出如此獲得的內(nèi)插幀的裝置。
在上述的本發(fā)明的圖象數(shù)據(jù)產(chǎn)生方法和設備中,當在組成單元的旋轉期間執(zhí)行內(nèi)插時,首先計算組成單元繞任意軸在兩關鍵幀之間旋轉時的旋轉角。然后根據(jù)該旋轉角計算在要被內(nèi)插的幀中的旋轉角。該內(nèi)插幀的該旋轉角然后被分解成為繞三維空間的X、Y和Z軸的角分量,并相對于三根軸中的每一根軸執(zhí)行內(nèi)插處理。
由于在內(nèi)插幀中的旋轉角是關于一根任意軸的角,所以能夠以自然旋轉產(chǎn)生令人滿意的動畫數(shù)據(jù)。
本發(fā)明的上述及其它特征和優(yōu)點根據(jù)以下參看附圖對其進行的描述將更加清楚。


圖1是說明本發(fā)明動畫數(shù)據(jù)產(chǎn)生裝置一實施例的方框圖2是圖1所示動畫數(shù)據(jù)產(chǎn)生裝置實施例中的主要裝置的功能方框圖;圖3是表示圖1所示動畫數(shù)據(jù)產(chǎn)生裝置實施例中的主要裝置的處理操作的流程圖;圖4是表示相對于數(shù)據(jù)內(nèi)插單元中的旋轉執(zhí)行的內(nèi)插的示范性例行程序的流程圖;圖5是說明如何用關鍵幀通過內(nèi)插產(chǎn)生動畫數(shù)據(jù)的示意圖;圖6A至6C是各說明用關鍵幀通過內(nèi)插獲得的旋轉動畫的運動的示意圖。
以下將參看附圖所示的本發(fā)明的最佳實施例描述本發(fā)明的用于產(chǎn)生動畫數(shù)據(jù)的方法和裝置。圖1是說明本發(fā)明動畫數(shù)據(jù)產(chǎn)生裝置的一實施例的方框圖。
如圖1所示,該動畫數(shù)據(jù)產(chǎn)生裝置包括輸入單元1;目標管理單元2;關鍵幀管理單元3;布局(layout)管理單元4、圖象顯示單元5、數(shù)據(jù)內(nèi)插單元6、以及數(shù)據(jù)存儲器單元7。
輸入單元1設有鍵盤、鼠標器等,其接收來自操作者的各種輸入。輸入單元1將事件信息、例如將相應于來自操作者輸入的字符信息或命令信息提供給目標管理單元2,關鍵幀管理單元3和布局管理單元4。例如,有選擇地改變處理模式的命令、產(chǎn)生關鍵幀數(shù)據(jù)的信息、或產(chǎn)生一系列動畫數(shù)據(jù)的命令被從輸入單元1提供給有關單元。
目標管理單元2、關鍵幀管理單元3和布局管理單元4中的每一個都具有用于存儲數(shù)據(jù)的存儲器,并管理為產(chǎn)生一系列動畫數(shù)據(jù)所需的數(shù)據(jù)。
目標管理單元2在其存儲器中存儲并管理目標,該目標是產(chǎn)生所需動畫的組成單元,例如形成象飛機、直升飛機或汽車的模型數(shù)據(jù)。
在所需的動畫產(chǎn)生之前,通過輸入單元1和未示出的掃描器(圖象閱讀器)將模型數(shù)據(jù)提供給目標管理單元2,在目標管理單元2中給模型數(shù)據(jù)附加用于識別各個目標的目標ID并對目標ID進行管理。
關鍵幀管理單元3管理關鍵幀數(shù)據(jù),關鍵幀數(shù)據(jù)構成關鍵幀圖象,關鍵幀數(shù)據(jù)如上所述是由響應操作者命令通過布局三維空間的模型數(shù)據(jù)形成的。
在這一實施例中,關鍵幀數(shù)據(jù)由各種信息組成,這些信息包括由操作者通過輸入單元1有選擇地指定的目標所相關的目標ID、目標排列在幀上的坐標位置、目標的(被縮小或被放大)尺寸、以及目標的旋轉角等信息。
關鍵幀管理單元3給每一關鍵幀附加幀號,以便表明從動畫序列的開頭計數(shù)的該動畫序列的序數(shù),并管理各個關鍵幀的數(shù)據(jù)。換句話說,關鍵幀管理單元3對全部幀的位置進行管理,它從動畫序列位置起始通過利用相關的時間進行管理,該全部幀由包含關鍵幀的動畫序列組成。
布局管理單元4在產(chǎn)生關鍵幀數(shù)據(jù)的時刻形成圖象顯示信號用于顯示正在被產(chǎn)生的關鍵幀的圖象,然后將這一信號提供給圖象顯示單元5。此外,如以后將描述的那樣,布局管理單元4形成圖象顯示信號用于顯示包括根據(jù)關鍵幀產(chǎn)生的內(nèi)插幀在內(nèi)的動畫序列,并將這一信號提供給圖象顯示單元5。
圖象顯示單元5由陰極射線管或液晶顯示器件構成,其根據(jù)從布置管理單元4中得到的圖象顯示信號顯示一系列關鍵幀的圖象。
在產(chǎn)生關鍵幀數(shù)據(jù)的時刻,例如目標管理單元2、關鍵幀管理單元3和圖象顯示單元5按照圖3所示運行。
一旦操作者通過輸入單元1選定了關鍵幀輸入模式來產(chǎn)生關鍵幀數(shù)據(jù)(SP1),各單元就響應這種選擇做好準備以等待輸入用于關鍵幀的產(chǎn)生的信息。一旦操作者通過輸入單元1設定了所需關鍵幀的編號(SP2),該幀號就被提供給關鍵幀管理單元3。
操作者隨后選擇要在相關關鍵幀上顯示的目標(SP3),并向輸入單元1提供所需數(shù)據(jù),例如目標在幀上排列的坐標位置、目標的尺寸、目標的旋轉角等(SP4)。
如此輸入的數(shù)據(jù)被依次提供給布局管理單元4。布局管理單元4然后根據(jù)所提供的數(shù)據(jù)從目標管理單元2中獲取被選目標的模型數(shù)據(jù),并形成用于顯示圖象的圖象顯示信號。該圖象是排列在幀上的目標。
與此同時,布局管理單元4通過輸入單元1接收表示相關幀的編號的數(shù)據(jù),然后形成圖象信號以便顯示與該幀的圖象一起的該幀號。
于是形成的圖象顯示信號被提供給圖象顯示單元5,關鍵幀的圖象在圖象顯示單元5的屏幕上被顯示(SP5)。然后當操作者在觀看顯示單元5屏幕上被顯示的圖象時對目標的位置、尺寸和旋轉角進行調(diào)整。
一旦完成了對在相應的關鍵幀上顯示全部目標的輸入設定,操作者認為在圖象顯示單元5上顯示了令人滿意的圖象時,然后在輸入單元1的鍵盤上按下確認鍵或輕按鼠標器以確定所產(chǎn)生的關鍵幀數(shù)據(jù)(SP6),由此在關鍵幀管理單元3中記錄關鍵幀數(shù)據(jù)(SP7)。
這樣一來,操作者邊觀看被顯示在圖象顯示單元5上的圖象,邊產(chǎn)生全部關鍵幀數(shù)據(jù),這些數(shù)據(jù)是產(chǎn)生該想要的動畫所必需的。
在為所需動畫數(shù)據(jù)序列產(chǎn)生所需要的全部關鍵幀數(shù)據(jù)的操作結束并完成了在關鍵幀管理單元3中全部登記這樣的關鍵幀數(shù)據(jù)之后,操作者選擇動畫數(shù)據(jù)產(chǎn)生模式(SP8)來產(chǎn)生所需的動畫數(shù)據(jù)序列。動畫數(shù)據(jù)的產(chǎn)生是在數(shù)據(jù)內(nèi)插單元6中完成的。
響應來自目標管理單元2和關鍵幀管理單元3的信息,數(shù)據(jù)內(nèi)插單元6根據(jù)關鍵幀的圖象數(shù)據(jù)產(chǎn)生內(nèi)插幀的圖象數(shù)據(jù),由此產(chǎn)生所需的動畫數(shù)據(jù)序列。
具體來說,一旦選定了動畫數(shù)據(jù)產(chǎn)生模式,關鍵幀管理單元3就響應從輸入單元1得到的模式選擇信息將關鍵幀數(shù)據(jù)提供給數(shù)據(jù)內(nèi)插單元6,然后通知目標管理單元2,其具有與關鍵幀數(shù)據(jù)指定的目標相關聯(lián)的目標ID。目標管理單元2隨后讀出相應的模型數(shù)據(jù)并將它們提供給數(shù)據(jù)內(nèi)插單元6,關鍵幀管理單元3還向數(shù)據(jù)內(nèi)插單元6提供作為關鍵幀位置信息的內(nèi)插幀號。
數(shù)據(jù)內(nèi)插單元6然后根據(jù)該內(nèi)插幀號檢測在該內(nèi)插幀之前和之后的的兩個關鍵幀,并根據(jù)這兩個關鍵幀的數(shù)據(jù)和被關鍵幀數(shù)據(jù)指定的目標的模型數(shù)據(jù)在這兩關鍵幀之間形成內(nèi)插幀的圖象數(shù)據(jù)。這樣一來,數(shù)據(jù)內(nèi)插單元6就根據(jù)在每一前面的和后面的關鍵幀與相關內(nèi)插幀之間的空間距離利用內(nèi)插處理產(chǎn)生了在關鍵幀之間所需要的內(nèi)插幀的圖象數(shù)據(jù)。數(shù)據(jù)內(nèi)插單元6根據(jù)各幀的位置信息、即幀號來控制從每一前面的和后面的關鍵幀至每一內(nèi)插幀的空間距離。
如上所述,數(shù)據(jù)內(nèi)插單元6通過在關鍵幀之間產(chǎn)生的內(nèi)插幀的圖象數(shù)據(jù)來產(chǎn)生所需動畫數(shù)據(jù)序列(SP9)。數(shù)據(jù)內(nèi)插單元6隨后將如此產(chǎn)生的動畫數(shù)據(jù)傳送給數(shù)據(jù)存儲器單元7。
數(shù)據(jù)存儲器單元7具有例如磁盤或光盤類的存儲介質(zhì),由關鍵幀數(shù)據(jù)和內(nèi)插幀數(shù)據(jù)組成的動畫數(shù)據(jù)序列被存儲在磁盤等類似介質(zhì)中(SP10)。
如上所述,在將動畫數(shù)據(jù)序列存儲在數(shù)據(jù)存儲器單元7中之前,在數(shù)據(jù)內(nèi)插單元6中產(chǎn)生的動畫數(shù)據(jù)通過關鍵幀管理單元3以動畫圖象監(jiān)視器模式的方式提供給布局管理單元4,然后在圖象顯示單元5上被顯示,因此可對動畫進行監(jiān)視。
一旦需要利用監(jiān)視來修正如此產(chǎn)生的動畫數(shù)據(jù)序列,就可以通過修正其中的某些關鍵幀或增加恰當?shù)年P鍵幀來進一步平滑動畫的運動。
布局管理單元4能夠根據(jù)來自操作者的命令以預定的速度顯示動畫序列,還能夠一個接著一個地顯示各幀的圖象,如同翻頁一樣,因此確保了對圖象的有效的修正或確認。
在數(shù)據(jù)存儲器單元7中,動畫數(shù)據(jù)可按照圖(image)的數(shù)據(jù)形式進行存儲,或者也可以存儲用于顯示的目標ID、該目標的坐標位置和旋轉角的數(shù)據(jù)。在后一情形下,當需要按照與在目標管理單元2中的模型數(shù)據(jù)相同的模型數(shù)據(jù)來再現(xiàn)動畫時,這種模型數(shù)據(jù)可以存儲在數(shù)據(jù)存儲器單元7中,或者可以在動畫重放設備中裝備具有與在目標管理單元2的內(nèi)部存儲器中相同的存儲內(nèi)容的存儲器。
當數(shù)據(jù)內(nèi)插單元6中的目標內(nèi)插處理涉及到繞一根軸的旋轉時,就在數(shù)據(jù)內(nèi)插單元6中以這樣的方式執(zhí)行該處理,即相關目標被認為是根據(jù)在內(nèi)插幀之前和之后的兩關鍵幀的數(shù)據(jù)繞任意軸被旋轉,而不以這樣的方式執(zhí)行該處理,即對于圍繞三維坐標系統(tǒng)中的X、Y和Z軸中的每根軸的旋轉執(zhí)行內(nèi)插。
因此,在對于旋轉執(zhí)行內(nèi)插時,數(shù)據(jù)內(nèi)插單元6利用如圖2中的功能方框圖所示的繞一根軸的旋轉角計算裝置61和內(nèi)插旋轉矩陣計算裝置62執(zhí)行處理。
繞一根軸的旋轉角計算裝置61根據(jù)在兩關鍵幀中目標旋轉角的X、Y和Z軸分量計算旋轉角θ,這代表了目標繞兩關鍵幀之間的任意軸旋轉的角度。以后將詳細說明如何計算該旋轉角θ。
內(nèi)插旋轉矩陣計算裝置62首先在
的角度范圍內(nèi)旋轉目標的狀態(tài)下計算在每一內(nèi)插幀中的旋轉角θd,然后通過利用如此獲得的旋轉角θd計算內(nèi)插旋轉矩陣Rd。該裝置62此后將內(nèi)插旋轉矩陣Rd分解成為繞三維坐標系統(tǒng)的X、Y和Z軸的角度數(shù)據(jù),并計算內(nèi)插數(shù)據(jù)。
以下說明如何獲得目標繞兩關鍵幀之間的任意軸的旋轉角度θ。
繞三維坐標系統(tǒng)中的原點的旋轉用3×3旋轉矩陣來表示?,F(xiàn)在假定坐標系統(tǒng)B將坐標系統(tǒng)A按照繞X軸、繞Y軸和繞Z軸這樣的順序分別旋轉了rx度、ry度和rz度,則旋轉矩陣被表達式1表示如下。[表達式1]cos(rz)-sin(rz)0sin(rz)cos(rz)0001cos(ry)0sin(ry)010sin(ry)0cos(ry)1000cos(rx)-sin(rx)0sin(rx)cos(rx)]]>假定旋轉矩陣R用表達式2來表示,其轉置矩陣RT用表達式3來表示。[表達式2]R=R11R12R13R21R22R23R31R32R33]]>[表達式3]RT=R11R21R31R12R22R32R13R23R33]]>=1000cos(rx)sin(rx)0-sin(rx)cos(rx)cos(ry)0-sin(ry)010sin(ry)0cos(ry)cos(rz)sin(rz)0-sin(rz)cos(rz)0001]]>由于在表達式3中公式的條件RTR=1......(1)被滿足,所以R是正交矩陣。相反地,|R|=1的正交矩陣用表達式3來表示,該矩陣是一旋轉矩陣??梢岳昧硪徽痪仃嘥來將一正交矩陣歸一化為表達式4是眾所周知的。[表達式4]T-1RT=1000cosθ-sinθ0sinθcosθ]]>當有兩個任意的旋轉矩陣A和B時,R被設定為R=A-1B......(2)上述正交矩陣T可被確定并用表達式5來表示。于是以上可用表達式6來表示。[表達式5]T-1RT=1000cosθ-sinθ0sinθcosθ]]>[表達式6]T-1A-1BT=1000cosθ-sinθ0sinθcosθ]]>B=AT1000cosθ-sinθ0sinθcosθT-1]]>由于在
范圍內(nèi)角度的變化,上述坐標系統(tǒng)A被繞一根軸旋轉成為坐標系統(tǒng)B的狀態(tài)。
因此,通過求出正交矩陣T,就能夠通過繞一根軸的旋轉來進行內(nèi)插兩任意坐標系統(tǒng)之間的狀態(tài)。
正交矩陣T可按照以下方式來求出。現(xiàn)在假定求出了用公式(3)表示的、絕對值為1的特征向量R。
Rt=t......(3)由于上式可表示為
(R-E)t=0......(4)(此處的E為單式矩陣)t與矩陣(R-E)的分量矢量垂直。
根據(jù)矩陣(R-E)求出兩獨立的主要集合,將它們的外積(exter-ior product)歸一化來產(chǎn)生t1。然后通過從獲得了t1的矩陣(R-E)中取出其任一矢量來確定與t1垂直的矢量。也將這一矢量歸一化來產(chǎn)生t2。然后求t1和t2的外積來產(chǎn)生t3。t1、t2和t3每個的絕對值都是1并彼此正交,所以矩陣(t1、t2、t3)是一正交矩陣。
現(xiàn)在假定矩陣(t1、t2、t3)為T,則表達式5的左側可用表達式7來表示。[表達式7]T-1RT=(t1t2t3)-1R(t1t2t3)=t1Tt2Tt3TR(t1t2t3)]]>=t1TRt1t1TRt2t1TRt3t2TRt1t2TRt2t2TRt3t3TRt1t3TRt2t3TRt3]]>由公式(3)顯然有Rt1=t1,于是就得到表達式8,所以表達式7可被改寫為表達式9。[表達式8]t1TRt1=t1Tt1]]>t2TRt1=t2Tt1]]>t3TRt1=t3Tt1]]>[表達式9]T-1RT=1000t2TRt2t2TRt30t3TRt2t3TRt3]]>表達式9的各元素在表達式10中被設定。[表達式10]T-1RT=1000AB0CD]]>由于T和R都是正交矩陣,所以T-1RT也是正交矩陣,有以下關系。A2+C2=1...(5)B2+D2=1...(6)A2+B2=1...(7)
C2+D2=1...(8)AB+CD=0...(9)AC+BD=0...(10)AD-BC=1...(11)通過將公式(5)減去公式(8),A2-D2=0A=±D當A=-D時,將其代入公式(9),于是D(B-C)=0因此D=0或B=C,將D=0代入公式11-BC=1通過將公式(5)減去公式(7),B=±C因此B=-C=±1與此同時,將A=-D,B=C代入公式(11),-D2-C2=1這是矛盾的。因此A=D=0B=-C=±1當A=D時,將其代入公式(9),于是D(B+C)=0因此,
D=0或B=-C如果D=0,就按照如上所述相同的方式得到B=-C=±1。如果D≠0,由于B=-C,所以在任何情況下,就有A=DB=-CC2+D2=1于是能夠得到表達式11。因此,如上所述,能夠確定滿足表達式5的正交矩陣T。[表達式11]T-1RT=1000cosθ-sinθ0sinθcosθ]]>在上述理論的基礎上,在數(shù)據(jù)內(nèi)插單元6中對于目標的旋轉執(zhí)行內(nèi)插處理。圖4的流程圖表示在數(shù)據(jù)內(nèi)插單元6中對于旋轉執(zhí)行這種內(nèi)插的示范性例行程序。以下將參看圖4描述這一例行程序。
首先在步驟S1中為在內(nèi)插幀之前的關鍵幀K1中內(nèi)插獲取繞目標的X軸、Y軸、Z軸的角度數(shù)據(jù)rx1、ry1、rz1,以及為在內(nèi)插幀之后的關鍵幀K2中內(nèi)插荻取繞目標X軸、Y軸、Z軸的角數(shù)據(jù)rx2、ry2、rz2,還有表示在兩關鍵幀K1和K2之間的內(nèi)插幀的數(shù)目的內(nèi)插步驟數(shù)S。
然后操作到達步驟S2,利用角數(shù)據(jù)rx1、ry1、rz1和角數(shù)據(jù)rx2、ry2、rz2計算旋轉矩陣R=R1-1R2,R1、R1-1和R2由表達式12來表示。[表達式12]R1=1000cos(rx1)-sin(rx1)0sin(rx1)cos(rx1)cos(ry1)0sin(ry1)010-sin(ry1)0cos(ry1)cos(rz1)-sin(rz1)0sin(rz1)cos(rz1)0001]]>R1-1=cos(-rz1)-sin(-rz1)0sin(-rz1)cos(-rz1)0001cos(-ry1)0sin(-ry1)010sin(-ry1)0cos(-ry1)1000cos(-rx1)-sin(-rx1)0sin(-rx1)cos(-rx1)]]>R2=1000cos(rx2)-sin(rx2)0sin(rx2)cos(rx2)cos(ry2)0sin(ry2)010-sin(ry2)0cos(ry2)cos(rz2)-sin(rz2)0sin(rz2)cos(rz2)0001]]>操作然后進行到步驟S3,計算正交矩陣T,正交矩陣T可按以上方式來獲得。然后在步驟S4,根據(jù)這樣獲得的正交矩陣T按照表達式11計算在從關鍵幀K1至關鍵幀K2的時間期間內(nèi)繞一根軸旋轉的目標的旋轉角θ。在這一情形下,旋轉軸是使目標在兩關鍵幀K1和K2之間繞其旋轉實現(xiàn)最小旋轉角的旋轉軸。
這樣執(zhí)行內(nèi)插處理,以使目標在所計算的旋轉角θ的范圍
內(nèi)每次按照內(nèi)插幀的數(shù)目S用非常小的角度順序地旋轉。為此,在每一內(nèi)插幀中的角度θd在步驟S5中被重置為零(θd=0)。然后在步驟S6中判斷是否完成了對在兩關鍵幀K1和K2之間的多個內(nèi)插幀中的最后一個的處理。當判斷的結果表示已完成時,這一例行程序就被終止。
在上述判斷結果為否定的情況下,表示處理尚未結束,操作進行到步驟S7,通過執(zhí)行以下計算來求出在相關內(nèi)插幀中的角度θd;θd=θd+θ/S然后在下一步驟S8處根據(jù)以下給出的表達式13計算在相關內(nèi)插幀中的內(nèi)插旋轉矩陣Rd。[表達式13]Rd=T1000cosθd-sinθd0sinθdcosθdT-1]]>此后操作進行到步驟S9,將在步驟S8中獲得的內(nèi)插旋轉矩陣Rd在該步驟中被分解為繞X軸、Y軸和Z軸的角數(shù)據(jù)rxd、ryd、rzd。一旦完成了以此方式產(chǎn)生的內(nèi)插數(shù)據(jù);操作就返回到步驟S6,對于下一個內(nèi)插幀重復進行上述處理。
于是,能夠產(chǎn)生所需的內(nèi)插數(shù)據(jù)來獲得自然的旋轉動畫,如圖6C中的虛線箭頭ARO所示,每一目標繞任意軸如此旋轉以至于在兩關鍵幀之間使其旋轉角為最小。如上所述,在這種情況下,要被旋轉的目標可以由兩維或三維數(shù)據(jù)組成。
如上所述,根據(jù)本發(fā)明,當旋轉被認為是繞任意軸的旋轉時計算在兩關鍵幀之間的三維空間內(nèi)的該旋轉的角度,然后利用內(nèi)插計算在兩關鍵幀之間的每一內(nèi)插幀中的旋轉角,通過將所計算的旋轉角變換為繞在三維空間坐標系統(tǒng)中的X、Y和Z軸的角數(shù)據(jù)來執(zhí)行內(nèi)插處理,由此實現(xiàn)了產(chǎn)生具有操作者所希望的自然的旋轉運動所需的動畫。
雖然已結合本發(fā)明的最佳實施例對本發(fā)明進行了描述,但應當認識到本發(fā)明不只限于上述最佳的實施例,在不違背本發(fā)明的構思的情況下,各種其它改進和變化對本領域技術人員而言是顯而易見的。
因此,本發(fā)明的范圍由所附的權利要求來確定。
權利要求
1.一種產(chǎn)生動畫數(shù)據(jù)的方法,包括以下步驟通過沿選定的時間軸排列動畫的組成單元來設定多個關鍵幀;獲得一根相應于所述的組成單元在兩個所述關鍵幀之間運動的旋轉軸,以及在將該運動處理為繞所述旋轉軸的旋轉時通過內(nèi)插所述組成單元的運動來形成內(nèi)插幀。
2.如權利要求1的方法,其中,還包括顯示設定關鍵幀的步驟。
3.如權利要求1的方法,其中,所述設定關鍵幀的步驟包括選擇多個組成單元中所需的一個組成單元的步驟。
4.如權利要求1的方法,其中,所述設定關鍵幀的步驟包括設定組成單元的坐標的步驟。
5.如權利要求1的方法,其中,所述設定關鍵幀的步驟包括設定組成單元的大小的步驟。
6.如權利要求1的方法,其中,所述設定關鍵幀的步驟包括設定組成單元的旋轉角的步驟。
7.如權利要求1的方法,其中,所述獲得一根旋轉軸的步驟包括以下步驟獲得相應于組成單元在所述兩個關鍵幀之間運動的繞原點的一旋轉,;以及將繞該原點的該旋轉變換為繞任意軸的旋轉。
8.如權利要求7的方法,其中,所述獲得一根旋轉軸的步驟包括以下步驟獲得相應于組成單元在所述兩個關鍵幀之間運動的繞原點的旋轉矩陣R;以及從所述旋轉矩陣R獲得滿足以下條件的正交矩陣TT-1RT=1000cosθ-sinθ0sinθcosθ]]>
9.如權利要求1的方法,其中,所述形成內(nèi)插幀的步驟包括以下步驟獲得繞所述一根相應于組成單元在所述兩個關鍵幀之間運動的旋轉軸的旋轉角;以及獲得在與沿時間軸的位置一致的內(nèi)插幀上的所述組成單元的旋轉角。
10.如權利要求9的方法,其中,所述形成內(nèi)插幀的步驟包括以下步驟獲得繞所述一根相應于組成單元在所述兩個關鍵幀之間運動的旋轉軸的旋轉角θ;以及在所述旋轉角θ的范圍內(nèi)根據(jù)內(nèi)插幀的數(shù)目S利用以下公式進行計算來獲得在每一內(nèi)插幀中的旋轉角θdθd=θd+θ/s。
11.一種產(chǎn)生動畫數(shù)據(jù)的裝置,包括用于通過沿選定的時間軸排列動畫的組成單元來設定多個關鍵幀的裝置;獲得一根相應于所述組成單元在所述兩個關鍵幀之間運動的旋轉軸的裝置;以及在將該運動處理為繞所述旋轉軸的旋轉時,通過內(nèi)插所述組成單元的運動形成內(nèi)插幀的裝置。
12.如權利要求11的裝置,其中,還包括顯示該設定關鍵幀的裝置。
13.如權利要求11的裝置,其中,所述設定該關鍵幀的裝置包括選擇多個組成單元中所需的一個組成單元的裝置。
14.如權利要求11的裝置,其中,所述設定該關鍵幀的裝置包括設定組成單元的坐標的裝置。
15.如權利要求11的裝置,其中,所述設定該關鍵幀的裝置包括設定組成單元的大小的裝置。
16.如權利要求11的裝置,其中,所述設定該關鍵幀的裝置包括設定組成單元該旋轉角的裝置。
17.如權利要求11的裝置,其中,用于獲得一根旋轉軸的所述裝置包括用于獲得相應于組成單元在所述兩個關鍵幀之間的該運動的繞原點旋轉的裝置;以及用于將繞原點的旋轉變換為繞任意軸的旋轉的裝置。
18.如權利要求17的裝置,其中,所述用于獲得一根旋轉軸的裝置包括用于獲得相應于組成單元在所述兩個關鍵幀之間運動的繞原點的旋轉矩陣R的裝置;以及用于從所述旋轉矩陣R獲得滿足以下條件的正交矩陣T的裝置T-1RT=1000cosθ-sinθ0sinθcosθ]]>
19.如權利要求11的裝置,其中,所述形成內(nèi)插幀的裝置包括用于獲得繞所述一根相應于組成單元在所述兩個關鍵幀之間運動的旋轉軸的一旋轉角的裝置;以及用于獲得在與沿時間軸的位置一致的內(nèi)插幀上的所述組成單元的旋轉角的裝置。
20.如權利要求19的裝置,其中,所述形成內(nèi)插幀的裝置包括用于獲得繞所述一根相應于組成單元在所述兩個關鍵幀之間運動的旋轉軸的旋轉角θ的裝置;以及用于獲得每一內(nèi)插幀中的旋轉角θd的裝置,其在所述旋轉角θ的范圍內(nèi)根據(jù)內(nèi)插幀的數(shù)目S利用以下公式進行計算獲得θd=θd+θ/s。
21.一種產(chǎn)生動畫數(shù)據(jù)的裝置,包括用于存儲多個關鍵幀的數(shù)據(jù)的裝置,在這些關鍵幀中,動畫的組成單元被沿選定的時間軸排列;用于獲得一根相應于組成單元在所述兩個關鍵幀之間運動的旋轉軸的裝置;通過繞所述一根旋轉軸旋轉組成單元來獲得在所述兩個關鍵幀之間的內(nèi)插幀的裝置;以及用于輸出如此獲得的內(nèi)插幀的裝置。
全文摘要
動畫數(shù)據(jù)產(chǎn)生裝置包括關鍵幀管理單元,其對關鍵幀數(shù)據(jù)進行管理以便形成關鍵幀圖象;以及數(shù)據(jù)內(nèi)插單元,其通過利用從關鍵幀管理單元得到的關鍵幀數(shù)據(jù),內(nèi)插每一組成單元,用于形成在兩關鍵幀之間所需的幀的圖象數(shù)據(jù);數(shù)據(jù)內(nèi)插單元包括旋轉角計算裝置,其在將該組成單元認作繞在相關幀之前和之后的關鍵幀之間的一任意軸旋轉時計算在被內(nèi)插的幀中的旋轉角,該數(shù)據(jù)內(nèi)插單元還包括根據(jù)所獲得的旋轉角計算旋轉矩陣的裝置。
文檔編號G06T13/20GK1140861SQ96103890
公開日1997年1月22日 申請日期1996年5月10日 優(yōu)先權日1995年5月12日
發(fā)明者三原丹美, 岡正昭 申請人:索尼公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
宜君县| 岳阳县| 巴塘县| 龙陵县| 当雄县| 景洪市| 弥渡县| 临湘市| 济阳县| 公安县| 囊谦县| 司法| 巴彦县| 河间市| 志丹县| 资阳市| 马龙县| 绥阳县| 邵阳市| 拜泉县| 眉山市| 金湖县| 屯留县| 玉屏| 南丰县| 西安市| 温泉县| 贞丰县| 崇左市| 济阳县| 蒲江县| 瓦房店市| 镇赉县| 苍山县| 泸溪县| 成武县| 兰溪市| 长阳| 枞阳县| 保德县| 平利县|