Ako vytvárať rozšírenia#

Vytvorenie rozšírenia si vyžaduje len niekoľko krokov:

  1. Otvorte priečinok obsahujúci kód doplnku alebo súbor motívu.

  2. Pridajte súbor blender_manifest.toml so všetkými požadovanými meta-údajmi (názov, udržiavateľ, ...).

  3. Na zostavenie .zip súboru rozšírenia použite Blender command-line tool.

Ako publikovať na platforme Rozšírenia Blenderu:

Rozšírenie bude podrobené preskúmaniu a zverejnené, keď ho moderátorský tím schváli.

Súbory rozšírenia#

Rozšírenie sa zdieľa ako archív .zip obsahujúci súbor manifest a ďalšie súbory. Očakávané súbory závisia od typu rozšírenia.

Rozšírenie doplnku#

Doplnky potrebujú aspoň manifest a súbor __init__.py, zatiaľ čo zložitejšie doplnky majú niekoľko rôznych súborov .py alebo spoločných Wheels.

my_extension-0.0.1.zip
├─ __init__.py
├─ blender_manifest.toml
└─ (...)

Rozšírenie motívu#

Rozšírenie motívu potrebuje iba manifest a .xml súbor motívu.

my_extension-0.0.1.zip
├─ blender_manifest.toml
└─ theme.xml

Poznámka

Rozšírenia môžu mať voliteľne všetky svoje súbory v priečinku (vnútri archívu). Ide o bežné správanie pri ukladaní úložiska ako ZIP z platforiem na kontrolu verzií.

Manifest#

Manifest je súbor so všetkými meta-údajmi potrebnými na spracovanie rozšírenia. Tento príklad je dobrým východiskom pre súbor blender_manifest.toml, ktorý by sa mal nachádzať vnútri súboru .zip.

schema_version = "1.0.0"

# Example of manifest file for a Blender extension
# Change the values according to your extension
id = "my_example_extension"
version = "1.0.0"
name = "My Example Extension"
tagline = "This is another extension"
maintainer = "Developer name <[email protected]>"
# Supported types: "add-on", "theme"
type = "add-on"

# # Optional: link to documentation, support, source files, etc
# website = "https://extensions.blender.org/add-ons/my-example-package/"

# # Optional: tag list defined by Blender and server, see:
# # https://docs.blender.org/manual/en/dev/advanced/extensions/tags.html
# tags = ["Animation", "Sequencer"]

blender_version_min = "4.2.0"
# # Optional: Blender version that the extension does not support, earlier versions are supported.
# # This can be omitted and defined later on the extensions platform if an issue is found.
# blender_version_max = "5.1.0"

# License conforming to https://spdx.org/licenses/ (use "SPDX: prefix)
# https://docs.blender.org/manual/en/dev/advanced/extensions/licenses.html
license = [
  "SPDX:GPL-3.0-or-later",
]
# # Optional: required by some licenses.
# copyright = [
#   "2002-2024 Developer Name",
#   "1998 Company Name",
# ]

# # Optional: list of supported platforms. If omitted, the extension will be available in all operating systems.
# platforms = ["windows-x64", "macos-arm64", "linux-x64"]
# # Other supported platforms: "windows-arm64", "macos-x64"

# # Optional: bundle 3rd party Python modules.
# # https://docs.blender.org/manual/en/dev/advanced/extensions/python_wheels.html
# wheels = [
#   "./wheels/hexdump-3.3-py3-none-any.whl",
#   "./wheels/jsmin-3.0.1-py3-none-any.whl",
# ]

# # Optional: add-ons can list which resources they will require:
# # * files (for access of any filesystem operations)
# # * network (for internet access)
# # * clipboard (to read and/or write the system clipboard)
# # * camera (to capture photos and videos)
# # * microphone (to capture audio)
# #
# # If using network, remember to also check `bpy.app.online_access`
# # https://docs.blender.org/manual/en/dev/advanced/extensions/addons.html#internet-access
# #
# # For each permission it is important to also specify the reason why it is required.
# # Keep this a single short sentence without a period (.) at the end.
# # For longer explanations use the documentation or detail page.
#
# [permissions]
# network = "Need to sync motion-capture data to server"
# files = "Import/export FBX from/to disk"
# clipboard = "Copy and paste bone transforms"

# # Optional: advanced build settings.
# # https://docs.blender.org/manual/en/dev/advanced/extensions/command_line_arguments.html#command-line-args-extension-build
# [build]
# # These are the default build excluded patterns.
# # You only need to edit them if you want different options.
# paths_exclude_pattern = [
#   "__pycache__/",
#   "/.git/",
#   "/*.zip",
# ]

Požadované hodnoty:

blender_version_min:

Podporovaná minimálna verzia Blenderu - použite minimálne verziu 4.2.0.

id:

Unikátny identifikátor rozšírenia.

license:

Zoznam licencií, použite identifikátor licencie SPDX.

maintainer:

Udržiavateľ rozšírenia.

name:

Úplný názov rozšírenia.

schema_version:

Interná verzia formátu súboru - použite 1.0.0.

tagline:

One-line short description - cannot end with punctuation.

type:

„doplnok“, „motív“.

version:

Verzia rozšírenia - musí dodržiavať sémantický postup verzií.

Voliteľné hodnoty:

blender_version_max:

Verzia Blenderu, ktorú rozšírenie nepodporuje, staršie verzie sú podporované.

website:

Webová stránka pre rozšírenie.

copyright:

Niektoré licencie vyžadujú autorské práva, autorské práva musia mať tvar „Názov roka“ alebo „Názov roka-rok“.

tags:

Zoznam príznakov. Pozrite si Zoznam dostupných príznakov.

platforms:

Zoznam podporovaných platforiem. Ak sa vynechá, rozšírenie bude k dispozícii vo všetkých operačných systémoch. Dostupné možnosti sú [„windows-x64“, „windows-arm64“, „macos-x64“, „macos-arm64“, „linux-x64“]

wheels:

Zoznam relatívnych ciest k súborom Python Wheels.

permissions:

Add-ons can list which resources they require. The available options are files, network, clipboard, camera, microphone. Each permission should be followed by an explanation (short single-sentence with no end punctuation (.)).

Nepovinné hodnoty pre „build“:

Tieto hodnoty sa používajú len v podpríkaze build.

paths:

Zoznam ciest k súborom relatívny k manifestu, ktorý sa má zahrnúť pri zostavovaní balíka.

paths_exclude_pattern:

Zoznam vzorov ciest k súborom, ktoré sa majú vylúčiť pri zostavovaní balíka.

Porovnávanie vzorov je kompatibilné s gitignore.

Všimnite si, že nastavenie tejto hodnoty nie je podporované, ak je deklarovaná aj hodnota paths.

Ak tabuľka [build] nie je deklarovaná, použije sa nasledujúce predvolené nastavenie:

[build]
paths_exclude_pattern = [
  "__pycache__/",
  ".*",
  "*.zip",
]
Vyhradené:

Tieto hodnoty nesmú byť deklarované v TOML a sú vyhradené na interné použitie.

  • [build.generated]

Poznámka

Všetky hodnoty prítomné v súbore manifest musia byť vyplnené (t. j. nemôžu byť prázdne, ani text "", ani zoznam []).

Ak nechcete nastaviť niektorú z voliteľných hodnôt, jednoducho ju z manifestu úplne vylúčte.

Príkazový riadok#

Rozšírenia možno zostaviť, overiť a nainštalovať prostredníctvom príkazového riadka.

Na zostavenie balíka definovaného v aktuálnom priečinku použite nasledujúce príkazy:

blender --command extension build

Pozrite si dokumentáciu zostavy.

Overiť manifest bez zostavenia balíka:

blender --command extension validate

Balík môžete overiť aj bez toho, aby ste ho museli najprv rozbaľovať.

blender --command extension validate add-on-package.zip

Pozrite si overiť dokumentáciu.

Webové lokality s rozšíreniami tretích strán#

Ak chcete vytvárať hosťovanie rozšírení sami, pozrite si dokumentáciu Vytvorenie úložiska rozšírení.