Jump to content
TChadail

Lancer automatiquement un script ?

Recommended Posts

Salut à tous,

 

A chaque démarrage de max je lance manuellement un petit script pour augmenter la résolution d'affichage de Nitrous et à la longue c'est assez saoulant: il doit bien exister un moyen de lancer automatiquement ce script au démarrage de max non ? Quelqu'un sait comment faire ?

Share this post


Link to post
Share on other sites

Merci Sliver, maintenant j'arrive à lancer automatiquement le script au démarrage de max, j'ai simplement déplacé le script .ms dans le dossier Startup. Donc c'est mieux mais: à chaque fois que le script se lance ça ouvre une fenêtre de dialogue, je dois alors taper au clavier la valeur désirée puis cliquer sur le bouton "Apply" et enfin fermer la fenêtre de dialogue. Ce que je voudrais tu l'auras compris c'est de faire tout ça de façon automatique. Je pense qu'il faudrait éditer le script et le modifier de manière à ce qu'il n'attende plus d'action de la part de l'utilisateur mais qu'il choisisse lui même la valeur à affecter sans même créer de fenêtre de dialogue. Faudra que je regarde ça quand j'aurai un moment: j'ai déjà programmé il y a longtemps mais c'était pas en Maxscript. RolandB a recommandé une vidéo qui m'a l'air toute indiquée:

Share this post


Link to post
Share on other sites

Merci pour ton aide Fouinard mais ça marche pas .. J'ai modifié la ligne en question: la résolution Nitrous reste au minimum et la fenêtre de dialogue continue de monter au démarrage de max .. icon_neutral.gif

Share this post


Link to post
Share on other sites

Un petit coup d'aide Maxscript:

 

"

Bitmap Management for Nitrous Viewports:

By default, Nitrous viewports load texture bitmaps at their full size. You can set a limit to the size that is loaded into memory. Enter one of the following MAXScript calls in the MAXScript Mini Listener:

 

  • NitrousGraphicsManager.SetTextureSizeLimit 512 true

    Limits bitmap size to 512 x 512 pixels.

  • NitrousGraphicsManager.SetTextureSizeLimit 1024 true

    Limits bitmap size to 1024 x 1024 pixels.

 

You can also set these limits in the 3dsmax.ini file. In the section headed "[Nitrous]", add one of these pairs of lines:

ViewportTextureSizeLimitEnabled=1ViewportTextureSizeLimit=512

or

ViewportTextureSizeLimitEnabled=1ViewportTextureSizeLimit=1024

"

 

D'après ce que je comprends, nitrous ne limite pas la taille des texture par défault.

En réalité, si tu regarde dans 3dsmax.ini (C:\Users\CurrentUser\AppData\Local\Autodesk\3dsMax\2013 - 64bit\ENU), partie [Nitrous], on peut voir que le paramètre GFXTexSize =512 (en tout cas pour moi..). A mon avis, c'est la limitation actuelle de Nitrous.

En gros, pour ne pas trop t'embêter, je te conseille d'éditer ce .ini en mettant la valeur comme tu veux (1024, 2048, etc...)

Fait tout de même un backup du .ini avant d'y effectuer n'importe quelle modification, puisque ce sont tous les paramètres auquel accède Max...

 

Have fun

Share this post


Link to post
Share on other sites

Merci SugaR,

 

J'ai trouvé la section Nitrous dans le .ini:

 

[Nitrous]
GFXTexSize=2048
Progressive=1
ViewportTextureSizeLimitEnabled=1
ViewportTextureSizeLimit=9000
ViewportBackgroundTextureSizeLimitEnabled=1
ViewportBackgroundTextureSizeLimit=1024

 

J'ai commencé par mettre GFXTexSize à 8192 au lieu de 2048 (8192 semble être le maximum supporté par le script "Nitrous Set Texture Size Limit"): ça n'a rien changé.

Ensuite j'ai mis ViewportTextureSizeLimitEnabled et ViewportBackgroundTextureSizeLimitEnabled à 0 pour faire sauter la limitation, toujours sans résultat.

Donc j'ai remis ViewportTextureSizeLimitEnabled et ViewportBackgroundTextureSizeLimitEnabled à 1 mais j'ai mis 8192 en valeurs de ViewportTextureSizeLimit et ViewportBackgroundTextureSizeLimit. Même problème ...

 

... Beuh ...

Share this post


Link to post
Share on other sites

Sinon tu peux peut-être essayé la première technique:

By default, Nitrous viewports load texture bitmaps at their full size. You can set a limit to the size that is loaded into memory. Enter one of the following MAXScript calls in the MAXScript Mini Listener:

 

  • NitrousGraphicsManager.SetTextureSizeLimit 512 true

    Limits bitmap size to 512 x 512 pixels.

  • NitrousGraphicsManager.SetTextureSizeLimit 1024 true

    Limits bitmap size to 1024 x 1024 pixels.

En gros, tout en bas a gauche de max tu a le Mini Listener de Max, tu entre la ligne de commande (NitrousGraphicsManager.SetTextureSizeLimit 2048 true )

dans la partie blanche (en dessous de la rose) puis Entrée pour l'exécuter. Et voir ce que ça donne, dans 3ds Max et peut-être aussi dans la partie Nitrous de 3dsmax.ini...

 

Autre méthode, automatiser le script que tu utilise déjà, avec par exemple un deuxième script qui se chargera de faire ce que tu ferais normalement à la main, ou modifier directement le script pour qu'il s'exécute de façon autonome, sauf que normalement c'est effectivement la ligne que Fouinard t'a dis pour modifier le paramètre...

 

Si ça ne donne toujours rien, la ça va commencer à être plus dur, donc limite ce que je te conseillerais c'est de réinitialiser 3ds max afin de remettre tous les paramètres par défault, sauf si tu l'a déjà bien personnaliser et que tu ne veux pas perdre tout ce que tu as déjà fait jusque la... La c'est à toi de voir...

 

Bon courage smile.png

Share this post


Link to post
Share on other sites

Merci pour ton aide SugaR,

 

J'ai entré: NitrousGraphicsManager.SetTextureSizeLimit 8192 true dans le Mini Listener, j'ai validé et ça a marché, mes textures apparaissaient bien à leur pleine résolution, et le fichier 3dsmax.ini a été modifié (logique), voilà ce que donne la partie NItrous:

 

[Nitrous]
GFXTexSize=2048
Progressive=1
ViewportTextureSizeLimitEnabled=1
ViewportTextureSizeLimit=8192
ViewportBackgroundTextureSizeLimitEnabled=1
ViewportBackgroundTextureSizeLimit=1024

 

Par contre, là où je comprends plus: quand je ferme puis relance 3dsmax, le réglage Nitrous est perdu, mes textures sont reviennent en basse résolution. Je me suis dit que quelque chose doit réintialiser le .ini à chaque lancement de max mais non: le .ini n'a pas bougé entre temps, ViewportTextureSizeLimit est bien resté à 8192 ... icon_eek.gif  C'est incompréhensible ...

 

Faire un 2ème script qui lance le 1er, je sais pas faire, de toute façon c'est pas le problème, il se lance déjà automatiquement, le problème qu'à chaque fois je dois écrire à la main 8192 au lieu de 128 par défaut dans la fenêtre de dialogue ... à la longue c'est gavant ...

Le truc vraiment bizarre c'est que modifier le .ini ne semble avoir aucun effet ... Que ce soit par ta méthode avec le mini Listener ou avec celle de Fouinard en écrivant directement dans le .ini ...

 

Après, pour ce qui est de réinitialiser max à ses défauts d'origine, pourquoi pas, je veux bien essayer, j'avais jamais touché à  ce fichier .ini auparavant donc à mon avis il a pas du beaucoup changer, par contre j'ai pas mal trafiqué mon interface, que je sauve régulièrement avec la commande Save UI scheme pour sauvegarder les raccourcis clavier, les menus, les couleurs etc ... Je me demande si je vais perdre tous ces réglages si je réinitialise max ou pas ... Je me souviens aussi avoir fait un Custom UI and Defaults Switcher et appliqué le preset MAX.vray pour avoir automatiquement des VRayMtl dans l'éditeur de matériaux quand max démarre. Donc j'hésite parce que j'ai pas envie de perdre tous ces réglages. Et d'ailleurs pour réinitialiser max tu fais comment ? Revert to Startup Layout ?

Share this post


Link to post
Share on other sites

Avec plaisir pour l'aide (qui manifestement ne te sert pas à grand chose xd)

 

Bon franchement si tu as déjà bien modifié ton UI et tout, j'avoue qu'a ta place je ne voudrai pas tout perdre...

Sinon apparement la technique pour restaurer max au parametres d'origine, c'est simplement de supprimer ce 3dsmax.ini (avec un tit backup avant quand même)... Sachant que 3ds Max va lui-même refaire ce.ini au démarage.

 

Le probleme dans cette histoire c'est qu'en y repensant, je me suis dis que dans tous les cas y' avait un truc pas normal, a savoir qu'en fait tu ne devrait pas à avoir à définir ta valeur a chaque démarage de max, que ce soit avec le script que tu utilisé jusque là ou avec n'importe quelle autre méthode. Le fait est qu'apparement ton Max ne charge pas les bons paramètres au démarage...

 

Du coup je sèche un peu la...

Share this post


Link to post
Share on other sites

Juste un truc pour vérifier, ouvre ton éditeur Maxscript ainsi que le listener (Maxscript => new script et Maxscript listener) et dans l'éditeur de maxscript tu tape ca:

 

val = getMAXIniFile()
getINISetting val "Nitrous" "ViewportTextureSizeLimit"

 

Puis Tools => evaluate all

 

Normalement, dans le listener tu devrais voir deux ligne apparaitre, la première indiquant l'emplacement de ton fichier 3dsmax.ini , la deuxième la valeur de ViewportTextureSizeLimit.

Si tu as bien 8192, je reprends ce que je disais juste avant, je sèche xd

 

Sinon si tu a une autre valeur, tu retourne dans maxscript et a la place de la seconde ligne (getINISetting val "Nitrous" "ViewportTextureSizeLimit") tu met ceci:

setINISetting val "Nitrous" "ViewportTextureSizeLimit" "8192"

puis, Tools => Evaluate all, ce qui aura pour conséquence de définir la valeur de ViewportTextureSizeLimit à 8192.

 

L'avantage de cette méthode ce que getMAXIniFile() te donnera normalement a coup sur le fichier 3dsmax.ini actuelement utilisé par ton max en cours...

 

Si encore une fois ca ne marche toujours pas, je te propose cordialement d'aller acheter deux cordes, une pour toi et une pour moi, et on se pendra joyeusement en coeur :)

 

Bon courage

Share this post


Link to post
Share on other sites

J'ai fait ce que tu m'as dit. Verdict: le .ini est bien celui que je m'échine à modifier depuis le début sans résultat et la valeur retournée par "ViewportTextureSizeLimit" est bien 8192 pourtant j'ai toujours ce problème de map en basse résolution.

Donc, en regardant plus attentivement, je me suis rendu compte que certaines map s'affichent correctement (en haute resolution), et d'autres non ... Celles qui s'affichent bien sont des petites textures genre 250 x 1000 pixels, celles qui posent problème font 8000 x 456. Le seul moyen que j'ai trouvé jusqu'à présent pour toutes les afficher correctement c'est de lancer le script "Nitrous Set Texture Size Limit" et d'entrer 9000, automatiquement ramené à 8192, dans le champ Nitrous Viewports Map Size > User Defined. Après, je recharge mes map dans le viewport et là c'est nickel.

Conclusion: le problème ne vient pas de ViewportTextureSizeLimit qui est bien à 8192 au lancement de max mais d'un autre paramètre ... Lequel ? (là faut imaginer la musique de XFiles) ... J'ai passé GFXTexSize à 8192 aussi dans le .ini, ça change rien icon_eek.gif

... les cordes: oui c'est une idée ... y'a le le gaz aussi ... smile.png

Share this post


Link to post
Share on other sites

Bon bah désolé, au final j'ai pas pu t'être d'une grande utilité...
En même temps, le problème à l'air assez répandu si tu regarde un peu sur google donc bon...
 
Si le script que tu utilise déjà fonctionne bien, tu peux peut-être essayé ceci:

Maxscript => New Script, dans lequel tu met ceci :

 

NitrousGraphicsManager.SetTextureSizeLimit 8192 true

 

et tu l'enregistre directement dans Scripts\startup

c'est la ligne de code qui permet normalement de definir ce que tu veux...

 

Puis si ça marche toujours pas, bah optons pour le gaz effectivement, au moins c'est indolore biggrin.png

 

Share this post


Link to post
Share on other sites

... puisqu'on y est, je continue sur l'optimisation de l'UI de max smile.png

SugaR, tu saurais comment faire pour que les grilles dans les viewports soient inactives par défaut ? Parce que, rebelotte, à chaque nouveau fichier que je créé sous max, les grilles sont là dans tous les viewports et je dois les désactiver à la main ... J'ai regardé dans 3dsmax.ini, pas de paramètre concernant l'affichage ou non des grilles, ni dans les préférences de max, rien ... Une idée ?

Share this post


Link to post
Share on other sites

... de même, quand je créé un VRaySun, j'aimerais changer les paramètres par défaut

appliqués par VRay (nb subdivs, intensity etc ...)

Quelqu'un sait comment faire ? Je n'ai pas trouvé de fichier VRay.ini ...

Share this post


Link to post
Share on other sites

Alors pour cacher toutes les grilles au démarrage de max, tu créés un nouveau script avec comme ligne de code ceci:

 

viewport.setGridVisibility #all false

 

que tu place dans scripts/startup (comme pour régler la résolution des textures)

 

Tu peux certainement aussi simplement rajouter cette ligne de code au précédant script, ce qui du coup te donnerai quelque chose comme ca:

 

NitrousGraphicsManager.SetTextureSizeLimit 8192 true

viewport.setGridVisibility #all false

 

Si la deuxième méthode marche, je te conseille celle-ci, ça évitera la multiplication des scripts au démarrage de max.

Par contre si tu ne veux pas désactiver toutes les grilles, mais juste une ( ou plusieurs mais pas toutes) faudra que je creuse un peu plus :)

 

Au niveau des paramètres par défaut du VraySun, pas la moindre idée pour le moment, je cherche ça et j'essaie de te trouver une solution :)

Share this post


Link to post
Share on other sites

un peu plus tricky celui la pour le coup, puisqu'on est obligé de le faire sur chaque viewport (paye ta logique pour le coup...)

 

bref, voici ce qu'il faut pour désactiver les selection brackets dans tous les viewports:

 

for i=1 to viewport.numViews do (
    disp = NitrousGraphicsManager.GetViewportSetting i
    disp.ShowSelectionBracketsEnabled = false
)

 

Toujours pareil, soit vous faites un nouveau script que vous placez dans scripts/startup, soit vous pouvez aussi l'ajouter à un script déjà existant. Si on reprend par exemple le script pour desactiver les grilles dans les viewports, ca donnera ca:

 

viewport.setGridVisibility #all false

 

for i=1 to viewport.numViews do (
    disp = NitrousGraphicsManager.GetViewportSetting i
    disp.ShowSelectionBracketsEnabled = false
)

 

Et en bonus, parce que je sens qu'on va pas tarder à me le demander aussi (et parce que ça c'est moi que ça gave surtout), voici comment démarrer directement en mode shaded plutot que realistic

 

for i=1 to viewport.numViews do (
    disp = NitrousGraphicsManager.GetViewportSetting i
    disp.VisualStyleMode = #Shaded

)

 

Si vous voulez désactiver les selection brackets et passer directement en shaded, vous utilisez les deux en même temps, ce qui nous donne ca:

 

for i=1 to viewport.numViews do (
    disp = NitrousGraphicsManager.GetViewportSetting i
    disp.ShowSelectionBracketsEnabled = false

    disp.VisualStyleMode = #Shaded

)

 

Voilou smile.png

Share this post


Link to post
Share on other sites

Ah oui tout de même petite précision, pour les selection brackets et le mode shaded plutôt que realistic, pour le coup il faut obligatoirement utilisé Nitrous, puisque ces lignes de code sont destinées à Nitrous.

 

Je ne sais pas si il est possible de le faire avec les autres drivers, si certains en ont besoin, je regarderais ça :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...