3D動畫中相機的位置應用
在第三人稱游戲中,相機如果使用固定距離跟隨玩家,會出現(xiàn)很多問題,包括被障礙物阻擋、運動時如何跟隨等等。在很多重慶3D動畫公司的游戲使用相機臂作為這個問題的解決方案,通過相機臂連接相機主體與玩家角色,讓攝像機與拍攝對象保持固定距離,并且在遇到遮擋時動態(tài)調(diào)整。
相機臂的長度可以根據(jù)實際關(guān)卡情況動態(tài)調(diào)整,相機臂的碰撞屬性也可以自行設置,在大部分第三人稱游戲中,相機臂已經(jīng)成為相機系統(tǒng)的默認組成部分之一。
1.2 相機基本屬性
本部分將會介紹相機中的基本屬性,包括相機的方向、相機的表現(xiàn)風格、視錐體、FOV等等。
1.2.1 位置
討論相機的位置時,一般會區(qū)分重慶動畫公司相對坐標與絕對坐標,在游戲中,絕對坐標一般指基于關(guān)卡/地圖的世界坐標系的坐標,本篇中的絕對坐標的概念等價于世界坐標,不再進行額外轉(zhuǎn)換。
相對坐標
相對坐標即子對象相對于其父對象的相對位置,常見于Character上的第三人稱相機。
需要注意的是,相機的父對象不一定直接是Character,可能是Character上已經(jīng)存在相對關(guān)系的某個對象,此時的相對坐標就會多層嵌套。
如在UE4引擎中,打開示例項目的Character藍圖,可以看到重慶3D動畫制作FollowCamera是CameraBoom的子對象,而CameraBoom與Character本身還有一層相對關(guān)系。
在改變相機坐標的過程中,要時刻確認當前操作的相對坐標是位于哪個相對坐標系。
絕對坐標
絕對坐標即相機在世界坐標系中所處的位置,不受相機目標的影響。絕對坐標可用于判斷相機與場景內(nèi)物件是否可能發(fā)生交互,或用于預測相機的移動軌跡
插槽(Socket)與相機臂
在引擎中,相機常常作為子對象進行使用。當相機被添加至角色中時,有時需要確定相機的插槽,插槽處即為相對坐標的0點。
插槽不一定是相對于角色位置的靜態(tài)點,也可能位于角色骨骼或基于骨骼的直線上,隨著重慶動畫制作角色的動畫進行更復雜的移動。
上述情況基于直接添加相機本身,實際的引擎操作過程中,更多的會使用SpringArm組件(或類似的帶有相機臂的組件),SpringArm組件可以理解為一根彈簧臂,其子項與父項存在一段距離,彈簧臂會嘗試維持父子之間的固定距離,當出現(xiàn)碰撞時,會嘗試收回子項。
當使用這類組件時,插槽一般對應的是相機臂的起點,而相機被放置在相機臂的終點上。
此處的內(nèi)容可以參考對應引擎或插件的具體文檔進行學習。
