Derniers sujets
» Images drôlespar Mimi Aujourd'hui à 18:43
» lanterne bois
par Chrisrei Aujourd'hui à 16:25
» Histoires drôles
par Mimi Ven 17 Mai 2024 - 22:32
» radio phonola steampunk
par Chrisrei Ven 17 Mai 2024 - 13:58
» meule à aiguiser de rémouleur
par Chrisrei Sam 11 Mai 2024 - 18:28
» porte d entrée
par Chrisrei Lun 6 Mai 2024 - 15:59
» hachoir à viande
par Chrisrei Ven 3 Mai 2024 - 7:44
» poste tsf Oceanic albatros
par Chrisrei Mar 30 Avr 2024 - 17:09
» lampes steampunk
par Mimi Dim 21 Avr 2024 - 20:32
» Panneau mural style gothic vintage
par Mimi Ven 19 Avr 2024 - 23:18
» ancien tambour indien
par Mimi Sam 13 Avr 2024 - 17:06
» Puit
par Chrisrei Jeu 4 Avr 2024 - 8:22
» ornements
par Mimi Sam 30 Mar 2024 - 16:47
» ouvrage de charpente, construction a ossature bois
par Mimi Jeu 28 Mar 2024 - 22:48
» un ancien moulin à eau
par Chrisrei Mar 26 Mar 2024 - 8:09
» berlinerhand 1895
par Chrisrei Jeu 14 Mar 2024 - 14:38
» horloge de gare
par spline4d Mer 13 Mar 2024 - 5:10
» engrenages
par spline4d Jeu 7 Mar 2024 - 9:29
» caisse enregistreuse
par Chrisrei Mar 5 Mar 2024 - 18:55
» boite a bijoux (pour les filles)
par Mimi Dim 3 Mar 2024 - 16:40
» coffre pirate
par Chrisrei Mar 27 Fév 2024 - 10:17
» pistolet à silicone
par Chrisrei Ven 23 Fév 2024 - 18:43
» escabeau bois
par Chrisrei Sam 17 Fév 2024 - 14:15
» mod 2024 suite
par Chrisrei Mar 13 Fév 2024 - 14:51
» modé 2024
par Mimi Dim 7 Jan 2024 - 17:21
Rechercher
ajouter/retirer _hide dans zone de limite des textures
5 participants
Graff4Graph :: Tutos :: C4D :: Python
Page 1 sur 3
Page 1 sur 3 • 1, 2, 3
ajouter/retirer _hide dans zone de limite des textures
Ce n'est pas un tuto vidéo mais j'ai vu la petite astuce de Pouzolles et je me suis dit pfiooou ça doit être chiant d'ajouter et ensuite retirer un _x à tout les tags de texture surtout quand il y en a beaucoup genre :
alors comment faire... ah bah, oui... avec un script en python bien sur ^_^
donc voilàdeux scripts un script en python un pour ajouter un texte _hide automatiquement dans le champ "Limiter à la selection" sur toute les textures qui ont une limite de selection et si il y a déjà le _hide le script va le retirer, le code du script est documenté..
bref place au code en python le lien vers le pastebin :
http://pastebin.com/SEm5ZM5R
le script qui switch donc entre les texture affiché ou pas
ce script doit être mis dans le gestionnaire de script qui permet également de lui assigner une icone et de l'ajouter à l'interface il faut bien respecter les indentations (qui ne sont pas des tabulations mais des espaces) sinon ça ne fonctionnera pas...
il peux y avoir des bugs je n'ai pas tous tester mais logiquement ça fonctionne ça devrai cacher les textures ou les afficher, j'ai mis plein de commentaire dans le code et c'est probablement perfectible ^_^
j'ai encore mis le script à jour en un seul script qui fait ce que faisait les deux précédent
une petite icone pour le script :
si vous trouvez un bug ou si vous trouvez une amélioration partagez ^_^
évidement cela ne fonctionne pas sur les objets paramétrique vue que l'on ne peux pas mettre de limite de sélection aux textures sur les objets paramétrique, ça ne fonctionne que sur les objets édités
alors comment faire... ah bah, oui... avec un script en python bien sur ^_^
donc voilà
bref place au code en python le lien vers le pastebin :
http://pastebin.com/SEm5ZM5R
le script qui switch donc entre les texture affiché ou pas
- Code:
import c4d
from c4d import gui
def main():
# on met dans op l'objet de la scène qui est séléctionné
op = doc.GetActiveObject()
# si il n'y a pas d'objet de selectionné on ne fait rien c'est à dire le script retourne False
if op is None:
return False
# on met dans une variable tag le premier tag qui est sur l'objet op c'est à dire celui qui
# est sélectionné
tag = op.GetFirstTag()
# on commence une boucle de type while
# donc pour chaque tag
while tag:
# si le tag est du type Ttexture c'est à dire si c'est un tag de texture
if tag.CheckType(c4d.Ttexture):
# on met dans une variable nomdutag le nom du tag que l'on trouve avec
# c4d.TEXTURETAG_RESTRICTION (on utilise la console pour connaitre cela)
nomdutag = tag[c4d.TEXTURETAG_RESTRICTION]
# si les 5 dernière lettre su nom du tag de selection sont _hide
if nomdutag[-5:] == "_hide":
# on retire le _hide à la fin du nom de la séléction
tag[c4d.TEXTURETAG_RESTRICTION] = str(tag[c4d.TEXTURETAG_RESTRICTION]).decode("utf-8").encode("latin-1")[0:-5]
# et on vérifie si la limite est "None"
if tag[c4d.TEXTURETAG_RESTRICTION] == "None":
tag[c4d.TEXTURETAG_RESTRICTION] = ""
#sinon
else:
# on ajoute le _hide à la fin du nom de la selection
tag[c4d.TEXTURETAG_RESTRICTION] = str(tag[c4d.TEXTURETAG_RESTRICTION]).decode("utf-8").encode("latin-1") + "_hide"
# puis on passe au tag suivant sur la ligne avec la commande GetNext()
tag = tag.GetNext()
# une fois tout les tags vu on utilise la commande EventAdd pour ajouter un évènement
c4d.EventAdd()
#enfin on retourne true
return True
if __name__=='__main__':
main()
ce script doit être mis dans le gestionnaire de script qui permet également de lui assigner une icone et de l'ajouter à l'interface il faut bien respecter les indentations (qui ne sont pas des tabulations mais des espaces) sinon ça ne fonctionnera pas...
il peux y avoir des bugs je n'ai pas tous tester mais logiquement ça fonctionne ça devrai cacher les textures ou les afficher, j'ai mis plein de commentaire dans le code et c'est probablement perfectible ^_^
j'ai encore mis le script à jour en un seul script qui fait ce que faisait les deux précédent
une petite icone pour le script :
si vous trouvez un bug ou si vous trouvez une amélioration partagez ^_^
évidement cela ne fonctionne pas sur les objets paramétrique vue que l'on ne peux pas mettre de limite de sélection aux textures sur les objets paramétrique, ça ne fonctionne que sur les objets édités
Dernière édition par KamiGeek le Lun 28 Juil 2014 - 20:05, édité 7 fois
ludovic- Messages : 1072
Date d'inscription : 01/07/2014
Re: ajouter/retirer _hide dans zone de limite des textures
Yes...merci Kami... je reste perplexe face a ce type de chose... Python, pour moi, c'est un serpent qui me glisse entre les doigt, que je n'attrappe jamais..., je suis mauvais chasseur..
_________________
"tenter l'impossible c'est lui donner une chance d'exister"
Re: ajouter/retirer _hide dans zone de limite des textures
joe care a écrit:Yes...merci Kami... je reste perplexe face a ce type de chose... Python, pour moi, c'est un serpent qui me glisse entre les doigt, que je n'attrappe jamais..., je suis mauvais chasseur..
heu!!!...tu n'est pas le seul :study:
Re: ajouter/retirer _hide dans zone de limite des textures
j'ai mis à jour les deux scripts pour éviter de foirer les textures si l'on cache des textures déjà caché ou si l'on affiche des textures qui ne sont pas cachées...
Re: ajouter/retirer _hide dans zone de limite des textures
et une vidéo pour montrer le script en fonctionnement et comment le mettre en place :
Re: ajouter/retirer _hide dans zone de limite des textures
elle a de sacré argument quand même ton personnage :lol!:
pour revenir a l'orange...une question m'interpelle?
as tu étais traumatisé par Casimir étant petit? :lol!:
sinon merci beaucoup pour ce script que je vais tester immédiatement!
pour revenir a l'orange...une question m'interpelle?
as tu étais traumatisé par Casimir étant petit? :lol!:
sinon merci beaucoup pour ce script que je vais tester immédiatement!
Re: ajouter/retirer _hide dans zone de limite des textures
je viens de tester et tous suivis a la lettre...et désolé..ca ne fonctionnes pas chez moi :scratch:
Re: ajouter/retirer _hide dans zone de limite des textures
Génial, merci pour le partage, ça peut toujours servir
Re: ajouter/retirer _hide dans zone de limite des textures
MrRuru a écrit:je viens de tester et tous suivis a la lettre...et désolé..ca ne fonctionnes pas chez moi :scratch:
je regarderai demain ce qui peut poser problème ^_^
Re: ajouter/retirer _hide dans zone de limite des textures
KamiGeek a écrit:MrRuru a écrit:je viens de tester et tous suivis a la lettre...et désolé..ca ne fonctionnes pas chez moi :scratch:
je regarderai demain ce qui peut poser problème ^_^
je me pose la question!!est ce que pour utiliser ton script je dois avoir l'OpenGL de cocher?
moi je l'avais retirer a cause des bugs de C4D.
Re: ajouter/retirer _hide dans zone de limite des textures
non non il n'y a pas besoin de l'OpenGL justement ce script est pour ceux qui ont l'OpenGL de désactivé ^_^
alors le script ne fonctionne pas sur les objets de type primitive donc pour tout les objets paramétrique ça ne fonctionne pas comme je l'ai dit dans le post principal, ensuite il est TRÈS important de respecter l'indentation du code et de prendre le code en intégralité (il n'y a pas de tabulation dans le code les indentation sont faite avec des espaces)
il y a 49 lignes de code donc vérifie que tu as bien tout le script sinon ça ne marchera pas
si ça ne fonctionne toujours pas ouvre la console dans le menu Script > Console... et fait une capture écran de ce qui est écrit dedans que je sache quel erreur le script te renvoi ^_^
alors le script ne fonctionne pas sur les objets de type primitive donc pour tout les objets paramétrique ça ne fonctionne pas comme je l'ai dit dans le post principal, ensuite il est TRÈS important de respecter l'indentation du code et de prendre le code en intégralité (il n'y a pas de tabulation dans le code les indentation sont faite avec des espaces)
il y a 49 lignes de code donc vérifie que tu as bien tout le script sinon ça ne marchera pas
si ça ne fonctionne toujours pas ouvre la console dans le menu Script > Console... et fait une capture écran de ce qui est écrit dedans que je sache quel erreur le script te renvoi ^_^
Page 1 sur 3 • 1, 2, 3
Sujets similaires
» Shotcut : ajouter plusieurs textes sur une vidéo
» [google sketchup gimp] ajouter un masque de calque d’arrière plan et le modifier
» Bug de textures?
» Textures
» les textures de C4D
» [google sketchup gimp] ajouter un masque de calque d’arrière plan et le modifier
» Bug de textures?
» Textures
» les textures de C4D
Graff4Graph :: Tutos :: C4D :: Python
Page 1 sur 3
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|