Export several projects in the same time Topic is solved

Please use this part to report bugs & errors, ask questions & "How to..."
User avatar
Clément
Site Admin
Posts: 93
Joined: 25 Jan 2017, 08:38

Re: Export several projects in the same time

Post by Clément » 22 Oct 2018, 09:40

J'ai bien compris, je me demandais surtout quel type d'export tu voulais faire, AVI, sequence png, etc.
Quoi qu'il en soit, voilà la dernière version !

Code: Select all

import os
from subprocess import call

#path to tvpaint executable
tvpaint_path = '"/Applications/TVPaint Animation 11 Pro.app"'

#directory where tvpp files are stored.
tvpp_path="/Users/jo/Desktop/EPILOGUE"

#export type, testet with PNG and AVI, other modes are available
export_type='AVI'

#cmd prefix
cmd_prefix = ''
cmd_suffix = ' '
os_usecall = True
print( os.name )
if os.name == 'posix':
    cmd_prefix = 'open -n -W -a '
    cmd_suffix = ' --args '
    os_usecall = False

tvpp_entries = []
all_entries = os.scandir( tvpp_path )
for entry in all_entries:
    if entry.is_file():
        ext = entry.name.split( "." )[-1]
        if( ext == "tvpp" ):
            tvpp_entries.append( entry )

for tvpp_entry in tvpp_entries:
    full_entry_path = tvpp_path + '/' + tvpp_entry.name
    baked_command = cmd_prefix + tvpaint_path + cmd_suffix + '"cmd=tv_LoadProject {}" "cmd=tv_SaveMode {}" "cmd=tv_SaveSequence {}" "cmd=tv_quit"'.format( full_entry_path, export_type, full_entry_path, tvpp_entry.name )
    print( baked_command )
    if os_usecall:
        call( baked_command )
    else:
        os.system( baked_command )
la ligne export_type='AVI' peut être changée pour d'autres types d'export si tu le souhaites.
Testé chez moi sur mac, j'ai pas rencontré de problème, assure-toi quand même d'avoir assez d'espace en mémoire avant d'exporter 280 clips ;)
Clement Berthaud, Software Developer, TVPaint Team

User avatar
prudprod
Posts: 45
Joined: 31 Mar 2006, 12:09
Contact:

Re: Export several projects in the same time

Post by prudprod » 22 Oct 2018, 17:18

Salut Clément, bon alors pas de message d'erreur mais il ne se passe rien… Voici le rapport :
posix
open -n -W -a "/Applications/TVPaint Animation 11 Pro.app" --args "cmd=tv_LoadProject /Users/jo/Desktop/EPILOGUE/LO_PL276_V01.tvpp" "cmd=tv_SaveMode AVI" "cmd=tv_SaveSequence /Users/jo/Desktop/EPILOGUE/LO_PL276_V01.tvpp" "cmd=tv_quit"
open -n -W -a "/Applications/TVPaint Animation 11 Pro.app" --args "cmd=tv_LoadProject /Users/jo/Desktop/EPILOGUE/LO_PL277_V01.tvpp" "cmd=tv_SaveMode AVI" "cmd=tv_SaveSequence /Users/jo/Desktop/EPILOGUE/LO_PL277_V01.tvpp" "cmd=tv_quit"
open -n -W -a "/Applications/TVPaint Animation 11 Pro.app" --args "cmd=tv_LoadProject /Users/jo/Desktop/EPILOGUE/LO_PL278_V01.tvpp" "cmd=tv_SaveMode AVI" "cmd=tv_SaveSequence /Users/jo/Desktop/EPILOGUE/LO_PL278_V01.tvpp" "cmd=tv_quit"
open -n -W -a "/Applications/TVPaint Animation 11 Pro.app" --args "cmd=tv_LoadProject /Users/jo/Desktop/EPILOGUE/LO_PL279_V01.tvpp" "cmd=tv_SaveMode AVI" "cmd=tv_SaveSequence /Users/jo/Desktop/EPILOGUE/LO_PL279_V01.tvpp" "cmd=tv_quit"
open -n -W -a "/Applications/TVPaint Animation 11 Pro.app" --args "cmd=tv_LoadProject /Users/jo/Desktop/EPILOGUE/LO_PL280_V01.tvpp" "cmd=tv_SaveMode AVI" "cmd=tv_SaveSequence /Users/jo/Desktop/EPILOGUE/LO_PL280_V01.tvpp" "cmd=tv_quit"
open -n -W -a "/Applications/TVPaint Animation 11 Pro.app" --args "cmd=tv_LoadProject /Users/jo/Desktop/EPILOGUE/LO_PL281_V01.tvpp" "cmd=tv_SaveMode AVI" "cmd=tv_SaveSequence /Users/jo/Desktop/EPILOGUE/LO_PL281_V01.tvpp" "cmd=tv_quit"
open -n -W -a "/Applications/TVPaint Animation 11 Pro.app" --args "cmd=tv_LoadProject /Users/jo/Desktop/EPILOGUE/LO_PL282_V01.tvpp" "cmd=tv_SaveMode AVI" "cmd=tv_SaveSequence /Users/jo/Desktop/EPILOGUE/LO_PL282_V01.tvpp" "cmd=tv_quit"
open -n -W -a "/Applications/TVPaint Animation 11 Pro.app" --args "cmd=tv_LoadProject /Users/jo/Desktop/EPILOGUE/LO_PL283_V01.tvpp" "cmd=tv_SaveMode AVI" "cmd=tv_SaveSequence /Users/jo/Desktop/EPILOGUE/LO_PL283_V01.tvpp" "cmd=tv_quit"
open -n -W -a "/Applications/TVPaint Animation 11 Pro.app" --args "cmd=tv_LoadProject /Users/jo/Desktop/EPILOGUE/LO_PL284_V01.tvpp" "cmd=tv_SaveMode AVI" "cmd=tv_SaveSequence /Users/jo/Desktop/EPILOGUE/LO_PL284_V01.tvpp" "cmd=tv_quit"
>>>

User avatar
Clément
Site Admin
Posts: 93
Joined: 25 Jan 2017, 08:38

Re: Export several projects in the same time

Post by Clément » 23 Oct 2018, 09:39

Une petite coquille s'était peut être glissée sur la fin, je viens de réessayer sans problème, si ça ne marche pas le problème peut venir d'ailleurs ( notament, assure toi que TVPaint est bien fermé et quitté avant de lancer le script ). Autrement on devrait être bon ;)
Voilà la version que tu peux essayer:

Code: Select all

import os
from subprocess import call

#path to tvpaint executable
tvpaint_path = '"/Applications/TVPaint Animation 11 Pro.app"'

#directory where tvpp files are stored.
tvpp_path="/Users/jo/Desktop/EPILOGUE"

#export type, testet with PNG and AVI, other modes are available
export_type='AVI'

#cmd prefix
cmd_prefix = ''
cmd_suffix = ' '
os_usecall = True
print( os.name )
if os.name == 'posix':
    cmd_prefix = 'open -n -W -a '
    cmd_suffix = ' --args '
    os_usecall = False

tvpp_entries = []
all_entries = os.scandir( tvpp_path )
for entry in all_entries:
    if entry.is_file():
        ext = entry.name.split( "." )[-1]
        if( ext == "tvpp" ):
            tvpp_entries.append( entry )

for tvpp_entry in tvpp_entries:
    full_entry_path = tvpp_path + '/' + tvpp_entry.name
    export_path = full_entry_path + '.' + export_type
    baked_command = cmd_prefix + tvpaint_path + cmd_suffix + '"cmd=tv_LoadProject {}" "cmd=tv_SaveMode {}" "cmd=tv_SaveSequence {}" "cmd=tv_quit"'.format( full_entry_path, export_type, export_path )
    print( baked_command )
    if os_usecall:
        call( baked_command )
    else:
        os.system( baked_command )
Clement Berthaud, Software Developer, TVPaint Team

User avatar
prudprod
Posts: 45
Joined: 31 Mar 2006, 12:09
Contact:

Re: Export several projects in the same time

Post by prudprod » 23 Oct 2018, 10:01

Salut Clément.

Et bien voilà ça marche !. J'avais juste changer le nom de TVPaint dans mon dossier appli, c'tait donc normal qu'il ne le trouve pas. Je te remercie beaucoup !!
Last edited by prudprod on 23 Oct 2018, 10:20, edited 1 time in total.

User avatar
Clément
Site Admin
Posts: 93
Joined: 25 Jan 2017, 08:38

Re: Export several projects in the same time

Post by Clément » 23 Oct 2018, 10:19

C'est bizzare, j'ai pu tester sur deux Mac différents et n'ai pas rencontré le problème.
Ça ne doit pas être bien méchant puisque ça marchait lorsqu'il s'agissait de simplement afficher le nom ( c'est pour ça que j'avais fait une étape plus simple ), seulement c'est difficile de déboguer à distance comme ça ;)

Qu'est-ce qui change entre cette version et celle qui lançait bien l'autre jour ?
Peux-tu m'envoyer la version qui fonctionnait chez toi telle qu'elle est chez toi ? Ça me permettra de comparer.

D'autre part, à tout hasard, quelle est la version de ton OS ?
Clement Berthaud, Software Developer, TVPaint Team

User avatar
prudprod
Posts: 45
Joined: 31 Mar 2006, 12:09
Contact:

Re: Export several projects in the same time

Post by prudprod » 23 Oct 2018, 10:30

(voir le message précédent) :wink:

User avatar
Clément
Site Admin
Posts: 93
Joined: 25 Jan 2017, 08:38

Re: Export several projects in the same time

Post by Clément » 23 Oct 2018, 10:41

Super :)
Clement Berthaud, Software Developer, TVPaint Team

User avatar
prudprod
Posts: 45
Joined: 31 Mar 2006, 12:09
Contact:

Re: Export several projects in the same time

Post by prudprod » 23 Oct 2018, 10:52

juste une question si je dois exporter un Quick time en ".mov", "AVI" je le change par quel code, "MOV" ?
et encore une subtilité pour convertir le format de sortie 2552 X 1567 et passer en 1024X629, peut-on ajouter une petite ligne à ton code?!


Merci

User avatar
Clément
Site Admin
Posts: 93
Joined: 25 Jan 2017, 08:38

Re: Export several projects in the same time

Post by Clément » 23 Oct 2018, 12:45

Pour exporter en .mov, tu peux changer "AVI" par le code "QT" ( oui c'est bizzare, mais le format mov est en fait le format QT pour quicktime ).
Pour convertir le format de sortie, j'ai l'impression que ça risque de demander des choses plus compliquées, je me penche dessus.
Clement Berthaud, Software Developer, TVPaint Team

User avatar
prudprod
Posts: 45
Joined: 31 Mar 2006, 12:09
Contact:

Re: Export several projects in the same time

Post by prudprod » 23 Oct 2018, 13:10

Merci Clément ! En tout cas sache que ce petit Script en terme de prod est très efficace surtout pour des films longs (supérieur à 15minutes) car c'est très pratique d'avoir la continuité de son film dans un seul projet au départ ensuite il est vraiment indispensable de séparer chaque clip en projet, quand tu passes à l'étape à proprement dite de l'animation et de la mise en couleur.

User avatar
Clément
Site Admin
Posts: 93
Joined: 25 Jan 2017, 08:38

Re: Export several projects in the same time

Post by Clément » 23 Oct 2018, 13:25

Content que ça corresponde à tes attentes ! Et oui, d'autant plus que manipuler des très gros projets c'est risqué si le projet se corromp, et c'est plus lourd à manipuler ou à échanger.
C'est le genre de fonctionnalités qui pourrait trouver sa place par défaut dans le logiciel, en attendant on doit jouer avec le script: c'est là pour pallier à ça :)

Voici une version qui export en mov et qui resize le projet aux dimensions voulues:

Code: Select all

import os
from subprocess import call

#path to tvpaint executable
tvpaint_path = '"/Applications/TVPaint Animation 11 Pro.app"'

#directory where tvpp files are stored.
tvpp_path="/Users/jo/Desktop/EPILOGUE"

#export type, testet with PNG and AVI, other modes are available
mov_code = 'Mode=1015'
export_type = mov_code

#export size
export_width = 100
export_height = 100

#cmd prefix
cmd_prefix = ''
cmd_suffix = ' '
os_usecall = True
print( os.name )
if os.name == 'posix':
    cmd_prefix = 'open -n -W -a '
    cmd_suffix = ' --args '
    os_usecall = False

tvpp_entries = []
all_entries = os.scandir( tvpp_path )
for entry in all_entries:
    if entry.is_file():
        ext = entry.name.split( "." )[-1]
        if( ext == "tvpp" ):
            tvpp_entries.append( entry )

for tvpp_entry in tvpp_entries:
    full_entry_path = tvpp_path + '/' + tvpp_entry.name
    export_path = full_entry_path + '.' + export_type
    baked_command = cmd_prefix + tvpaint_path + cmd_suffix + '"cmd=tv_LoadProject {}" "cmd=tv_resizepage {} {} 2" "cmd=tv_SaveMode {}" "cmd=tv_SaveSequence {}" "cmd=tv_quit"'.format( full_entry_path, export_width, export_height, export_type, export_path )
    print( baked_command )
    if os_usecall:
        call( baked_command )
    else:
        os.system( baked_command )
Désolé de t'innonder encore de code !

Comme tu le vois on a remplacé
export_type = "AVI"
par
mov_code = 'Mode=1015'
export_type = mov_code

Parce que le code "QT" ne fonctionne pas comme attendu, une petite subtilité, il a fallu fouiller dans les rouages pour retrouver ça; c'est l'inconvénient de ce système de scripting.
D'autre part on a rajouté ce morceau:

#export size
export_width = 100
export_height = 100


Tu peux remplacer ces valeurs par les dimensions souhaitées en pixel: ce sera les mêmes pour tous les projets. S'il fallait faire un redimensionnement adaptatif par projet ce serait plus compliqué.
et voilà ;)
Clement Berthaud, Software Developer, TVPaint Team

User avatar
prudprod
Posts: 45
Joined: 31 Mar 2006, 12:09
Contact:

Re: Export several projects in the same time

Post by prudprod » 24 Oct 2018, 17:46

Ça marche au Poil ! Merci infiniment Clément !

Post Reply