第一個參數:bRelativeToInitialTransform
我們CameraAnim上的Movement上Key了3個點,主要改變的是X點位置,它們的值分別是100,200,250. 假設我們現在相機的位置X在1000上,現在播放上面的CameraAnim,那麼:
相機管理器拿到Track第一個點的值,取出是100,然後取出後續的值與100做差值,所以3個點分別做差值存儲成0,100,150.首先設置鏡頭的初始位置(bRelativeToInitialTransform不同初始位置不同),然後在指定座標系下(PlayCameraAnim指定的)進行累加差值處理,最終相機會根據座標系的不同而使用不同的座標系累加這些差值實現鏡頭動畫。(假設座標系是相機系,那麼差值X =100,就是鏡頭朝向的方向+100;假設座標系是世界座標系,那麼會對相機的世界座標進行+100處理,不論相機現在朝向何處。)。
bRelativeToInitialTransform爲True: bRelativeToInitialTransform爲true表示將Track上第一個點對應到現在相機的位置上,後續的差值再分別應用到相機上。表現上說就是鏡頭位置不會突變,而是從相機現在的位置上進行鏡頭動畫。
bRelativeToInitialTransform爲False: bRelativeToInitialTransform爲false表示將Track上第一個點的值根據指定的座標系加到現在相機的位置上,後續的差值再分別應用到相機上。表現上說就是開始的鏡頭位置會突變,後續就會根據差值和座標系應用到相機上。
所以說bRelativeToInitialTransform這個參數控制的就是播放鏡頭動畫時初始位置的問題,其他的都一樣。
第二個參數:bRelativeToInitialFOV
bRelativeToInitialFOV與上面的bRelativeToInitialTransform類似.
bRelativeToInitialFOV爲true: 表示將Track上第一個點對應到現在的FOV上,後續的差值再分別應用,表現上說就是不會突變。比如現在相機FOV是90,Track上的Key點值分別是10,15.那麼差值分別是0和5.那麼表現就是FOV從90~95進行變化。
bRelativeToInitialFOV爲False:將Track上的點分別設置到相機上。比如現在相機FOV是90,Track上的Key點值分別是10,15.那麼表現就是FOV從10~15進行變化(測試結果看應該是這樣的,baseFOV懷疑是處理沒有FOVTrack或者FOVTrack上沒有Key點時FOV的默認值)。