VMD制作體系旋轉演示播放軌跡的gif動畫的簡單方法
用這個方法可以做出體系旋轉演示的gif圖,適合嵌入網頁或幻燈片,比壓成視頻文件更清楚也往往更小,也無須調用videomach之類的,十分方便而且很快。而且可以保存進ppt保證演示時能夠播放,不像視頻文件嵌入ppt實際上只能作個視頻文件的鏈接,而且很多視頻還播放不了。
讀者必須用Linux版VMD。且讀者需要在Linux下安裝ImageMagick,這樣才腳本中調用的convert命令才能用。對于CentOS系統,運行yum install ImageMagick即可安裝。
將以下內容保存為makegif.tcl文件。
proc makegif {dir} { set frame 0 for {set i 0} {$i < 360} {incr i 15} { set filename snap.[format "%04d" $frame].rgb render snapshot $filename incr frame rotate $dir by 15 } exec convert -delay 10 -loop 4 snap.*.rgb movie.gif foreach k [ls snap.*.rgb] { file delete $k} }
啟動VMD后在tk console運行諸如source /sob/makegif.tcl。然后運行makegif y,這樣體系就不斷繞著y軸旋轉并且截圖,自動調用convert命令將圖片合成為gif,儲存在當前文件夾(即tkconsole輸入pwd顯示的文件夾)。如果繞x軸旋轉就是makegif x,也可以是z。
對于Windows用戶,也可以使用以上腳本產生一批圖像文件后手動用ffmpeg、atani之類的軟件合成gif。
實際效果如圖:

(是否覺得蛋白部分顯示效果有點像分子月刊的圖呢?實現方法以后再談)
如果想減小gif體積,有三種方法
1 縮小3D顯示窗口
2 減少幀數,將makegif.tcl里面旋轉角度和i變量的增量改大
3 減少顏色,默認是256色,減到16色體積可減小約一半。把makegif.tcl的convert命令后面加上-colors 16即可。但16色有點太狠了,尤其是顏色比較豐富的時候,32色才算勉強。
制作軌跡演示的gif動畫
和上面方法用起來類似,腳本內容如下proc maketragif {start end {step 5} {color 32} {delay 5}} { for {set fn $start} {$fn < $end} {incr fn $step} { set filename snap.[format "%05d" $fn].rgb render snapshot $filename animate goto $fn } exec convert -delay $delay -loop 999 -colors $color snap.*.rgb movie.gif foreach k [ls snap.*.rgb] { file delete $k} }
同樣先source一下這個腳本,然后可以用maketragif命令了
用法: maketragif 起始幀數 結束幀數 [步長] [顏色數] [動畫中每幀間隔時間]
[]內代表非必需的參數
默認步長為5幀,顏色數32,每幀間隔5。
例如maketragif 350 650 5 64 10,代表350幀至650幀每5幀截一幅圖,連結成gif,64種顏色,動畫中每幀間隔為5。軌跡的動畫生成在同目錄movie.gif
當然也可以只輸入maketragif 350 650,步長、顏色數、動畫中每幀間隔時間都用默認的。