Aller au contenu

Leaderboard


Popular Content

Showing content with the highest reputation on 05/30/2020 in all areas

  1. 1 point
    @Nicolas Caplat A première vue c'est un poil plus complexe que ça pour myObjs = selection as array Le problème ici, c'est que tu veux choper la selection actuelle, hors la selection actuelle doit être le contrôler principal et pas les objets à modifier, à cause de: CustAttributes.add $.modifiers[1] SPRING_Control_Custom_attribute" donc ce qu'il va se passer ici, c'est que tu va stocker dans ton array 'myObjs' l'objet sur lequel tu ajoutes le custom attrib il faut donc changer l'une des deux lignes de codes dans ce cas, soit hard coder la manière dont tu récupères 'myObjs' (en utilisant par exemple les noms des objets), soit hard coder l'objet sur lequel tu veux ajouter le custom attrib. Et à mon avis aucune des deux méthodes d'ailleurs n'est à conseiller, le hard coding étant à bannir . Imagine un simple changement de nom, et faut reprendre le script, la misère... Pour ce genre de cas, ce qu'il vaut mieux faire à mon avis, c'est avoir dans la def du custom attrib une partie parameters avec soit un '#nodeTab' soit un '#maxObjectTab' SPRING_Control_Custom_attribute = attributes custom_Attributes ( parameters SpringControlParms rollout:SpringControlRollout ( nodeArray type:#nodeTab tabSizeVariable:true tabSize:0 ) rollout SpringControlRollout "Spring Control" (...) ) ou encore mieux en utilisant des weaks references SPRING_Control_Custom_attribute = attributes custom_Attributes ( parameters SpringControlParms rollout:SpringControlRollout ( weakRefArray type:#maxObjectTab tabSizeVariable:true tabSize:0 ) rollout SpringControlRollout "Spring Control" (...) ) et avoir par exemple un bouton en plus dans le rollout pour selectionner et stocker les objets à modifier derrière. Et ajouter au passage les deux paramètre type float pour "Mass" et "Drag", ce qui permet au passage d'accéder à tout ça par d'autre moyen, puisque ca devient de vrai parametre du contrôleur ($.modifiers[1].custom_Attributes.Mass via mxs par exemple), entre autres avantages (retenir la valeur actuelle par exemple). Certes ca complexifie le tout, mais bon... J'ai proposé à @Balboza qu'on regarde ça ensemble quand il aura le temps, je te transmettrais le tout si tu es intéressé
  2. 1 point
    Si je comprend bien, à chaque fois que tu sélectionnes ton spring, la valeur affiché du spinner dans le control panel est celle par default ? Si c'est le cas et de tête (je n'ai pas touché à tout ça depuis, pfioouuuu... ? ), @Nicolas Caplat est sur la bonne voie, il faut que tu rajoutes un truc dans ce genre dans la définition de ton rollout: rollout SpringControlRollout "Spring Control" ( spinner spn_Mass "Height" range:[0,2000,500] type:#float spinner spn_Drag "Height" range:[0,10,2] type:#float on SpringControlRollout open do ( spn_Mass.value = $.position.controller.getMass -- je ne connais pas la syntaxe exacte pour ce contrôleur, à vérifier spn_Drag .value = $.position.controller.getDrag -- je ne connais pas la syntaxe exacte pour ce contrôleur, à vérifier ) on spn_Mass changed val do $.position.controller.setMass val on spn_Drag changed val do $.position.controller.setDrag val ) Au passage, je te conseille de lire la doc sur Scripted Plugins ansi que sur Scripted Utilities and Rollouts d'ailleurs, je constate que tu n'a pas de parameters dans ton custom attributes, c'est plutôt important car c'est ce qui permet de rajouter tes propres parametres à un objet, quelque chose du genre: $.myParameter01 $.myParameter02 etc..., le tout link justement avec l'ui dans le rollout, et qui te permet de modifier ces valeurs ailleurs. Pas forcement necessaire en fonction de ce que tu veux faire mais généralement utile. Sinon je te constellerais aussi peut-être de démarrer par quelque chose de plus simple que les custom attributes et les animations controler, qui sont de réel plaie a dev... N'hésite pas à partager une simple scène de test avec les scripts en question si tu veux que je regarde ça plus en détails
×
×
  • Créer...