はじめてのBlenderアドオン開発
Last Update: 2023.3.1
Blender 2.8~3.0
はじめてのBlenderアドオン開発
Blender 2.8~3.0
Last Update: 2023.3.1
4-4. アドオンのライセンスを決める
4-5節 では、アドオンを公開する方法について説明しますが、ライセンスについて理解していない状態でソースコードを公開すると、のちのちトラブルになることがあります。 そこで本節では、Blenderのアドオンのソースコードに設定するライセンスについて説明します。
ソースコードのライセンスについて説明する前に、ソースコードの著作権について説明します。 本や音楽などと同様、ソースコードにも著作権が存在します。 このため、ソースコード作成者が著作権を放棄したことを明記していない場合は、ソースコードの一部分を複製するだけでも著作権を侵害したことになってしまいます。 しかし一方で、著作権を放棄してソースコードを自由に使ってもらおうと考えている、ソースコードの作成者も少なくありません。 また、著作権を放棄することを利用規約として作る必要があるため、手間がかかる問題もあります。 そして、作成した利用規約が、抜け穴ばかりの意味のない規約になってしまっている可能性もあります。
このような問題を解決してくれるのが、ソースコードの利用に関するライセンスです。 すでに多くのライセンスが世の中には存在し、その中から自分に合ったライセンスを選択すればよいため、比較的簡単に導入できます。 世の中のライセンスを一度理解してしまえば、ソースコード作成者は「本ソースコードには○○ライセンスが適用されている」などと一文を書くだけで済みます。 さらに、適用されているライセンスが有名なものであれば、ソースコードの利用者がライセンスを見ただけで理解してくれる場合もありますし、作者が書いた独自の利用規約で発生しうる誤解も起こりにくくなります。
ソースコードのライセンスとして代表的なものを、次に示します。 ここではライセンスの概要をまとめていますが、実際にライセンスを適用する場合は、各自でライセンスの内容をきちんと確認してください。
ライセンス | 公開元 | 概要 |
---|---|---|
GNU General Public License(GPL) | Free Software Foundation | 本ライセンスが適用されているプログラムやソースコードは、ソースコードを公開しなければなりません。 また、本ライセンスが適用されたソースコードは誰でも入手でき、改変や再配布も自由に行えます。 一方、GPLが適用されたプログラムやソースコードを利用した派生物は、たとえそれがソースコードの一部分であってもGPLを適用する必要があることに注意が必要です。このように、GPLは強い感染力を持つことから、GPL汚染と呼ばれることがあります。 GPLにはバージョンが3つあり、バージョンごとに制約が異なっているため、GPL適用時には適用するバージョンも確認する必要があります。 |
MIT License | マサチューセッツ工科大学 | GPLと比べて制約が緩いライセンスです。X11 Licenseと呼ばれることもあります。 MIT Licenseが適用されたソースコードは、改変・再配布などを行うときに、著作権の表示とMIT License本文の記載、および無保証であることの記載という条件のみを要求します。ソースコードを非公開にしてもよいですし、適用するライセンスを変えて再配布することもできます。 |
クリエイティブ・コモンズ・ライセンス(CC) | クリエイティブ・コモンズ | 本節で紹介しているソースコードのライセンスとは異なり、全ての著作物に対して適用可能なライセンスです。画像や動画などのコンテンツに適用されることが多いため、Blenderを使って3DCGを作成している人は、こちらのライセンスに馴染みがあるかもしれません。著作物を複製・頒布する際に、「著作者の表示」「非営利目的での利用に限定」「改変禁止」「ライセンスの継承」の4つの制約の中から選択して、ライセンスを適用できます。 著作権を完全に放棄して(パブリックドメインとして)公開する場合は、CC0を適用します。 |
Apache License | Apache Soft Foundation | MIT Licenseよりもさらに緩いライセンスで、こちらはライセンスの本文さえ記載が不要です。本ライセンスが適用されたソースコードを改変・再配布する場合は、ソースコードの著作権の表示とApache Licenseが適用されていることを示す文章を入れるだけでよいです。また、再配布時に適用するライセンスを変えることができ、ソースコードを非公開にすることもできます。 |
Berkeley Software Distribution License | カルフォルニア大学 | MIT Licenseとほぼ同様の制約を持つライセンスで、BSDライセンスと略して呼ばれることもあります。 BSDライセンスには、ライセンスの種類がいくつかありますが、ここでは修正BSDライセンスのことを指します。修正BSDライセンスが適用されたソースコードは、改変・再配布などを行うときに、著作権の表示と無保証であることの記載のみを要求します。 なお、BSDライセンスの一種であるオリジナル版のBSDライセンスは、派生物に初期開発者を表示するという制約があるため、GPLと両立できません。 |
Blenderのソースコードにもライセンスが適用されています。 Blenderに適用されているライセンスの詳細については、Blenderの公式ホームページ(https://www.blender.org/about/license/)で確認できます。 Webサイトに記載されているとおり、Blenderのソースコードには、基本的に「GPLv2」が適用されていると書かれています。 基本的にと書いたのは、一部のソースコードにはGPLv2以外のライセンスが適用されているからです。 例えば、Blenderのビルドに必要な一部のライブラリには、MITライセンスやBSDライセンスなどが適用されています。 このように、Blender全体としてみるとさまざまなライセンスが適用されていますが、アドオンを開発するだけであれば、BlenderにはGPLv2のライセンスが適用されていると覚えておけば問題ありません。
Blenderのライセンスには、GPLv2が適用されていることを説明しましたが、Blender上で動作するアドオンのソースコードのライセンスには何を適用すればよいのでしょうか? Blenderの公式ホームページでは、Blenderを構成するすべてのコンポーネントは「GPLv3互換」でなければならないと書いてあります。 このため、Blenderを構成するアドオンについても、GPLv3互換のライセンスを適用する必要があります。 ここで、必ずしもアドオンに対してGPLv3を適用する必要があるのではなく、GPLv3 "互換" のライセンスを適用すればよいことに注意してください。
GPLv3互換ではないライセンスが設定されているアドオンはライセンス違反となり、使用できません。 例えば、ライセンスが明記されていないアドオンはGPLv3互換ではないため、アドオンを使用した時点でライセンス違反となってしまいます。 このことから、アドオンには必ずGPLv3互換のライセンスを適用する必要があります。 GPLと互換である(両立する)ライセンスは、http://www.gnu.org/licenses/license-list.html から確認できます。 アドオンに適用しようと考えているライセンスが、GPL互換であるか否かを必ず確認してください。
さて、ライセンスについてここで初めて知ったという人は、どのライセンスを選んだらよいか迷っていると思います。 基本的にGPLv3互換であれば何でもよいのですが、公開されているアドオンのライセンスを見ると、GPLやMITライセンスが適用されているものが多いようです。 Blender公式のリポジトリに登録されたアドオン(リリースレベルがOfficialまたはContribのアドオン)は、Blenderと一緒にオープンソースとして公開されることから、GPLの適用が必須です。 一方、公式のリポジトリに登録されていない個人で開発されたアドオン(リリースレベルがExternalのアドオン)は、GPLv3互換であるMITライセンスが適用されていることが多いようです。
MITライセンスを適用しているアドオンが多いのは、GPLの特徴の1つである「GPLライセンスが適用されている制作物を一部でも利用して制作したものは、GPLライセンスで配布しなければならない(コピーレフト)」という制約があるためです。 これは、アドオンを作成するときにGPLが適用されているソースコードの一部を流用した場合、作成したアドオンをGPLライセンスで配布する必要があるという、非常に強力な制約です。 一方でMITライセンスは、ライセンスで示された条件さえ守っていれば、「再配布物のライセンスを変えてもよいし、ソースコードを非公開にしてもよい」ので、GPLに比べて非常に緩いライセンスと言えます。 リリースレベルがExternalのアドオンで、MITライセンスを適用する人が多いのはこのためだと考えられます。
アドオンに適用するライセンスが決まっていなかったり、ライセンスをあとから変更することを検討しているのであれば、とりあえずMITライセンスを選んでおけばよいと思います。 少なくとも、ライセンスを設定しないことだけは絶対に避けてください。
ソースコードに適用するライセンスを決めたあとは、適用したライセンスを明示する必要があります。 適用したライセンスを明示する方法は複数ありますが、ここでは比較的よく見かけるライセンスの明示方法について紹介します。
ライセンスを明示する方法として最初に紹介するのは、ライセンスを適用するソースコードの先頭などの目立つ場所に、適用するライセンスの本文を記載する方法です。 この方法では、次に示す例のようにソースコードの先頭にコメントとしてライセンス本文を記載します。
#
# 本ソースコードは○○のライセンスが適用されています
# 著作者:ぬっち
#
import bpy
...
上記の例は、あくまでライセンス記載のイメージを持ってもらうために示した疑似コードであるため、ライセンスごとに記載すべき文章が異なります。 記載するライセンス本文については、各自で調べて記載してください。
ソースコードが置かれたトップディレクトリに LICENSE
ファイルを作成し、ライセンスの本文を LICENSE
ファイルに記載する方法もあります。
ソースコードごとに異なるライセンス(マルチライセンス)を適用する場合は、適用するライセンス全てを LICENSE
ファイルに記載します。 ただし、ライセンスをどのソースコードに対して適用したのか、わかるようにする必要があります。
利用規約やソースコードの概要などが書かれた、README系のファイルにライセンスを明示することもできます。 オープンソースソフトウェアではないフリーソフトなどでよく見かける方法ですが、オープンソースソフトウェアの場合はあまり主流ではありません。 このため、READMEファイルに記載するのは、あくまでアドオンの説明や適用しているライセンス名に限定し、ライセンス本文は LICENSE
ファイルに記載するのがよいと思います。
ライセンス適用の例として、本書に適用されているライセンスについて説明します。 はじめに に記載しているとおり、本書のライセンスはマルチライセンスを採用しています。
本書で紹介しているサンプルアドオンのソースコードには、「CC0」が適用されています。 CC0はいわゆるパブリックドメインと呼ばれるもので、本書で紹介しているサンプルアドオンのソースコードに関しては、著作権を放棄しているということを示しています。 CC0が適用されていることによって、著作者を明示することなく本書のサンプルアドオンを改変・流用したり、他のライセンスをつけて再利用することもできます。 また、CC0はGPLv3互換であるため、Blenderのアドオンに適用すべきライセンスとしても問題ありません。 なぜCC0なのか、という質問をいただくことがあります。 本書で紹介するアドオンのソースコードを積極的に他の人に改変・流用してもらうことで、アドオン開発に役立ててもらいたいという意図があるため、CC0を適用しています。
一方、本書の本文については、「CC BY」が適用されています。 著作権を明示すれば、複製や頒布などを自由に行うことができる、というのがCC BYです。 さまざまな人に対して、本書に書かれた内容を知ってもらいたいという願いを込めて、複製や再頒布は自由にした一方、本書の本文の執筆者は明示してほしいという思いを込めています。
本節では、ソースコードの利用に関するライセンスについて説明しました。 そして、Blenderのアドオンを公開する際に、ソースコードにライセンスを適用する必要がある理由と、ライセンスの適用の仕方を説明しました。 アドオンの開発とは少し離れた話題ですが、Blenderのアドオンを配布することがソースコードを直接配布することと同じである以上、アドオン開発者はライセンスについて理解しておく必要があります。
アドオンにライセンスが適用されていないと、せっかく素晴らしいアドオンを作成しても、作者以外はアドオンを修正できない、もしくは最悪の場合、アドオンを使うことすらできなくなってしまいます。 公開後の面倒な対応を避けるため、アドオンを公開する前にソースコードにライセンスを適用し忘れていないか、確認するようにしましょう。 本節では、最低でもこのことだけを覚えておいてもらえれば十分です。