建立花瓶的剖面曲線,用revolve命令建立花瓶曲面。
選擇花瓶,選擇菜單 deform-create lattice-options 設置 s=6,t=6,u=6,選create。
這裡把lattice轉換成柔體,選擇ffd1 lattice,選菜單soft/rigid bodies - create soft body - options,采用默認的屬性,點擊create。
建立一個nurbs平面,移動到花瓶的下端,patches U=10 V=10 請確認花瓶和平面在初始的時候沒有接觸。
加一個重力場到柔體,選擇ffd1lattice,選擇fields-gravity;添加碰撞屬性,選擇ffd1 lattice,然後選擇平面,選菜單 particles-make collide。
現在動畫已經產生了,不過有可能產生錯誤的計算,就如同附帶的動畫所示,可以通過添加兩個屬性和幾行exPRession來解決這個問題。
計算錯誤的動畫:
相關文件:點擊下載
在outline窗口,選display-shapes 為on,選擇 ffd1latticeParticleShape 選擇菜單 modify-add
attribute.. 然後按如下設置
attribute name = spread
Data Type = Float
Attribute Type = Scalar
選擇add,添加一個屬性,然後采用相同的設置,添加多一個屬性叫thickness,點擊ok。
現在建立expression,使其產生熔化的效果,選擇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。
現在很容易就可以通過spread和thickness屬性來控制熔化的動畫了,選擇ffd1latticeParticle,在channel box裡面,把spread設置為4,把thickness設置為1,看看動畫的效果。
可以更進一步地控制動畫:
(1)如果要減緩熔化的速度,可以把gravity的magnitude屬性降低
(2)試驗一下不同的spread和thickness的搭配,會有不同的效果。
(3)也可以加一些turbulence場來使動畫更隨機!