Scripting : projets et compositions After Effects
Contents |
---|
Introduction |
Application |
Project |
Folders And Compositions |
Example |
Quick Tips |
Conclusion |
Introduction
Dans cet article, je vais passer en revue certaines des bases de la navigation dans les projets et compositions After Effects à l'aide d'un script. Je ferai référence à certaines des parties les plus utiles du guide de script et montrerai quelques exemples pratiques de son fonctionnement.
Commençons.
Application
app
l'application fait référence à l'application After Effects elle-même. Pour référencer quoi que ce soit dans After Effects, vous devrez commencer par demander à votre script de consulter l'application.
Bien que vous puissiez référencer les paramètres, les fichiers et le système informatique sur lequel After Effects est installé (j'aborderai ces options dans un autre article), il s'agit très probablement de l'objet principal que vous devrez référencer après l'application. est un projet After Effects.
app.newProject()
newProject() crée un nouveau projet vide. After Effects vous demandera si vous souhaitez enregistrer votre travail actuel avant que cela ne se produise.
app.open(file)
open() permet quant à lui d'ouvrir un projet existant. En laissant les crochets vides, la boîte de dialogue d'ouverture du projet apparaîtra comme si vous naviguiez vers Fichier > Ouvrez le projet... dans le menu After Effects. Alternativement, vous pouvez référencer un fichier entre parenthèses pour ouvrir un projet spécifique.
project = new File ("...FilePath/AE Project.aep"); app.open(project);
Vous devrez créer un nouveau File() pour localiser le fichier à partir de votre script. Je préfère stocker cela dans une variable pour garder les choses en ordre. Encore une fois, vous serez invité à enregistrer votre projet actuel avant l'ouverture du fichier.
Projet
app.project
projet fait référence au projet actuel ouvert dans After Effects. À partir de là, nous pouvons accéder à tous les éléments de notre projet, en créer de nouveaux et accéder à la file d'attente de rendu.
app.project.save([file])
save() enregistre le projet. Sans ajouter l'option d'un fichier, ou si le projet n'a pas été préalablement enregistré, cette méthode fera apparaître la boîte de dialogue de sauvegarde permettant à l'utilisateur de sauvegarder son projet. N'oubliez pas : vous devez créer un nouveau fichier dans votre projet avant de pouvoir le référencer dans cette méthode.
app.project.importFile(importOptions)
importFile() fonctionne un peu comme ceci :
new ImportOptions().file = new File("...FilePath/My File.jpg"); app.project.importFile(file)
J'aborderai l'importation de fichiers plus en détail dans un autre article. Mais pour un aperçu rapide, vous utilisez cette méthode pour importer des fichiers dans votre projet. Non seulement vous devez créer un nouveau fichier, mais vous devez également créer de nouvelles ImportOptions pour spécifier ce que vous importez et comment. Cela nous permet de faire des choses comme importer des séquences d'images, importer des fichiers sous et forcer l'ordre alphabétique.
app.project.importFileWithDialog()
importFileWithDialog() ouvre quant à lui la boîte de dialogue d'importation de séquences, permettant à l'utilisateur final de sélectionner son fichier.
app
renderQueue nous donne accès à la file d'attente de rendu et nous permet de définir les paramètres de rendu et même de rendre les compositions. J'en parlerai davantage dans un autre article.
app.newProject()
activeItem fait référence à l'élément actuellement visualisé, généralement une composition, un calque de métrage, un espace réservé ou un solide. Il ne fait référence qu'à un élément à la fois et renvoie une valeur nulle si plusieurs éléments sont actifs ou si aucun n'est actif. Il peut être pratique de référencer la composition active, pour les scripts qui ajoutent des calques ou affectent d'une manière ou d'une autre ce sur quoi l'utilisateur travaille actuellement. Notez que ce n'est pas la même chose qu'un élément sélectionné.
app.open(file)
la sélection fait référence à tous les éléments actuellement sélectionnés dans le panneau du projet. C'est ce dont vous avez besoin pour référencer les éléments sélectionnés, plutôt que l'élément actif.
project = new File ("...FilePath/AE Project.aep"); app.open(project);
item() fait spécifiquement référence à un seul élément à l'intérieur de votre projet - qu'il s'agisse d'une composition, d'un solide ou autre. Comme ça :
app.project
L'index représente soit le numéro d'index de l'élément à l'intérieur de la fenêtre du projet, soit peut également faire référence au nom du calque.
app.project.save([file])
éléments font quant à eux référence à la collection d'éléments à l'intérieur de votre projet. Il est utilisé pour créer de nouvelles compositions et dossiers.
Dossiers et compositions
Cela nous amène joliment aux dossiers et aux compositions.
app.project.importFile(importOptions)
addFolder() crée un nouveau dossier pour votre projet. Assurez-vous que l'argument du nom est une chaîne (dans " " ou ' ').
addComp() a cependant beaucoup plus d'arguments à considérer. En effet, de nombreuses informations sont nécessaires pour créer une nouvelle composition :
Argument | Description |
---|---|
name | The name of the composition. Needs to be a string (in " " or ' ') |
width | The width of your composition |
height | The height of your composition |
pixelAspect | The pixel aspect ratio. You are almost certainly looking to set this to Square Pixels, which you can do by setting the ratio to 1. Any other pixel aspect ratio can be set by entering the correct ratio (for example, Anamorphic 2:1 can be set by entering 2, and D1/DV PAL Widescreen can be set by entering 1.46). |
duration | The duration of the composition in seconds |
frameRate | The frame rate of the composition |
Vous pouvez créer de nouvelles compositions à l'intérieur de dossiers en référençant le dossier à la place, comme ceci :
app
Et peut déplacer des éléments dans le dossier après coup, en définissant l'attribut parentFolder de l'élément :
app.newProject()
Une fois que vous avez créé une composition, vous pouvez la définir comme élément actif en utilisant openInViewer()
app.open(file)
Exemple
En utilisant un peu de ce que j'ai couvert, voici un court script qui vous permet d'ouvrir un nouveau projet, de créer 2 dossiers et 2 compositions, et d'ajouter une composition à l'autre en précomp.
project = new File ("...FilePath/AE Project.aep"); app.open(project);
Conseils rapides
Vous constaterez qu'après avoir exécuté ce script, si vous appuyez sur Annuler dans After Effects, il n'annulera chaque action qu'une par une. La plupart du temps, ce n'est pas idéal, car les scripts subissent souvent de nombreuses actions, ce qui rend cela très long et ennuyeux pour l'utilisateur final.
app.project
C'est là qu'interviennent beginUndoGroup() et endUndoGroup(). Ils vous permettent de regrouper les actions du script, afin qu'elles puissent être annulées en un seul mouvement. L'undoString est ce que vous verrez à côté de l'option d'annulation dans After Effects. Bien que vous n'ayez pas nécessairement besoin d'ajouter endUndoGroup() si vous n'avez qu'une seule instance de beginUndoGroup() dans votre script (car il se fermera automatiquement), il est recommandé de l'ajouter à la fin de votre script, pour conserver votre script bien rangé.
Conclusion
J'espère que cela vous a aidé à faire la lumière sur la façon de référencer des projets et des compositions After Effects lors de la création de vos scripts After Effects. Dans le prochain article, j'aborderai la création de fenêtres contextuelles permettant aux utilisateurs d'interagir avec vos scripts.
Vous avez des questions ? Quelque chose ne va pas ici ou ne fonctionne pas ? Faites-le-moi savoir dans les commentaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds











JavaScript est la pierre angulaire du développement Web moderne, et ses principales fonctions incluent la programmation axée sur les événements, la génération de contenu dynamique et la programmation asynchrone. 1) La programmation axée sur les événements permet aux pages Web de changer dynamiquement en fonction des opérations utilisateur. 2) La génération de contenu dynamique permet d'ajuster le contenu de la page en fonction des conditions. 3) La programmation asynchrone garantit que l'interface utilisateur n'est pas bloquée. JavaScript est largement utilisé dans l'interaction Web, les applications à une page et le développement côté serveur, améliorant considérablement la flexibilité de l'expérience utilisateur et du développement multiplateforme.

Les dernières tendances de JavaScript incluent la montée en puissance de TypeScript, la popularité des frameworks et bibliothèques modernes et l'application de WebAssembly. Les prospects futurs couvrent des systèmes de type plus puissants, le développement du JavaScript côté serveur, l'expansion de l'intelligence artificielle et de l'apprentissage automatique, et le potentiel de l'informatique IoT et Edge.

Différents moteurs JavaScript ont des effets différents lors de l'analyse et de l'exécution du code JavaScript, car les principes d'implémentation et les stratégies d'optimisation de chaque moteur diffèrent. 1. Analyse lexicale: convertir le code source en unité lexicale. 2. Analyse de la grammaire: générer un arbre de syntaxe abstrait. 3. Optimisation et compilation: générer du code machine via le compilateur JIT. 4. Exécuter: Exécutez le code machine. Le moteur V8 optimise grâce à une compilation instantanée et à une classe cachée, SpiderMonkey utilise un système d'inférence de type, résultant en différentes performances de performances sur le même code.

JavaScript est le langage central du développement Web moderne et est largement utilisé pour sa diversité et sa flexibilité. 1) Développement frontal: construire des pages Web dynamiques et des applications à une seule page via les opérations DOM et les cadres modernes (tels que React, Vue.js, Angular). 2) Développement côté serveur: Node.js utilise un modèle d'E / S non bloquant pour gérer une concurrence élevée et des applications en temps réel. 3) Développement des applications mobiles et de bureau: le développement de la plate-forme multiplateuse est réalisé par réact noral et électron pour améliorer l'efficacité du développement.

Python convient plus aux débutants, avec une courbe d'apprentissage en douceur et une syntaxe concise; JavaScript convient au développement frontal, avec une courbe d'apprentissage abrupte et une syntaxe flexible. 1. La syntaxe Python est intuitive et adaptée à la science des données et au développement back-end. 2. JavaScript est flexible et largement utilisé dans la programmation frontale et côté serveur.

Cet article démontre l'intégration frontale avec un backend sécurisé par permis, construisant une application fonctionnelle EdTech SaaS en utilisant Next.js. Le frontend récupère les autorisations des utilisateurs pour contrôler la visibilité de l'interface utilisateur et garantit que les demandes d'API adhèrent à la base de rôles

Le passage de C / C à JavaScript nécessite de s'adapter à la frappe dynamique, à la collecte des ordures et à la programmation asynchrone. 1) C / C est un langage dactylographié statiquement qui nécessite une gestion manuelle de la mémoire, tandis que JavaScript est dynamiquement typé et que la collecte des déchets est automatiquement traitée. 2) C / C doit être compilé en code machine, tandis que JavaScript est une langue interprétée. 3) JavaScript introduit des concepts tels que les fermetures, les chaînes de prototypes et la promesse, ce qui améliore la flexibilité et les capacités de programmation asynchrones.

J'ai construit une application SAAS multi-locataire fonctionnelle (une application EdTech) avec votre outil technologique quotidien et vous pouvez faire de même. Premièrement, qu'est-ce qu'une application SaaS multi-locataire? Les applications saas multi-locataires vous permettent de servir plusieurs clients à partir d'un chant
