Vai al contenuto
Ax station

[SOLVED] - Pulsante Transform to Zero in Custom Attribute

Recommended Posts

Ciao ragazzi, come si intuisce dal titolo ho bisogno di mettere un pulsante nel modificatore Custom Attribute di un rig che attivi la funzione Transform to Zero per resettare la posizione. so già che si può trascinare dal menu customize sulla tool bar, ma ho bisogno di trascinarlo in quel modificatore, possibilmente senza l'utilizzo di script. Grazie in anticipo

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Il 13/1/2017 at 13:13 , zatta 3d ha scritto:

Ciao, non aggiungere discussioni identiche, ho già cancellato le altre, lascio solo questa.

Chiedo scusa, è stato un errore di aggiornamento pagina. Non succederà più

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Il 13/1/2017 at 15:05 , Michele71 ha scritto:

Nel modello del rig aggiungi un modificatore Attribute Holder e lo selezioni. Poi con Custom Attribute aggiungi li il pulsante...

Scusami forse mi sono spiegato male, so bene come funziona un attribute holder e la possibilità di inserire pulsanti, spinner, slider ecc tramite il custom attribute. quello che non so fare è, una volta creato il pulsante, come collegarlo al fatto che premendolo, l'oggetto torna alla posizione ZERO TRANSFORM...

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

@Ax station

Allora, un pulsante vero e proprio inteso come tale, nel Custom Attribute non può essere creato; un checkbutton si, ma non un classico pulsante. Questo perche il custom attribute viene collegato con gli oggetti (e altro) tramite operazioni di tipo vero/falso, stringa e cosi via, mentre si deve avviare una macro per determinare la trasformazione a zero, e quindi non "propriamente" collegabile con il metodo in esame.

 

Per quello che mi riguarda, l'unica via accessibile per creare un qualcosa da te chiesto è l'uso di maxscript (nel limite consentito heheheeh). Quindi di seguito ti posto un veloce e semplice script da me creato, che ti permette di creare un Attribute Holder con un pulsante di "TransformToZero" all'oggetto interessato. Per farlo funzionare, seleziona il character e avvi lo script seguente (nulla di complicato). Ho inserito anche un pulsante che ti cancella, all'occorrenza, l'attribute Holder dall'oggetto.

 

try(
(
		local CAobj
		CAobj = attributes CA
		(
			parameters main rollout:params
				(
				)	
			rollout params "Transform To Zero"
			(
				button rtz "Reset to Zero" tooltip:"Reset the transformation of the object"
				group"Delete Custom Attributes"
				(
				button del "Delete CA"
				)
				on rtz pressed do (macros.run "Animation Tools" "TransformToZero")
				on del pressed do (custAttributes.delete selection[1]  1)
			)
		)
		custAttributes.add selection[1] CAobj
)
)catch()

 

Spero che possa aiutarti...

TransforToZero.rar

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
22 ore fa, Michele71 ha scritto:

@Ax station

Allora, un pulsante vero e proprio inteso come tale, nel Custom Attribute non può essere creato; un checkbutton si, ma non un classico pulsante. Questo perche il custom attribute viene collegato con gli oggetti (e altro) tramite operazioni di tipo vero/falso, stringa e cosi via, mentre si deve avviare una macro per determinare la trasformazione a zero, e quindi non "propriamente" collegabile con il metodo in esame.

 

Per quello che mi riguarda, l'unica via accessibile per creare un qualcosa da te chiesto è l'uso di maxscript (nel limite consentito heheheeh). Quindi di seguito ti posto un veloce e semplice script da me creato, che ti permette di creare un Attribute Holder con un pulsante di "TransformToZero" all'oggetto interessato. Per farlo funzionare, seleziona il character e avvi lo script seguente (nulla di complicato). Ho inserito anche un pulsante che ti cancella, all'occorrenza, l'attribute Holder dall'oggetto.

 


try(
(
		local CAobj
		CAobj = attributes CA
		(
			parameters main rollout:params
				(
				)	
			rollout params "Transform To Zero"
			(
				button rtz "Reset to Zero" tooltip:"Reset the transformation of the object"
				group"Delete Custom Attributes"
				(
				button del "Delete CA"
				)
				on rtz pressed do (macros.run "Animation Tools" "TransformToZero")
				on del pressed do (custAttributes.delete selection[1]  1)
			)
		)
		custAttributes.add selection[1] CAobj
)
)catch()

 

Spero che possa aiutarti...

TransforToZero.rar

Accidenti mi hai addirittura creato uno script, mai incontrato una persona cosi disponibile in un forum. Grazie mille, appena posso ci provo e ti faccio sapere.

Ok l'ho provato, funziona bene, solo che invece di aggiungerlo al custom attribute, me l'ho mette nel livello base dell'oggetto (in questo caso editable spline). anche se lo trascino col custom attribute evidenziato (aperto), va nel livello base e lo aggiunge ai comandi per editare la spline.

Non vorrei approfittare della tua gentilezza, ma mi correggeresti questa cosa? SEMPLICEMENTE CHE LO AGGIUNGE AL MIO CUSTOM ATTRIBUTE SELEZIONATO SENZA CREARNE UNO NUOVO, e se puoi cancellare anche il tasto DELETE CA. Grazie mille.

ah una domanda importante, se io faccio un rig per un cliente, inserisco questo script nel mio 3ds max, poi lo salvo e lo passo al cliente, ma poi il cliente potra utilizzarlo nella sua postazione? Cioè il salvataggio porta con se anche lo script oppure se do il file al cliente gli devo dare anche lo script allegato?


Modificato da Ax station

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Qui la modifica:

try(
(
		local CAobj
		CAobj = attributes CA
		(
			parameters main rollout:params
				(
				)	
			rollout params "Transform To Zero"
			(
				button rtz "Reset to Zero" tooltip:"Reset the transformation of the object"
				on rtz pressed do (macros.run "Animation Tools" "TransformToZero")
			)
		)

		custAttributes.add selection[1].modifiers[1] CAobj
)
)catch()

 

Ora attenzione alla stringa seguente: 

custAttributes.add selection[1].modifiers[1] CAobj

Essa è una forma generica che inserisce il pulsante in QUALSIASI ULTIMO (primo in alto) modificatore presente nello stack. Esso viene determinato dalla linea ".modifiers[1]" dove [1] è appunto l'ultimo modificatore. Quindi, se si vuole determinare il numero del modificatore dove inserire il pulsante, si deve cambiare [1] con [2] per il penultimo, [3] con il terzultimo e cosi via. Ovviamente se hai solamente un "EmptyModifier" (classe per il modificatore Attribute Holder) lasci tutto come ho scritto, altrimenti, modifichi come descritto pocanzi. 

 

Se salvi la scena il pulsante lo trovi li dove l'hai lasciato. Per sicurezza, puoi girare anche lo script.

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Il 20/1/2017 at 19:34 , Michele71 ha scritto:

Qui la modifica:


try(
(
		local CAobj
		CAobj = attributes CA
		(
			parameters main rollout:params
				(
				)	
			rollout params "Transform To Zero"
			(
				button rtz "Reset to Zero" tooltip:"Reset the transformation of the object"
				on rtz pressed do (macros.run "Animation Tools" "TransformToZero")
			)
		)

		custAttributes.add selection[1].modifiers[1] CAobj
)
)catch()

 

Ora attenzione alla stringa seguente: 


custAttributes.add selection[1].modifiers[1] CAobj

Essa è una forma generica che inserisce il pulsante in QUALSIASI ULTIMO (primo in alto) modificatore presente nello stack. Esso viene determinato dalla linea ".modifiers[1]" dove [1] è appunto l'ultimo modificatore. Quindi, se si vuole determinare il numero del modificatore dove inserire il pulsante, si deve cambiare [1] con [2] per il penultimo, [3] con il terzultimo e cosi via. Ovviamente se hai solamente un "EmptyModifier" (classe per il modificatore Attribute Holder) lasci tutto come ho scritto, altrimenti, modifichi come descritto pocanzi. 

 

Se salvi la scena il pulsante lo trovi li dove l'hai lasciato. Per sicurezza, puoi girare anche lo script.

Scusami se non ti ho ringraziato prima per il tuo aiuto, ho avuto qualche problema in questi giorni. Ad ogni modo sei stato veramente gentile. E' tutto perfetto. a Presto

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Ciao, questo è un messaggio generato automaticamente per avvertire tutti che questa discussione è stata etichettata come "risolta".

Grazie per la collaborazione

lo staff di Treddi.com

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora

  • Navigazione recente   0 utenti

    Non ci sono utenti registrati da visualizzare in questa pagina.

×