ヒストリーアニメーション (Photoshop CS2/CS3)

Photoshopではヒストリー機能によって何段階もさかのぼって取り消しを行うことができます。確かPainterには、ブラシなどで描くと、それをアニメーションとして保存(?)する機能があったと思います。
今回のスクリプトは、Photoshopのヒストリー機能を利用して、描いた順番にファイルを保存するものです。保存されたファイルは連番ファイルになるためAfterEffectsなどを使えば、アニメーションさせることができます。
スクリプトを実行する前に、ヒストリーの保存数を99などなるべく大きくしておきます。あとは、普通にブラシなどを使って描いて行きます。できあがったら、以下のスクリプトを実行します。これで描いた順番にファイルが保存されていきます。ただし、ヒストリーの最大数を超えてしまうと期待通りに処理されないので注意してください。

docObj = app.activeDocument;
folderName = Folder.selectDialog("保存フォルダを選択してください");
count = docObj.historyStates.length-1;
if (folderName)
{
for (i=1; i<docObj.historyStates.length; i++)
{
filename = folderName + "/"+count+".psd";
docObj.saveAs(new File(filename));
historyBack();
count--;
}
}

function historyBack()
{
var id60 = charIDToTypeID( "slct" );
var desc11 = new ActionDescriptor();
var id61 = charIDToTypeID( "null" );
var ref6 = new ActionReference();
var id62 = charIDToTypeID( "HstS" );
var id63 = charIDToTypeID( "Ordn" );
var id64 = charIDToTypeID( "Prvs" );
ref6.putEnumerated( id62, id63, id64 );
desc11.putReference( id61, ref6 );
try{
executeAction( id60, desc11, DialogModes.NO );
}catch(e){}
}

[サンプルをダウンロード]