文字が縮小し元の位置に集まってくるようにする(縦横別々)

動作バージョン
2.0
Windows
Macintosh

解  説
文字が縮小し元の位置に集まってくるようにするには、選択されたテキストを1文字ずつ分解します。これはconvertIntoObjects()で分解することができます。次に現時点の文字の位置とサイズを保持し開始フレームとします。次に終了フレームに移動し、新しい座標とサイズを設定します。
縦と横を別々に指定するにはsize.x, size.yに個別にサイズを指定します。

コード

toSmall_Resize2(
24,4,8);// フレーム数、最大拡大サイズ(横)、(縦)

function toSmall_Resize2(lastSec,maxSizeX,maxSizeY)
{
var objX = new Array();
var objY = new Array();
var objSX = new Array();
var objSY = new Array();
var Comp = application.currentComposition;
var cx = Comp.size.x;
var cy = Comp.size.y;
textObj = Comp.selection[
0].convertIntoObjects();
len = textObj.length;
for (i=0; i<len; i++)
{
objX[i] = textObj[i].position.x;
objY[i] = textObj[i].position.y;
objSX[i] = textObj[i].size.x;
objSY[i] = textObj[i].size.y;
}

for (i=0; i<len; i++)
{
textObj[i].stopwatch.position = true;
textObj[i].stopwatch.size = true;
textObj[i].startFrame = 0;
textObj[i].currentFrame = 0;
px = (Math.random() * cx *
1.5) - cx / 4;
py = (Math.random() * cy *
1.5) - cy / 4;
textObj[i].position.x = px;
textObj[i].position.y = py;
textObj[i].size.x = objSX[i] * maxSizeX;
textObj[i].size.y = objSY[i] * maxSizeY;
textObj[i].endFrame = lastSec;
textObj[i].currentFrame = lastSec;
textObj[i].position.x = objX[i];
textObj[i].position.y = objY[i];
textObj[i].size.x = objSX[i];
textObj[i].size.y = objSY[i];
}
}


■サンプルスクリプトをダウンロードする >>.zip

■サンプルの実行結果を見る >>実行