Blender 4.2 からのアドオン作成方法

Blender 4.2 からアドオン作成方法が変更されました。
管理方法がエクステンションに変更されたので
ざっくりと全体の流れを書き起こしました。

:::note info
下記のサイトを参考に書き出しています。
[How to Create Extensions](https://docs.blender.org/manual/ja/4.2/advanced/extensions/getting_started.html)
:::

## 検証環境
| Tool | バージョン |
|:-:|:-:|
| Mac | Sequoia (15.1.1) |
| Blender | 4.2 |


## 必要なファイル
アドオンのパッケージを作成するために2つのファイルが必要

1\.  \_\_init\_\_\.py
アドオン本体を記述するファイル
ここに必要な機能を記載する

2\.  blender_manifest\.toml
 4.2 から加わった設定ファイル
公式にテンプレートが用意されているので、必要箇所を変更する
[公式サイト:blender_manifest.toml](https://projects.blender.org/blender/blender/src/commit/33fd027dc5c1b652080ad6d1b4281f09ba5870ff/scripts/templates_toml/blender_manifest.toml)


## パッケージ生成
作成した2つのファイルがあるディレクトリで下記のコマンドを実行
blender_manifest.toml ファイル情報を元に Zip ファイルが作成される
Zip ファイル名のデフォルトは toml ファイルで指定した id と version の値で付けられる
``` shell
blender --command extension build
```

<details><summary>作成例</summary>

公式からファイルを入手
[`addon_add_object.py`](https://projects.blender.org/blender/blender/src/commit/33fd027dc5c1b652080ad6d1b4281f09ba5870ff/scripts/templates_py/addon_add_object.py)
[`blender_manifest.toml`](https://projects.blender.org/blender/blender/src/commit/33fd027dc5c1b652080ad6d1b4281f09ba5870ff/scripts/templates_toml/blender_manifest.toml)

`addon_add_object.py` を `__init__.py` にリネーム

ターミナルからファイルがあるディレクトリに移動

コマンドを実行
``` shell
blender --command extension build
```
実行したディレクトリ内に`my_example_extension-1.0.0.zip`が作成される

</details>


:::note info
blender へのエイリアスを設定しておくと便利
Mac の場合下記のディレクトリにインストールされている
/Applications/blender.app/Contents/MacOS/blender
:::
:::note info
追加のオプションの説明は下記を参照
[Subcommand: build options](https://docs.blender.org/manual/ja/4.2/advanced/command_line/extension_arguments.html#command-line-args-extension-build)
:::


## Blender へのインストール
メニューの `編集` > `プリファレンス` を選択

![スクリーンショット 2024-12-02 17.51.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3950275/9540db31-a4d5-ff33-cf1e-ab4156c5757b.png)

Blender プリファレンスの `エクステンションを入手` > `∨`(上段右端) を選択
`ディスクからインストール` を選択
![スクリーンショット 2024-12-02 18.00.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3950275/796e4c51-a1ca-89e0-d18c-9b46e39e461e.png)

パッケージ生成で作成した Zip ファイルを選択し`ディスクからインストール`を実行
![スクリーンショット 2024-12-02 18.08.05_edit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3950275/0a21c540-6f31-9afe-55de-91766e4d1f42.png)

インストールが完了するとインストール済みリストに追加される
![スクリーンショット 2024-12-02 18.25.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3950275/3cab947d-fded-5e50-2577-23cc544cbebd.png)

:::note info
アドオンの左にある `∨` を選択すると toml ファイルで設定した情報を確認できます。
パスはアドオンがインストールされている場所を示しています。
![スクリーンショット 2024-12-02 18.26.51_edit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3950275/457cc271-77d7-cea2-349f-0771ce2f7400.png)
:::
:::note info
アドオンがインストールされるディレクトリ
/Users/\<ユーザ名\>/Library/Application Support/Blender/\<Blenderのバージョン\>/extensions
:::

## アインインストール
アンインストールしたいアドオンの右にある `∨` を選択
アンインストールを実行
![スクリーンショット 2024-12-02 18.36.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3950275/e63de1ec-ec7d-8b36-5554-b16145de6bb5.png)


## 4.1 以前からの違い
公式サイトに情報がまとめられています。
import の仕方、ディレクトリ名の変更など
移行に関する重要な情報が載っているので確認が必要です。

[Legacy vs Extension Add-ons](https://docs.blender.org/manual/ja/4.2/advanced/extensions/addons.html#legacy-vs-extension-add-ons)


## 参考

https://qiita.com/SaitoTsutomu/items/20ce443d0b0675716705

https://docs.blender.org/manual/ja/4.2/advanced/extensions/index.html

https://projects.blender.org/blender