TURNA logo

Automatisation du workflow avec des scripts en Python dans Katana

Introduction à l'automatisation dans Katana

Dans le domaine de la production 3D, l'automatisation des workflows est cruciale pour améliorer l'efficacité et réduire les erreurs humaines. Katana, un logiciel de gestion de rendu, permet aux artistes de tirer parti de scripts Python pour automatiser divers aspects de leur pipeline de production. Dans cet article, nous allons explorer comment vous pouvez utiliser Python pour automatiser vos workflows dans Katana, en passant par des exemples pratiques et des conseils d'optimisation.

Préparation de l'environnement de script

Avant de commencer à écrire des scripts Python pour Katana, il est essentiel de configurer correctement votre environnement de développement. Voici les étapes à suivre :

  • Installation de Katana : Assurez-vous que Katana est installé sur votre machine. Vous aurez besoin d'une version compatible avec les scripts Python.
  • Accès à la console Python : Katana intègre une console Python qui vous permet d'exécuter des commandes directement. Vous pouvez y accéder via le menu Window > Script Editor.
  • Bibliothèques disponibles : Familiarisez-vous avec les bibliothèques Python disponibles dans Katana. Certaines des plus couramment utilisées incluent Katana, NodegraphAPI, et Application.

Écriture de votre premier script

Commençons par écrire un script simple qui crée un nouveau nœud de rendu. Voici un exemple de code :

from Katana import NodegraphAPI

# Créer un nouveau nœud de rendu
renderNode = NodegraphAPI.CreateNode('Render', NodegraphAPI.GetRootNode())

# Définir des propriétés sur le nœud de rendu
renderNode['bg_color'].setValue((0.1, 0.1, 0.1))  # Couleur de fond
renderNode['resolution'].setValue((1920, 1080))  # Résolution

Ce script crée un nœud de rendu avec une couleur de fond gris foncé et une résolution de 1920x1080 pixels. Pour exécuter ce script, copiez-le dans la console Python et appuyez sur Entrée.

Automatisation de la création de nœuds

Une des puissances de l'automatisation avec Python dans Katana réside dans la création de nœuds en masse. Voici comment vous pouvez automatiser la création de plusieurs nœuds :

def create_multiple_render_nodes(num_nodes):
    for i in range(num_nodes):
        renderNode = NodegraphAPI.CreateNode('Render', NodegraphAPI.GetRootNode())
        renderNode['name'].setValue(f'RenderNode_{i + 1}')

# Créer 5 nœuds de rendu
create_multiple_render_nodes(5)

Ce code définit une fonction qui crée un nombre spécifié de nœuds de rendu. Chaque nœud est nommé dynamiquement, ce qui facilite la gestion de nombreux nœuds dans votre projet.

Manipulation des paramètres de nœuds existants

En plus de créer de nouveaux nœuds, vous pouvez également automatiser la modification des paramètres des nœuds existants. Voici un exemple qui modifie les propriétés d'un nœud de rendu spécifique :

def modify_render_node(node_name):
    renderNode = NodegraphAPI.GetNode(node_name)
    if renderNode:
        renderNode['bg_color'].setValue((0.2, 0.2, 0.2))  # Changer la couleur de fond
        renderNode['resolution'].setValue((2560, 1440))  # Changer la résolution

# Modifier un nœud de rendu existant
modify_render_node('RenderNode_1')

Cette fonction recherche un nœud de rendu par son nom et modifie sa couleur de fond et sa résolution. Cela peut être extrêmement utile lorsque vous devez faire des ajustements à grande échelle.

Gestion des dépendances entre nœuds

Dans un pipeline complexe, les nœuds peuvent avoir des dépendances les uns par rapport aux autres. Vous pouvez automatiser la création de ces connexions en utilisant Python. Voici un exemple :

def connect_nodes(source_node_name, target_node_name):
    source_node = NodegraphAPI.GetNode(source_node_name)
    target_node = NodegraphAPI.GetNode(target_node_name)
    if source_node and target_node:
        NodegraphAPI.CreateConnection(source_node.getOutputPort('out'), target_node.getInputPort('in'))

# Connecter deux nœuds
connect_nodes('RenderNode_1', 'RenderNode_2')

Ce script crée une connexion entre le port de sortie d'un nœud et le port d'entrée d'un autre nœud. Cela facilite la gestion des dépendances entre les divers éléments de votre pipeline.

Automatisation des rendus

Enfin, vous pouvez automatiser le processus de rendu lui-même. Utilisons Python pour lancer un rendu et enregistrer les résultats :

def render_scene(node_name):
    renderNode = NodegraphAPI.GetNode(node_name)
    if renderNode:
        renderNode.execute()  # Lancer le rendu

# Lancer le rendu pour un nœud spécifique
render_scene('RenderNode_1')

Ce script appelle la méthode execute sur un nœud de rendu, ce qui déclenche le processus de rendu. Cela vous permet d'intégrer facilement le rendu dans un workflow automatisé.

Bonnes pratiques pour l'écriture de scripts

Lorsque vous écrivez des scripts pour Katana, gardez à l'esprit les bonnes pratiques suivantes :

  • Utiliser des commentaires : Documentez votre code pour faciliter la compréhension et la maintenance.
  • Tester régulièrement : Testez vos scripts fréquemment pour identifier et corriger les erreurs rapidement.
  • Organiser le code : Utilisez des fonctions et des classes pour structurer votre code de manière logique.

Conclusion

L'automatisation des workflows avec des scripts Python dans Katana peut considérablement améliorer votre efficacité et la qualité de vos rendus. En suivant les étapes décrites dans cet article, vous serez en mesure de créer des scripts puissants qui simplifient votre processus de production. N'hésitez pas à explorer davantage les possibilités offertes par le scripting dans Katana pour optimiser votre pipeline de travail.

Accélérez vos rendus avec le Cloud TURNA

Les rendus 3D complexes nécessitent énormément de ressources. Pour vous assurer que vos projets avancent rapidement et efficacement, envisagez d'utiliser la ferme de rendu décentralisée TURNA. Grâce à sa capacité à gérer des rendus lourds et à offrir des ressources évolutives, TURNA vous permet de vous concentrer sur la créativité tout en laissant la puissance de calcul à la technologie. Découvrir TURNA

Accélérez votre rendu 3D avec TURNA

Découvrez la ferme de rendu Cloud GPU la plus rapide de France pour Katana.

Essayer gratuitement →