Teraz jest 2010-09-06, 21:39


Napisz tematOdpowiedz Strona 1 z 1   [ Posty: 5 ]
Autor Wiadomość
 Tytuł: Generator warstw
PostNapisane: 2009-01-01, 13:55 
Moderator
Avatar użytkownika

Dołączył(a): 2008-01-13, 13:43
Posty: 651
Lokalizacja: Poznań
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:
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


Ostatnio edytowano 2009-01-08, 00:43 przez Valoos, łącznie edytowano 1 raz

Góra
 Zobacz profil  
 
 
Szczegóły postu
 Tytuł: Re: Generator warstw
PostNapisane: 2009-01-01, 20:19 
Stały użytkownik

Dołączył(a): 2008-04-11, 11:32
Posty: 453
Lokalizacja: Gdynia
dziękuje bardzo:)


Góra
 Zobacz profil  
 
 Tytuł: Re: Generator warstw
PostNapisane: 2010-07-14, 07:33 
Nowy

Dołączył(a): 2010-07-13, 17:54
Posty: 2
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


Góra
 Zobacz profil  
 
 Tytuł: Re: Generator warstw
PostNapisane: 2010-07-14, 07:59 
Nowy

Dołączył(a): 2010-07-13, 17:54
Posty: 2
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


Góra
 Zobacz profil  
 
 Tytuł: Re: Generator warstw
PostNapisane: 2010-07-14, 09:49 
Moderator
Avatar użytkownika

Dołączył(a): 2008-01-13, 13:43
Posty: 651
Lokalizacja: Poznań
Jakby kogoś interesowało to bardziej elastycznie ścieżkę do presetu można ustalić tak:
Kod:
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.


Góra
 Zobacz profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Napisz tematOdpowiedz Strona 1 z 1   [ Posty: 5 ]


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  


--> © CGArt.pl CGArt.pl

Przyjazne użytkownikom polskie wsparcie phpBB3 - phpBB3.PL
Miesięcznik Szkoła Jazdy :: Szkolenia kierowców zawodowych :: CentrumATV.pl - QUADY Sprzedaż Akcesoria :: Wypożyczalnia samochodów Szczecin