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
Posts: 93
Joined: 25 Jan 2017, 08:38

Re: Export several projects in the same time

Post by Clément »

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 »

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
Posts: 93
Joined: 25 Jan 2017, 08:38

Re: Export several projects in the same time

Post by Clément »

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 »

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
Posts: 93
Joined: 25 Jan 2017, 08:38

Re: Export several projects in the same time

Post by Clément »

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 »

(voir le message précédent) :wink:
User avatar
Clément
Posts: 93
Joined: 25 Jan 2017, 08:38

Re: Export several projects in the same time

Post by Clément »

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 »

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
Posts: 93
Joined: 25 Jan 2017, 08:38

Re: Export several projects in the same time

Post by Clément »

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 »

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
Posts: 93
Joined: 25 Jan 2017, 08:38

Re: Export several projects in the same time

Post by Clément »

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 »

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