Exécution de scripts à partir de la ligne de commande

3ds Max permet d'entrer directement des commandes MAXScript sur la ligne de commande. Lorsque vous lancez 3ds Max à partir d'une ligne de commande DOS, vous pouvez exécuter un script de lancement MAXScript ou Python spécifié. Ceci peut s'avérer utile pour des tâches telles que les rendus par lots automatiques.

Cette fonctionnalité utilise le commutateur de ligne de commande -U existant qui indique qu'un utilitaire doit être exécuté au démarrage de 3ds Max. Le commutateur -U autorise un commutateur d'argument supplémentaire et optionnel que MAXScript et Python interprète comme le nom du script de lancement à exécuter. La casse (majuscule/minuscule) de MAXScript doit être conforme à l'exemple suivant (il faut au préalable rendre courant le répertoire de 3ds Max) :

3dsmax -U MAXScript rendercams.ms

Cet exemple de ligne de commande lance le fichier exécutable de 3ds Max, démarre MAXScript, puis exécute le script de lancement rendercams.ms.

L'exemple de script de lancement suivant charge deux scènes, effectue le rendu des images à partir de chaque caméra contenue dans ces images, puis quitte 3ds Max :

loadMaxFile "foo.max"
for c in cameras do render camera:c outputfile:("foo_"+c.name+".bmp")
loadMaxFile "baz.max"
for c in cameras do render camera:c outputfile:("baz_"+c.name+".bmp")
quitMax #noPrompt

Cet exemple utilise la méthode quitMax() pour quitter 3ds Max une fois le script terminé. Il n'est pas nécessaire que les scripts de lancement soient des scripts par lots comme dans cet exemple. Par contre, vous pouvez utiliser des scripts de lancement pour paramétrer 3ds Max pour une utilisation interactive, par exemple, en chargeant le fichier d'une scène et en configurant certaines options d'interface utilisateur.

Les scripts de démarrage normaux, comme startup.ms et les scripts figurant dans le répertoire \scripts\startup, sont exécutés avant le script de lancement. Vous pouvez également ajouter, à des fichiers de scène individuels, des scripts qui s'exécutent automatiquement à l'ouverture ou à la fermeture de la scène indiquée ou au moment de certains autres événements.

Remarque : Les scripts de démarrage -U MAXScript indiqués sur la ligne de commande sont lancés après 3ds Max et l'exécution des scripts standard et de démarrage.

Commutateurs de ligne de commande MAXScript et Python

Les commutateurs suivants sont spécifiquement dédiés aux fichiers et fonctions MAXScript et Python.

Commutateur Effet
-mi Lance 3ds Max en mode restreint, mais ne vous permet en aucun cas d'ouvrir la fenêtre pour un usage interactif.
-mxs Ce commutateur est quasiment identique à -U MAXScript file.ms tout en évitant de devoir utiliser le fichier .ms. Vous pouvez suivre le commutateur avec les commandes MAXScript.
-silent Identique à la commande MAXScript setSilentMode. Ce commutateur supprime toutes les boîtes de dialogue IU de MAXScript et 3ds Max pour que les scripts par lots indiqués par la commande –U ne soient pas interrompus.
-u MAXScript <nom_fichier> Ouvre le fichier MAXScript indiqué.
-u PythonHost <nom_fichier> Ouvre un fichier de script Python spécifié.

Exemples de syntaxe préconisé :

3dsmax.exe -silent -mxs "for c in cameras do render c outputFile:(c.name + \".bmp\") vfb:off " file.max

Cet exemple démarre 3ds Max en mode silencieux, ouvre file.max et effectue le rendu de la vue de chaque caméra dans un fichier BMP sans afficher la fenêtre image rendue. Dans le script, les chaînes entre guillemets doivent être précédées de caractères d'échappements.

3dsmax.exe -q -mi -U MAXScript \\server1\folder\myScript.ms \\server2\folder\file.max

Cet exemple supprime l'écran d'accueil au démarrage de 3ds Max en mode restreint, ouvre file.max à partir d'un serveur réseau et exécute le fichier myScript.ms détecté sur un autre serveur. Si myScript.ms contient les mêmes commandes que le premier exemple, ces deux exemples permettent d'obtenir le même résultat.

3dsmax.exe -q -silent -mip -mxs  "for c in cameras do render c outputFile:(c.name + \".bmp\") vfb:on; quitMAX() #nopromptfile.max" file.max

Le dernier exemple supprime l'écran d'accueil au démarrage de 3ds Max en mode silencieux et, dans un état réduit de façon permanente, ouvre file.max, effectue le rendu de la vue de chaque caméra dans un fichier BMP affichant la fenêtre image rendu, puis quitte 3ds Max.