//年月日取得
function dateAcquisition(){
//今日の日時示
var now = new Date();
var year = now.getYear(); // 年
var month = now.getMonth() + 1; // 月
var day = now.getDate(); // 日
var hour = now.getHours(); // 時
var min = now.getMinutes(); // 分
var sec = now.getSeconds(); // 秒
if(year < 2000) { year += 1900; }
// 数値が1桁の場合、頭に0を付けて2桁で表示する指定
if(month < 10) { month = "0" + month; }
if(day < 10) { day = "0" + day; }
if(hour < 10) { hour = "0" + hour; }
if(min < 10) { min = "0" + min; }
if(sec < 10) { sec = "0" + sec; }
return [ year , month , day , hour , min , sec ];
}
//ファイル名と拡張子とバージョン取得
function fileNameVersionExtension(AbsolutePath){
//拡張子込ファイル名
var filePathAry = AbsolutePath.split("/");
var filePathAryLength = filePathAry.length -1;
var fileFullName = filePathAry[filePathAryLength];
//ファイル名とファイルタイプ(拡張子)
var fileNameAry = fileFullName.split(".");
var fileNameAryLength = fileNameAry.length -1;
var fileName = fileNameAry[0];
var fileExtension = fileNameAry[fileNameAryLength];
//ファイルネーム要素
var fileNameElement = fileName.split("_");
var fileVersionAryLength = fileNameElement.length -1;
var fileVersion = fileNameElement[fileVersionAryLength];
return [fileFullName , fileName , fileExtension , fileNameElement , fileVersion ];
}
//コマンドラインオプション
function commandLineOption(i){
//コンポジション名 "-comp comp_name"
var compositonName = app.project.renderQueue.item(i).comp.name;
//コンポジションのフレームレート
var compositonFrameRate = app.project.renderQueue.item(i).comp.frameRate;
//コンポジションのデュレーション
var compositonDuration = app.project.renderQueue.item(i).comp.duration * compositonFrameRate;
//コンポジションのスタートフレーム "-s start_frame"
var compostionStartTime = app.project.renderQueue.item(i).comp.displayStartTime * compositonFrameRate;
//コンポジションのエンドフレーム "-e end_frame"
var compostionEndTime = (compostionStartTime + compositonDuration) - 1;
//ワークエリアのスタートフレーム "-s start_frame"
var compostionWorkAreaStart = app.project.renderQueue.item(i).comp.workAreaStart * compositonFrameRate;
//ワークエリアのデュレーション
var compositonWorkAreaDuration = app.project.renderQueue.item(i).comp.workAreaDuration * compositonFrameRate;
//コンポジションのエンドフレーム "-e end_frame"
var compostionWorkAreaEndTime = (compostionWorkAreaStart + compositonWorkAreaDuration) - 1;
//レンダリング出力先 "-output output_path"
var renderPath = app.project.renderQueue.item(i).outputModule(1).file;
//レンダリング出力先その2 ※Absoluteをつけないと配列にならない
var renderAbsolutePath = app.project.renderQueue.item(i).outputModule(1).file.absoluteURI;
return [ compositonName , compostionStartTime , compostionEndTime , compostionWorkAreaStart , compostionWorkAreaEndTime , renderAbsolutePath ]
}
//コンプレイヤネーム
function compostionLayerName(i){
var compositonName = commandLineOption(i)[0];
var compNameElement = compositonName.split("_");
var compNameAryLength = compNameElement.length -1;
var compLayerName = compNameElement[compNameAryLength];
return [ compLayerName ];
}
//
function makeOutputDir(i){
var compLayerName = compostionLayerName(i)[0];
var folder = app.project.file.path +"/"+ "images" +"/"+ aepFileVersion +"/"+ compLayerName;
folderObj = new Folder(folder);
folderObj.create();
return [ folder ];
}
//
function setRenderOutput(i,selectChoice){
//パディング指定部分の文字列
var frameCountPadding = new RegExp("%5B#{1,7}%5D","i");
//ムービもしくはサウンドファイルの拡張子の文字列
var movieSoundFile = new RegExp("(aif|avi|f4v|flv|mp4|m4v|mp3|mpg|mxf|mov|wav)$","i");
//イメージファイルの拡張子文字列
var sequenceImageFile = new RegExp("dpx|cin|iff|jpg|exr|png|psd|hdr|sgi|tif|tga","i");
var curRnedSet = app.project.renderQueue.item(i).outputModule(1);
var renderAbsolutePath = app.project.renderQueue.item(i).outputModule(1).file.absoluteURI;
var fileNeme = fileNameVersionExtension(renderAbsolutePath);
var renderOutputFolder = makeOutputDir(i)[0];
if (selectChoice == 0) {
if ((frameCountPadding.test(fileNeme[0]) == 1)&&(sequenceImageFile.test(fileNeme[0]) == 1)) {
curRnedSet.file = new File(renderOutputFolder +"/"+ fileNameSetImage );
}
else if ((frameCountPadding.test(fileNeme[0]) == 0)&&(sequenceImageFile.test(fileNeme[0]) == 1)) {
curRnedSet.file = new File(renderOutputFolder +"/"+ fileNameSetImage );
}
else if (movieSoundFile.test(fileNeme[0]) == 1) {
curRnedSet.file = new File(renderOutputFolder +"/"+ fileNameSetMovieSound );
}
//
}else if (selectChoice == 1) {
curRnedSet.applyTemplate(outputModuleProject);
curRnedSet.file = new File(renderOutputFolder +"/"+ fileNameSetImage );
//
}else if (selectChoice == 2) {
if ((frameCountPadding.test(fileNeme[0]) == 1)&&(sequenceImageFile.test(fileNeme[0]) == 1)) {
curRnedSet.applyTemplate(outputModuleImage);
curRnedSet.file = new File(renderOutputFolder +"/"+ fileNameSetImage );
}
else if ((frameCountPadding.test(fileNeme[0]) == 0)&&(sequenceImageFile.test(fileNeme[0]) == 1)) {
curRnedSet.applyTemplate(outputModuleImage);
curRnedSet.file = new File(renderOutputFolder +"/"+ fileNameSetImage );
}
else if (movieSoundFile.test(fileNeme[0]) == 1) {
curRnedSet.applyTemplate(outputModuleMovieSound);
curRnedSet.file = new File(renderOutputFolder +"/"+ fileNameSetMovieSound );
}
}else {
}
}
//
function inputPromptSetRenderOutput(){
var selectChoice = prompt("0-2を入力してください\n"+
"0:出力モジュールは変更せず出力先を設定\n"+
"1:出力モジュールを一括設定して出力先を設定!\n"+
"2:出力モジュールを設定して出力先を設定(ファイル判別)"
,"0"
,"setRenderPath");
if (selectChoice != null){
for (i = 1 ; i <= renderQueNumberItem ; i++){
var renderQueActiveCompostion = app.project.renderQueue.item(i).render;
var renderAbsolutePath = app.project.renderQueue.item(i).outputModule(1).file.absoluteURI;
var fileNeme = fileNameVersionExtension(renderAbsolutePath);
if (renderQueActiveCompostion == 1) {
makeOutputDir(i);
setRenderOutput(i,selectChoice);
}
else if(renderQueActiveCompostion == 0) {
//alert("レンダーキューにアクティブなアイテムがねーっす:-q")
}
}
if (selectChoice <= 2) {
alert("設定しました");
}else {
alert("むりっす:-p");
}
}else {
alert("キャンセルされました")
}
}
//日時
var currentDate = dateAcquisition()[0] +"_"+ dateAcquisition()[1] +"_"+ dateAcquisition()[2] ;
//時刻
var currentTime = dateAcquisition()[3] +"_"+ dateAcquisition()[4];
//カレントのAepファイルのパス "-project project_path"
var aepProjectFileAbsolutePath = app.project.file.absoluteURI;
//カレントのAepファイルの名前
var afterEffectsFileNeme = fileNameVersionExtension(aepProjectFileAbsolutePath);
//レンダーキューのアイテム数
var renderQueNumberItem = app.project.renderQueue.numItems;
//カレントのAepファイルのバージョン
var aepFileVersion = fileNameVersionExtension(aepProjectFileAbsolutePath)[4];
//出力モジュール
var outputModuleImage = "TIFF シーケンス (アルファ付き)" //"Photoshop"
var outputModuleMovieSound = "ロスレス圧縮(アルファ付き)" //"H.264"
var outputModuleProject = "Photoshop" //"TIFF シーケンス (アルファ付き)"
//ファイル名
var fileNameSetImage = "[compName]_" + aepFileVersion + "_[####].[fileExtension]";
var fileNameSetMovieSound = "[compName]_" + aepFileVersion + ".[fileExtension]";
inputPromptSetRenderOutput();
0 件のコメント:
コメントを投稿