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

Discussion: Chronomètrage

  1. #1
    Squatteur Avatar de Condor34
    Date d'inscription
    mars 2013
    C4D version
    R16 Studio
    OS
    Windows 7/64
    Messages
    173

    Chronomètrage

    Bonjour à tous.

    A partir d'un top (basculement d'un booléen), je souhaite réaliser une action de rotation d'un axe en un temps donné. En fait, obtenir une vitesse angulaire.

    Je pensais pouvoir programmer ceci en xpresso, mais je me heurte au problème suivant : tous les nœuds de contrôle de temps que j'ai pu trouver sont relatif au nombre de Frames.

    Or, je ne souhaite pas lancer une animation, au sens timeline. Juste pouvoir déclencher un évènement en fonction du temps réel écoulé.

    Savez-vous si l'on peut arriver à ce résultat par cette voie ?

  2. #2
    Gourou Avatar de clemz
    Date d'inscription
    février 2009
    C4D version
    R15 Studio
    OS
    windaube x64
    Messages
    2 165
    tu peux freezer la valeur du temps au moment du déclenchement (booléen ) et soustraire cette valeur freezée à la valeur de temps à l'instant du déclenchement (enfin l'inverse Tréel - Tfreeze , ce qui offset le temps et le met à zéro au départ de ton action )


    ici un petit exemple , lance la lecture et cliques sur le booléen 'Action' dans la vue ou sur le null object : il démarre le comptage quand tu l'actives et stop et freeze le comptage quand tu le repasses à 0 . ce booléen peut-être remplacé par une action d'un objet par ex .
    Fichiers attachés Fichiers attachés
    Dernière modification par clemz ; 01/03/2017 à 11h43.

  3. #3
    Squatteur Avatar de Condor34
    Date d'inscription
    mars 2013
    C4D version
    R16 Studio
    OS
    Windows 7/64
    Messages
    173
    Merci Clemz.

    Malheureusement il faut lancer l'animation pour avoir ce temps. C'est bien le problème que j'essaie de contourner.

    Je souhaite capturer le temps système (l'heure en fait), au moment du basculement de l'état du booléen, puis faire qu'une rotation angulaire se réalise en un temps donné (environ 70° en 4 secondes).

    Mais je ne suis pas encore en phase d'animation telle qu'on peut le comprendre en lançant une timeline.

  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
    Dans ce cas tu peux remplacer le noeud Time de l'Xpresso de clemz par un noeud Python (avec un port nommé 'Time' en output) :

    Code PHP:
    import time

    def main
    ():
        global 
    Time
        Time 
    time.time() 


    La valeur qui est en sortie est un timestamp qui représente le nombre de secondes écoulées depuis Epoch (1 janvier 1970 00:00).
    En faisant une soustraction, comme clemz l'explique, tu obtiens le nombre de secondes écoulées entre tes deux mesures.

  5. #5
    Squatteur Avatar de Condor34
    Date d'inscription
    mars 2013
    C4D version
    R16 Studio
    OS
    Windows 7/64
    Messages
    173
    Je suis confronté à deux problèmes :

    1) Erreur de format
    voici mon code de test :
    Code:
    import c4d, time
    #Welcome to the world of Python
    
    
    def main():
        global Time
        Time = time.time()
        print "temps = ",Time
    Voici mes nodes de test : la sortie (Time) et l'entrée du résultat sont au format "temps".


    et voici le message d'erreur :

    temps = 1488376591.41
    TypeError: Node Python.Time expected c4d.BaseTime, not float

    Time est bien calculé, mais pas moyen de l'exploiter en sortie, que ce soit un format temps ou réel. J'imagine que c4d.Basetime est le format traduit par "temps" en version FR.


    2) Fonctionnement
    Si je lance l'animation (F8) ce code est calculé en permanence. J'imagine à chaque frame.

    Si je ne lance pas l'animation, ce code n'est calculé qu'une fois, donc pas de chronométrage possible. Comment réactualiser le code sans passer par le lancement d'une timeline ?

    Merci pour votre aide à tous les deux.

  6. #6
    Gourou Avatar de clemz
    Date d'inscription
    février 2009
    C4D version
    R15 Studio
    OS
    windaube x64
    Messages
    2 165
    tu peux nous en dire plus sur ce que tu veux exactement faire stp ? pas un chrono du coup ? un bouton on/off qui fasse tourner un objet avec les secondes qui passent , sans avoir à lire la timeline ?

  7. #7
    Squatteur Avatar de Condor34
    Date d'inscription
    mars 2013
    C4D version
    R16 Studio
    OS
    Windows 7/64
    Messages
    173
    Exactement !

    Il s'agit en fait de séquencer la rentrée d'un train d'atterrissage.
    A l'appui sur le bouton de sortie/rentrée du train, le train pivote puis, sur la fin de course, les trappes se ferment.

    Comme je l'écrivais ci-avant, pour les trappes, c'est une rotation d'environ 70° pendant 4 secondes pour passer de la position ouverte à fermée (ou vice-versa bien sûr).



    Quelque-chose de relativement simple en fait. Mais ce qui me semble simple, n'est pas toujours si évident.
    Dernière modification par Condor34 ; 01/03/2017 à 16h36.

  8. #8
    Gourou Avatar de clemz
    Date d'inscription
    février 2009
    C4D version
    R15 Studio
    OS
    windaube x64
    Messages
    2 165
    hmm ok ,

    voila une version un peu comme celle de XSYann mais en coffee parceque je suis nul .

    mais bon je ne comprends pas bien l'intérêt derrière car ton animation sera saccadée car elle jouera 1 image par seconde .. au lieu de 25/30 en temps normal .
    voilou : donc tu as un booléen 'Action' qui met en marche ou arrête le décompte ; un booléen 'reset' qui lui remet à 0 quand tu relances 'Action' ; et une slider de contrôle de ta vitesse angulaire en degrés (donc à chaque seconde , ton objet tourne de cette valeur angulaire )
    Fichiers attachés Fichiers attachés

  9. #9
    Squatteur Avatar de Condor34
    Date d'inscription
    mars 2013
    C4D version
    R16 Studio
    OS
    Windows 7/64
    Messages
    173
    Merci Clemz pour toute cette aide.

    En analysant ce matin avec un peu plus de recul, mon approche est mauvaise. Je souhaitais changer du slider, mais visiblement ça n'est pas dans l'esprit du logiciel.

    Je vais donc revoir cette action dans un sens plus conventionnel, mais ce travail n'est pas perdu, j'ai une autre application de ce principe en vue. Et puis ça me permet de tester et d'apprendre.

    Merci encore.

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