本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體而言,涉及一種鏡頭移動(dòng)方法、裝置、存儲(chǔ)介質(zhì)和處理器。
背景技術(shù):
隨著智能手機(jī)在當(dāng)今社會(huì)的快速發(fā)展,越來(lái)越多的網(wǎng)絡(luò)游戲或者單機(jī)游戲產(chǎn)品登上了手機(jī)平臺(tái)。而隨著智能手機(jī)性能的提高,使得網(wǎng)絡(luò)游戲或者單機(jī)游戲的內(nèi)容從以往的休閑類游戲逐漸演變成重度化的大型多人在線(massivelymultiplayeronline,簡(jiǎn)稱mmo)類型的游戲。但是,由于智能手機(jī)的顯示屏幕一般都較小,因此游戲玩家在手機(jī)上的操作希望能夠相對(duì)于在電腦上的操作更加簡(jiǎn)單。
傳統(tǒng)在電腦上的3d網(wǎng)絡(luò)游戲,游戲玩家在操作上通過(guò)鍵盤(pán)來(lái)控制游戲角色的移動(dòng),然后通過(guò)控制鼠標(biāo)來(lái)旋轉(zhuǎn)游戲的鏡頭。在智能手機(jī)上時(shí),如果游戲玩家通過(guò)左手控制方向鍵移動(dòng),右手調(diào)整游戲鏡頭的朝向時(shí),會(huì)有以下幾個(gè)問(wèn)題:由于手機(jī)屏幕較小,如果游戲玩家雙手操作的話,游戲畫(huà)面會(huì)被手指遮擋,從而影響了游戲玩家對(duì)該游戲的興趣;再有就是操作難度較高,因?yàn)橛脩粜枰p手同時(shí)配合才能完成該游戲的操作,也即,由于需要一邊控制游戲內(nèi)的虛擬角色移動(dòng),一邊再控制游戲鏡頭的朝向,當(dāng)戰(zhàn)斗時(shí),游戲玩家還需要點(diǎn)擊相應(yīng)的技能鍵,這無(wú)疑增加了游戲玩家的操作難度。
針對(duì)上述的問(wèn)題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種鏡頭移動(dòng)方法、裝置、系統(tǒng)、存儲(chǔ)介質(zhì)和處理器,以解決現(xiàn)有技術(shù)中鏡頭無(wú)法隨模型的移動(dòng)而自動(dòng)旋轉(zhuǎn)的技術(shù)問(wèn)題。
根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種鏡頭移動(dòng)方法,包括:接收控制模型移動(dòng)的觸控操作指令,獲取所述觸控操作的當(dāng)前位置,計(jì)算所述觸控操作的向量;根據(jù)所述觸控操作的向量計(jì)算鏡頭移動(dòng)的位置和朝向;根據(jù)所述鏡頭移動(dòng)的位置和朝向,控制所述鏡頭移動(dòng),其中,所述鏡頭用于展示游戲中跟隨所述模型的畫(huà)面。
進(jìn)一步地,根據(jù)所述模型的向量計(jì)算所述鏡頭的位置和朝向包括:建立一坐標(biāo)系,將所述觸控操作的向量在所述坐標(biāo)系上進(jìn)行分解,獲取在x軸和y軸上的相應(yīng)向量分量,根據(jù)所述x軸方向的向量分量調(diào)整所述鏡頭的朝向計(jì)算所述鏡頭旋轉(zhuǎn)的角度。
進(jìn)一步地,所述方法還包括:根據(jù)所述x軸方向的向量分量計(jì)算所述模型以所述鏡頭為中心,以預(yù)設(shè)距離為半徑的圓弧上的軌跡和向量。
進(jìn)一步地,所述方法還包括:根據(jù)所述y軸上的向量分量和所述模型的向量計(jì)算所述模型的最終位置。
進(jìn)一步地,若所述y軸上的向量分量為0,則鏡頭的位置不變,根據(jù)與所述鏡頭的旋轉(zhuǎn)角度計(jì)算所述鏡頭旋轉(zhuǎn)的角度,調(diào)整所述鏡頭的朝向。
進(jìn)一步地,在根據(jù)所述鏡頭的位置和朝向,控制所述鏡頭移動(dòng)之后,所述方法還包括:判定所述鏡頭與所述模型之間的距離是否為預(yù)先距離,以及所述模型是否在所述鏡頭的正前方;如果為否,則移動(dòng)所述鏡頭使所述鏡頭與所述模型之間為所述固定距離并且所述模型在所述鏡頭的正前方。
進(jìn)一步地,在每個(gè)視頻幀內(nèi),根據(jù)所述觸控操作指令使所述模型產(chǎn)生的向量計(jì)算鏡頭的位置和朝向,并根據(jù)所述鏡頭的位置和朝向,控制所述鏡頭移動(dòng)。
根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種鏡頭移動(dòng)裝置,包括:獲取單元,用于接收控制模型移動(dòng)的觸控操作指令,獲取所述觸控操作的當(dāng)前位置,計(jì)算所述觸控操作的向量;計(jì)算單元,用于根據(jù)所述觸控操作的向量計(jì)算鏡頭移動(dòng)的位置和朝向;控制單元,用于根據(jù)所述鏡頭移動(dòng)的位置和朝向,控制所述鏡頭移動(dòng),其中,所述鏡頭用于展示游戲中跟隨所述模型的畫(huà)面。
進(jìn)一步地,所述計(jì)算單元包括:第一計(jì)算模塊,用于建立一坐標(biāo)系,將所述觸控操作的向量在所述坐標(biāo)系上進(jìn)行分解,獲取在x軸和y軸上的相應(yīng)向量分量,根據(jù)所述x軸方向的向量分量調(diào)整所述鏡頭的朝向計(jì)算所述鏡頭旋轉(zhuǎn)的角度。
進(jìn)一步地,所述計(jì)算單元還包括:第二計(jì)算模塊,用于根據(jù)所述x軸方向的向量分量計(jì)算所述模型以所述鏡頭為中心,以預(yù)設(shè)距離為半徑的圓弧上的軌跡和向量。
進(jìn)一步地,所述計(jì)算單元還包括:第三計(jì)算模塊,用于根據(jù)所述y軸上的向量分量和所述模型的向量計(jì)算所述模型的最終位置。
進(jìn)一步地,所述裝置還包括:判斷模塊,用于在根據(jù)所述鏡頭的位置和朝向,控制所述鏡頭移動(dòng)之后,判定所述鏡頭與所述模型之間的距離是否為預(yù)先距離,以及所述模型是否在所述鏡頭的正前方;移動(dòng)模塊,用于在判讀出所述鏡頭與所述模型之間的距離是否為預(yù)先設(shè)置的固定距離的情況下,移動(dòng)所述鏡頭使所述鏡頭與所述模型之間為所述固定距離并且所述模型在所述鏡頭的正前方。
進(jìn)一步地,所述裝置還包括,控制模塊,用于在每個(gè)視頻幀內(nèi),根據(jù)所述觸控操作指令使所述模型產(chǎn)生的向量計(jì)算鏡頭的位置和朝向,并根據(jù)所述鏡頭的位置和朝向,控制所述鏡頭移動(dòng)。
根據(jù)本發(fā)明實(shí)施例的另一個(gè)方面,還提供給了一種存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)上保存有程序,所述程序被運(yùn)行時(shí)執(zhí)行上所述的方法。
根據(jù)本發(fā)明實(shí)施例的另一個(gè)方面,還提供給了一種處理器,所述程序被運(yùn)行時(shí)執(zhí)行上述的方法。
在本發(fā)明實(shí)施例中,采用接收控制模型移動(dòng)的觸控操作指令,獲取所述觸控操作的當(dāng)前位置,計(jì)算所述觸控操作的向量;根據(jù)所述觸控操作的向量計(jì)算鏡頭移動(dòng)的位置和朝向;根據(jù)所述鏡頭移動(dòng)的位置和朝向,控制所述鏡頭移動(dòng),其中,所述鏡頭用于展示游戲中跟隨所述模型的畫(huà)面的方式,首先確定模型產(chǎn)生的位移向量,然后根據(jù)模型產(chǎn)生的向量計(jì)算鏡頭的位置和朝向,進(jìn)而根據(jù)計(jì)算出的位置和朝向?qū)︾R頭進(jìn)行調(diào)整,相對(duì)于現(xiàn)有技術(shù)中鏡頭的旋轉(zhuǎn)方法,達(dá)到了在模型移動(dòng)的過(guò)程中鏡頭的朝向能夠準(zhǔn)確對(duì)準(zhǔn)模型的目的,從而提高了鏡頭在旋轉(zhuǎn)過(guò)程中的精確度,進(jìn)而解決了現(xiàn)有技術(shù)中鏡頭無(wú)法隨模型的移動(dòng)而自動(dòng)旋轉(zhuǎn)的技術(shù)問(wèn)題。
附圖說(shuō)明
構(gòu)成本申請(qǐng)的一部分的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
圖1是現(xiàn)有技術(shù)中的一種鏡頭隨模型變化的示意圖;
圖2是根據(jù)本發(fā)明實(shí)施例的一種鏡頭移動(dòng)方法的流程圖;
圖3是根據(jù)本發(fā)明實(shí)施例的一種鏡頭隨模型變化的示意圖一;
圖4是根據(jù)本發(fā)明實(shí)施例的一種鏡頭隨模型變化的示意圖二;
圖5是根據(jù)本發(fā)明實(shí)施例的一種鏡頭隨模型變化的示意圖三;
圖6是根據(jù)本發(fā)明實(shí)施例的一種鏡頭隨模型變化的示意圖四;以及
圖7是根據(jù)本發(fā)明實(shí)施例的一種鏡頭移動(dòng)裝置的示意圖。
具體實(shí)施方式
需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
需要說(shuō)明的是,本發(fā)明的說(shuō)明書(shū)和權(quán)利要求書(shū)及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例。此外,術(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒(méi)有清楚地列出的或?qū)τ谶@些過(guò)程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
根據(jù)本發(fā)明實(shí)施例,提供了一種鏡頭移動(dòng)方法的實(shí)施例,需要說(shuō)明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
如圖1所示的是現(xiàn)有技術(shù)中一種鏡頭隨模型變化的示意圖。例如,在常見(jiàn)的網(wǎng)絡(luò)游戲或移動(dòng)端游戲中,游戲玩家可以通過(guò)鼠標(biāo)或手指操作相應(yīng)的方向鍵或者搖桿來(lái)控制角色模型的運(yùn)動(dòng)方向。從圖1中可以看出,在常規(guī)游戲中,當(dāng)游戲玩家通過(guò)方向鍵(或搖桿)控制角色模型向左或向右移動(dòng)時(shí),角色模型是以直線行走。此時(shí),當(dāng)模型向左行走時(shí),鏡頭也平行向左移動(dòng),當(dāng)模型向右行走時(shí),鏡頭也平行向右移動(dòng)。但是,鏡頭在向左或者向右移動(dòng)的過(guò)程中,鏡頭的朝向并未發(fā)生變化,也就是說(shuō),鏡頭在移動(dòng)之前和移動(dòng)之后都是同一朝向。此時(shí),跟隨模型移動(dòng)后的鏡頭并不能準(zhǔn)確地對(duì)準(zhǔn)模型(如圖1中所示的笑臉圖標(biāo)),玩家不能獲得最好的游戲視角,從而降低了用戶的體驗(yàn)。
本示例性實(shí)施例中首先公開(kāi)了一種鏡頭移動(dòng)的方法。如圖2所示,該方法包括如下步驟:
步驟s202,接收控制模型移動(dòng)的觸控操作指令,獲取所述觸控操作的當(dāng)前位置,計(jì)算所述觸控操作的向量;
步驟s204,根據(jù)所述觸控操作的向量計(jì)算鏡頭移動(dòng)的位置和朝向;
步驟s206,根據(jù)所述鏡頭移動(dòng)的位置和朝向,控制所述鏡頭移動(dòng),其中,所述鏡頭用于展示游戲中跟隨所述模型的畫(huà)面。
下面,將參考圖2對(duì)本示例實(shí)施例中的實(shí)現(xiàn)界面中模型跟隨的方法作進(jìn)一步說(shuō)明。
步驟s202,接收控制模型移動(dòng)的觸控操作指令。
在本發(fā)明實(shí)施例中,使模型產(chǎn)生位移向量的觸控操作指令可以為游戲玩家通過(guò)游戲客戶端的觸屏操作或者基于手柄等外設(shè)發(fā)送的觸控操作指令,例如,游戲玩家在智能手機(jī)中的某一游戲界面向模型發(fā)送的移動(dòng)指令,其中,模型可以為游戲玩家在游戲界面中所控制的角色。
當(dāng)該游戲的操作系統(tǒng)獲取到游戲玩家發(fā)送的移動(dòng)指令時(shí),該游戲操作系統(tǒng)會(huì)根據(jù)當(dāng)前時(shí)刻模型在游戲場(chǎng)景中的位置、方向,以及當(dāng)前時(shí)刻鏡頭的位置和朝向計(jì)算該模型移動(dòng)之后的新位置,以便在下一幀處理過(guò)程中使用。
步驟s204,根據(jù)所述觸控操作的向量計(jì)算鏡頭移動(dòng)的位置和朝向。
具體地,在步驟s204中,游戲的操作系統(tǒng)根據(jù)游戲玩家的指令控制模型由初始位置進(jìn)行移動(dòng),并移動(dòng)至新位置之后,初始位置和新位置之間的向量即為觸控操作的向量。
在本發(fā)明實(shí)施例中,當(dāng)確定模型產(chǎn)生位移之后,可以根據(jù)產(chǎn)生的所述觸控操作的向量計(jì)算游戲中鏡頭的位置和朝向。需要說(shuō)明的是,本發(fā)明實(shí)施例中的鏡頭用于跟隨游戲中游戲角色(即,模型),然后將游戲角色展現(xiàn)在顯示界面中,例如,展現(xiàn)在手機(jī)的顯示界面中,或者展現(xiàn)在電腦的顯示界面中。
步驟s206,根據(jù)所述鏡頭移動(dòng)的位置和朝向,控制所述鏡頭移動(dòng),其中,所述鏡頭用于展示游戲中跟隨所述模型的畫(huà)面。
具體地,在步驟s206中計(jì)算得到鏡頭的位置和朝向之后,可以控制鏡頭按照計(jì)算出的位置和朝向移動(dòng),以使推薦之后的鏡頭能夠準(zhǔn)確地對(duì)準(zhǔn)模型,實(shí)現(xiàn)鏡頭的自適應(yīng)旋轉(zhuǎn)。
采用本發(fā)明實(shí)施例,首先確定模型產(chǎn)生的位移,然后根據(jù)模型產(chǎn)生的所述觸控操作的向量計(jì)算鏡頭的位置和朝向,進(jìn)而根據(jù)計(jì)算出的位置和朝向?qū)︾R頭進(jìn)行調(diào)整,相對(duì)于現(xiàn)有技術(shù)中鏡頭的旋轉(zhuǎn)方法,達(dá)到了在模型移動(dòng)的過(guò)程中鏡頭的朝向能夠準(zhǔn)確對(duì)準(zhǔn)模型的目的,從而提高了鏡頭在旋轉(zhuǎn)過(guò)程中的精確度,進(jìn)而解決了現(xiàn)有技術(shù)中鏡頭無(wú)法隨模型的移動(dòng)而自動(dòng)旋轉(zhuǎn)的技術(shù)問(wèn)題。
需要說(shuō)明的是,在本發(fā)明實(shí)施例中,上述步驟s206中根據(jù)觸控操作的向量可以為水平方向的向量(即,x軸方向上的向量),還可以為垂直方向的向量,其中,垂直方向?yàn)樗椒较虻拇怪狈较?即,y軸方向上的向量),其中,x軸和y軸構(gòu)成局部直角坐標(biāo)系。
在本發(fā)明的一個(gè)可選實(shí)施方式中,根據(jù)觸控操作的向量計(jì)算鏡頭的位置和朝向包括:在觸控操作的向量包括水平方向的向量的情況下,根據(jù)水平方向的向量計(jì)算鏡頭旋轉(zhuǎn)的角度,鏡頭旋轉(zhuǎn)的角度用于表示鏡頭的朝向。
如果向量包括水平方向的向量,則表明游戲玩家所控制的角色在游戲場(chǎng)景中(即,模型)向左或者向右發(fā)生了移動(dòng),此時(shí),鏡頭需要對(duì)應(yīng)的向左或者向右進(jìn)行旋轉(zhuǎn),以使鏡頭能夠準(zhǔn)確地捕捉該角色的畫(huà)面并顯示給游戲玩家。因此,在本發(fā)明實(shí)施例中,可以通過(guò)水平方向上的向量計(jì)算鏡頭旋轉(zhuǎn)的角度,然后,再根據(jù)該水平方向的向量方向順時(shí)針或者逆時(shí)針旋轉(zhuǎn)鏡頭。如圖3所示的為本發(fā)明實(shí)施例中鏡頭隨模型變化的示意圖。從圖1中可知,當(dāng)游戲玩家控制角色左、右行走時(shí),大多數(shù)的游戲中角色是向左或者向右直線行走的,在此情況下,鏡頭隨著角色平移。在本發(fā)明提供的鏡頭移動(dòng)方法中,如圖3所示,當(dāng)游戲玩家控制角色在游戲場(chǎng)景中向左或者向右走時(shí),是沿著弧線移動(dòng)。其中,該弧線是以鏡頭當(dāng)前時(shí)刻所處位置為圓心,以當(dāng)前時(shí)刻鏡頭與角色模型之間的距離為半徑的圓弧。
因此,在本發(fā)明的一個(gè)可選實(shí)施方式中。如果觸控操作的向量包括垂直方向的向量,則根據(jù)垂直方向的向量計(jì)算鏡頭移動(dòng)的距離,鏡頭移動(dòng)的距離用于確定鏡頭的位置。
下面結(jié)合圖4和圖5對(duì)本發(fā)明可選實(shí)施方式進(jìn)行說(shuō)明。例如,游戲玩家通過(guò)搖桿控制角色的移動(dòng)。
游戲玩家在移動(dòng)端使用搖桿控制角色移動(dòng),如圖4所示,圖4中左上角的黑色圓圈表示游戲玩家操作搖桿時(shí)的觸控位置,圖4中圓心的位置即為搖桿的初始位置(通常為觸控區(qū)域的中心)。此時(shí),將搖桿的初始位置與當(dāng)前觸控位置連接,得到一個(gè)觸控向量。以搖桿的初始位置作為原點(diǎn)建立直角坐標(biāo)系,將所述觸控向量在x、y軸上進(jìn)行分解,得到該觸控向量在x軸和y軸上的兩個(gè)分向量,即向量a和向量b。
再根據(jù)所述游戲角色的移動(dòng),調(diào)整鏡頭的朝向(鏡頭始終朝向人物),最后根據(jù)鏡頭與角色的固定距離,再根據(jù)所述相機(jī)新的朝向相應(yīng)地調(diào)整相機(jī)的移動(dòng)距離,使所述鏡頭與角色之間的距離為預(yù)設(shè)固定值。
因?yàn)檫@個(gè)坐標(biāo)軸的建立是與以鏡頭為圓心的圓弧相切的,如果搖桿向左移動(dòng),即只有x軸上有向量,那么游戲角色的移動(dòng)軌跡剛好是圖中的圓,相機(jī)的位置始終在圓心),x軸剛好是切線方向,所以說(shuō)x軸上的向量調(diào)整了鏡頭的朝向。
其中,x軸上的分向量a負(fù)責(zé)旋轉(zhuǎn)鏡頭,并使得角色沿著以鏡頭為圓心、鏡頭與角色的距離為半徑的圓弧上移動(dòng)。y軸上的分向量b負(fù)責(zé)將角色在與鏡頭的連線上移動(dòng),即遠(yuǎn)離相機(jī)或靠近相機(jī)。
然后,可以根據(jù)向量a的模,計(jì)算出游戲角色模型在圓弧上的轉(zhuǎn)動(dòng)角度θ。具體為:
如圖5中,由于鏡頭與游戲角色模型之間的距離是固定的,記為r。中心點(diǎn)為鏡頭所在位置,假設(shè)向量1,向量2分別為游戲角色模型初始位置和當(dāng)前位置與鏡頭連線所呈的向量。向量1和向量2之間的圓弧即為模型圍繞鏡頭旋轉(zhuǎn)的軌跡。記模型在圓弧上的向量為向量c(圖5中箭頭“→”所示的位置)。
其中,向量a的模等于圓弧的弧長(zhǎng),則模型在以鏡頭為中心的圓弧上的轉(zhuǎn)動(dòng)角度為:
那么向量c的模也可以通過(guò)以下公式計(jì)算得到:
接下來(lái),可以將向量b和向量c相加,進(jìn)而求得游戲玩家所控制角色模型的實(shí)際移動(dòng)的方向和距離。
當(dāng)計(jì)算鏡頭的旋轉(zhuǎn)角度時(shí),還可以根據(jù)向量c和半徑(鏡頭與角色之間的距離),求得向量1和向量2之間的圓弧對(duì)應(yīng)的圓心角大小(記為a),也即鏡頭的旋轉(zhuǎn)角度。然后,根據(jù)向量c的方向,順時(shí)針或逆時(shí)針旋轉(zhuǎn)鏡頭a角度。
在本發(fā)明實(shí)施例中,通過(guò)控制角色在圓弧上移動(dòng),可以相應(yīng)地產(chǎn)生水平方向和垂直方向上的向量,進(jìn)而,根據(jù)水平方向上的向量確定鏡頭的旋轉(zhuǎn)角度,并根據(jù)垂直方向上的向量確定角色的目標(biāo)位置。因此,通過(guò)上述方法可以使鏡頭能夠準(zhǔn)確地追蹤到游戲玩家所控制的角色,避免了如圖2中的情況出現(xiàn)。
在本發(fā)明的另一個(gè)可選實(shí)施方式中,在根據(jù)鏡頭的位置和朝向,控制鏡頭移動(dòng)之后,方法還包括:判讀所述鏡頭與所述模型之間的距離是否為預(yù)先設(shè)置的固定距離,以及所述模型是否在所述鏡頭的正前方;如果為否,則移動(dòng)所述鏡頭使所述鏡頭與所述模型之間為所述固定距離并且所述模型在所述鏡頭的正前方。
一般情況下,鏡頭和角色之間的距離為固定的距離(即預(yù)先設(shè)置的固定距離),因此,在對(duì)鏡頭進(jìn)行旋轉(zhuǎn),同時(shí)將角色移動(dòng)至目標(biāo)位置之后,還可以判斷鏡頭與角色(即,模型)之間的距離是否為預(yù)先設(shè)置的固定距離。如果判斷出鏡頭和角色之間的距離不是預(yù)先設(shè)置的固定距離,則移動(dòng)鏡頭,使得鏡頭和角色之間的距離滿足預(yù)設(shè)設(shè)置的固定距離。
優(yōu)選地,還需要判斷角色(即,角色)是否位于鏡頭的正前方,如果判斷出角色并不處于鏡頭的正前方,則可以對(duì)鏡頭進(jìn)行平移,平移至指定的位置,使主角在相機(jī)的正前方,并與相機(jī)保持固定的距離。具體地,如圖6所示,“笑臉”所示的位置即為模型的位置,實(shí)線所示的鏡頭位置即為鏡頭平移之前的位置。從圖6中可以看出,在鏡頭平移之前,模型并未處于鏡頭的正前方,當(dāng)將鏡頭移動(dòng)至虛線所示的位置之后,模型即處于鏡頭的正前方。
在本發(fā)明的另一可選實(shí)施方式中,在一幀內(nèi),根據(jù)觸控操作的向量計(jì)算鏡頭的位置和朝向,并根據(jù)鏡頭的位置和朝向,控制所述鏡頭移動(dòng)。
具體地,由于游戲在游戲客戶端中是以視頻幀的形式播放的,因此,本發(fā)明實(shí)施例中提供的鏡頭移動(dòng)方法,例如以幀為處理單位,也就是說(shuō),在每個(gè)視頻幀中,按照上述鏡頭移動(dòng)方法進(jìn)行處理。即,在每一幀中,在獲取到使模型發(fā)生移動(dòng)的情況下,根據(jù)模型產(chǎn)生的觸控操作的向量計(jì)算鏡頭的更新位置和旋轉(zhuǎn)角度,以使鏡頭按照位置和旋轉(zhuǎn)角度進(jìn)行控制。
在每一視頻幀中,還可以將模型按照以鏡頭為圓心,鏡頭和模型之間的距離為半徑的圓弧移動(dòng),并確定模型在水平方向上的向量和垂直方向上的向量,進(jìn)而根據(jù)水平方向的向量確定鏡頭的旋轉(zhuǎn)角度,并根據(jù)垂直方向的向量確定模型的目標(biāo)位置。
在本發(fā)明實(shí)施例中,鏡頭與角色始終保持一定的距離,鏡頭的移動(dòng)由角色的移動(dòng)所驅(qū)使。對(duì)于每一幀,在移動(dòng)游戲的搖桿時(shí),都需要計(jì)算角色移動(dòng)之后的位置和鏡頭的所要移動(dòng)的位置、朝向,具體的計(jì)算步驟如下:
第一步,根據(jù)當(dāng)前鏡頭移動(dòng)之后的位置,計(jì)算角色實(shí)際移動(dòng)的向量,以及計(jì)算鏡頭實(shí)際應(yīng)該旋轉(zhuǎn)的角度;
第二步,旋轉(zhuǎn)鏡頭到目標(biāo)角度;
第三步,計(jì)算角色前后位置變化的向量,根據(jù)向量調(diào)整鏡頭位置,使鏡頭其與角色保持固定距離。
通過(guò)上面的步驟,當(dāng)用戶使用搖桿移動(dòng)角色的時(shí)候,搖桿向前或向后滑,鏡頭不會(huì)轉(zhuǎn)動(dòng),會(huì)跟隨角色向前或向后移動(dòng)。當(dāng)需要調(diào)整鏡頭向左(右)轉(zhuǎn)時(shí),只需要向左(右)移動(dòng)人物,鏡頭就會(huì)自旋轉(zhuǎn)到目標(biāo)朝向。
如果搖桿只是沿著x軸滑動(dòng),y軸上沒(méi)有向量,那么根據(jù)上面的計(jì)算方法,y軸上的分向量為0,最終得到的只有角色沿著圓弧移動(dòng)的位置,那么鏡頭的位置不會(huì)發(fā)生變化(因?yàn)橹鹘茄刂鴪A弧旋轉(zhuǎn),始終與鏡頭保持固定的半徑),但會(huì)隨著主角的移動(dòng)而旋轉(zhuǎn)朝向。
如果搖桿的位置有偏移,即在x軸上有向量,又在y軸上有向量,那么就要根據(jù)上面的計(jì)算方法,分別計(jì)算出在圓弧上的向量c和在y軸上的向量b,然后根據(jù)二者計(jì)算出主角的最終向量,然后再根據(jù)最終向量計(jì)算相機(jī)的向量和朝向。
本發(fā)明實(shí)施例還提供了一種鏡頭移動(dòng)裝置,該鏡頭移動(dòng)裝置主要用于執(zhí)行本發(fā)明實(shí)施例上述內(nèi)容所提供的鏡頭移動(dòng)方法,以下對(duì)本發(fā)明實(shí)施例所提供的鏡頭移動(dòng)裝置做具體介紹。
圖7是根據(jù)本發(fā)明實(shí)施例的一種鏡頭移動(dòng)裝置的示意圖,如圖7所示,包括:獲取單元72、計(jì)算單元74和控制單元76,其中:
獲取單元72,用于接收控制模型移動(dòng)的觸控操作指令,獲取所述觸控操作的當(dāng)前位置,計(jì)算所述觸控操作的向量。在本發(fā)明實(shí)施例中,使模型產(chǎn)生位移向量的指令可以為游戲玩家通過(guò)游戲客戶端發(fā)送的指令,例如,游戲玩家在智能手機(jī)中的某一游戲界面向模型發(fā)送移動(dòng)的指令,其中,模型可以為游戲玩家在游戲界面中所控制的角色。
當(dāng)該游戲的操作系統(tǒng)獲取到游戲玩家發(fā)送的移動(dòng)指令時(shí),該游戲操作系統(tǒng)會(huì)根據(jù)當(dāng)前時(shí)刻模型在游戲場(chǎng)景中的位置、方向,以及當(dāng)前時(shí)刻鏡頭的位置和朝向計(jì)算該模型的新位置,然后控制該模型移動(dòng)至新位置。
計(jì)算單元74,用于根據(jù)所述觸控操作的向量計(jì)算鏡頭移動(dòng)的位置和朝向。具體地,在獲取單元72,游戲的操作系統(tǒng)根據(jù)游戲玩家的指令控制模型由初始位置移動(dòng)至新位置之后,初始位置和新位置之間的向量即為觸控操作的向量。
在本發(fā)明實(shí)施例中,當(dāng)確定模型產(chǎn)生位移之后,可以根據(jù)產(chǎn)生的該觸控操作的向量計(jì)算游戲中鏡頭的位置和朝向。需要說(shuō)明的是,本發(fā)明實(shí)施例中的鏡頭用于跟隨游戲中游戲角色(即,模型),然后將游戲角色展現(xiàn)在顯示界面中,例如,展現(xiàn)在手機(jī)的顯示界面中,或者展現(xiàn)在電腦的顯示界面中。
控制單元76,用于根據(jù)所述鏡頭移動(dòng)的位置和朝向,控制所述鏡頭移動(dòng),其中,所述鏡頭用于展示游戲中跟隨所述模型的畫(huà)面。具體地,在計(jì)算單元74計(jì)算得到鏡頭的位置和朝向之后,可以控制鏡頭按照計(jì)算出的位置和朝向移動(dòng),以使推薦之后的鏡頭能夠準(zhǔn)確地對(duì)準(zhǔn)模型,實(shí)現(xiàn)鏡頭的自適應(yīng)旋轉(zhuǎn)。
采用本發(fā)明實(shí)施例,首先確定模型產(chǎn)生的位移,然后根據(jù)模型產(chǎn)生的向量計(jì)算鏡頭的位置和朝向,進(jìn)而根據(jù)計(jì)算出的位置和朝向?qū)︾R頭進(jìn)行調(diào)整,相對(duì)于現(xiàn)有技術(shù)中鏡頭的旋轉(zhuǎn)方法,達(dá)到了在模型移動(dòng)的過(guò)程中鏡頭的朝向能夠準(zhǔn)確對(duì)準(zhǔn)模型的目的,從而提高了鏡頭在旋轉(zhuǎn)過(guò)程中的精確度,進(jìn)而解決了現(xiàn)有技術(shù)中鏡頭無(wú)法隨模型的移動(dòng)而自動(dòng)旋轉(zhuǎn)的技術(shù)問(wèn)題。
可選地,所述計(jì)算單元包括:第一計(jì)算模塊,用于建立一坐標(biāo)系,將所述觸控操作的向量在所述坐標(biāo)系上進(jìn)行分解,獲取在x軸和y軸上的相應(yīng)向量分量,根據(jù)所述x軸方向的向量分量調(diào)整所述鏡頭的朝向計(jì)算所述鏡頭旋轉(zhuǎn)的角度。
可選地,所述計(jì)算單元還包括:第二計(jì)算模塊,用于根據(jù)所述x軸方向的向量分量計(jì)算所述模型以所述鏡頭為中心,以預(yù)設(shè)距離為半徑的圓弧上的軌跡和向量。
可選地,所述計(jì)算單元還包括:第三計(jì)算模塊,用于根據(jù)所述y軸上的向量分量和所述模型的向量計(jì)算所述模型的最終位置。
可選地,所述裝置還包括:判斷模塊,用于在根據(jù)所述鏡頭的位置和朝向,控制所述鏡頭移動(dòng)之后,判定所述鏡頭與所述模型之間的距離是否為預(yù)設(shè)距離,以及所述模型是否在所述鏡頭的正前方;移動(dòng)模塊,用于在判讀出所述鏡頭與所述模型之間的距離是否為預(yù)先設(shè)置的固定距離的情況下,移動(dòng)所述鏡頭使所述鏡頭與所述模型之間為所述固定距離并且所述模型在所述鏡頭的正前方。
可選地,所述裝置還包括:控制模塊,用于在每個(gè)視頻幀內(nèi),根據(jù)所述觸控操作指令使所述模型產(chǎn)生的位移計(jì)算鏡頭的位置和朝向,并根據(jù)所述鏡頭的位置和朝向,控制所述鏡頭移動(dòng)。本發(fā)明實(shí)施例提供了一種存儲(chǔ)介質(zhì),存儲(chǔ)介質(zhì)包括存儲(chǔ)的程序,其中,在程序運(yùn)行時(shí)控制存儲(chǔ)介質(zhì)所在設(shè)備執(zhí)行上述方法。
在本實(shí)施例中,提供了一種存儲(chǔ)介質(zhì),存儲(chǔ)介質(zhì)包括存儲(chǔ)的程序,其中,在程序運(yùn)行時(shí)控制存儲(chǔ)介質(zhì)所在設(shè)備執(zhí)行上述方法。
本發(fā)明實(shí)施例中,提供了一種處理器,處理器包括處理的程序,其中,在程序運(yùn)行時(shí)控制處理器所在設(shè)備執(zhí)行上述方法。
需要說(shuō)明的是,對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說(shuō)明書(shū)中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。
在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒(méi)有詳述的部分,可以參見(jiàn)其他實(shí)施例的相關(guān)描述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置,可通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、移動(dòng)終端、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤(pán)、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、移動(dòng)硬盤(pán)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。