3){ alert('選択レイヤーがが3つじゃありません(多い)'); }else if (tempLength < 3){ alert("選択レイヤーがが3つじゃありません(少ない)"); }else{ //全面に移動; app.executeCommand(2016); //それぞれコンポジション化してフレーム固定; activeComp.time=0 app.project.activeItem.layers.precompose([1], activeComp.layer(1).name+"_co", true); app.executeCommand(3695); app.project.activeItem.layers.precompose([2], activeComp.layer(2).name+"_co", true); app.executeCommand(3695); app.project.activeItem.layers.precompose([3], activeComp.layer(3).name, true); app.executeCommand(3695); app.project.activeItem.layers.precompose([3],"> 3){ alert('選択レイヤーがが3つじゃありません(多い)'); }else if (tempLength < 3){ alert("選択レイヤーがが3つじゃありません(少ない)"); }else{ //全面に移動; app.executeCommand(2016); //それぞれコンポジション化してフレーム固定; activeComp.time=0 app.project.activeItem.layers.precompose([1], activeComp.layer(1).name+"_co", true); app.executeCommand(3695); app.project.activeItem.layers.precompose([2], activeComp.layer(2).name+"_co", true); app.executeCommand(3695); app.project.activeItem.layers.precompose([3], activeComp.layer(3).name, true); app.executeCommand(3695); app.project.activeItem.layers.precompose([3],"> 3){ alert('選択レイヤーがが3つじゃありません(多い)'); }else if (tempLength < 3){ alert("選択レイヤーがが3つじゃありません(少ない)"); }else{ //全面に移動; app.executeCommand(2016); //それぞれコンポジション化してフレーム固定; activeComp.time=0 app.project.activeItem.layers.precompose([1], activeComp.layer(1).name+"_co", true); app.executeCommand(3695); app.project.activeItem.layers.precompose([2], activeComp.layer(2).name+"_co", true); app.executeCommand(3695); app.project.activeItem.layers.precompose([3], activeComp.layer(3).name, true); app.executeCommand(3695); app.project.activeItem.layers.precompose([3],">
//フローティングパレット構成;
(function (me){ var palette = ( me instanceof Panel) ? me : new Window("palette","並べるボタン",[0,0,180,210]);
//テキストとボタン;
palette.add("statictext",[10,10,180-10,50-10],"閉じ口を下にして3つを選択");
var b = palette.add("button",[10,40,180-10,80-10],"オート口パク");
//ボタントリガー;
b.onClick = function()
{
//イベント置き場;
var activeComp= app.project.activeItem;
var tempLength = activeComp.selectedLayers.length;
if(tempLength > 3){
alert('選択レイヤーがが3つじゃありません(多い)');
}else if (tempLength < 3){
alert("選択レイヤーがが3つじゃありません(少ない)");
}else{
//全面に移動;
app.executeCommand(2016);
//それぞれコンポジション化してフレーム固定;
activeComp.time=0
app.project.activeItem.layers.precompose([1], activeComp.layer(1).name+"_co", true);
app.executeCommand(3695);
app.project.activeItem.layers.precompose([2], activeComp.layer(2).name+"_co", true);
app.executeCommand(3695);
app.project.activeItem.layers.precompose([3], activeComp.layer(3).name, true);
app.executeCommand(3695);
app.project.activeItem.layers.precompose([3], activeComp.layer(3).name+"_co", true);
//ベース素材複製;
activeComp.layer(3).duplicate( );
//4フレに統一;
activeComp.layer(1).outPoint = 4/activeComp.frameRate;
activeComp.layer(2).outPoint = 4/activeComp.frameRate;
activeComp.layer(3).outPoint = 4/activeComp.frameRate;
//上2つを複製;
activeComp.layer(2).duplicate( );
activeComp.layer(2).moveToBeginning();
activeComp.layer(2).duplicate( );
activeComp.layer(2).moveToBeginning();
//5階層目を全面に移動;
activeComp.layer(5).moveToBeginning();
//レイヤーを並べる。;
//var framePitch=4
activeComp.layer(5).startTime =4/activeComp.frameRate*0;
activeComp.layer(4).startTime =4/activeComp.frameRate*1;
activeComp.layer(3).startTime =4/activeComp.frameRate*2;
activeComp.layer(2).startTime =4/activeComp.frameRate*3;
activeComp.layer(1).startTime =4/activeComp.frameRate*4;
app.project.activeItem.layers.precompose([1,2,3,4,5], activeComp.layer(1).name+"_re", true);
//コンポジションの長さ調節;
activeComp.selectedLayers[0].outPoint=1/activeComp.frameRate*20;
//ベース素材スタート地点変更
activeComp.layer(2).startTime =1/activeComp.frameRate*4*5*8;
for(var i=0;i<7;i++){
activeComp.layer(1).duplicate( );
}
//レイヤーを並べる。;
activeComp.layer(8).startTime =20/activeComp.frameRate*0;
activeComp.layer(7).startTime =20/activeComp.frameRate*1;
activeComp.layer(6).startTime =20/activeComp.frameRate*2;
activeComp.layer(5).startTime =20/activeComp.frameRate*3;
activeComp.layer(4).startTime =20/activeComp.frameRate*4;
activeComp.layer(3).startTime =20/activeComp.frameRate*5;
activeComp.layer(2).startTime =20/activeComp.frameRate*6;
activeComp.layer(1).startTime =20/activeComp.frameRate*7;
activeComp.layer(9).moveToBeginning();
//プリコンポジション;
app.project.activeItem.layers.precompose([1,2,3,4,5,6,7,8,9], activeComp.layer(9).name+"_moth", true);
//スライダー1を追加;
app.project.activeItem.selectedLayers[0]("Effects").addProperty("ADBE Slider Control");
app.project.activeItem.selectedLayers[0]("Effects")("Slider Control")["Slider"].setValueAtTime(0,1);
app.project.activeItem.selectedLayers[0]("Effects")("Slider Control").name="口パク間隔(Def=1)";
//スライダー2を追加;
app.project.activeItem.selectedLayers[0]("Effects").addProperty("ADBE Slider Control");
app.project.activeItem.selectedLayers[0]("Effects")("Slider Control")["Slider"].setValueAtTime(0,1);
app.project.activeItem.selectedLayers[0]("Effects")("Slider Control")["Slider"].setInterpolationTypeAtKey(1,KeyframeInterpolationType.HOLD);
app.project.activeItem.selectedLayers[0]("Effects")("Slider Control").name="0で開始1で停止";
app.executeCommand(2153);
var exPrs="motionDuration = thisComp.frameDuration*160;nKey = effect(\"0で開始1で停止\")(\"Slider\").nearestKey(time*effect(\"口パク間隔(Def=1)\")(\"Slider\"));if(time < nKey.time){cIndex = nKey.index-1;} else {cIndex= nKey.index;}if(cIndex > 0){cKey = effect(\"0で開始1で停止\")(\"Slider\").key(cIndex);time*effect(\"口パク間隔(Def=1)\")(\"Slider\")-cKey.time+cKey*motionDuration} else {0}";
app.project.activeItem.selectedLayers[0].property("timeRemap").expression= exPrs;
//キーフレームのあるプロパティを表示;
app.executeCommand(2387);
}
};
//////////////////////////////////////////////////////////////////////////////
//第2テキストとボタン;
palette.add("statictext",[10,70,180-10,110-10],"開き目を下にして3つを選択");
var e = palette.add("button",[10,100,180-10,140-10],"オート目パチ");
//ボタントリガー;
e.onClick = function()
{
//イベント置き場
var activeComp= app.project.activeItem;
var tempLength = activeComp.selectedLayers.length;
if(tempLength > 3){
alert('選択レイヤーがが3つじゃありません(多い)');
}else if (tempLength < 3){
alert("選択レイヤーがが3つじゃありません(少ない)");
}else{
//全面に移動;
app.executeCommand(2016);
//3フレに統一;
activeComp.layer(1).outPoint = 3/activeComp.frameRate;
activeComp.layer(2).outPoint = 3/activeComp.frameRate;
activeComp.layer(3).outPoint = 3/activeComp.frameRate;
//上2つを複製;
activeComp.layer(2).duplicate( );
activeComp.layer(2).moveToBeginning();
activeComp.layer(4).duplicate( );
activeComp.layer(4).moveToBeginning();
//一番上を4フレに;
activeComp.layer(1).outPoint = 4/activeComp.frameRate;
//レイヤーを並べる。;
//var framePitch=3
activeComp.layer(5).startTime =3/activeComp.frameRate*0;
activeComp.layer(4).startTime =3/activeComp.frameRate*1;
activeComp.layer(3).startTime =3/activeComp.frameRate*2;
activeComp.layer(2).startTime =3/activeComp.frameRate*3;
activeComp.layer(1).startTime =3/activeComp.frameRate*4;
app.project.activeItem.layers.precompose([1,2,3,4,5], activeComp.layer(1).name+"_re", true);
//////タイムリマップ、エクスプレッション付け;
//タイムリマップ有効;
app.executeCommand(2153);
//エクスプレッション記述;
var exPrs="loopOut(type = \"cycle\", numKeyframes = 0)";
app.project.activeItem.selectedLayers[0].property("timeRemap").expression= exPrs;
app.project.activeItem.selectedLayers[0].property("timeRemap").removeKey(2);
//キーフレーム打ち;
app.project.activeItem.selectedLayers[0].property("timeRemap").setValueAtTime(3/activeComp.frameRate*5,3/activeComp.frameRate*5);
app.project.activeItem.selectedLayers[0].property("timeRemap").setValueAtTime(1/activeComp.frameRate*80,0);
app.project.activeItem.selectedLayers[0].property("timeRemap").setValueAtTime(1/activeComp.frameRate*95,3/activeComp.frameRate*5);
app.project.activeItem.selectedLayers[0].property("timeRemap").setValueAtTime(1/activeComp.frameRate*140,0);
app.project.activeItem.selectedLayers[0].property("timeRemap").setInterpolationTypeAtKey(2,KeyframeInterpolationType.LINEAR,KeyframeInterpolationType.HOLD);
app.project.activeItem.selectedLayers[0].property("timeRemap").setInterpolationTypeAtKey(4,KeyframeInterpolationType.LINEAR,KeyframeInterpolationType.HOLD);
}};
//イベント終了;
///////////////////////////////////////
//第3テキストとボタン;
palette.add("statictext",[10,130,180-10,170-10],"エクスプレッションを記述");
var h = palette.add("button",[10,160,180-10,200-10],"ループ用explession");
//ボタントリガー;
h.onClick = function()
{
//イベント置き場
var Exp ="loopTime = 0;\nnumLoop = 0; \nkeyN = 0; \nshiftTime=0; \ncycleTime =key(numKeys).time; \n\nif (effect(\"control\")(\"Slider\").numKeys){\nkeyN = effect(\"control\")(\"Slider\").nearestKey(time).index;\nif (effect(\"control\")(\"Slider\").key(keyN).time > time) keyN--;\n}\n\nif (keyN > 0) {\nnumLoop = effect(\"control\")(\"Slider\").valueAtTime(time);\nshiftTime = time - effect(\"control\")(\"Slider\").key(keyN).time;\n\nif (shiftTime < numLoop * cycleTime ) {\nloopTime = shiftTime % cycleTime ;\n}\n}\n\nvalueAtTime(loopTime )";
var undoStr = "Set Expression";
var activeLayer = app.project.activeItem.selectedLayers[0];
app.beginUndoGroup(undoStr);
var arr=activeLayer.selectedProperties;
for (var i=0; i<arr.length; i++)
if (arr[i]) arr[i].expression=Exp;
for (var i=0; i<arr.length; i++)
if (arr[i]) arr[i].addKey(app.project.activeItem.selectedLayers[0].time);
var arr1=app.project.activeItem.selectedLayers;
for (var i=0; i<arr1.length; i++)
if (arr1[i]) arr1[i]("Effects").addProperty("ADBE Slider Control");
for (var i=0; i<arr1.length; i++)
if (arr1[i]) arr1[i]("Effects")("Slider Control")["Slider"].setValueAtTime(app.project.activeItem.selectedLayers[0].time,1);
for (var i=0; i<arr1.length; i++)
if (arr1[i]) arr1[i]("Effects")("Slider Control")["Slider"].setInterpolationTypeAtKey(1,KeyframeInterpolationType.HOLD);
for (var i=0; i<arr1.length; i++)
if (arr1[i]) arr1[i]("Effects")("Slider Control").name="control";
app.executeCommand(2387);
app.endUndoGroup();
};
//イベント終了;
///////////////////////////////////////
if ( ( me instanceof Panel) == false){ palette.center();
palette.show();
}})(this);