module inscription newsletter haut de page forum mobile

Rejeter la notice

ateliers live resolve avec forest

Ateliers Live Resolve - Formez-vous en ligne tous les mois avec Forest !
Faites rapidement évoluer la qualité de vos étalonnage avec nos ateliers mensuels de 3h.
Toutes les infos
Rejeter la notice

Nouvelle Formation Prise de son : les inscriptions sont ouvertes !
Maîtrisez la qualité de vos prises de son avec notre formation théorique et pratique de 3 jours ! Du 14 au 16 mai 2024 à Paris.

[Problème] Script : redimensionner occurrences d'un métrage

Discussion dans 'Adobe After Effects' créé par stranger, 21 Octobre 2013.

  1. stranger

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    388
    Appréciations:
    +0 / 0 / -0
    Bonjour à tous,

    Je travaille régulièrement avec Avid MediaComp et AfterFX pour des travaux d'habillage. Depuis le passage à After CC, je suis confronté à un problème dans le traitement des fichiers QuickTime Reference exportés par Avid : After les interprète aléatoirement en 720*576 alors qu'ils sont exportés en pixels carrés 1024*576.

    C'est très pénible puisqu'il faut alors changer le PAR et redimensionner chaque occurrence des métrages dans les différentes comps où ils sont utilisés...
    Je cherche donc à programmer un script qui ferait ce sale boulot pour moi. :D

    J'ai abouti au code ci-dessous, qui me semble correct mais ne s'exécute pas correctement. En gros, After se comporte comme si la fonction principale était exécutée au lancement du script... Et le clic sur le bouton de mon interface est inopérant. Pour avoir modifié ou programmé moi-même plusieurs scripts, je ne comprends pas ce qui cloche. ooo

    Code:
    function fnResize()
    {
        if (app.project.activeItem.typeName == "Footage")
        {
            
            
            if (app.project.activeItem.width == 720)
            {
                app.project.activeItem.pixelAspect = 1.46;
                for (i=1; i <= app.project.numItems; i++)
                {
                    if (app.project.item(i).typeName == "Composition")
                    {
                        for (j=1; j <= app.project.item(i).numLayers; j++)
                        {
                            if (app.project.item(i).layer(j).source == app.project.activeItem)
                            {
                                app.project.item(i).layer(j).Transform.Scale.setValue([97.6,100]);
                                }
                            }
                        }
                    }
                }
            
            
            else if (app.project.activeItem.width == 1024)
            {
                app.project.activeItem.pixelAspect = 1;
                for (i=1; i <= app.project.numItems; i++)
                {
                    if (app.project.item(i).typeName == "Composition")
                    {
                        for (j=1; j <= app.project.item(i).numLayers; j++)
                        {
                            if (app.project.item(i).layer(j).source == app.project.activeItem)
                            {
                                app.project.item(i).layer(j).Transform.Scale.setValue([100,100]);
                                }
                            }
                        }
                    }
                }
            
            
            else
            {
                clearOutput();
                writeLn("L'élément sélectionné n'est pas dans une résolution compatible !");
                }
            
            
            }
        else
        {
            clearOutput();
            writeLn("L'élément sélectionné n'est pas un métrage !");
            }
        }
    
    
    
    var UI = (this instanceof Panel) ? this : new Window("palette", "Resize Footage", undefined);
    var btnResize = UI.add("button", [10,10,310,35], "Redimensionner les occurences du métrage");
    btnResize.onClick = fnResize();
    
    if (!(this instanceof Panel)) 
    {
        UI.center();
        UI.show();
        }
    Si l'un d'entre vous comprend ce qui ne va pas, je le remercie d'avance pour son aide. ;-)
     
  2. viclio

    Points Repaire:
    1 970
    Recos reçues:
    11
    Messages:
    656
    Appréciations:
    +0 / 4 / -0
    Ce n'est pas la solution que tu cherches, mais tu as bien pensé à simplement appliquer la commande "se rappeler l'interprétation" et surtout son raccourci ctrl+alt+c ?
    Sinon je vais attendre sagement la réponse des spécialistes de scripts.
     
  3. stranger

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    388
    Appréciations:
    +0 / 0 / -0
    Merci de ta réponse.

    Malheureusement cette commande est insuffisante car je dois agir à la fois sur l'interprétation du métrage et sur son échelle dans les comps où il est employé.

    En effet, nous travaillons dans des comps en 1024*576. Lorsque le QT Ref sorti d'Avid est interprété en 1024, on bosse en pixels carrés et tout va bien.
    Par contre, si ledit QT est interprété en 720, nous devons l'interpréter en 1.46 puis passer son échelle horizontale à 97,42%...

    Comme ce bug est aléatoire, le plus simple est de corriger l'interprétation et l'échelle au cas par cas.
     
  4. viclio

    Points Repaire:
    1 970
    Recos reçues:
    11
    Messages:
    656
    Appréciations:
    +0 / 4 / -0
    En tout cas j'ai déjà eu ce bug, plusieurs fois, avec les quicktime venant d'Avid et codec Meridien Compressed.
    Très énervant en effet.
    La solution m'intéresse beaucoup.
     
  5. beginUndoGroup

    Points Repaire:
    3 170
    Recos reçues:
    6
    Messages:
    142
    Appréciations:
    +4 / 2 / -0
    Salut,
    ya une coquille à la fin: btnResize.onClick = fnResize();
    devrait être: btnResize.onClick = fnResize;

    Xavier.
     
  6. stranger

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    388
    Appréciations:
    +0 / 0 / -0
    Voilà qui me fait sentir bien bête... merci Xavier pour ta relecture attentive !
     
  7. beginUndoGroup

    Points Repaire:
    3 170
    Recos reçues:
    6
    Messages:
    142
    Appréciations:
    +4 / 2 / -0
    C'est le genre d'erreur casse-pieds à déceler car pour le debugger tout va bien.
    En plus ta fonction de resizing devait s'exécuter une fois au lancement du script et puis plus du tout...;)
     
  8. stranger

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    388
    Appréciations:
    +0 / 0 / -0
    C'était exactement ça... Comme quoi l'ExtendScript Toolkit est largement perfectible.
     
Chargement...
Discussions similaires - Script redimensionner occurrences
  1. geoay
    Réponses:
    1
    Nb. vues:
    566
  2. Lionel.75
    Réponses:
    0
    Nb. vues:
    384
  3. PatD
    Réponses:
    4
    Nb. vues:
    722
  4. La petite Framboise
    Réponses:
    21
    Nb. vues:
    1 531
  5. PatD
    Réponses:
    0
    Nb. vues:
    722

Dernières occasions

 

Partager cette page

Dernières Occasions

 
Vous souhaitez annoncer sur le Repaire ? Contactez-nous