Modèles d’application (Templates)

Utilisation

Les modèles d’application sont une fonctionnalité qui vous permet de définir une configuration réutilisable qui peut être sélectionnée pour remplacer la configuration par défaut, sans imposer une installation de Blender distincte ou écraser vos réglages personnels.

Les modèles d’application peuvent être sélectionnés dans l’écran de présentation ou le sous-menu File ‣ New. Si aucun modèle n’est trouvé, le menu ne sera pas affiché sur l’écran d’accueil.

Les nouveaux modèles d’application peuvent être installés depuis le Menu Blender. Si vous voulez garder actif le modèle d’application courant au redémarrage de Blender, enregistrez vos préférences.

Motivation

Dans certains cas, ce n’est pas suffisant d’écrire un simple script ou un module complémentaire et attendre que quelqu’un remplace ses préférences et son fichier de démarrage, installe les scripts et modifie sa configuration de clavier.

L’objectif des modèles d’application est de permettre le passage à une configuration personnalisée sans perturber les paramètres et l’installation existants. Cela signifie que les gens peuvent construire leurs propres applications sur Blender qui peuvent être facilement distribuées.

Détails

Un modèle d’application peut définir son propre :

Fichier de démarrage

Le fichier par défaut à charger avec ce modèle.

Préférences

Seules certaines préférences d’un modèle sont utilisées :

  • Thèmes.

  • Add-ons.

  • Configurations de clavier.

  • Éclairage de vue.

Écran d’accueil (Splash Screen)

Les modèles peuvent fournir leur propre image d’écran de démarrage.

Scripts Python

Bien que les modèles aient accès à la même fonctionnalité que n’importe quels autres scripts, les opérations typiques comprennent :

  • Modifier et remplacer des parties de l’interface utilisateur.

  • Définir de nouveaux menus, configurations de clavier et outils.

  • Définition d’un chemin de module complémentaire personnalisé pour les modules complémentaires spécifiques à un modèle.

Les modèles ont leur propre configuration utilisateur, aussi l’enregistrement d’un fichier de démarrage pendant l’utilisation d’un modèle ne va pas écraser votre fichier de démarrage par défaut.

Structure de dossier

Les modèles peuvent se trouver dans un des deux emplacements du dossier scripts.

Emplacement des modèles :
{BLENDER_USER_SCRIPTS}/startup/bl_app_templates_user
{BLENDER_SYSTEM_SCRIPTS}/startup/bl_app_templates_system

La configuration utilisateur est enregistrée dans un sous-dossier :

Sans modèle :
./config/startup.blend
./config/userpref.blend
Avec un modèle :
./config/{APP_TEMPLATE_ID}/startup.blend
./config/{APP_TEMPLATE_ID}/userpref.blend

Voir Disposition des dossiers dans Blender pour plus de détails sur les emplacements des scripts et de la configuration.

Indication

Méthodes de mise au point (Troubleshooting)

Lors de la création d’un modèle d’application, vous pouvez rencontrer des problèmes où la recherche de chemins n’aboutit pas. Pour résoudre cela, vous pouvez enregistrer les résultats de toutes les recherches de chemin d’accès effectuées par Blender.

Exemple d’arguments en ligne de commande qui chargent Blender avec un modèle d’application personnalisé (remplacez my_app_template par le nom de votre propre modèle) :

blender --log "bke.appdir.*" --log-level -1 --app-template my_app_template

Vous pouvez alors vérifier les chemins où les tentatives d’accès à my_app_template sont faites.

Accès par la ligne de commande

En utilisant les arguments de la ligne de commande vous pouvez configurer un lanceur qui ouvre Blender avec un modèle d’application spécifique :

blender --app-template my_template

Contenu des modèles

Chacun des fichiers suivants peut être utilisé pour des modèles d’application mais sont optionnels.

startup.blend

Fichier de démarrage d’usine à utiliser pour ce modèle.

userpref.blend

Fichier des réglages d’usine à utiliser pour ce modèle. Lorsqu’elles sont omises, les préférences sont partagées avec la configuration de Blender par défaut.

(Comme noté précédemment, ceci est uniquement utilisé pour un sous-ensemblede préférences).

splash.png

L’écran de présentation pour remplacer l’illustration par défaut de Blender (texte de l’entête excepté). Note, cette image doit être 1000x500.

__init__.py

Un script Python qui doit contenir les fonctions register et unregister.

Note

Les fichiers blend intégrés startup.blend et userpref.blend sont considérés comme des réglages d’usine et ne sont jamais écrasés.

L’utilisateur peut enregistrer ses propres démarrages/préférences en utilisant ce modèle qui sera enregistré dans leur configuration d’utilisateur, mais seulement quand le modèle inclut son propre fichier userpref.blend.

Les réglages d’origine du modèle peuvent être chargés en utilisant : Load Template Factory Settings depuis le menu file, à peu près de la même manière que Load Factory Settings.

Scripts de modèles

Bien que les app templates puissent utiliser des scripts Python, ils ont simplement accès au même API que pour les modules complémentaires et tous autres scripts.

Comme noté ci-dessus, vous pouvez avoir de manière facultative un __init__.py dans votre modèle d’application. Ceci a les avantages suivants :

  • Des modificaations peuvent être apportées au démarrage ou aux préférences, sans avoir à distribuer une fichier blend.

  • Les changements peuvent être faits dynamiquement.

    Vous pourriez par exemple configurer le modèle pour vérifier le nombre de processeurs, le système d’exploitation et la mémoire, puis définir les valeurs selon ceci.

  • Vous pouvez activer des modules complémentaires associés à votre modèle.

À l’activation une fonction register est appelée, unregister est appelée quand un autre modèle est sélectionné.

Comme ils ne sont exécutés qu’une seule fois, toute modification des valeurs par défaut doit être effectuée via le gestionnaire. Deux gestionnaires que vous êtes susceptibles d’utiliser sont :

  • bpy.app.handlers.load_factory_preferences_post

  • bpy.app.handlers.load_factory_startup_post

Ceux-ci vous permet de définir vos propres “paramètres d’usine”, que l’utilisateur peut changer, tout comme Blender a ses propres paramètres par défaut à son premier lancement.

Ceci est un exemple de fichier __init__.py qui définit les paramètres par défaut pour une app template à utiliser.

import bpy
from bpy.app.handlers import persistent

@persistent
def load_handler_for_preferences(_):
    print("Changing Preference Defaults!")
    from bpy import context

    prefs = context.preferences
    prefs.use_preferences_save = False

    kc = context.window_manager.keyconfigs["blender"]
    kc_prefs = kc.preferences
    if kc_prefs is not None:
        kc_prefs.select_mouse = 'RIGHT'
        kc_prefs.spacebar_action = 'SEARCH'
        kc_prefs.use_pie_click_drag = True

    view = prefs.view
    view.header_align = 'BOTTOM'


@persistent
def load_handler_for_startup(_):
    print("Changing Startup Defaults!")

    # Use smooth faces.
    for mesh in bpy.data.meshes:
        for poly in mesh.polygons:
            poly.use_smooth = True

    # Use material preview shading.
    for screen in bpy.data.screens:
        for area in screen.areas:
            for space in area.spaces:
                if space.type == 'VIEW_3D':
                    space.shading.type = 'MATERIAL'
                    space.shading.use_scene_lights = True


def register():
    print("Registering to Change Defaults")
    bpy.app.handlers.load_factory_preferences_post.append(load_handler_for_preferences)
    bpy.app.handlers.load_factory_startup_post.append(load_handler_for_startup)

def unregister():
    print("Unregistering to Change Defaults")
    bpy.app.handlers.load_factory_preferences_post.remove(load_handler_for_preferences)
    bpy.app.handlers.load_factory_startup_post.remove(load_handler_for_startup)