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
. Si aucun modèle n’est trouvé, le menu ne sera pas affiché sur l’écran d’accueil.New application templates can be installed from the App Menu. If you would like to keep the current application template active on restarting Blender, save your preferences.
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.
- Splash Screen (Écran d’accueil)
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.
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
etunregister
.
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 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)