Zaloguj się, aby obserwować  
Obserwujący 0
Valoos

Generator warstw

5 postów w tym temacie

Troszkę się nudziłem i postanowiłem dopomóc koledze corass, który pytał o jakiś szybki sposób na tworzenie nowej warstwy zaraz nad aktualnie zaznaczoną w kompozycji.

Stworzyłem zatem na szybko skrypcik, który tworzy ruchomy panelik do tworzenia warstw.

Jest to oczywiscie wstępna wersja i zdaje sobie sprawę z jej niedoskonałości. Wszelkie uwagi mile widziane.

Skrypt odpalamy raz i dopóki jest nam potrzebny panel może pozostać otwarty. (Pisałem skrypt pod AE7 więc jeszcze nie wiem jak umożliwić "zadokowanie" panelu - możliwość ta pojawiła się w AE CS3).

Skrypt nie będzie działał poprawnie jeżeli w oknie projektu nie jest zaznaczona żadna kompozycja,a w kompozycji żadna warstwa.

oto kod:

{
function onValChange() {
	if (isNaN(parseFloat(this.text)) || (parseFloat(this.text) < 0)) {
		this.text = "1";
		return;
	} else {
		this.text = parseFloat(this.text);
	}
}

function DodajWarstwe(){

	var myComp = app.project.activeItem;
	if (myComp == null || !(myComp instanceof CompItem)){
		alert("Zaznacz kompozycję i warstwe, a potem dopiero klikaj. \r ...i bez numerów Bruner");}
	else
	{
	    var myLayers = myComp.selectedLayers;
	    if (myLayers.length < 1){
		    alert("A jakas warstwa? Zaznacz jakas i nie kombinuj");}
		else
		{
	app.beginUndoGroup("Wstawienie warstwy");
		PAR = myComp.pixelAspect;
		My = myComp.layers.addSolid([0,0,0], "Solid" , parseInt(LWidth.text), parseInt(LHeight.text), PAR);
		My.motionblur = true;
		My.adjustmentLayer = ALayer.value;
		My.threeDLayer = Layer3D.value;
		My.guideLayer = GLayer.value;
		My.moveBefore(myLayers[0]);
	app.endUndoGroup();
		}
	}
}

WindowW = 230;  WindowH = 65;
WindowAnchorX = 100;	WindowAnchorY = 100;
var myProj = app.project;

var myPalete = new Window("palette");
myPalete.bounds = [WindowAnchorX,WindowAnchorY,WindowAnchorX+WindowW,WindowAnchorY+WindowH];
   myPalete.add("statictext",[25,5,105,20],"Adiustment Layer");
   myPalete.add("statictext",[25,25,105,40],"3D Layer");
   myPalete.add("statictext",[25,45,105,60],"Guide Layer");    
   var ALayer = myPalete.add("checkbox",[10,3,20,20]);
   var Layer3D = myPalete.add("checkbox",[10,23,20,40]);
   var GLayer = myPalete.add("checkbox",[10,43,20,60]);
   myPalete.add("statictext",[120,13,140,30],"Size");
   var LWidth = myPalete.add("edittext",[150,8,190,28],app.project.activeItem.width);
   var LHeight = myPalete.add("edittext",[195,8,225,28],app.project.activeItem.height); 
   var GOButton = myPalete.add("button",[120,35,225,60],"CREATE LAYER");
   LWidth.onChange = onValChange;
   LHeight.onChange = onValChange;
   GOButton.onClick = DodajWarstwe;
   myPalete.show();
}

Plik z rozszerzeniem .jsx powinien znaleść się w katalogu Scripts After Effects'a - ułatwi to jego uruchamianie. (Jak dotrę do domu to postaram się podwiesić gdzieś plik .jsx, żebyście nie musieli bawić się w przeklejanie)

Zatem proszę się częstować...

HOWGH

Tutaj podczepiony gotowy pliczek Dodawacz_warstw.jsx

0

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

dziękuje bardzo:)

0

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Serwus,

orientujecie się czy tak stworzonej warstwy zamiast pojedynczego efektu można nadać wcześniej stworzony Animation Preset (.ffx)

z góry dziękuje za odp.

pozdrawiam

0

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

w międzyczasie udało mi się odnaleźć odp. :)

var presetPath = "C:/Program Files (x86)/Adobe/Adobe After Effects CS3/Support Files/Plug-ins/Effects/Animation Preset.ffx";

var myPreset = File(presetPath);

myAdjLayer.applyPreset(myPreset);

pozdro

0

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jakby kogoś interesowało to bardziej elastycznie ścieżkę do presetu można ustalić tak:

var wersja = "CS4";
var programPath = system.callSystem("cmd /c \"echo %programfiles%\""); 
programPath = programPath.replace(/(\r|\n)/g, "");
var Path = programPath + "\\Adobe\\Adobe\ After\ Effects\ " + wersja + "\\Support\ Files\ " + "\\Presets\\";  

Oczywiście jest to rozwiązanie działające na windozie bo na mac'a jeszcze nie obcykałem.

0

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Utwórz konto lub zaloguj się, aby skomentować

Musisz być użytkownikiem, aby dodać komentarz

Utwórz konto

Zarejestruj nowe konto na forum. To jest łatwe!


Zarejestruj nowe konto

Zaloguj się

Masz już konto? Zaloguj się.


Zaloguj się
Zaloguj się, aby obserwować  
Obserwujący 0