Ça faisait longtemps mais un truc m'agace profondément, c'est l'incrémentation des objets dans C4D.
Créez une caméra avec cible.
La caméra s'appelle "caméra" et la cible "caméra cible.1"
Débile.
Pourquoi la caméra ne s'appelle pas "caméra.1" pour être en concordance avec le numéro de la cible.
Créez une prise.
La 1ère prise s'appelle "Nouvelle prise"
Créez une 2e prise.
La 2e prise s'appelle "Nouvelle prise.1"
Là aussi, c'est complètement débile.
Et les objets, pour tout, c'est pareil : Le 1er objet n'a pas de numéro mais le 2e s'appelle "objet.1"
On passe son temps à renommer les choses, c'est à la longue vraiment pénible.
Messieurs les développeurs, avant de vous lancer dans le module de la mort qui tue, pourriez-vous nous modifier cette toute petite chose qui rendrait service à tout le monde ?
Tout ce que j'écris est à prendre au 15e degré. Car comme dit le proverbe chinois : Quand le dragon d'or, le ragondin ; voilà qui devrait faire taire les critiques et me mettre à l'abri d'attaques frontales.
Bien d'accord (et il y a pas mal d'autres petits trucs énervants, par exemple dans les filtres)...
oui c'est une sacrée perte de temps à la longue c'est clair.
le relink de texture c'est assez énervant dans le genre aussi
Oui, tout à fait d'accord. C'est ch**** à la longue avec une perte de temps en conséquence
My Blog □ Accepter une possibilité, c'est lui permettre de se réaliser ...
Oui, surtout qu'en plus si tu prend la peine de renommer l'objet que tu va dupliquer en "objet.1", il va quand meme te recreer un objet "objet". Ce qui fait que ton objet n° 3 sera nommé "objet.2".
Un dev te dirait que c'est normal car il compte à partir de zéro, l'objet "objet" est le numéro 0, et "objet.1" est le numéro 1.
Vraiment cette race de gens fait n'imp !
Tiens essaie ça :
Code:import c4d def listeur(obj, dico): while obj : objs = [obj] for o in objs : nom = o.GetName() tab = nom.split('.') nomPur = nom if len(tab) > 1 : fin = tab.pop() if fin.isdigit() or fin is '' : nomPur = '.'.join(tab) if not nomPur in dico : dico[nomPur] = [o] else : dico[nomPur].append(o) objs.extend(o.GetChildren()) obj = obj.GetNext() def main(): dico = {} objs = doc.GetActiveObjects(c4d.GETACTIVEOBJECTFLAGS_0) if not objs : objs = [doc.GetFirstObject()] for obj in objs : listeur(obj, dico) doc.StartUndo() for nom, tab in dico.iteritems() : for i, obj in enumerate(tab) : nomNouv = nom + '.' + str(i + 1) doc.AddUndo(c4d.UNDOTYPE_CHANGE_SMALL, obj) obj.SetName(nomNouv) doc.EndUndo() c4d.EventAdd() if __name__=='__main__': main()
Ah ben oui, tout de suite les gros moyens
mais je sais pas si c'est du a la version (suis en R17), mais ça modifie tous les nom de ce qui est en dessous du ou des objets selectionnés dans l'OM.
Oui, ça modifie tous les noms de la scène si aucun n'est sélectionné, ou celui + ses enfants sélectionné.
Tu voudrais plutôt que ça modifie que les cube si on sélectionne un cube, par exemple ?
Euh, en fait si ta scène est déja pleine d'objet tu veux pas trop modifier les autres.
Mais c'est vrai que c'est le genre de "petite" fonctionnalité qui t’amène vite dans des complications.
Si on a deja une serie d'objet numeroté est ce qu'on veut la suite ou est ce qu'on demarre a 1 ?
Si il y a une hiererarchie ; 1er niveau ou tous les niveaux ?
Si on est dans une hierarchie et qu'il y a plusieurs type d'objets, est ce qu'on fait abstraction du type ou pas ?
en fait je crois que le plus simple serait uniquement la selection et en partant du numero de l'objet selectionné.
comme ca on renomme d'ou on veut que ca demarre et ca reste simple.
Faut voir ce qu'en pense les autres mécontents du dessus
PS : au fait pour moi ca modifie bien tout ce qui est sous l'objet sélectionné, y compris ceux qui ne sont pas dans la hierarchie et qui ne sont pas sélectionné.
Dernière modification par Floc ; 16/05/2018 à 01h50.