テキスト ファイルからアニメーション値を読み込む

スクリプト作成: Luca Pataracchia(Autodesk(旧 Alias)Toronto Support)

このプロシージャは明示的なパスを使用して ASCII ファイルを読み込み、指定したオブジェクト($objectName)に移動値をキー入力します。

このファイルは次のフォーマットでレイアウトされます。

frameNumber Xtranslation Ytranslation Ztranslation

例:

7 2 4 6
10 3.7 3.6 9.3 
20 7.4 5.7 3.9
24 4.2 6.789 2.457
32 16.2 3.45 9.75 

このスクリプトは、ASCII ファイルからのアニメーションの読み込み例です。このプロシージャは、読み込むアニメーションの種類によって変更することができます。使用する ASCII ファイルのフォーマットに合わせて、スクリプトを変更してください。

global proc getAnim(string $fileName, string $objectName)
{
 //open the file for reading
 $fileId=`fopen $fileName "r"`;
 
 //get the first line of text
 string $nextLine = `fgetline $fileId`;
 
 //while $nextline is not emtpy(end of file) do the following 
 
 while ( size( $nextLine ) > 0 ) {
 	
 //tokenize(split) line into separate elements of an array 
 	string $rawAnimArray[];
 tokenize ($nextLine, " ",$rawAnimArray);
 //place each element of the array into separate variables 
 print $rawAnimArray;
 float $frame=$rawAnimArray[0];
 float $x=$rawAnimArray[1];
 float $y=$rawAnimArray[2];
 float $z=$rawAnimArray[3];
 
 //change the currentTime and set keys for tx, ty, tz
 currentTime $frame ;
 setAttr ($objectName+".tx") $x;
 setKeyframe ($objectName+".tx");
 setAttr ($objectName+".ty") $y;
 setKeyframe ($objectName+".ty");
 setAttr ($objectName+".tz") $z;
 setKeyframe ($objectName+".tz");
 //get the next line in the ascii file. 
 $nextLine = `fgetline $fileId`;
 }
 //close file 
 fclose $fileId;
}