Boutique Cinema 4D
Affichage des résultats 1 à 8 sur 8

Discussion: Copier/coller - avec textures...

  1. #1
    Gourou Avatar de Huv
    Date d'inscription
    décembre 2002
    C4D version
    R16 Studio
    OS
    OSX 10.9.5 - Windows8
    Messages
    4 422

    Copier/coller - avec textures...

    Salut,
    il arrive souvent que je doives copier/coller un objet d'un document à l'autre...
    En dehors de la proposition d'opter pour un chemin absolu au moment de coller l'objet dans un autre document, il n'y a pas moyen que c4d nous offre la possibilité de rapatrier en meme temps la (ou les) texture ?
    Ca pourrait être sérieusement pratique...
    Merci

  2. #2
    Pilier Avatar de gr4ph0s
    Date d'inscription
    mai 2013
    C4D version
    R16 Studio
    OS
    win 7 X64
    Messages
    964
    Si j'ai bien compris tu voudrais que lorsque tu copies/colle d'un document à un autres ça mette la texture dans un fichier tex à côté du fichier c4d?

    Comme ça je ne croit pas mais avec un script on peux faire ça normalement, où tu aurais ton objet de sélectionné, le script recup les matériaux / les textures et save ces textures dans un dossier tex.
    SDK Specialist
    MAXON Computer GmbH

  3. #3
    Gourou Avatar de Huv
    Date d'inscription
    décembre 2002
    C4D version
    R16 Studio
    OS
    OSX 10.9.5 - Windows8
    Messages
    4 422
    Citation Envoyé par gr4ph0s Voir le message
    Si j'ai bien compris tu voudrais que lorsque tu copies/colle d'un document à un autres ça mette la texture dans un fichier tex à côté du fichier c4d?
    Exactement !
    Qu'au moment de coller, c4d propose, soit d'opter pour le "chemin absolu", soit de copier les textures dans le dossier de destination

    Citation Envoyé par gr4ph0s Voir le message
    Comme ça je ne croit pas mais avec un script on peux faire ça normalement, où tu aurais ton objet de sélectionné, le script recup les matériaux / les textures et save ces textures dans un dossier tex.
    Oui, mais a ce moment autant "enregistrer le projet", mais cela multiple les manips...

    Mr Maxon... a mettre au programme ?
    Ou xs-yann... un petit plug supplémentaire ?

  4. #4
    Pilier Avatar de gaff
    Date d'inscription
    novembre 2007
    C4D version
    R19 Studio
    OS
    Mac Os 11.1
    Messages
    701
    Je pense que si Maxon n'a pas implémenté cette fonction c'est parque ça risque d'aboutir à des conflits dans les noms des textures ou la multiplication des textures inutilement.


    Exemple :
    j'ai une scène avec un tabouret A qui à une texture nommée assise.jpg, une autre nommée pieds.jpg. L'assise étant en cuir, les pieds en bois.
    j'ai une seconde scène avec un tabouret B qui a ( par malchance ) également une texture nommée assise.jpg, une autre nommée pieds.jpg. L'assise étant en plastique, les pieds en métal.
    Je souhaite incorporer un nouveau modèle de tabouret.
    Je fais un copier du tabouret B de la seconde scène pour le coller dans la première. Si C4D colle également les textures nommées assise.jpg & pieds.jpg que se passe-t-il?
    Soit C4D écrase les textures du tabouret B sur les textures du tabourets A ( puisqu'elles portent le même nom ) et c'est la catastrophe.
    Soit C4D effectue une copie du type assise-copie.jpg & pieds-copie.jpg, mais le tabouret B ne va pas reconnaître ses textures puisqu'elles n'ont plus le même nom.


    De plus, si le tabouret B a une texture qui s'appelle Assise.jpg qui est exactement la même que celle du tabouret A, C4D peu ne pas la copier et assigner la texture du tabouret A sur le tabouret B.
    Sauf que par la suite, si tu souhaites modifier la texture du tabouret B, tu vas aussi modifier la texture du tabouret A et c'est la catastrophe.
    Pour éviter cette mésaventure, C4D pourrait très bien dupliquer les textures. Mais là encore, si tu souhaites modifier ton matériau il va d'abord falloir vérifier à quel tabouret il est affecté ce qui n'est pas très pratique et multiplie inutilement les textures dans le projet.


    Bref, même si techniquement cela doit pouvoir se faire, l'ordinateur ne peu prendre de décision arbitraire… seul l'humain est capable de prendre ces décisions.


    Après, il reste l'option Fichier > fusionner. Mais là, ça demande d'avoir enregistrer l'objet dans un dossier avec ses textures au préalable ce qui n'est pas très pratique non plus.
    Ou bien de d'enregistrer le tabouret B dans la médiathèque pour s'en resservir correctement dans la scène du tabouret A


    Par ma part, lorsque je fait un copier / coller d'une objet vers une autre scène, je refuse systématiquement le chemin absolu car c'est super risqué si tu fais le ménage plus tard.
    Après : Attribut > mode info projet > Onglet Textures et je réassigne manuellement les textures manquantes. Pas très ergonomique, mais si tu fais un copier du nom de la texture puis un rechercher sur le disque dur c'est rapide à retrouver.
    Ce qui pose problème c'est si la texture n'est que dans la médiathèque puisqu'on n'a pas accès aux textures dans la médiathèque en faisant une recherche sur le disque dur. Dans ce cas précis, il faut au préalable ouvrir la dite texture de la médiathèque dans le visualiseur et l'enregistrer sur le bureau.


    Bref c'est le serpent qui se mort la queue!


    Donc oui, si une personne est capable de pondre un script ou un plugin qui prend en compte toutes ces variables ce serait une vrai bénédiction… mais c'est pas si simple que ça en a l'air.


    Désolé pour le pavé, j'espère avoir été clair.
    Je comprends vite, mais faut m'expliquer longtemps…

  5. #5
    Pilier Avatar de gr4ph0s
    Date d'inscription
    mai 2013
    C4D version
    R16 Studio
    OS
    win 7 X64
    Messages
    964
    A voir si ce week-end j'ai un peu de temps je ferrais surement ça
    De ce que je vois il y a 2/3 méthodes :

    La bourrine, créer un nouveau doc avec uniquement nos objets de sectionnée, utiliser le save asset pour sauvegarder / update tout les materiaux puis remettre ces objets / materiaux en supprimant les anciens.

    La méthode plus belle : regarder toutes les textures (mais la encore c'est un problème car ils n'y pas de fonctions pour connaitres les chemin absolu du coup il faut se faire chier à extraire les texture des presets ou même encore trouver le chemin absolu des textures relative, et encore trouver les textures qui sont set dans les chemin de fichier généraux.. Bref un beau merdier). Après il faut aussi faire la partie renommage, même si en sois rien de compliqué suffit de faire comme le save asset qui rajoute un suffixe lors de doublon.
    SDK Specialist
    MAXON Computer GmbH

  6. #6
    Gourou Avatar de Huv
    Date d'inscription
    décembre 2002
    C4D version
    R16 Studio
    OS
    OSX 10.9.5 - Windows8
    Messages
    4 422
    Je comprends la problématique, mais bon, je pars du principe que je sais un minimum ce que je fais surtout dans la mesure ou c'est moi qui fait tout de A à Z...
    Donc logiquement, je sais que je n'ai pas de risque de doublon de textures...

    Mais a la limite, l'option de renommer en simplement renumerotant la texture doublon serait deja plus pratique que les manips manuelles pour aller chercher les textures dans le dossier d'origine et la coller dans le dossier de destination...
    Meme windows propose ce types d'options... au moins on a le choix de quelque chose.
    Ensuite on met les mains dans le cambouis si on n'est pas content

  7. #7
    Gourou Avatar de Huv
    Date d'inscription
    décembre 2002
    C4D version
    R16 Studio
    OS
    OSX 10.9.5 - Windows8
    Messages
    4 422
    Petite up... je rappel également que lorsque l'on va chercher un fichier bitmap dans un autre dossier "tex" que celui dans lequel je travaille, c4d propose de rapatrier la texture en question...

  8. #8
    Pilier Avatar de gr4ph0s
    Date d'inscription
    mai 2013
    C4D version
    R16 Studio
    OS
    win 7 X64
    Messages
    964
    Voila un script qui devrais faire ce que tu veux
    Code PHP:
    def main():
        
    current_dir doc.GetDocumentPath()
        
    buffer_path None

        list_obj 
    doc.GetActiveObjects(c4d.GETACTIVEOBJECTFLAGS_0)
        if 
    not list_obj:
            return

        
    new_doc c4d.documents.IsolateObjects(doclist_obj)
        
    c4d.documents.InsertBaseDocument(new_doc)
        if 
    current_dir:
            
    buffer_path os.path.join(current_dir"file_buffer.c4d")
            
    c4d.documents.SaveDocument(new_docbuffer_pathc4d.SAVEDOCUMENTFLAGS_DONTADDTORECENTLIST,
                                       
    c4d.FORMAT_C4DEXPORT)

        
    path c4d.storage.LoadDialog(flags=c4d.FILESELECT_DIRECTORY)
        if 
    not path:
            return

        
    filename c4d.gui.InputDialog("Nom du dossier""Dossier")
        if 
    not filename:
            return

        
    assets = list()
        
    missingAssets = list()
        
    path str(os.path.join(pathfilename))
        
    c4d.documents.SaveProject(new_doc,
                                  
    c4d.SAVEPROJECT_SCENEFILE c4d.SAVEPROJECT_ASSETS c4d.SAVEPROJECT_PROGRESSALLOWED c4d.SAVEPROJECT_DIALOGSALLOWED c4d.SAVEPROJECT_SHOWMISSINGASSETDIALOG,
                                  
    pathassetsmissingAssets)

        if 
    buffer_path:
            
    os.remove(buffer_path)

        if 
    missingAssets:
            
    gui.MessageDialog("Missing Asset\n" str(missingAssets))


            
    #c4d.documents.KillDocument(new_doc)


    if __name__ == '__main__':
        
    main() 
    Si tu veux que le document se ferme il te suffit de retirer le # devant c4d.documents.KillDocument(new_doc)
    Dernière modification par gr4ph0s ; 29/12/2016 à 23h59.
    SDK Specialist
    MAXON Computer GmbH

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/04/2015, 20h14
  2. copier coller les coordonnées XYZ d'un coup?
    Par genghiskhan dans le forum Xpresso
    Réponses: 2
    Dernier message: 06/05/2009, 17h09
  3. Réponses: 10
    Dernier message: 04/02/2006, 15h33
  4. Copier-coller avec Photoshop ou autres
    Par atome451 dans le forum BodyPaint 3D
    Réponses: 7
    Dernier message: 10/10/2005, 12h36

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •  
Mediaworks - Logiciels 3D | Design Internet - Creation site internet