Šablóny aplikácií#
Použitie#
Šablóny aplikácií sú funkciou, ktorá vám umožňuje definovať opakovane použiteľnú konfiguráciu, ktorú možno vybrať na nahradenie predvolenej konfigurácie bez toho, aby bola potrebná samostatná inštalácia Blenderu alebo prepísanie vašich osobných nastavení.
Šablóny aplikácií môžete vybrať z úvodnej obrazovky alebo z podponuky
. Ak nie sú nájdené žiadne šablóny, ponuka sa na úvodnej obrazovke nezobrazí.Nové šablóny aplikácií je možné nainštalovať z Ponuka Blender. Ak chcete, aby aktuálna šablóna aplikácie zostala aktívna aj pri opätovnom spustení Blenderu, uložte svoje nastavenia.
Motivácia#
V niektorých prípadoch nestačí napísať jeden skript alebo doplnok a očakávať, že niekto nahradí jeho predvoľby a spúšťací súbor, nainštaluje skripty a zmení priradenie kláves.
Cieľom šablón aplikácií je podporiť prechod na prispôsobenú konfiguráciu bez narušenia existujúcich nastavení a inštalácie. To znamená, že ľudia si môžu nad Blenderom vytvoriť vlastné aplikácie, ktoré sa dajú ľahko šíriť.
Detaily#
Šablóna aplikácie môže definovať vlastný:
- Spúšťací súbor
Predvolený súbor, ktorý sa má načítať s touto šablónou.
- Predvoľby
Zo šablóny sa použijú len určité predvoľby:
Motívy.
Doplnky.
Priradenia kláves.
Osvetlenie záberu.
- Úvodná obrazovka
Šablóny môžu poskytnúť vlastný obrázok úvodnej obrazovky.
- Skripty Python
Hoci šablóny majú prístup k rovnakým funkciám ako iné skripty, typické operácie zahŕňajú:
Úprava a výmena častí užívateľského rozhrania.
Definovanie nových ponúk, priradenia kláves a nástrojov.
Definovanie vlastnej cesty k doplnkom pre doplnky špecifické pre šablónu.
Šablóny majú aj vlastnú užívateľskú konfiguráciu, takže uloženie spúšťacieho súboru pri použití šablóny neprepíše váš predvolený spúšťací súbor.
Rozloženie priečinka#
Šablóny môžu byť umiestnené na jednom z dvoch miest v priečinku scripts
.
- Umiestnenie šablóny:
{BLENDER_USER_SCRIPTS}/startup/bl_app_templates_user
{BLENDER_SYSTEM_SCRIPTS}/startup/bl_app_templates_system
Konfigurácia užívateľa je uložená v podpriečinku:
- Bez šablóny:
./config/startup.blend
./config/userpref.blend
- So šablónou:
./config/{APP_TEMPLATE_ID}/startup.blend
./config/{APP_TEMPLATE_ID}/userpref.blend
Pre podrobnosti o umiestnení skriptov a konfigurácií si pozrite časť Rozloženie priečinkov Blenderu.
Rada
Riešenie problémov s cestami
Pri vytváraní šablóny aplikácie môžete naraziť na problémy, keď sa cesty nenájdu. Ak to chcete preskúmať, môžete zaznamenať výstup všetkých vyhľadávaní ciest v Blenderi.
Príklad argumentov príkazového riadku, ktoré načítajú Blender s vlastnou šablónou aplikácie (nahraďte my_app_template
názvom vlastnej šablóny):
blender --log "bke.appdir.*" --log-level -1 --app-template my_app_template
Potom môžete skontrolovať cesty, kde sa uskutočňujú pokusy o prístup k my_app_template
.
Prístup k príkazovému riadku#
Použitím príkazu argumenty príkazového riadku môžete nastaviť spúšťač, ktorý otvorí Blender s konkrétnou šablónou aplikácie:
blender --app-template my_template
Obsah šablóny#
Každý z nasledujúcich súborov sa môže použiť pre šablóny aplikácií, ale nie sú povinné.
startup.blend
Spúšťací výrobný súbor na použitie pre túto šablónu.
userpref.blend
Súbor výrobných nastavení, ktorý sa má použiť pre túto šablónu. Ak sa predvoľby vynechajú, zdieľajú sa s predvolenou konfiguráciou Blenderu.
(Ako už bolo uvedené, používa sa len pre podsústavu preferencií).
splash.png
Úvodná obrazovka, ktorá prepíše predvolené umelecké dielo Blenderu (bez textu záhlavia). Všimnite si, že tento obrázok musí byť
1000x500
.__init__.py
Skript jazyka Python, ktorý musí obsahovať funkcie
register
aunregister
.
Poznámka
Priložené blend súbory startup.blend
a userpref.blend
sa považujú za Výrobné nastavenia a nikdy sa neprepisujú.
Užívateľ môže pri používaní tejto šablóny uložiť svoje vlastné spúšťanie/preferencie, ktoré sa uložia do jeho užívateľskej konfigurácie, ale len vtedy, ak šablóna obsahuje svoj vlastný súbor userpref.blend
.
Pôvodné nastavenia šablóny môžete načítať pomocou: Načítať výrobné nastavenia šablóny z ponuky súborov rovnakým spôsobom ako Načítať výrobné nastavenia.
Skripty šablón#
Hoci šablóny aplikácií môžu používať skripty Python, majú jednoducho prístup k rovnakým rozhraniam API, ktoré sú k dispozícii pre doplnky a akékoľvek iné skripty.
Ako je uvedené vyššie, v šablóne aplikácie môžete mať voliteľne súbor __init__.py
. Má to nasledujúce výhody:
Zmeny možno vykonať v spúšťaní alebo v predvoľbách bez toho, aby bolo potrebné distribuovať blend súbor.
Zmeny možno vykonávať dynamicky.
Mohli by ste napríklad nakonfigurovať šablónu tak, aby kontrolovala počet procesorov, operačný systém a pamäť a na základe toho nastaviť hodnoty.
Môžete povoliť doplnky súvisiace s vašou šablónou.
Pri aktivácii sa zavolá funkcia register
, funkcia unregister
sa zavolá pri výbere inej šablóny.
Keďže sa spúšťajú len raz, všetky zmeny predvolených nastavení sa musia vykonať prostredníctvom obslužného programu. Dva obslužné programy, ktoré pravdepodobne použijete, sú:
bpy.app.handlers.load_factory_preferences_post
bpy.app.handlers.load_factory_startup_post
Tie umožňujú definovať vlastné „výrobné nastavenia“, ktoré môže užívateľ zmeniť, rovnako ako má Blender vlastné predvolené nastavenia pri prvom spustení.
Toto je príklad súboru __init__.py
, ktorý definuje predvolené nastavenia pre šablónu aplikácie.
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)