はじめてのBlenderアドオン開発
Last Update: 2023.3.1
Blender 2.8~3.0
はじめてのBlenderアドオン開発
Blender 2.8~3.0
Last Update: 2023.3.1
4-5. アドオンを公開する
Web上にはさまざまなアドオンが公開されているように、作成したアドオンもWeb上に公開できます。 本節では、アドオンを公開する方法について説明します。 作ったアドオンを、他の人にも使ってもらいたいと考えているのであれば、ぜひ本節にも目を通してください。 なお、アドオンを公開するときには、4-4節 で説明しているライセンスについても、理解しておいてください。
アドオンをWeb上に公開する方法としては、次のような方法があります。 これらの中から1つの方法に限定せず、複数の方法を組み合わせてアドオンを公開することもできます。
個人でホームページやブログを持っている場合は、そこでアドオンを公開できます。 ほとんどのホームページやブログは、ファイルをアップロードする機能があるので、アップロード機能を利用して作成したアドオンを公開できます。
Blenderのアドオンは、ソースコードそのものとして配布できるため、ソースコードホスティングサイトでアドオンを公開できます。 ソースコードホスティングサイトとして有名なサイトを次に示します。 なお、GitHub、GitLabを利用するためには、バージョン管理ソフト『Git』を理解する必要があります。
サイト | 概要 |
---|---|
GitHub | 最も有名なソースコードホスティングサイトです。WikiやIssue、Pull Request機能といったアドオンの公開に便利な機能が提供されるほか、topicsに「blender」「python」「blender-scripts」「blender3d」「blender-addon」を指定することで、Blenderの関連のリポジトリであることを明示できます。 |
GitLab | GitHubライクなソースコードホスティングサイトです。使い勝手はGitHubと似ていますが、Pull Request機能がMerge Requestと呼ばれるなど、細かいところで違いがあります。 |
単純なアドオンやスクリプトであれば、ソースコードホスティングサイトではなく、ソースコード共有サイトを利用しても問題ありません。 代表的なソースコード共有サイトを次に示します。
サイト | 概要 |
---|---|
GitHub Gist | GitHubのアカウントが必要です。コメントやお気に入り機能などの機能もサポートしています。 |
PasteAll.org | ユーザ登録せずに、公開したソースコードをWeb上から参照したり編集したりできますが、GitHub Gistのようなお気に入り機能などなく、複数ファイルサポートもありません。 |
アドオンを有料で配布する場合、ネットショップサイトを利用できます。 また、一部のネットショップサイトを除いて寄付金を募ることができ、アドオンを無料で配布する人も多いです。 比較的よく利用されるネットショップサイトを次に示します。
|サイト|概要| |Gumroad|主に海外のアドオン開発者が、アドオンを有料配布するときに利用されるようです。寄付金を募ることも可能です。| |Blender Market|知名度が高く、宣伝効果が大きいのが特徴です。無料で配布されているアドオンがないため、無料で公開して寄付金を募るのには不向きです。| |BOOTH|日本発のネットショップサイトです。日本人ユーザが多く、国内向けにアドオンを販売するのに適しています。無料で公開して寄付金を募ることも可能です。|
世界中で使われているBlenderは、コミュニティの規模が大きいのが特徴です。 特にコミュニティサイトでは、多くのBlenderユーザが集まるため、アドオンの宣伝効果が非常に高いです。 コミュニティサイトで宣伝する場合は、次のことが書かれているか確認しましょう。 なお、アドオンを公開しているページでこれらの情報をすでに記載している場合、概要だけを記載して残りは別のサイトを参照、としても問題ありません。
ここでは有名なコミュニティサイトを紹介します。
サイト | 概要 |
---|---|
Blender Artists Community | 最大級の海外Blenderコミュニティサイトです。アドオンを公開する場もあります。アドオン関連の投稿を行う場合は、categoryに [Coding、Release Scripts and Themes]、optional tagsに [add-ons] を指定して投稿しましょう。投稿にはユーザ登録が必要です。 |
Blender Nation | Blenderに関する最新のニュースが投稿されるサイトです。ユーザ登録することで記事を投稿できるため、アドオンの宣伝にも利用されます。アドオンに関して投稿する場合は、Post Categoryに [Add-ons] を指定します。 |
Blender.Today | Blender関連のニュースを投稿したり、Blenderユーザ同士で議論するためのサイトです。アドオンに関して投稿する場合は、Tagsに [Add-ons] を指定します。 |
BlenderのWiki | Blenderに関する情報がまとまったWikiです。ユーザ登録すると、カテゴリ [Addon] の [アドオンリンク集] にアドオンを掲載できます。 |
blugjpまとめサイト | BLUG.jpさんによる、Blenderまとめサイトです。アドオンを紹介するページがありましたが、現在リニューアル中のため、ユーザ登録やページの編集が禁止されています。再開されることを気長に待ちましょう。 |
SNSサイトを利用して、アドオンを宣伝できます。 代表的なSNSサイトを次に示します。
サイト | 概要 |
---|---|
投稿文字数に制限があるため、動画や画像、アドオンの詳細を確認できるWebサイトのリンクと一緒にツイートしましょう。Blender用のハッシュタグとして [#b3d] や [#blender] があります。 | |
Facebookは、Twitterとは異なるユーザ層が利用していることが多いため、Twitterと組み合わせた宣伝が効果的です。Blender向けのハッシュタグ [#b3d] があります。 | |
YouTube | アドオンのチュートリアル動画などをアップロードできます。Blenderのアドオンに関連する動画の場合、[Blender] や [Add-on] などをタグに含めるとよいでしょう。 |
ユーザの多いアドオンは、Blender本体に取り込んでもらえる可能性があります。 Blender本体にアドオンを取り込んでもらうためには、次のような条件を満たしている必要がありますが、Blenderのリリース情報にアドオンを掲載できるため、宣伝効果が非常に高いです。
Blender本体にアドオンを取り込んでもらうためには、次のいずれかをきっかけとして、Blenderの開発者から許可を得る必要があります。
Blender本体にアドオンが取り込まれると、リリースレベルがReleaseまたはContribになります(1-2節 参照)。 リリースレベルがReleaseになるかContribになるかの違いは、アドオンの完成度に依存します。 アドオン自体は完成しているものの、ユーザのフィードバックを受けて改善が必要と判断された場合は、Contribとなります。 Contribであっても、アドオンを改善し続けることでReleaseに変えることができます。 なお、Blenderの本体にアドオンが取り込まれると、Blenderの開発者により予告もなしに修正されることがある点に注意してください。
以降では、Blender本体にアドオンを取り込むまでに必要な流れを説明します。
Blenderのような大規模なプロジェクトでは、ソースコードの書き方に一貫性を持たせるために、コーディング規約に従う必要があります。 コーディング規約は、Blenderの公式Wikiページで公開されている Requirements for contributed Scripts に掲載されているように、flake8 や pep8 などのソースコードチェックツールに合格していることが必要となります。 また、Blenderの公式Wikiページの Best Practice にあるScript Efficiencyを参考にして、実行効率のよいPythonコードを書くように心がけましょう。
Blenderの公式Wikiページで公開されている Code Review のページを参考に、Blenderの開発者からアドオンのソースコードレビューを受けます。
D.B.Oでユーザ登録したあと、https://developer.blender.org/differential/diff/create/ へソースコードの差分をアップロードしてタスクを作ることで、レビューを始めることができます。 タスクを作るときに入力する項目 [Repository] は、リリースレベルによって指定する値が異なります。
リリースレベル | [Repository] に指定する値 |
---|---|
Release | rBA Blender Add-ons |
Contrib | rBAC Blender Add-ons Contrib |
ソースコードの差分を取得するためには、最初にリポジトリを取得する必要があります。 アドオンのリリースレベルによって、リポジトリが異なります。 以降は、リリースレベルがReleaseの場合について説明します。 なお、Blender本体にアドオンを取り込むために必要なGitの知識は、Blenderの公式Wikiページに公開されている Git Usage にもまとめられています。
リリースレベル | リポジトリ |
---|---|
Release | git://git.blender.org/blender-addons.git |
Contrib | git://git.blender.org/blender-addons-contrib.git |
次のコマンドを実行し、ソースコードの差分を取得します。
$ cd [作業用ディレクトリ]
# リリースレベルReleaseのアドオンリポジトリを取得
$ git clone git://git.blender.org/blender-addons.git
# アドオンのソースコード一式をローカルリポジトリにコピー
$ cd blender-addons
$ cp [作成したアドオンのソースコード一式を含むディレクトリ] .
# ソースコードの差分を出力
$ git diff
ソースコードの差分をアップロードしてタスクを作成すると、レビュワーからソースコードに対する指摘があります。 その都度修正しましょう。 レビュワーの指摘を反映し、追加の指摘がなくなった時点でレビューは完了です。
これまでは、アドオンがBlender本体に取り込まれる場合、Blender Add-ons Catalog にアドオンのページを作る必要がありました。 しかし、Blender公式のWikiページがリニューアルされたあとから、Addons Catalogを修正できない状態が続いているため、Addons Catalogを書くかわりに、5に示すサポートページの開設や、6に示すリリースノートの記載で十分です。
レビューが完了したアドオンのソースコードを、リポジトリに登録(push)します。 Blenderのリポジトリにソースコードをpushする前に、リポジトリに対するpush権限を与えてもらう必要があります。 ソースコードをレビューしてくれた人など、Blender開発者に連絡を取ってpush権限を与えてもらいます。
また、ssh公開鍵をD.B.Oに登録する必要があります。 ssh-keygen
コマンドを実行して ~/.ssh/id_rsa.pub
に作成された公開鍵を、D.B.Oに登録してください。 ユーザのページにあるSettingsから、公開鍵を登録できます。
$ ssh-keygen
ローカルリポジトリが古い状態ではpushできないため、ここで一度リポジトリが最新の状態になっていることを確認してください。
# リリースレベルReleaseのアドオンリポジトリを取得(取得していない場合)
$ cd [作業用ディレクトリのパス]
$ git clone git://git.blender.org/blender-addons.git
# ローカルリポジトリの最新化&リベース
$ cd blender-addons
$ git submodule update --init --recursive
$ git submodule foreach --recursive git checkout master
$ git submodule foreach --recursive git pull --rebase origin master
$ git pull --rebase
$ git submodule foreach --recursive git pull --rebase origin master
# コミット情報(名前と連絡先)を設定
$ git config --global user.name "[名前(ニックネーム可、D.B.Oのアカウント名推奨)]"
$ git config --global user.email "[連絡先メールアドレス(D.B.Oに登録したメールアドレス推奨)]"
# push先のリモートリポジトリを設定
$ git remote set-url origin git@git.blender.org:blender-addons.git
# レビュー済みの状態にあるアドオンのソースコードを、ローカルリポジトリへ配置
$ cd blender-addons
$ cp [作成したアドオンのソースコード] .
# ローカルリポジトリへコミット
# コミットメッセージの書き方は、BlenderのWikiページを参照
# https://wiki.blender.org/wiki/Style_Guide/Commit_Messages
$ git add [作成したアドオンのソースコード]
$ git commit
# ローカルリポジトリを最新化し、修正内容をリモートリポジトリへpush
$ git pull --rebase
$ git push
アドオンのサポートページを作り、バグ報告などのユーザからフィードバックを受けることのできる場所を作りましょう。 ただし、すでに他のWebサイトなどでアドオンの紹介ページを作成している場合は、ここで新たに作る必要はありません。
新しいBlenderのバージョンがリリースされるときに公開される、リリースノート を書きます。 アドオンがBlender本体に取り込まれた場合には、リリースノートのアドオンの欄(2.80の例)に書く必要があります。 リリースノートの書き方については、明確なルールが設けられていないため、過去に書かれたリリースノートを参考にしましょう。
リリースレベルがReleaseとなったアドオンは、必ずリリースノートを書く必要があります。 Contribの場合は、Blenderのテストビルド時にしか提供されないため、リリースノートに記載しないほうがよいでしょう。 どうしてもリリースノートに記載したい場合は、アドオンがテストビルドと一緒に提供されることを書く必要があります。 Externalのアドオンは、リリースノートに記載してはいけません。
アドオンを公開してしばらくすると、ユーザからバグ報告や機能改善などのフィードバックをもらうと思います。 しかし、アドオンを公開したことに満足してしまい、その後のメンテナンスをやめてしまうアドオン開発者が少なくありません。 実際、コミュニティサイトでも、長い間メンテナンスされていないアドオンに対して、メンテナンスしてくれる代わりの人を求めるような投稿を見かけます。
筆者は、アドオンを公開してからが本番と言ってよいくらい、アドオンを公開したあとのメンテナンスが重要と考えます。 アドオンに対する要望をユーザから受けるということは、そのアドオンに対して特別に興味を持ってくれていると考えることもできます。 このため、フィードバックをもらえたらきちんと対応し、アドオンのメンテナンスを続けるようにしましょう。 アドオンのメンテナンスを続けることで、より多くの人がアドオンを使い続けてくれるでしょう。
本節では、アドオンの公開方法を紹介しましたが、以前と比べてアドオンを公開する場所は増えてきています。 ここで紹介した方法はあくまで一例であるため、開発者が宣伝しやすい方法でアドオンを公開するとよいと思います。 そしてアドオンの開発は、アドオンを公開した時点で終わるわけではありません。 アドオンを公開したあとは、必ずメンテナンスするようにしてください。
最後に、アドオンを使ってくれた人(特に海外の人!)から感想をもらえると、作り手としては大変うれしいものです。 たとえ勉強の過程で作ったアドオンであっても、アドオンのソースコードは、少なからず他のアドオン開発者にとって有益な情報になります。 このため、作成したアドオンに含まれる技術を公開したくないなどの特別な理由がなければ、作成したソースコードを公開することをぜひ検討してみましょう!!
これまで本書を通してアドオン開発の解説を行ってきましたが、筆者がアドオン開発のために知っておいて欲しいと思ったことはこれですべてとなります。 長くなりましたが、お疲れ様でした!