עד פה ראינו את אפטר מנקודת המבט של עכבר וקיבורד — לוחצים, גוררים, מעצבים. עכשיו נפתח את הקופסה. סקריפט הוא פיסת קוד שמפעילה את אפטר במקומכם. במדריך הזה נבין מה זה בדיוק, איך זה עובד, ואיזה עולם זה פותח.
סקריפט הוא קובץ טקסט עם קוד, שכשאפטר מפעיל אותו — הוא מבצע פעולות. זה הכל. אבל מה שאפשר לעשות עם הכל הזה — מדהים.
כל פעולה שאתם עושים באפטר — יצירת שכבה, שינוי תכונה, הוספת Keyframe — ניתן להפעיל גם דרך קוד. סקריפט הוא רצף של פעולות כאלה, שמבוצעות אוטומטית בלחיצה אחת.
| תכונה | סקריפט | פלאגין |
|---|---|---|
| שפה | ExtendScript (JavaScript) | C++ |
| מהירות פיתוח | מהירה מאוד | איטית |
| גישה ל-AE | דרך DOM — מגבלות | גישה מלאה |
| הפצה | קובץ .jsx — העתקה | קובץ .aex — התקנה מערכתית |
| פיתוח אפקטים | לא אפשרי | כן (Blur, Glow, וכו') |
| אוטומציה | מעולה | מוגבלת |
השורה התחתונה: סקריפטים הם לאוטומציה וזרימת עבודה. פלאגינים הם לאפקטים ופונקציונליות חדשה. הסקריפט של BDNHOST — וכל סקריפט סביר — נופל בקטגוריה הראשונה.
סקריפטים באפטר כתובים ב-ExtendScript — הגרסה של Adobe ל-JavaScript. מי שמכיר JS — כבר מכיר 90% ממה שצריך.
ExtendScript הוא JavaScript ES3 (1999!), עם הרחבות של Adobe. זה יותר פרימיטיבי מ-JavaScript המודרני — אין let, אין const, אין arrow functions. רק var ו-function.
// סקריפט מינימלי שיוצר שכבת טקסט var comp = app.project.activeItem; if (comp && comp instanceof CompItem) { var textLayer = comp.layers.addText("שלום עולם"); textLayer.position.setValue([comp.width/2, comp.height/2]); }
זה הכל. 4 שורות. יצרו שכבת טקסט במרכז הקומפוזיציה. אותו תוצאה שיעשה מתחיל בעבודה ידנית של 30 שניות, המחשב עושה בפחות מ-100 אלפיות שנייה.
// הגדרת משתנה var name = "יעקב"; // תנאי if (name === "יעקב") { alert("שלום יעקב"); } // לולאה for (var i = 0; i < 10; i++) { $.writeln("איטרציה " + i); } // פונקציה function greet(person) { return "שלום " + person; }
ב-ExtendScript: אין let/const, אין Template Literals (backticks), אין Spread Operator, אין Destructuring. אם לומדים JS חדש — יש פער. אבל גם עם התחביר המיושן אפשר לבנות סקריפטים מקצועיים.
כדי לכתוב סקריפט, צריך לדעת איך לכתוב אל אפטר. המפתח הוא DOM — Document Object Model — העץ של כל מה שיש באפטר.
אפטר חושף את כל התוכן שלו כעץ של אובייקטים מקוננים. מהשורש (app) ועד לפרטים הקטנים ביותר (keyframe).
// הפרויקט var project = app.project; // הקומפוזיציה הפעילה var comp = project.activeItem; // רוחב הקומפוזיציה var w = comp.width; // מספר השכבות var n = comp.numLayers; // שכבה ראשונה var firstLayer = comp.layer(1); // אפטר מתחיל לספור מ-1 ולא מ-0! // שינוי מיקום של שכבה firstLayer.property("Position").setValue([500, 500]);
אפטר מתחיל לספור שכבות מ-1, לא מ-0. comp.layer(0) יחזיר שגיאה. comp.layer(1) זו השכבה הראשונה (העליונה בטיימליין).
יש 3 דרכים להפעיל סקריפט. כל אחת עם יתרון שלה.
File → Scripts → Run Script File.... בוחרים קובץ .jsx. הוא רץ פעם אחת.
מתי להשתמש: סקריפט שצריך להריץ פעם בחיים (למשל: "הפוך את כל הטקסט בקומפ לעברית RTL").
מעתיקים את הקובץ .jsx לתיקייה:
C:\Program Files\Adobe\Adobe After Effects [year]\Support Files\Scripts\ScriptUI Panels/Applications/Adobe After Effects [year]/Scripts/ScriptUI Panelsמפעילים מחדש את אפטר. עכשיו הסקריפט מופיע בתפריט Window — כמו כל פאנל אחר.
מתי להשתמש: כלי שימוש יומיומי. כולל ה-SRT Subtitles Importer שלנו.
מעתיקים את ה-.jsx לתיקיית Scripts (לא ScriptUI Panels). הסקריפט יופיע תחת File → Scripts → [שם הקובץ].
מתי להשתמש: סקריפט שמריצים מדי פעם אבל לא מייצר חלון. למשל "ייצוא מהיר של הקומפ הפעילה".
סקריפטים שקוראים קבצים מהכונן (כמו SRT Importer שקורא קובץ SRT) דורשים רשות. Edit → Preferences → Scripting & Expressions, סמנו Allow Scripts to Write Files and Access Network, הפעילו מחדש.
אין דרך ללמוד סקריפטים חוץ מלכתוב אחד. הנה דוגמה שלמה ופועלת — אפשר להעתיק ולהריץ.
// סקריפט ראשון — יוצר 10 שכבות טקסט מסודרות function createTextLayers() { var comp = app.project.activeItem; // בדיקת תקינות if (!comp || !(comp instanceof CompItem)) { alert("פתחו קומפוזיציה לפני הרצת הסקריפט"); return; } // Undo Group - חשוב לביטול פעולה אחד app.beginUndoGroup("Create 10 Text Layers"); var centerX = comp.width / 2; var startY = 100; for (var i = 0; i < 10; i++) { var text = comp.layers.addText("שורה " + (i + 1)); // מיקום — כל שכבה מעט מתחת לקודמת text.property("Position").setValue([centerX, startY + i * 80]); // צבע משתנה לפי אינדקס var textProp = text.property("Source Text"); var textDoc = textProp.value; textDoc.fontSize = 60; textDoc.font = "Heebo-Bold"; textDoc.fillColor = [i / 10, 0.5, 1]; textProp.setValue(textDoc); } app.endUndoGroup(); alert("יצרתי 10 שכבות! בדקו את הקומפוזיציה"); } // הרצה createTextLayers();
my-first-script.jsx.File → Scripts → Run Script File...app.beginUndoGroup() ו-app.endUndoGroup() עוטפים את כל הפעולות — כך שלחיצה על Ctrl+Z מבטלת את כולן יחד, לא אחת-אחת. זה ההבדל בין סקריפט חובבני לסקריפט מקצועי.
המדריך הזה הוא שער. העולם של סקריפטים באפטר עמוק — אבל ניתן להצלחה.
After Effects Scripting Guide PDF. זה התנ"ך. חובה להיות לכם בטאב פתוח בזמן פיתוח.Phase 1 מסתיים כאן. בשלבים הבאים (Phase 2-4) של הסדרה, נתעמק יותר באוטומציה:
הסקריפט שפיתחנו הוא דוגמה לכל מה שתיארנו פה — ExtendScript, ScriptUI Panel, טיפול ב-File I/O, RTL, ו-UX מלא. אפשר גם להסתכל בקוד (הוא פתוח בגרסאות מסוימות) כדי ללמוד מדוגמה אמיתית וחיה.
SRT Importer בחנותעברתם 6 מדריכים. מ"פתיחת אפטר לראשונה" ועד "הבנת ExtendScript". זה לא מעט. רוב האנשים לומדים אפטר לא מסודר — תוך צפייה בטוטוריאלים מפוזרים ביוטיוב. אתם עברתם מסלול מסודר.
מה הלאה? יש שתי אפשרויות. הראשונה: תרגול. פתחו אפטר, נסו לבנות פרויקט קצר שמשתמש בכל מה שלמדתם — קומפוזיציה עם שכבות, אנימציה, טקסט עברי, ואולי כתוביות עם SRT Importer. זה יקבע את הידע.
השניה: המשך הסדרה. ב-Phase 2 נכנס לעמקים יותר — Shape Layers מתקדם, מוטיון גרפיקס, Expressions. אם אהבתם את הסגנון של המדריכים האלה — הרשמו לרשימת העדכונים שלנו באתר BDNHOST כדי לקבל התראה על מדריכים חדשים.
המדריכים האלה נבנו בזמן ובמשאבים של BDNHOST Group כתרומה לקהילה הישראלית. אם הם עזרו לכם — שתפו. אם מצאתם טעות או רוצים להציע שיפור — כתבו ל-info@bdnhost.net. כל משוב נקרא באישית.