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

Discussion: modifier les reglages de Vray en python

  1. #1
    Timide
    Date d'inscription
    novembre 2012
    C4D version
    R13 Studio
    OS
    windows 7
    Messages
    41

    modifier les reglages de Vray en python

    Salut,

    je voulais savoir si quelqu’un pourrais me donner la ligne de commande (ou un exemple de code) pour modifier
    les réglages de vray via un script python.

    Par avance merci

  2. #2
    Pilier Avatar de xs_yann
    Date d'inscription
    février 2005
    C4D version
    R19 Studio
    OS
    Mac OS X 10.13
    Messages
    1 990
    Salut,

    Voilà un script qui récupère le VideoPost VrayBridge (ou, à defaut, le créer) puis qui modifie un paramètre :
    Code PHP:
    import c4d

    VRAYBRIDGE 
    1019782

    def GetVrayVideoPost
    (rd):
        
    """Returns the vray video post or create it.
        """
        
    vp rd.GetFirstVideoPost()
        while 
    vp:
            if 
    vp.CheckType(VRAYBRIDGE):
                return 
    vp
            vp 
    vp.GetNext()
        
    vrayVideoPost c4d.BaseList2D(VRAYBRIDGE)
        
    rd.InsertVideoPostLast(vrayVideoPost)
        
    rd[c4d.RDATA_RENDERENGINE] = VRAYBRIDGE
        
    return vrayVideoPost


    def main
    ():
        
    rd doc.GetFirstRenderData()
        
    vray GetVrayVideoPost(rd)
        
    bc vray.GetData()  
        
    bc[c4d.VP_VRAYBRIDGE_SHADOWS] = False
        vray
    .SetData(bc)
        
    c4d.EventAdd(c4d.MSG_UPDATE)

    if 
    __name__=='__main__':
        
    main() 
    Fait bien attention à passer par le container du VideoPost et pas directement
    Code PHP:
    vray[c4d.VP_VRAYBRIDGE_SHADOWS] = True 
    car, de mémoire, cela fait planter c4d sur une affectation de booléen.

    Bon courage.
    Dernière modification par xs_yann ; 13/12/2012 à 13h05.

  3. #3
    Timide
    Date d'inscription
    novembre 2012
    C4D version
    R13 Studio
    OS
    windows 7
    Messages
    41
    merci beaucoup xs_yann, ça c'est vraiment top !
    une dernière question, il existe une ligne de commande (comme dans 3ds max) pour affiche les paramètre qui sont modifiable ?

    Par exemple la commande "VP_VRAYBRIDGE_SHADOWS" tu l'as trouver comment ?

    encore merci



  4. #4
    Pilier Avatar de xs_yann
    Date d'inscription
    février 2005
    C4D version
    R19 Studio
    OS
    Mac OS X 10.13
    Messages
    1 990
    C'est très simple, Script > Console, ensuite tu cliques sur le nom du paramètres que tu veux et tu fais un glisser-déposer (drag-and-drop) jusqu'au champ texte de la console (ça fonctionne également dans toute la zone d'édition du script manager ainsi que de l'expression editor).

    Si tu veux une liste, tu peux aller voir dans "VrayBridge/res/strings_us/description/vpvraybridge.str" (les constantes associées aux nom des paramètres) ou "VrayBridge/res/description/vpvraybridge.h" (les constantes associées à leur id).

    Par contre pour les objets, ce n'est pas tout à fait pareil, par exemple le résultat du drag-and-drop du VideoPost GI :
    Code PHP:
    <c4d.BaseList2D object called 'Global Illumination/Global Illumination' with ID 1021096 at 0x103e01390
    On a la classe de l'objet, son nom, son id et son adresse mémoire ; ce qui nous interesse c'est l'ID : 1021096.

    Code PHP:
    def main():
        for 
    keyvalue in c4d.__dict__.iteritems():
            if 
    value == 1021096:
                print 
    "%s = %s\n" % (keyvalue)
                
        for 
    key in dir(c4d):
            
    value getattr(c4dkey)
            if 
    value == 1021096:
                print 
    "%s = %s\n" % (keyvalue
    Voilà deux bouts de code équivalents. Tu remplaces l'id par celle dont tu veux la constante et la console te sort ça :

    Code PHP:
    MSG_GINEW 1021096
    VPglobalillumination 
    1021096 
    Et là tu sais que celui que tu cherches est le 2e car il commence par VP (pour VideoPost, O pour les Objets, T pour les Tags, M pour les Materiaux, etc..)
    Dernière modification par xs_yann ; 13/12/2012 à 15h07.

  5. #5
    Timide
    Date d'inscription
    novembre 2012
    C4D version
    R13 Studio
    OS
    windows 7
    Messages
    41
    merci xs_yann

    c'est bien plus clair maintenant, je ne trouver jamais le nom des commande et du coup je demander sur le
    forum.

    encore merci

  6. #6
    Pilier Avatar de xs_yann
    Date d'inscription
    février 2005
    C4D version
    R19 Studio
    OS
    Mac OS X 10.13
    Messages
    1 990


    et pour voir ce qu'il y a dans un BaseContainer c'est ça :

    Code PHP:
    # CINEMA 4D Python Documentation 
    def iter_container(bc):
        for 
    indexvalue in bc:
            print 
    "Index: %i, Value: %s" % (indexstr(value)) 

  7. #7
    Timide
    Date d'inscription
    novembre 2012
    C4D version
    R13 Studio
    OS
    windows 7
    Messages
    41
    J'ai un petit problème,
    j'arrive a modifier tous les réglages de vray via python (merci xs_yann) sauf 2 paramétrés
    impossible de modifier le chemin et le nom des fichiers d'irradiance map et de ligtcahe ?

    j'utilise le code suivant pour modifier le nom de l'irradiance maps:

    bc[c4d.VP_VRAYBRIDGE_IRRADAUTOSAVEFILE2])= "c://irradiance_map"

    je n'ai pas d'erreur mais je n'ai rien dans l'interface graphique (sous cinema 4D r14)
    et j'ai bien "c://irradiance_map" quand je fait

    pathname = bc[c4d.VP_VRAYBRIDGE_IRRADAUTOSAVEFILE2]
    print pathname

    je ne comprend pas ?

    Par avance merci

  8. #8
    Gourou Avatar de César Vonc
    Date d'inscription
    avril 2006
    C4D version
    Autre
    OS
    Windows 10
    Messages
    2 483
    Ça ressemble au même problème insoluble qu'avec le chemin des Xref, hélas.

    Essaie néanmoins avec :

    bc.SetData(c4d.VP_VRAYBRIDGE_IRRADAUTOSAVEFILE2, "c://irradiance_map")

    On ne sait jamais.

  9. #9
    Timide
    Date d'inscription
    novembre 2012
    C4D version
    R13 Studio
    OS
    windows 7
    Messages
    41
    merci César
    malheureusement cela ne marche toujour pas,
    je viens de faire la mise a jour vers la version r14.041 mais pas de changement
    Il y a un vrai bug (soit de cinema 4d ou de vray)

    on peut piloter l’interface graphique en python dans c4d ?
    car via l'interface graphique cela marche très bien, l'idée est d'avoir le focus sur la fenêtre puis sur le champs voulu
    ou l'on indique le chemin et le nom du fichier. (j'ai fait une fonction comme cela pour corriger un bug sous 3ds max, ca marche impec !)

    merci

Discussions similaires

  1. Connaitre et modifier le GI mode en python
    Par phobos34 dans le forum Programmation
    Réponses: 6
    Dernier message: 15/12/2012, 00h27
  2. Pré réglages IES
    Par MisterWhite dans le forum Nouveaux membres
    Réponses: 9
    Dernier message: 07/11/2010, 17h10
  3. des réglages vray
    Par STALHBERGER dans le forum V-Ray
    Réponses: 120
    Dernier message: 21/02/2008, 17h01
  4. DÉPLACÉ: des réglages vray
    Par GaazMaster dans le forum Nouveaux membres
    Réponses: 0
    Dernier message: 16/01/2008, 00h59
  5. Réglages SLA
    Par p62dok dans le forum Textures
    Réponses: 2
    Dernier message: 18/10/2002, 22h08

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