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 démarrage ou le sous-menu File ‣ New.

Quand il n’y a aucun modèle, le menu ne sera pas affiché sur l’écran de démarrage.

Les nouveaux modèles d’application peuvent être installés depuis App Menu.

Si vous aimeriez garder le modèle d’application actif 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 prendre en charge le passage vers une configuration personnalisée sans perturber vos réglages et votre installation existants.

Ceci signifie que les gens peuvent construire leurs propres applications au dessus de Blender qui peuvent ainsi ê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 de 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 Blender’s Directory Layout pour plus de détails sur les emplacements des scripts et de la configuration.

Accès par la ligne de commande

Using the command-line arguments you can setup a launcher that opens Blender with a specific app template:

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 de préférences par défaut à 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, splash_2x.png

L’écran de démarrage pour écraser l’illustration de Blender par défaut (texte de l’entête non compris).

Doit être de 501x282 ou 1002x564 (utilisé pour les moniteurs HiDPI).

__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.

The user may save their own startup/preferences while using this template which will be stored in their user configuration.

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 mem API disponibles pour les add-ons et tous autres scripts.

Comme noté ci-dessus, vous pouvez avoir de manière facultative un ``__init__.py``dans votre app template.

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é 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 utilisez 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 lea 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)