Vous lisez
Mari : Liste et description des Classes de l’API Python

Objectif

Lister l’ensemble des classes de l’API Python pour Mari.

En pratique

Voici la liste des Classes du package Mari obtenu via le petit script ci-dessous.

1
2
import mari
print "\n".join(dir(mari))

On y accède de la façon suivante:

1
2
mari.ClassName
print dir(mari.ClassName) # Pour lister les méthodes associées à la Classe

J’ai également ajouté la description de la doc (2.0v1) pour chacune de ces classes.

ChannelInfoColorFileListFloatSliderGeoEntityImageImageSetIntSliderLayerLayerStackLineEditPalettePtexSettingsVectorN – […] – actionsappcanvasesclockcolorsddiexamplesgeogl_renderhistoryimageslightsmenuspalettespatch_linksprefsprojectionprojectorsprojectsresourcesshelvessystemtoolsutils

Class Description
ChannelInfo Fournit des informations sur un Channel à créer ou importer.
Color Les objets de cette classe contiennent des informations sur une valeur de couleur individuelle.
Tous les canaux sont précisés dans l’intervalle [0, 1]. Ainsi une valeur à 1 correspond à une intensité de 100%.
Les valeurs RGB et HSV/L sont mises à jour automatiquement. Par exemple, si vous définissez une valeur RVB, vous pouvez immédiatement récupérer l’équivalent HSV.
FileList Stocke la liste des fichiers et des répertoires qui peuvent être utilisés pour des valeurs personnalisées.
FloatSlider Fournit un widget de type slider pour nombres à virgule.
GeoEntity Ce sont les mailles géométriques appelés « objets » dans l’interface graphique.
Image Ces objets contiennent des images 2D individuelles.
Vous pouvez accéder aux images, soit depuis un ImageSet soit via l’ImageManager.
Par exemple:

1
2
mari.geo.current().currentImageSet().ImageList()
mari.images.list()
ImageSet Regroupement d’une ou plusieurs images ou texture Ptex, pouvant être manipulé comme un groupe.
Il existe deux types d’images pour un ImageSet:

  • UVs traditionnels
    Chaque patch d’UVs du modèle a une image associée par ImageSet.
  • Ptex
    L’ensemble de l’image sert de conteneur pour les données de pixels Ptex.
    Le concept de patches d’UVs ne s’applique pas.

    Les méthodes liées aux patches entraînent une exceptions.

Les ImageSet peuvent être manipulés comme un tout, ce qui permet d’appliquer les mêmes opérations sur plusieurs images à la fois.
Pour y accéder, on passe par un Layer:

1
layer.imageSet() # Pour les objets de type PaintableLayer
IntSlider Fournit un widget de type slider pour nombres entiers.
Layer Un Layer de Channel est une opération de données d’image pouvant être empilé avec d’autres Layers.
Chaque Layer peut contenir ses propres données (ex: PaintableLayer) qui peuvent être mélangées avec d’autres Layers dans un empilement appelé LayerStack.
Il existe d’autres types de Layers:

  • adjustmentLayer
    Contient des opérations à effectuer sur les Layers en dessous
  • proceduralLayer
    Contient des opérations de modification de l’image du Layer à partir d’un ensemble de paramètres

Chaque Layer peut également contenir un masque.
Plus d’infos
Pour accéder à tous les types de Layers d’un Channel:

1
channel.layerList()
LayerStack Il s’agit de l’interface permettant de créer, de déplacement et de supprimer tout Layer ayant un empilement LayerStack.
Pour cela, il faut passer par les méthodes retournées par LayerStack.

1
layer.makeMaskStack() # Création d'un empilement de masques
LineEdit Fournit un widget de type slider pour nombres entiers (par défaut) ou nombres à virgule.
Palette Les Palettes sont des widgets « encastrables » qui peuvent être déplacés et configurés par l’utilisateur.
Vous pouvez accéder à celles-ci via le PaletteManager.

1
mari.palettes.list()
Ptex Donne accès aux scripts pour les images de type Ptex.
Ptex est un système de mapping de texture développé par Walt Disney Animation Studios pour une meilleure qualité de rendu:

  • Pas besoin de dépliage d’UVs. Ptex applique une texture distincte pour chaque face d’une subdivision ou d’un mesh
  • Le format de fichier Ptex peut stocker efficacement des centaines de milliers d’images de texture dans un seul fichier
  • L’API Ptex fournit un fichier de mis en cache I/O et de filtrage de haute qualité

Plus d’infos

Settings Les utilisateurs peuvent charger et sauvegarder leurs propres paramètres personnalisés au sein de Mari.
VectorN Les objets de cette classe détiennent des coordonnées multidimensionnelles.
Toutes coordonnées représentant des valeurs d’UVs, 3D ou 4D doivent être stockées dans des objets de ce type.
__builtins__
__doc__
__file__
__name__
__package__
__path__
actions Gère la création et la manipulation d’actions Mari.
Celles-ci sont utilisées comme des commandes de menu, et il est possible de leur assigner des raccourcis clavier.
Par défaut, toute action créée en script sera située dans « /Mari/Scripts », mais ce chemin est personnalisable afin d’éviter les conflits.
Mari stocke toutes les actions disponibles dans un arbre, et les actions sont identifiées par leur chemin à l’intérieur de cet arbre.
Par exemple: « /Mari/Tools/TestTool » se réfère à une action appelée « TestTool » faisant partie de la sous catégorie « Tools ».
app Cet objet gère les opérations de base à effectuer sur l’ensemble de l’application.
canvases Cet objet gère la liste des Canvases et Viewports disponibles dans le projet.
clock Contrôles de l’horloge interne de Mari. Permet de contrôler la lecture de l’animation.
Diverses choses peuvent être animées dans Mari, y compris la géométrie, les caméras, et les textures.
Le frame range peut être paramétré et l’animation peut être lancée à l’endroit ou à l’envers. Le comportement en fin d’animation peut lui aussi être personnalisé: arrêt, boucle, rebond.
colors Donne accès aux diverses fonctionnalités liées aux couleurs.
Cela comprend l’attribution et la récupération des couleurs l’avant et arrière plan.
ddi Cette classe permet d’accéder à certaines fonctionnalités du Dynamic Data Interface de Mari.
L’interface dynamique de données, ou DDI, est le système de gestion de données de bas niveau dans Mari. Ce système gère les caches sur disque et en mémoire.
Il est donc possible de ester les performances de Mari sur des systèmes différents. Par exemple en définissant la taille du cache à 1 Go (n’oubliez pas de le reset par après) puis à 4 ou 5Go. Cela garantit que toute la mémoire créé lors de l’essai est sauvegardé et chargé.
Vous devez utiliser un nouveau projet vide pour ce genre de tests.
examples Exemples de scripts Mari.
geo Gère les objets (géométries) du projet.
Mari peut gérer de nombreux objets 3D à la fois. Chaque objet ou entité 3D peut avoir plusieurs représentations géométriques.
Cette interface permet à l’utilisateur d’interroger les listes d’objets, d’en ajouter ou enlever, et d’ainsi mettre en place une scène.
gl_render Gère le module de rendu OpenGL de Mari et les objets associés.
Mari utilise OpenGL pour la 3D et cet objet donne donc accès à au moteur de rendu, permettant notamment a configuration des shaders disponibles mais aussi d’autres paramètres.
Pour les Shaders il faut passer par les méthodes sur les objets GeoEntity.
history Permet d’accéder à l’historique de Mari, et ainsi à l’annulation.
L’historique est uniquement disponible pour le projet courant et sera perdu lors de la fermeture de celui-ci. Il n’est pas possible d’effectuer des opérations lorsque aucun projet n’est ouvert.
images Gère les images disponibles dans l’application.
lights Gère les lumières de la scène.
menus Gère la création et la manipulation des menus.
Les chemins des menus sont tous divisés en trois parties:

  • Le « set », par exemple « MainWindow » pour le menu de la fenêtre principale
  • Le « root », par exemple « File », potentiellement avec un « & » dedans pour la touche de raccourci
  • Le « submenu », un sous-menu optionnel comme « Open », pouvant contenir des caractères « & »

Cette répartition se fait automatiquement par les différentes fonctions de la classe, mais il est nécessaire de fournir au moins un « set » et un « root » pour ajouter une action.
Les éléments d’un chemin de menu doivent être séparés par un slash et tout slash en trop est ignoré.
Ainsi « MainWindow/File » et « /MainWindow/File » sont équivalents.

palettes Gère la création et la manipulation des palettes.
Elles peuvent être déplacées et configurées par l’utilisateur.
patch_links Créer et gérer des groupes d’images liées. Partager leurs contenus d’images sous-jacentes.
Ainsi, si vous peignez sur un Patch lié, tous les autres Patchs liés sont mis à jour.
Actuellement, l’API restreint les liens aux objets Image d’un même ImageSet.
prefs Gère la récupération et la modification des préférences de l’utilisateur.
Mari sépare les préférences en groupes et sous-groupes. Dans la boîte de dialogue de préférence, un groupe est représenté par une « tab », et un sous-groupe par une zone de groupe.
Les groupes de préférences et les préférences sont accessibles d’une manière similaire à une structure de dossiers et de fichiers.
Par exemple, list()  peu retourner (‘Data/’, ‘Scripts/’), et pour appeler leurs sous-groupes list(‘Data ‘).
Toutes les préférences ont un groupe et sous-groupe, donc les valeurs seront toujours accessibles sous la forme:

1
value('Data/Autosave/autosaveInterval')
projection Gère les paramètres de projection du Buffer.
projectors Cet objet gère les objets de projection du projet, y compris leur création et listing.
projects Accès à l’ouverture, la fermeture et la manipulation des projets.
Des informations sur les projets disponibles peuvent être accessible via la méthode list(). Elle renvoie des objets de type ProjetInfo contenant la description des projets qui peuvent être ouverts.
Ces projets seront uniquement disponibles comme objets de type Project une fois ouverts.
resources Donne accès aux chemins des ressources de Mari et a certaines fonctions système.
Les chemins fournis sont accessibles en utilisant un identifiant renvoyé par l’une des fonctions appropriées. Les nouveaux chemins ne peuvent actuellement pas être enregistrés via le script.
La valeur actuelle d’un chemin est accessible de la façon suivante:

1
mari.resources.path(mari.resources.USER_SCRIPTS)

De nombreux chemins peuvent être remplacés par des variables d’environnement qui correspondent à la chaîne de caractère les identifiant. Par exemple, mari.resources.USER_SCRIPTS est paramétré sur la variable d’environnement « MARI_SCRIPT_PATH », et si une variable d’environnement avec ce nom existe au lancement de Mari, sa valeur sera stockée.
Les chemins qui peuvent être modifiés par les utilisateurs auront généralement des identificateurs de chaînes qui commencent par « MARI_ », ce qui rend également les variables d’environnement plus clair.
Par ailleurs, il est possible de savoir si un chemin est modifiable en appelant mari.scripts.setPath (). Si la fonction retourne une exception cela signifie que le chemin n’est pas modifiable par l’utilisateur.

shelves Gère les Shelves disponibles, ou des ensembles de sets.
system Fonctionnalité du système Mari.
tools Fournit l’accès aux divers outils interactifs.
utils Script utils de Mari.


Source: Doc Mari2.0v1

Qu'avez-vous pensé de cet article ?
J'aime
0%
Merci
0%
Pratique
0%
Incomplet
0%
Rien de neuf
0%
A propos de l'auteur
Olivier Schmitt
Photographe professionnel, originaire d'Alsace (France), ancien Directeur Technique sur les films d'animation "Minions", "Moi, Moche et Méchant" et "Le Lorax".
Commentaires
Laisser une réponse

Laisser une réponse