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

Discussion: Déformateur - Une instance pour plusieurs objets

  1. #1
    Gourou Avatar de César Vonc
    Date d'inscription
    avril 2006
    C4D version
    Autre
    OS
    Windows 10
    Messages
    2 483

    Déformateur - Une instance pour plusieurs objets

    Salut,

    Je suis en train de faire un nouveau déformateur, mais je rencontre un problème lorsque celui-ci affecte plusieurs objets.


    Dans ce cas-ci, seule une instance du déformateur (ObjectData) est créée et sa méthode ModifyObject est utilisée autant de fois qu'il y a d'objets à déformer.

    Normal, oui, mais comment faire lorsqu'on a besoin de sauvegarder du cache pour chaque objet ?

    Je me suis fait un tableau avec les GUID des objets comme clef, mais ils sont pas réellement uniques, pour une raison que j'ignore, du coup ce n'est pas fiable.


    Je pourrais utiliser un TagData à la place, qui est réellement propre à un objet, mais je trouve ça moins pratique dans mon cas.

    Certains déformateurs de C4D arrivent bien à sauvegarder du cache pour chaque objet. Savez-vous comment font-ils ?
    Dernière modification par César Vonc ; 19/07/2016 à 11h09.

  2. #2
    Pilier Avatar de gr4ph0s
    Date d'inscription
    mai 2013
    C4D version
    R16 Studio
    OS
    win 7 X64
    Messages
    964
    Tu peux faire un hyperfile avec toute les donnees du caches. J'avais fait sa pour faire un modifier mograph avant. Sa permet de cacher uniquement les modifer qu'on veux.
    Et apres te suffit de store lhyperfile dans le basecontainer de l'objet.
    SDK Specialist
    MAXON Computer GmbH

  3. #3
    Gourou Avatar de César Vonc
    Date d'inscription
    avril 2006
    C4D version
    Autre
    OS
    Windows 10
    Messages
    2 483
    Je vois l'idée, mais comment tu vires ensuite l'HyperFile du BaseContainer de l'objet lorsque tu supprimes le déformateur ?

    Remarque, dans le cas d'un déformateur, l'objet renvoyé n'est pas le vrai mais un cache, donc on s'en fout à la limite s'il est pollué... ?


    Édit : Apparemment je ne peux pas vraiment modifier le BaseContainer d'un cache, enfin si mais il n'est pas conservé à l'image suivante de l'animation.
    Dernière modification par César Vonc ; 19/07/2016 à 12h22.

  4. #4
    Pilier Avatar de gr4ph0s
    Date d'inscription
    mai 2013
    C4D version
    R16 Studio
    OS
    win 7 X64
    Messages
    964
    Si c'est pour de l'anim moi j'avais fait comme ceci au début (avant de me rendre contre du problème des hyperFile dont je parle plus tard dans ce post).
    J'avais donc le BaseContainer de mon objet mograph, avec mon ID. Dans ce BC l'index 0 contenais le nombre de frame en cache. Puis l'index 1 l'HyperFile de la frame0, l'index 2 l'hyperFile de la frame1 et ainsi de suite.

    Sinon tu peux faire la même structure en récupérant un UID (Unique ID) de ton cloneur. Puis store ça dans une variable global au lieu de passé par des BaseContainer et HyperFile. De plus si mes souvenir sont bon c'est ce que j'ai du finir par faire car on ne peux pas storer une une liste dans des hyperFiles, et tu ne peux pas serializer des vector/matrice donc t'es obligé de storer ça élément par élément et donc quand tu veux avoir toute la liste t'es obliger de recréer une liste, donc pas le plus optimisé

    Du coup ça ferais un truc dans le genre globalData => UID => Frame => Data(liste de point je présume)
    Après pour la suppression te suffit de check tout les mesh dans tes UID et si l'un d'entre eux n'a pas le déformeur alors tu supprimes l'entrée.

    J'espère que j'ai été clair.

    PS : pour récupéré un UID de mémoire, j'avais fait un BaseObject.GetGUID(). Car y'a bien la fonction add_Unique_IP mais vu que n'importe quel autre plugin peux le modifier j'avou que je comprend pas bien l’intérêt.
    Dernière modification par gr4ph0s ; 19/07/2016 à 16h03.
    SDK Specialist
    MAXON Computer GmbH

  5. #5
    Gourou Avatar de César Vonc
    Date d'inscription
    avril 2006
    C4D version
    Autre
    OS
    Windows 10
    Messages
    2 483
    Oulà, un HyperFile par image, c'est un peu cra-cra, non ? : p

    J'ai bien tenté par GUID ou UniqueIP, mais comme je l'ai dit dans mon premier message, le GUID me renvoie deux fois la même valeur pour le cache de deux objets différents... du coup ça ne marche pas bien.

Discussions similaires

  1. [Question] Plusieurs objets sur la même map UV
    Par Slyback dans le forum Nouveaux membres
    Réponses: 3
    Dernier message: 25/04/2013, 10h12
  2. [Résolu] Outils déplacement pour plusieurs objets simultanément
    Par Tumla dans le forum Nouveaux membres
    Réponses: 3
    Dernier message: 13/06/2012, 20h45
  3. Influence sur plusieurs objets?
    Par lilfalzar dans le forum Character animation
    Réponses: 5
    Dernier message: 17/02/2009, 23h27
  4. comment grouper plusieurs objets pour les placer dans le meme boleen
    Par cloclo779 dans le forum Nouveaux membres
    Réponses: 6
    Dernier message: 02/10/2006, 20h40
  5. couper plusieurs objets...
    Par souk dans le forum Modélisation
    Réponses: 4
    Dernier message: 21/03/2005, 17h00

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