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

Discussion: Python pour faire cligner les yeux

  1. #1
    Dépendant
    Date d'inscription
    décembre 2005
    Messages
    303

    Python pour faire cligner les yeux

    Bonjour,

    J'essaie de faire cligner des yeux de mon personnage de façon répétitive, c'est à dire toute les 4 secondes par exemple.
    J'aimerais savoir s'il existe un moyen de le faire en python en appelant le morphing de pose...
    Est-ce que quelqu'un pourrait m'aiguiller sur la façon de faire ?

    Merci d'avance !

    Depuis un état de morphing "yeux fermés" j'ai ce bout de code :

    import c4d

    def main():
    def tool():
    return plugins.FindPlugin(doc.GetAction(), c4d.PLUGINTYPE_TOOL)

    def object(i=0):
    return doc.GetActiveObjects(c4d.GETACTIVEOBJECTFLAGS_CHIL DREN | c4d.GETACTIVEOBJECTFLAGS_SELECTIONORDER)

    def tag():
    return doc.GetActiveTag()

    def renderdata():
    return doc.GetActiveRenderData()

    def prefs(id):
    return plugins.FindPlugin(id, c4d.PLUGINTYPE_PREFS)

    for i in xrange(len(tag())):
    doc.AddUndo(c4d.UNDOTYPE_CHANGE_SMALL, tag()[i])
    tag()[0][4000,1501] = 0
    tag()[i].Message(c4d.MSG_UPDATE);

    if __name__ == '__main__':
    main()
    c4d.EventAdd()

  2. #2
    Gourou Avatar de valkaari
    Date d'inscription
    mai 2009
    C4D version
    Autre
    OS
    OSX / windows
    Messages
    2 949
    salut darsanha,

    tu peux utiliser la balise code ou PHP pour coller ton code c'est plus facile pour prendre la suite

    j'ai essayé de faire un truc, ça marche mais c'est parfois bizarre.
    j'ai utilisé un tag python pour ça
    scène créer avec la R21.115
    morph_eyes.zip


    et voici le code commenté :
    Code PHP:
    import c4d
    #Welcome to the world of Python
    import random




    anim 
    2


    def main
    ():
        
    # on stock anim sur une variable globale pour garder les valeurs de frame en frame
        
    global anim
        
    # vitesse d'animation du morph
        
    speedAnim =.5
        
        
    # on récupère l'objet sur lequel est le tag python
        
    obj op.GetObject()
        
    # on recherche un tag morph
        
    mt obj.GetTag(c4d.Tposemorph)
        if 
    mt is None:
            
    raise TypeError("couldn't find any morph tag")
        
        
    # on récupère la frame actuelle
        
    actualFrame doc.GetTime().GetFrame(doc.GetFps())
        
        
    # on génère un random pour déclancher l'animation
        
    random.seed(actualFrame)
        
    stepFrame int(random.random() * 30 1#+1 pour éviter les divitions par 0


        # on test le déclanchement avec un modulo % et on clamp la sortir entre 0 et 1
        
    declanchement =int(1-c4d.utils.ClampValueactualFrame  stepFrame,,1))


        
    # si il y a déclanchement et que l'anim n'est pas en route on déclanche l'anim'
        
    if declanchement and anim <=0:
            
    anim 2
            
        sn
    cs c4d.utils.SinCos(actualFrame speedAnim)
        
    weight 1.0 c4d.utils.ClampValue(cs,0,1)
        
    # on rechercher sur tous les morph si certain on le nom "eye" présent
        
    for i in xrange(mt.GetMorphCount()):
            
    morph mt.GetMorph(i)
            if 
    "eye" in morph.GetName():
                
    # on calcul l'id du morph '
                
    morphID morph.GetID()* c4d.ID_CA_POSE_ANIMATE_CNT c4d.ID_CA_POSE_ANIMATE_OFFSET c4d.ID_CA_POSE_ANIMATE_STRENGTH
                
    # s'il y a animation, 
                
    if anim 0:
                    
    # on change la valeur du morph
                    
    mt[c4d.ID_CA_POSE_ANIMATE_DATAmorphID] = weight
                    
    # et on réduit la valeur d'anim ce qui l'arrêtera à la fin
                    
    anim anim weight
    if __name__ == '__main__':
         
    main()
         
    c4d.EventAdd() 
    voilà.

    Ton pseudo serait pas Pexel sur plugincafé ?
    Dernière modification par valkaari ; 21/02/2020 à 15h38.

  3. #3
    Pilier Avatar de iolofato
    Date d'inscription
    juillet 2003
    C4D version
    R24 Souscription
    OS
    10.14.6
    Messages
    1 157
    Billets dans le blog
    1
    Question bête mais pourquoi pas en Xpresso ?

  4. #4
    Dépendant
    Date d'inscription
    décembre 2005
    Messages
    303

    Smile

    Salut Valkaari,

    Je n'ai pas de pseudo et de compte sur plugincafé.

    Génial ton bout de code, c'est très intéressant et super tes commentaires pour comprendre les actions.
    J'aimerais trouver le temps de me mettre au Python mais j'y arrive pas... peu être un de ces quatre...
    Par contre c'est effectivement un peu hasardeux, n'y aurait il pas une solution pour rendre le mouvement plus limpide, juste aller/retour avec possibilité de choisir une vitesse ? Mais bon je ne veux pas t'embêter avec ça... peut être qu'en Xpresso c'est plus simple en effet ?

    Pour répondre à Iolofato, pas en Xpresso... simplement par ce que je n'y suis pas arrivé et puis que Python m'intéresse pas mal en fait.
    Je suis arrivé à faire cligner l'oeil mais je n'arrive pas à boucler un aller / retour, c'est sans doute tout con mais je suis pas un pro de Xpresso...
    Peut être que c'est mieux de faire ça en Xpresso ? peux être pourrais tu me dire comment boucler le retour ?

    Un grand merci pour avoir pris le temps de me répondre !

    Une petite capture vidéo en mp4 (j'ai filmé l'écran avec mon téléphone).
    C'est juste pour montrer ce que j'aimerais faire : https://www.dropbox.com/s/azhyt5yrae...rso3d.mp4?dl=0
    Une capture pour mon petit Xpresso (qui ne boucle pas) :
    Miniatures attachées Miniatures attachées xpresso-eyes-blink.png  

  5. #5
    Pilier Avatar de iolofato
    Date d'inscription
    juillet 2003
    C4D version
    R24 Souscription
    OS
    10.14.6
    Messages
    1 157
    Billets dans le blog
    1
    Citation Envoyé par darsanha Voir le message
    Salut Valkaari,


    Je suis arrivé à faire cligner l'oeil mais je n'arrive pas à boucler un aller / retour, c'est sans doute tout con mais je suis pas un pro de Xpresso...
    Peut être que c'est mieux de faire ça en Xpresso ? peux être pourrais tu me dire comment boucler le retour ? :

    pfff non désolé même pas je suis une vraie tanche en Xpresso, il me faut un temps fou pour parvenir à mes fins à chaque fois, mais c'est certain que c'est possible. Tu pourrais utiliser par exemple du bruit pour rendre le clignotement aléatoire ou un random. Sinon en cherchant "Xpresso looping animation" tu trouves des trucs… (pas le temps de chercher par contre :p)

  6. #6
    Dépendant
    Date d'inscription
    décembre 2005
    Messages
    303
    Salut,

    Ça y est, j'ai réussi avec Xpresso !
    J'avais déjà vue cette vidéo mais je l'ai re-regardé et cette fois j'y suis arrivé.
    Donc pour ceux que ça intéresse voici une capture d'écran.
    Il Faut utiliser un "Mappage d'intervale", cocher "Modulo" et "Utiliser la spline", pour répéter le mouvement et jouer avec un type de spline en bas pour peauffiner le mouvement.

    Merci pour votre aide !
    C'est bien dommage que l'on ne puisse envoyer que de si petite image sur le site... ça fais une capture d'écran un peu ridicule...
    Miniatures attachées Miniatures attachées xpresso.jpg  
    Dernière modification par darsanha ; 22/02/2020 à 14h07.

  7. #7
    Pilier Avatar de iolofato
    Date d'inscription
    juillet 2003
    C4D version
    R24 Souscription
    OS
    10.14.6
    Messages
    1 157
    Billets dans le blog
    1
    normalement tu devrais pouvoir envoyer des images plus grandes y a pas de raison, là en effet c'est rikiki

  8. #8
    Gourou Avatar de valkaari
    Date d'inscription
    mai 2009
    C4D version
    Autre
    OS
    OSX / windows
    Messages
    2 949
    yop,


    j'avais fait des tuto sur xpresso sinon. Mais je me souviens plus si j'utilisais le modulo et la spline. (9 ans déjà)



Discussions similaires

  1. [Problème]: Pour faire de jolis yeux. Merci.
    Par Thibault M dans le forum Textures
    Réponses: 2
    Dernier message: 08/03/2007, 23h34
  2. faire suivre une cible aux yeux
    Par norris dans le forum Animation
    Réponses: 12
    Dernier message: 23/04/2006, 22h00
  3. Pour le plaisir des yeux
    Par Stéphane HENRY dans le forum Le saloon
    Réponses: 0
    Dernier message: 14/11/2005, 22h05
  4. Juste pour les yeux
    Par m4oo dans le forum Le saloon
    Réponses: 4
    Dernier message: 14/06/2004, 03h04
  5. De jolis yeux pour la V6
    Par Aurety dans le forum Animation
    Réponses: 7
    Dernier message: 19/09/2003, 09h32

Les tags pour cette discussion

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