AE小教程:讓3D圖層的大小不受距離影響(近大遠(yuǎn)?。?/h5>
當(dāng)前位置:首頁(yè) > 原創(chuàng)作品 |  標(biāo)簽: AE 表達(dá)式 攝像機(jī) 3D 透視
108611110
發(fā)表時(shí)間:2019年06月01日 12點(diǎn)07分

你一定遇到過在AE里調(diào)整三維圖層的麻煩:在PS或AI中畫了一個(gè)場(chǎng)景,前中后景都有,把圖層變成3D層,你要往前往后拉開距離,因?yàn)橥敢暎ń筮h(yuǎn)小),還要回頭調(diào)一下圖層的縮放,來讓畫面跟你原本畫的平面圖一樣——好費(fèi)勁。
這時(shí)候你可能想過,如果我拉開距離的時(shí)候,圖層遠(yuǎn)了自動(dòng)放大,近了自動(dòng)縮小,在攝像機(jī)里看,整個(gè)畫面沒有發(fā)生變化(縮放補(bǔ)償了透視),這不就完美了!——那么問題來了:圖層往后100像素,它應(yīng)該放大多少,才能在相機(jī)里和以前看起來一樣大呢!中間有什么特殊算法嗎?

答案當(dāng)然是有,以下就是算法:
縮放*(距離差/(1/36*鏡頭焦距*合成寬))

翻譯成表達(dá)式就是:
n = 1/36*35*thisComp.width; //1/36*鏡頭焦距*合成寬
d = position[2]-thisComp.layer("Camera 1").transform.position[2]; //距離差
scale * (d / n); //縮放*(距離差/(1/36*鏡頭焦距*合成寬))


把這句表達(dá)式加在每個(gè)圖層的縮放屬性上,大功告成。

有人可能會(huì)疑惑,為啥會(huì)有個(gè)1/36呢,為什么一定是1/36呢——我也不知道,這是我試出來的,別想為什么,直接用。

11
CGer評(píng)論區(qū)
  共 10 條評(píng)論
  • 匕禾頁(yè)
    舉報(bào) 回復(fù) 0 匕禾頁(yè)樓主2020-10-27 19:29:46:

    可能是因?yàn)槟沐^點(diǎn)不在畫面中央,這個(gè)方法要保證錨點(diǎn)最初位置在合成中央。

    流鷹  2019-10-08 17:27:20發(fā)表評(píng)論:

    大佬,為什么我移動(dòng)Z軸圖片在視圖中的位置會(huì)變,你的GIF里卻沒有變

  • Mr4A
    舉報(bào) 回復(fù) 0 Mr4A2020-08-25 17:58:03:

    給樓主一個(gè)大大的贊,太有用了

  • 匕禾頁(yè)
    舉報(bào) 回復(fù) 0 匕禾頁(yè)樓主2020-02-10 18:39:16:

    樓主不了解攝像機(jī)原力,靠蠻力測(cè)出來的

    月酌  2020-02-07 22:54:23發(fā)表評(píng)論:

    學(xué)習(xí)了 剛研究了一下 好像1/36 是攝像機(jī)里面膠片密度的選項(xiàng) 不知道是否正確

  • 月酌
    舉報(bào) 回復(fù) 0 月酌2020-02-07 22:54:23:

    學(xué)習(xí)了 剛研究了一下 好像1/36 是攝像機(jī)里面膠片密度的選項(xiàng) 不知道是否正確

  • 匕禾頁(yè)
    舉報(bào) 回復(fù) 0 匕禾頁(yè)樓主2019-10-23 12:28:21:

    忘了說了,你所有圖片的錨點(diǎn)必須在合成中心!,這樣才不會(huì)在x,y平面偏移

    流鷹  2019-10-08 17:27:20發(fā)表評(píng)論:

    大佬,為什么我移動(dòng)Z軸圖片在視圖中的位置會(huì)變,你的GIF里卻沒有變

  • 流鷹
    舉報(bào) 回復(fù) 0 流鷹2019-10-08 17:27:20:

    大佬,為什么我移動(dòng)Z軸圖片在視圖中的位置會(huì)變,你的GIF里卻沒有變

  • 匕禾頁(yè)
    舉報(bào) 回復(fù) 0 匕禾頁(yè)樓主2019-06-19 16:28:09:

    距離差指物體和攝像機(jī)Z方向上的距離

    西子木  2019-06-18 16:23:07發(fā)表評(píng)論:

    好東西啊 樓主辛苦 不過你說的 距離差指的是?

  • 西子木
    舉報(bào) 回復(fù) 0 西子木2019-06-18 16:23:07:

    好東西啊 樓主辛苦 不過你說的 距離差指的是?

    匕禾頁(yè)  2019-06-03 15:39:04發(fā)表評(píng)論:

    有一點(diǎn)忘了說了,計(jì)算距離的時(shí)候,最好把攝像機(jī)的Z軸也就是position[2],固定一個(gè)默認(rèn)值,也就是剛創(chuàng)建相機(jī)時(shí)候它的z軸的像素值。 這樣不會(huì)讓推拉相機(jī)的時(shí)候,圖片大小也跟著改變,而僅僅在推拉圖片的時(shí)候,圖片才會(huì)自動(dòng)縮放。 n = 1/36*35*thisComp.width; //1/36*鏡頭焦距*合成寬 d = position[2]-(剛創(chuàng)建相機(jī)時(shí)它的默認(rèn)Z軸數(shù)值); //距離差 scale * (d / n); //縮放*(距離差/(1/36*鏡頭焦距*合成寬))

  • 西子木
    舉報(bào) 回復(fù) 0 西子木2019-06-18 16:22:56:

    好東西啊 樓主辛苦 不過你說的 距離差指的是?

  • 匕禾頁(yè)
    舉報(bào) 回復(fù) 0 匕禾頁(yè)樓主2019-06-03 15:39:04:

    有一點(diǎn)忘了說了,計(jì)算距離的時(shí)候,最好把攝像機(jī)的Z軸也就是position[2],固定一個(gè)默認(rèn)值,也就是剛創(chuàng)建相機(jī)時(shí)候它的z軸的像素值。 這樣不會(huì)讓推拉相機(jī)的時(shí)候,圖片大小也跟著改變,而僅僅在推拉圖片的時(shí)候,圖片才會(huì)自動(dòng)縮放。 n = 1/36*35*thisComp.width; //1/36*鏡頭焦距*合成寬 d = position[2]-(剛創(chuàng)建相機(jī)時(shí)它的默認(rèn)Z軸數(shù)值); //距離差 scale * (d / n); //縮放*(距離差/(1/36*鏡頭焦距*合成寬))

用戶名
您尚未登錄,無法發(fā)表評(píng)論。點(diǎn)擊登錄