Vous lisez
Mari : Manipuler les Layers en Python

Qu’est-ce qu’un Layer dans Mari ?

Les Layers de Mari sont assimilables aux calques Photoshop. Ce sont des couches sur lesquelles il est possible de peindre, d’appliquer une texture, d’ajouter un masque,…

Les Layers constituent donc la source de vos textures.

Les Layers sont créés dans ce qui s’appelle un Layer Stack (littéralement: « empilement de couches ») appartenant à un Channel. En effet, chaque Channel contient un empilement différent de différents Layers.

Vous pouvez créer 4 types de Layers:

  • Paintable Layer
  • Adjustment Layer
  • Procedural Layer
  • Group Layer
  • Ainsi que des masques pour ces derniers

Les Layers au sommet de l’empilement priment sur les Layers plus bas.

the-foundry-mari-interface-layers-pannel

Lister les layers du channel courant d’un objet

1
2
3
obj = mari.geo.current() # Objet courant
channel = obj.currentChannel() # Channel courant
layerList = channel.layerList() # Liste des layers

Créer un Layer

1
2
3
4
5
6
7
8
9
10
obj = mari.geo.current() # Objet courant
channel = obj.currentChannel() # Channel courant
# Paintable Layer
newLayer = channel.createPaintableLayer("New Layer Name")
# Adjustment Layer*
newLayer = channel.createAdjustmentLayer("New Layer Name", "Filter/Brightness")
# Procedural Layer*
newLayer = channel.createProceduralLayer("New Layer Name", "Basic/Color")
# Group Layer
newLayer = channel.createGroupLayer("New Layer Name")

*Cf: liste des types de layers d’ajustements et de procédures

Mettre un layer dans un groupe

1
2
3
4
5
6
7
8
9
# Objet courant
obj = mari.geo.current() # Objet courant
# Création du channel
channel = obj.createChannel("Mon Channel", 2048, 2048, 16)
# Création du groupe (group layer) et de son "empilement"
group = channel.createGroupLayer("Mon groupe")
groupStack = group.layerStack()
# Création d'un layer dans le groupe
layer = groupStack.createPaintableLayer("Mon layer")

Changer le mode de fusion d’un layer

1
2
# Avec "value" un int entre 1 et 30*
layer.setBlendMode(value)

*Cf: liste des modes de fusion des layers

Créer un masque sur un layer

1
2
3
4
5
6
# Création du masque
mask = layer.makeMask()
# Création de la couleur du masque
color = mari.Color(0, 0, 0)
for image in mask.imageSets():
image.setUniformColor( color )

Modes de création

  • Reveal all

Le mode Reveal All rempli le masque de blanc.

  • Hide all

Le mode Hide All fait un Fill Color avec du noir.

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