3D動畫中相機的位置應用
在第三人稱游戲中,相機如果使用固定距離跟隨玩家,會出現很多問題,包括被障礙物阻擋、運動時如何跟隨等等。在很多重慶3D動畫公司的游戲使用相(xiang)機(ji)(ji)臂作為這(zhe)個問(wen)題的解決方案,通(tong)過相(xiang)機(ji)(ji)臂連接(jie)相(xiang)機(ji)(ji)主體與(yu)玩家角(jiao)色,讓攝(she)(she)像機(ji)(ji)與(yu)拍攝(she)(she)對象保持固定距離,并且在遇(yu)到遮擋時(shi)動態調整。
相機(ji)(ji)臂(bei)的(de)(de)長(chang)度(du)可以根據(ju)實際關卡情(qing)況動(dong)態調整,相機(ji)(ji)臂(bei)的(de)(de)碰撞屬性也(ye)可以自行設置,在大部分第三人(ren)稱(cheng)游(you)戲中,相機(ji)(ji)臂(bei)已(yi)經成(cheng)為相機(ji)(ji)系統的(de)(de)默認組成(cheng)部分之一。
1.2 相機基本屬性
本部分將會介紹相(xiang)機中(zhong)的(de)基本屬性(xing),包(bao)括(kuo)相(xiang)機的(de)方向、相(xiang)機的(de)表(biao)現風格(ge)、視錐體、FOV等等。
1.2.1 位置
討論相機的位置時,一般會區分重慶動畫公司相對坐(zuo)(zuo)(zuo)標(biao)與絕(jue)對坐(zuo)(zuo)(zuo)標(biao),在游戲中,絕(jue)對坐(zuo)(zuo)(zuo)標(biao)一般指基于關卡/地圖的(de)(de)世界(jie)坐(zuo)(zuo)(zuo)標(biao)系(xi)的(de)(de)坐(zuo)(zuo)(zuo)標(biao),本(ben)篇中的(de)(de)絕(jue)對坐(zuo)(zuo)(zuo)標(biao)的(de)(de)概念(nian)等價于世界(jie)坐(zuo)(zuo)(zuo)標(biao),不(bu)再(zai)進行額外轉換(huan)。
相對坐標
相對坐(zuo)標(biao)即子對象相對于(yu)其父(fu)對象的相對位置,常見于(yu)Character上的第三(san)人稱相機。
需(xu)要注意的是,相(xiang)機的父對(dui)象(xiang)不(bu)一定直接是Character,可能是Character上已經(jing)存在相(xiang)對(dui)關系的某個對(dui)象(xiang),此(ci)時的相(xiang)對(dui)坐(zuo)標就(jiu)會多層嵌套。
如在UE4引擎中,打開示例項目的Character藍圖,可以看到重慶3D動畫制作FollowCamera是CameraBoom的子對象,而CameraBoom與Character本身還有(you)一層(ceng)相對關系。
在改(gai)變(bian)相(xiang)機(ji)坐(zuo)標的過程(cheng)中,要時刻確認當前操作的相(xiang)對(dui)坐(zuo)標是位于哪個相(xiang)對(dui)坐(zuo)標系。
絕對坐標
絕(jue)對(dui)坐標(biao)即相機在世界坐標(biao)系中所處的位置(zhi),不受相機目標(biao)的影(ying)響。絕(jue)對(dui)坐標(biao)可(ke)用(yong)于判斷相機與場(chang)景內物件是否可(ke)能發生(sheng)交互,或(huo)用(yong)于預測相機的移動軌(gui)跡
插(cha)槽(Socket)與相(xiang)機臂
在引擎(qing)中,相機常(chang)常(chang)作為子(zi)對象進行使用。當相機被添加至角色中時(shi),有時(shi)需要(yao)確定相機的插槽(cao),插槽(cao)處即為相對坐標(biao)的0點(dian)。
插槽不一定是相對于角色位置的靜態點,也可能位于角色骨骼或基于骨骼的直線上,隨著重慶動畫制作角色的動畫進行更復(fu)雜的移動。
上述情況基于直接(jie)添(tian)加相機(ji)本(ben)身,實際的(de)(de)引(yin)擎操作過程中,更多的(de)(de)會(hui)(hui)使(shi)用SpringArm組(zu)件(或類似的(de)(de)帶有相機(ji)臂(bei)的(de)(de)組(zu)件),SpringArm組(zu)件可以理(li)解為一(yi)根彈簧(huang)臂(bei),其子項與(yu)父(fu)項存在(zai)一(yi)段(duan)距(ju)離,彈簧(huang)臂(bei)會(hui)(hui)嘗試維持父(fu)子之間(jian)的(de)(de)固定距(ju)離,當出(chu)現碰撞時,會(hui)(hui)嘗試收回(hui)子項。
當使(shi)用這類組件時,插槽一(yi)般對應的(de)是(shi)相(xiang)機臂(bei)的(de)起點(dian),而相(xiang)機被放置在(zai)相(xiang)機臂(bei)的(de)終點(dian)上(shang)。
此處的內容可以(yi)參考對應引擎或插件的具體(ti)文檔進行學習。