Modèles d’application

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 App. Si vous aimeriez 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 add-on, 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 de démarrage

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éfinir un chemin d’add-ons personnalisé pour les add-ons spécifiques du 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.

Disposition 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)

When creating an application template, you may run into issues where paths are not being found. To investigate this you can log output of all of Blender’s path look-ups.

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-ensemble de 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 add-ons 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 add-ons 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 ceux-ci ne se lancent qu’une seule fois, tout changement aux paramètres par défaut doit être fait via un handler. Deux handlers que vous utiliserez probablement 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)