Plantilles d’aplicació¶
Operativa¶
Les plantilles d’inici són una funcionalitat que us permet definir una configuració reutilitzable que es pot seleccionar per a substituir la configuració predeterminada sense que calgui instal·lar Blender expressament ni sobreescriure la configuració personal.
Les plantilles d’aplicació es poden seleccionar des de la careta d’inici o des del submenú . Quan no hi hagi plantilles disponibles, el menú no es mostrarà a la careta d’inici.
Es poden instal·lar noves plantilles d’aplicació des del Menú del Blender. Si voleu mantenir activada la plantilla d’aplicació actual en reiniciar el Blender, deseu les vostres preferències.
Motivació¶
En alguns casos, no n’hi ha prou amb escriure un sol protocol o complement i esperar que algú substitueixi les seves preferències i el document d’inici, instal·li protocols i es canviï el teclari.
L’objectiu de les plantilles d’aplicació és permetre de canviar a configuracions personalitzades sense esgavellar la configuració i instal·lació existents. Implica que la gent pugui fer-se les pròpies aplicacions damunt del Blender i que siguin fàcilment distribuïbles.
Detalls¶
Una plantilla d’aplicació pot definir el seu propi:
- Document d’inici
El document per defecte que es carrega amb la plantilla.
- Preferències
Només s’utilitzen certes preferències d’una plantilla:
Temes.
Complements.
Teclaris.
Il·luminació del mirador.
- Careta d’inici
Les plantilles poden incloure la seva pròpia imatge de careta d’inici.
- Protocols de Python
Mentre que les plantilles tenen accés a la mateixa funcionalitat que qualsevol altre protocol, les operacions típiques inclouen:
Modificació i substitució de parts de la interfície d’usuària.
Definició de nous menús, teclaris i eines.
Definir un camí personalitzat de complement en el cas de complements específics de la plantilla.
Les plantilles també tenen una configuració pròpia de la usuària, de manera que desar un document d’inici mentre s’utilitza una plantilla no sobreescriurà el document d’inici predeterminat.
Estructura dels directoris¶
Les plantilles es poden trobar en una de les dues ubicacions dins del directori scripts.
- Ubicacions de plantilles:
{BLENDER_USER_SCRIPTS}/startup/bl_app_templates_user{BLENDER_SYSTEM_SCRIPTS}/startup/bl_app_templates_system
La configuració de la usuària s’emmagatzema en un subdirectori:
- Sense una plantilla:
./config/startup.blend./config/userpref.blend- Amb una plantilla:
./config/{APP_TEMPLATE_ID}/startup.blend./config/{APP_TEMPLATE_ID}/userpref.blend
Vegeu Disposició del directori del Blender per als detalls sobre les ubicacions de protocols i configuració.
Suggeriment
Gestió de problemes de rutes
Quan creeu una plantilla d’aplicació, podeu topar-vos amb problemes de què no es troben les rutes. Per investigar-ho, podeu treure registres d’egressió de totes les rutes de Blender.
Exemple d’arguments de la línia d’ordres que carreguen el Blender amb una plantilla d’aplicació personalitzada (substituïu my_app_template pel nom de la vostra plantilla):
blender --log "bke.appdir.*" --log-level -1 --app-template my_app_template
A continuació, podeu comprovar les rutes on apareixen els intents d’accés my_app_template.
Accés a línia d’ordres¶
Mitjançant els arguments de línia d’ordres podeu configurar un llançador que obri el Blender amb una plantilla d’aplicació específica:
blender --app-template my_template
Contingut de plantilla¶
Cadascun dels següents documents es pot utilitzar per a plantilles d’aplicació, però són opcionals.
startup.blendDocument d’inici de fàbrica a usar per a aquesta plantilla.
userpref.blendDocuments de preferències de fàbrica a usar per a aquesta plantilla. Quan s’omet, les preferències es comparteixen amb la configuració predeterminada del Blender.
(Com s’ha assenyalat anteriorment, això només s’utilitza per a un subconjunt de preferències).
splash.pngLa Careta d’inici que ha de sobreseure el disseny de Blender per defecte (sense incloure el text de la capçalera). Atenció, que aquesta imatge ha de ser una imatge de
1000x500.__init__.pyUn protocol de Python que ha de contenir les funcions
registeriunregister.
Nota
Els documents blend integrats startup.blend i userpref.blend es consideren Configuració de fàbrica i mai no se sobreescriuen.
La usuària pot desar els seus propis inicis/preferències mentre utilitzi aquesta plantilla, que s’emmagatzemarà a la seva configuració d’usuària, però només quan la plantilla inclogui el seu propi document userpref.blend.
La configuració original de la plantilla es pot carregar utilitzant: Carregar configuració de plantilla de fàbrica des del menú de documents bàsicament de la mateixa manera que Carregar configuració de fàbrica.
Protocols de plantilla¶
Per bé que les plantilles d’aplicació poden utilitzar protocols de Python, senzillament tenen accés a les mateixes API disponibles per als complements i per a qualsevol altre protocol.
Com s’ha indicat suara, opcionalment podeu tenir un __init__.py a la plantilla de l’aplicació. Comporta els següents avantatges:
Es poden fer canvis a l’inici o a les preferències, sense haver de distribuir un document blend.
Els canvis es poden fer dinàmicament.
Per exemple – es pot configurar la plantilla perquè comprovi el nombre de processadors, sistema operatiu i memòria i després determinar els valors en base a això.
Podeu habilitar els complements associats a la vostra plantilla.
En activar, s’invoca una funció register, i unregister s’invoca quan se selecciona una altra plantilla.
Com que només s’executen una vegada, qualsevol canvi als valors per defecte s’ha de fer a través del gestor. Dos gestora que és probable que utilitzeu són:
bpy.app.handlers.load_factory_preferences_postbpy.app.handlers.load_factory_startup_post
Aquests us permeten definir la pròpia «configuració de fàbrica», que la usuària pot canviar, de la mateixa manera que el Blender té els seus propis valors per defecte quan es llança per primera vegada.
Aquí hi tenim un exemple de document __init__.py que defineix els valors per defecte d’una plantilla d’aplicació.
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)