Š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 Súbor ‣ Nový. 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 a unregister.

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)