103431110
發(fā)表時間:2019年06月01日 12點07分
你一定遇到過在AE里調(diào)整三維圖層的麻煩:在PS或AI中畫了一個場景,前中后景都有,把圖層變成3D層,你要往前往后拉開距離,因為透視(近大遠?。€要回頭調(diào)一下圖層的縮放,來讓畫面跟你原本畫的平面圖一樣——好費勁。
這時候你可能想過,如果我拉開距離的時候,圖層遠了自動放大,近了自動縮小,在攝像機里看,整個畫面沒有發(fā)生變化(縮放補償了透視),這不就完美了!——那么問題來了:圖層往后100像素,它應該放大多少,才能在相機里和以前看起來一樣大呢!中間有什么特殊算法嗎?
答案當然是有,以下就是算法:
縮放*(距離差/(1/36*鏡頭焦距*合成寬))
翻譯成表達式就是:
n = 1/36*35*thisComp.width; //1/36*鏡頭焦距*合成寬
d = position[2]-thisComp.layer("Camera 1").transform.position[2]; //距離差
scale * (d / n); //縮放*(距離差/(1/36*鏡頭焦距*合成寬))
把這句表達式加在每個圖層的縮放屬性上,大功告成。
有人可能會疑惑,為啥會有個1/36呢,為什么一定是1/36呢——我也不知道,這是我試出來的,別想為什么,直接用。
可能是因為你錨點不在畫面中央,這個方法要保證錨點最初位置在合成中央。
大佬,為什么我移動Z軸圖片在視圖中的位置會變,你的GIF里卻沒有變
給樓主一個大大的贊,太有用了
樓主不了解攝像機原力,靠蠻力測出來的
學習了 剛研究了一下 好像1/36 是攝像機里面膠片密度的選項 不知道是否正確
學習了 剛研究了一下 好像1/36 是攝像機里面膠片密度的選項 不知道是否正確
忘了說了,你所有圖片的錨點必須在合成中心!,這樣才不會在x,y平面偏移
大佬,為什么我移動Z軸圖片在視圖中的位置會變,你的GIF里卻沒有變
大佬,為什么我移動Z軸圖片在視圖中的位置會變,你的GIF里卻沒有變
距離差指物體和攝像機Z方向上的距離
好東西啊 樓主辛苦 不過你說的 距離差指的是?
好東西啊 樓主辛苦 不過你說的 距離差指的是?
有一點忘了說了,計算距離的時候,最好把攝像機的Z軸也就是position[2],固定一個默認值,也就是剛創(chuàng)建相機時候它的z軸的像素值。 這樣不會讓推拉相機的時候,圖片大小也跟著改變,而僅僅在推拉圖片的時候,圖片才會自動縮放。 n = 1/36*35*thisComp.width; //1/36*鏡頭焦距*合成寬 d = position[2]-(剛創(chuàng)建相機時它的默認Z軸數(shù)值); //距離差 scale * (d / n); //縮放*(距離差/(1/36*鏡頭焦距*合成寬))
好東西啊 樓主辛苦 不過你說的 距離差指的是?
有一點忘了說了,計算距離的時候,最好把攝像機的Z軸也就是position[2],固定一個默認值,也就是剛創(chuàng)建相機時候它的z軸的像素值。 這樣不會讓推拉相機的時候,圖片大小也跟著改變,而僅僅在推拉圖片的時候,圖片才會自動縮放。 n = 1/36*35*thisComp.width; //1/36*鏡頭焦距*合成寬 d = position[2]-(剛創(chuàng)建相機時它的默認Z軸數(shù)值); //距離差 scale * (d / n); //縮放*(距離差/(1/36*鏡頭焦距*合成寬))