Як Створити Розширення¶
Створення розширення займе тільки декілька кроків:
Відкрийте директорію яка містить код звичайного розширення або файл теми.
Додати blender_manifest.toml файл з усіма потрібними мета-даними
(name, maintainer, ...).Використовуйте Blender інструмент командного рядка щоб створити .zip файл розширення.
Як опублікувати Blender Платформу Розширень:
Install from Disk щоб перевірити, що все працює добре.
Upload the .zip file (це крок потребує Blender ID).
Розширення буде утримуватись для перегляду, та буде опубліковане як тільки команда модерації дозволить це.
Файли Розширення¶
Розширення обмінюється як .zip архів який містить файл маніфесту та інші файли. Очікувані файли залежать від типу розширення.
Звичайне розширення¶
Звичайне розширення має містити мінімум маніфест та __init__.py файл, поки інші більш комплексні звичайні розширення мають декілька різних .py файлів або wheels(крутяться) разом.
my_extension-0.0.1.zip
├─ __init__.py
├─ blender_manifest.toml
└─ (...)
Тема розширення¶
Тема розширення тільки потребує маніфест файл та .xml файл теми.
my_extension-0.0.1.zip
├─ blender_manifest.toml
└─ theme.xml
Примітка
Розширення можуть опціонально мати всі свої файли всередині теки (всередині архіву). Це є звичайною поведінкою при зберігані файлів сховищ як ZIP з платформ контролю версій.
Маніфест¶
Маніфест, це файл з усіма мета-даними які потрібні для розширення, щоб бути обчисленим. Цей приклад є гарною початковою точкою для blender_manifest.toml який повинен бути в середині .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"
# 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",
# ]
- Необхідні значення:
- blender_version_min:
Мінімальна підтримувана версія Blender - використовуйте щонайменше
4.2.0.- id:
Унікальний ідентифікатор для розширення.
- license:
Список ліцензій, використовуйте SPDX ідентифікатор ліцензій.
- maintainer:
Підтримувач розширення.
- name:
Повна назва розширення.
- schema_version:
Внутрішня версія формату файлу - використовуйте
1.0.0.- tagline:
Одно-рядковий короткий опис, не більше 64 символів - не може закінчуватись пунктуацією.
- type:
«звичайне розширення», «тема».
- version:
Версія розширення - повинно слідувати за версійною семантикою.
- Опціональні значення:
- blender_version_max:
Версія Blender, що не підтримує розширення, нижчі версії підтримуються.
- website:
Вебсайт для розширення.
- copyright:
Деякі ліцензії потребують авторського права, авторські права повинні бути «Рік Назва» або «Рік-Рік Назва».
- tags:
Список тегів. Дивіться список доступних тегів.
- платформи:
Список підтримуваних платформ. Якщо пропущено, розширення буде доступне на всіх операційних системах. Доступними опціями є [«windows-x64», «windows-arm64», «macos-x64», «macos-arm64», «linux-x64»]
- wheels:
Список відносних файлових-шляхів Python Wheels.
- permissions:
Розширення можуть зробити список ресурсів яких вони потребують. Доступними опціями є файли, мережа, буфер обміну, камера, мікрофон. Кожний дозвіл повинен мати пояснення (маленьке речення, не більше 64 символів, без пунктуації вкінці).
- Опціональні значення для «build»:
Ці значення використовуються лише build під-командою.
- paths:
Список файлових-шляхів відносних до маніфесту, щоб включити їх в себе при створені пакунку.
- paths_exclude_pattern:
Список файлових шляхів щоб вилучити ті, що включені під час створення пакунку.
Шаблон повинен бути сумісний і збігатись з gitignore.
Зауважте, що встановлюючи це значення, воно не буде підтримуватись коли
pathsтакож вказано.
Якщо
[build]таблиця не вказана, наступні типові значення будуть використані:[build] paths_exclude_pattern = [ "__pycache__/", ".git", "*.zip", ]
- Зарезервовано:
Ці значення не повинні бути вказані в TOML та є зарезервованими для внутрішнього використання.
[build.generated]
Примітка
Всі значення які присутні в маніфест файлі повинні бути заповненні (тобто, не можуть бути пустими, ні текст "", ні список []).
Якщо ви не хочете встановити одне із опціональних значень, просто взагалі вилучіть його з маніфесту.
Командний рядок¶
Розширення можуть бути створені, перевірені та встановлені за допомогою командного рядка.
Створення¶
Щоб створити пакунок визначений в поточній директорії використовуйте наступні команди:
blender --command extension build
Дивіться build документи.
Валідація¶
Що перевірити маніфест без створення пакунку:
blender --command extension validate
Ви також можете перевірити пакунок без його розпакування спочатку.
blender --command extension validate add-on-package.zip
Дивіться validate документації.
Дивись також
Опублікувати¶
Щоб автоматизувати опублікування оновлень на Extension Platform дивіться CI/CD документацію.
Сайти сторонніх розробників¶
Якщо ви хочете розміщувати розширення самі, дивіться Створення Сховища Розширень документації.