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

Discussion: random hiérarchie

  1. #1
    Pilier Avatar de Ogier
    Date d'inscription
    juillet 2002
    C4D version
    R13 Studio
    OS
    seven pro
    Messages
    1 019

    random hiérarchie

    Je viens de me rendre compte que cela fait deux ans que je n'ai pas posté sur le forum nom de nom !
    Donc déjà, Salutations aux Anciens et bonjour aux nouveaux!

    Bon forcément le déclencheur de ce comeback est un problème technique... un truc tout bête mais sur lequel je tombe de temps en temps et comme toujours en speed, je me dépatouille manuellement sans prendre le temps de poster sur le forum alors qu'il existe forcément une astuce toute bête, ou 3 lignes de code pour automatiser le truc (toujours aussi nul en programmation, je préviens )
    J'ai cherché un peu partout sur le net, mais rien.. ou je n'ai pas posé la bonne question à Maître G.

    Bref... j'ai 750 objets dans une hiérarchie. Ils sont positionnés précisément sur une grille, ils ont tous la même taille et tous une texture différente (pour ceux a qui on demande de faire un mograph avec 750 noms en mouvement, astuce : à partir de votre liste de noms, faite un tableau avec le nombre de colonnes et de lignes nécessaires, coller le dans Illustrator par exemple, exporter ça dans une super grande texture, coller ça sur un objet plan avec le même nombre de colonnes et de lignes, tag Texture Adaptative, convertissez en objet éditable, déconnexion des polygones, puis Maillage->conversion->groupe de polygones en objets.. vous avez vos 750 étiquettes avec vos noms).

    Bref(2)... ma question : toutes mes étiquettes Noms sont bien rangées par ordre alphabétique = ID d'objet, est ce que quelqu'un aurait une astuce pour foutre le barda aléatoirement dans cette belle hiérarchie ?

    Le but, c'est de pouvoir utiliser certains effets mograph qui se basent sur l'ordre de la hiérarchie systématiquement mais sans être contraint à ce fichu ordre et sans risquer d'avoir des doublons...
    une astuce, un plug ? quelques lignes de programmation?

    Merci d'avance !!!

    Ogier

  2. #2
    Gourou Avatar de bricoman
    Date d'inscription
    février 2005
    C4D version
    R13 Studio
    OS
    un crâne et des phalanges,...pour l'essentiel
    Messages
    2 503
    Ola , Avé Ogier

    ceci pourrait-il t'aider ? matmix.c4d
    C'est çui qui dit qui l'est ! ...non, peut-être ?! Le Bric©neum est ouvert : à vos risques et périls !

  3. #3
    Pilier Avatar de oli_d
    Date d'inscription
    avril 2004
    C4D version
    Autre
    OS
    MacOS X
    Messages
    707
    Salut Ogier,

    Si j'ai bien compris, tu veux mélanger les enfants d'un objet. Ce code devrait le faire (à coller dans le gestionnaire de scripts, attention, j'ai pas mis de undo)

    Le principe (si tu veux te mettre au python):
    1. on importe la biblio random -> import random
    2. on récupère la liste des enfants ->lst = op.GetChildren()
    3. on mélange avec shuffle de la biblio random -> random.shuffle(lst)
    4. on fait une boucle et on met les objets en enfant dans l'ordre du désordre -> for o in lst: o.InsertUnder(op)
    5. on rafraichit -> c4d.EventAdd()


    Code:
    import c4d
    import random
    
    def main():
        lst = op.GetChildren()
        random.shuffle(lst)
        for o in lst: o.InsertUnder(op)
        c4d.EventAdd()
    
    if __name__=='__main__':
        main()
    EDIT : j'ai oublié de dire qu'il faut sélectionner l'objet parent avant de lancer le script !
    Dernière modification par oli_d ; 29/09/2014 à 14h27.

  4. #4
    Pilier Avatar de Ogier
    Date d'inscription
    juillet 2002
    C4D version
    R13 Studio
    OS
    seven pro
    Messages
    1 019
    Merci pour vos réponses ! Et merci aussi pour les explications Oli_D, je ne te promet pas de faire des scripts dans les jours à venir, mais ça me permettra au moins d'avoir un début de compréhension..

    Alors après test... avec vos deux scripts, j'ai exactement les outils dont j'ai besoin, c'est parfait !

    Avec ton script Bricoman, je peux casser la régularité alphabétique de ma liste de nom en mélangeant les textures sur les objets enfants, et avec le tien Oli_D, et bien je peux mélanger toute la hiérarchie dans un cloneur "en place" pour faire apparaitre mes 750 éléments aléatoirement en animant le nombre d'objets générés

    Donc, et bien, 750 fois merci parce que mon exemple est bien réel et qu'il aurait fallut que je me mélange tout ça à la louche, et j'ajouterai encore 280 merci car j'ai une seconde liste du genre à faire après !

    Ogier

  5. #5
    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,

    Tu n'as jamais eu de soucis en re-insérant des objets non supprimés oli_d ?

    Il n'y a pas beaucoup de précision dans le SDK, si ce n'est une note dans la doc de GeListNode.InsertUnderLast(obj).

    Note: You must make sure that the insertion is sane, for example you cannot insert a key into the object list. It is also necessary to call Remove() first if the object is already inserted into another list.
    Je sais qu'en COFFEE par exemple, si tu fais ça (genre "op->InsertUnder(op->GetNext());" ), C4D plante.

    En python, ça a l'air de fonctionner (depuis la R15 il y a même une exception lancée si tu fais op->InsertUnder(op)), mais ça me parait assez incertain quand même.

    Reste à savoir si la note du SDK est là juste par copie du SDK C++ et qu'en python "Remove()" est appelé automatiquement ou s'il y a vraiment un risque...

  6. #6
    Pilier Avatar de oli_d
    Date d'inscription
    avril 2004
    C4D version
    Autre
    OS
    MacOS X
    Messages
    707
    C'est vrai que suite au COFFEE je faisais systématiquement un Remove(), mais depuis que j'ai constaté que ça marchait sans je ne le fais plus et je n'ai jamais eu de soucis. Ça simplifie les chose, mais peut-être que c'est très mal ?

Discussions similaires

  1. [Problème] Effecteur Random
    Par dixstreect dans le forum Nouveaux membres
    Réponses: 5
    Dernier message: 02/07/2013, 12h27
  2. Random rotation par incrément de 90° ?
    Par shtl dans le forum Modélisation
    Réponses: 10
    Dernier message: 18/11/2009, 08h39
  3. MOGRAPH-RANDOM/DELAY
    Par aeko dans le forum Nouveaux membres
    Réponses: 5
    Dernier message: 31/08/2006, 15h48
  4. Un vrai random...
    Par Guedinouff dans le forum Programmation
    Réponses: 7
    Dernier message: 25/05/2005, 18h56
  5. Random ----> Noise
    Par Thierry HL dans le forum Xpresso
    Réponses: 6
    Dernier message: 12/09/2004, 17h09

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