Python Script Console

Python Script Console

Ora Harmony 22 mette a disposizione Python all’interno del programma stesso in una voce chiamata Python Script Console.

La libreria di Harmony è fornita da un modulo Python che può essere importato sia nell’interprete Python interno di Harmony che esternamente a Harmony in un interprete compatibile.

  • Python: Il modulo Python di Harmony è compatibile con Python 3.9 o versioni successive. Python 3.9 è richiesto quando si utilizza Python dall’interno dell’interfaccia grafica di Harmony, mentre altre versioni minori di Python 3 non sono compatibili con la console Python interna.
  • Console Python di Harmony: La console Python sarà disponibile solo in Harmony se viene avviato in un ambiente che fornisce le librerie Python. Il percorso delle librerie Python può essere specificato utilizzando la preferenza “PYTHON_LIB_PATH” o assicurandosi che l’eseguibile di Python sia disponibile nella variabile d’ambiente “PATH”.
  • Windows: Assicurarsi che Python 3.9 sia installato nel sistema e che sia disponibile nel percorso dell’utente o in “PYTHON_LIB_PATH” nell’ambiente di sistema.
  • macOS: Su gran parte delle moderne versioni di macOS, Python3 è già disponibile di default nel sistema. Se non è disponibile o non può essere trovato, è possibile installare Python 3.9+ e assicurarsi che i framework di Python 3.9 siano installati. Per installazioni personalizzate e ambienti, aggiungere il percorso delle librerie di Python alla variabile “DYLD_LIBRARY_PATH” renderà la console disponibile in Harmony.
  • Linux: Assicurarsi che il percorso di Python 3.9 sia presente nella variabile “PATH” o “PYTHON_LIB_PATH” del sistema. Inoltre, verificare che il percorso delle librerie dinamiche di Python3 sia disponibile in “LD_LIBRARY_PATH”.

Per iniziare a utilizzare la console Python di Harmony, è possibile accedervi tramite la vista “Python Script Console” in “Windows”. Questa console funziona come un interprete Python normale e fornisce anche accesso al modulo Python di Harmony. La console e l’istanza di Python sono persistenti per la durata della sessione corrente di Harmony.

Una volta che il modulo è stato importato nella console interna, la sessione e il progetto correnti dell’applicazione saranno disponibili per l’interprete come rappresentazione dell’object model del documento. La console Python Script avrà anche accesso ai moduli normalmente disponibili nella versione di Python caricata, che possono essere importati secondo necessità.

Per estendere i moduli disponibili in Python, è possibile seguire le pratiche standard di installazione di Python, come l’uso di ambienti virtuali, l’aggiunta al percorso (PATH) o l’aggiunta alla variabile PYTHON_PATH.

In Harmony, è incluso anche PySide6, che può essere utilizzato per integrare e estendere l’interfaccia grafica di Harmony. Questo consente agli script Python di creare nuovi elementi GUI e di modificare direttamente quelli esistenti nell’interfaccia utente di Harmony.

Se è già disponibile un’installazione esistente di PySide altrove in Python, assicurarsi che la libreria PySide fornita con Harmony venga caricata quando si interagisce con l’applicazione.

Per utilizzare un interprete Python esterno, è necessario importare il modulo della libreria Harmony (e le relative librerie di dipendenza) dal percorso di installazione di Harmony.

  • Su Windows: Il pacchetto Python di Harmony si trova nella directory: $HARMONY_INSTALL/win64/bin/python-packages
  • Su macOS: Il pacchetto Python di Harmony si trova nella directory: $HARMONY_INSTALL/Contents/tba/macosx/lib/python-packages
  • Su Linux: Il pacchetto Python di Harmony si trova nella directory: $HARMONY_INSTALL/lnx86_64/lib/python-packages

L’utilizzo di un interprete Python esterno consente il trattamento batch delle scene di Harmony senza l’interfaccia grafica, direttamente in uno script Python esterno.

La rappresentazione dell’object model del documento (DOM) in Harmony Python Library prevede che tutte le interazioni siano fatte direttamente sull’oggetto che lo rappresenta all’interno del DOM. Gli oggetti possono essere richiesti dalla gerarchia del modello di oggetti e modificati direttamente con le proprietà di quell’oggetto. Tutte le interazioni e le modifiche sono applicate in relazione all’oggetto su cui è stata effettuata la modifica.

Per eseguire interazioni in Harmony tramite il modulo Python, è possibile seguire questa struttura:

python
from ToonBoom import harmony
current_session = harmony.session() # Sessione dell'applicazione correntemente caricata
project = current_session.project # Progetto corrente
scene = project.scene # Scena principale nel progetto
top = scene.top # Gruppo "top" nella scena
nodes = top.nodes # Lista di nodi nel gruppo "top"
for node in nodes: # Cicla su ciascun nodo nel gruppo "top"
print("Node: %s" % node.path)
# Risultato atteso: Il percorso di ciascun nodo nel gruppo "top" della scena.

Ciò consente di rappresentare in modo gerarchico il progetto all’interno di Harmony.

Per quanto riguarda il multithreading, sia Python che Harmony si basano su un thread principale per gran parte del loro processo, ma possono utilizzare thread secondari per elaborare dati quando è sicuro farlo. Gli oggetti nel DOM che rappresentano il contenuto nella scena possono essere elaborati solo nel thread principale o con il thread bloccato, e tentare di manipolare o accedere a questi oggetti senza un blocco valido causerà un errore. L’applicazione Harmony ha due approcci per gestire questi blocchi.

Per quanto riguarda il multiprocessing in Python su Windows, è importante notare che richiede che Python riavvii l’applicazione con gli stessi argomenti forniti all’interprete Python iniziale. Questo può causare problemi quando si utilizza il multiprocessing nella console Python di Harmony. I processi esterni non avranno accesso agli oggetti del DOM Python, ma possono comunque essere utilizzati per altre elaborazioni esterne. Per garantire un comportamento corretto quando si utilizza il multiprocessing, assicurarsi di impostare il percorso dell’applicazione Python desiderata e sys.argv in modo che rifletta l’operazione di multiprocessing.

Ti invito a consultare ulteriormente la documentazione ufficiale di Toon Boom per ulteriori dettagli e informazioni specifiche sulle versioni più recenti del software.

# # # #

ZYNGARO

ZYNGARO

ZYNGARO

ZYNGARO