用Maya制作物體熔化變形的三維效果動畫的方法和技巧。我們用大家最熟悉的花瓶作為熔化變形的對象。
建立花瓶的剖面曲線,用revolve命令建立花瓶曲面。
選擇花瓶,選擇菜單 deform-create lattice-options 設置 s=6,t=6,u=6,選create。
這里把lattice轉(zhuǎn)換成柔體,選擇ffd1 lattice,選菜單soft/rigid bodies - create soft body - options,采用默認的屬性,點擊create。
建立一個nurbs平面,移動到花瓶的下端,patches U=10 V=10 請確認花瓶和平面在初始的時候沒有接觸。
加一個重力場到柔體,選擇ffd1lattice,選擇fields-gravity;添加碰撞屬性,選擇ffd1 lattice,然后選擇平面,選菜單 particles-make collide。
消除錯誤
現(xiàn)在動畫已經(jīng)產(chǎn)生了,不過有可能產(chǎn)生錯誤的計算。我們可以通過添加兩個屬性和幾行exPRession來解決這個問題。
在outline窗口,選display-shapes 為on,選擇 ffd1latticeParticleShape 選擇菜單 modify-add attribute.. 然后按如下設置
attribute name = spread
Data Type = Float
Attribute Type = Scalar
選擇add,添加一個屬性,然后采用相同的設置,添加多一個屬性叫thickness,點擊ok。
現(xiàn)在建立expression,使其產(chǎn)生熔化的效果,選擇ffd1latticeParticleShape,然后Window -> Animation Editors -> Expression Editor.
寫入下面的表達式:
vector$melt = ffd1LatticeParticleShape.worldPosition; float $spread = ffd1LatticeParticleShape.spread; float $thickness = ffd1LatticeParticleShape.thickness; if ($melt.y < $thickness) ffd1LatticeParticleShape.velocity = unit_ (ffd1LatticeParticleShape.worldPosition - <<0,0,0>>) * $spread;
點擊create。
現(xiàn)在很容易就可以通過spread和thickness屬性來控制熔化的動畫了,選擇ffd1latticeParticle,在channel box里面,把spread設置為4,把thickness設置為1,看看動畫的效果。
更進一步控制動畫
(1)如果要減緩熔化的速度,可以把gravity的magnitude屬性降低。
(2)試驗一下不同的spread和thickness的搭配,會有不同的效果。
(3)也可以加一些turbulence場來使動畫更隨機。