Blender は 4.2 から、無料かつ OSS なアドオンであれば、登録・承認をされることで Blender Extensions Platform から簡単にインストールやアップデートができるようになります。 詳しくは3D人さんのブログがわかりやすいです:
今回、昔から配布していたちょっと人気なアドオンを Extensions Platform に提出し、無事承認されたので必要な作業をまとめます。
まずは、 __init__.py
にて定義していた bl_info = { ... }
を削除します。これは blender_manifest.toml
に取って代わられました。
blender_manifest.toml
は __init__.py
があるディレクトリに、以下のような形式で記述します。
schema_version = "1.0.0" id = "drag_and_drop_support" maintainer = "Natsune Mochizuki <メールアドレス>" name = "Drag and Drop Support" tagline = "Support and improve drag and drop imports in Blender. " version = "1.0.0" type = "add-on" # Optional link to documentation, support, source files, etc # website = "https://extensions.blender.org/add-ons/my-example-package/" website = "https://docs.natsuneko.com/drag-and-drop-support" # Optional list defined by Blender and server, see: # https://docs.blender.org/manual/en/dev/advanced/extensions/tags.html tags = ["3D View", "Import-Export"] 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:MIT", ] # Optional: required by some licenses. copyright = [ "2018-2024 Natsune Mochizuki", ] # 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: 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 models from the disk" # clipboard = "Copy and paste bone transforms" # Optional: build settings. # https://docs.blender.org/manual/en/dev/advanced/extensions/command_line_arguments.html#command-line-args-extension-build [build] paths_exclude_pattern = [ "__pycache__/", "/.git/", "/*.zip", ]
[build]
のセクションはコマンドラインからビルドしない場合、必要ないので削除してかまいません。
必須ポイントとなっているのが permissions
で、例えば通信を行うなら network
を、ファイルをディスクから・ディスクへ読み書きするなら files
を指定するなどが必要です。
今回のアドオンの場合は、ファイルを読み込むので files
パーミッションを追加しています。
仮にパーミッションを指定せずに提出した場合、レビューで指摘されるので、どうすれば良いか分からない場合はいったん記述無しで提出しても良いでしょう。
その他コード面は Preferences などを使用していなければ特に変更すること無く、動作確認して動いていれば提出が可能です。
提出はアカウントを作成した後、下記ページから可能です。 Extension 名などは blender_manifest.toml
から自動設定されます。
Sign in - Blender ID - blender.org
アップロード後は画像を設定します。必須なのは下記の通り:
- アイコン画像 (256x256 正方形)
- 機能を説明する画像 (1920x1080 or 16:9 の画像)
- プレビュー画像 or 動画 (16:9)
また、審査中でも Approval Queue から他の人も一応ダウンロードすることは可能です:
他の人の Extension の審査状況がどうなっているかなども見ることができるので、あらかじめチラ見しておくと、審査をスムーズに進めることができると思います (よく見るのが "Blender" という名前を使わないで、と指摘されているケース)。 ということで、メモでした。