個人アプリクリエイター / 個人ゲーム作家が気にしておくべきOSS, Asset, 素材, コード等のライセンスについて

はじめに

(∩´∀`)∩和尚本の影響を受けてゲーム作家と言うワードを使ってみた

最初に記載しておきますが、本稿ではライセンスの考え方等でリスクがあると捉えがちですが、
ライセンスは、少しの意識を持って真摯に捉えていれば恐れるものでは無いと思います。
(とは言え、私自身見たことがないOSSを使う時はビクビクしちゃうのですがw

さて、このblogを読んでいる方、OSSやAsset、他者が作った素材やソースコード等をよく利用されていると思います。

私個人的な考え方も、OSSやAsset, 他人の書いたコードはどんどん利用していくポリシーで、車輪の再発明はすべきではないと考えています。
そんな事に時間を掛けているくらいなら、既にある車輪を活用して新しい価値を作るべきだし、
別な新規性のある価値を生み出して、他の人に使ってもらって、クリエイター全域の生産性を上げるべきだと考えています。

ただ、他者の作成したものを使う時に気をつけておかないと行けない事があります。
それがライセンスです。

ライセンスとは?

ライセンスとは、ざっくり言うと他者が作った成果物を利用する際の制約を指します。
ライセンスは、有償/無償の物共に設定されています。(勘違いし易い所で、有償だからと言って何でもかんでも許されるものではありません。)

ただ、良くライセンスについて取り上げられるのは、オープンソースやフリーなものが取り上げられますので、本稿でもこれ前提で書いています。

ライセンス違反すると何が起きるの?

とんでもないことが起きます

後述しますが、ライセンスには色んな種類が存在し、過去の凡例を見る限りだと、ライセンス毎に酷い目の度合いが異なっています。

具体的に言うと以下が代表的です。

  • 罰金
  • ソースコードの開示
  • ライセンス違反(=コンプライアンス違反)による、社会的信頼の低下

日本だとまだこのライセンスについての意識はそこまで高くないですが、海外だとかなりセンシティブに捕らわれています。
アプリ開発等行って、海外展開を考えている方、是非一度お使いの第三者成果物についてライセンス抵触していないか、確認頂ければと思います。

ライセンスの種類

頭が痛くなる程ごちゃごちゃしています。
批判を恐れず言うと、ここにあるものは全て覚えておく必要が無く、後述しているライセンス以外なものが出てきたら改めて調べると言う感じで十分です。

  • EULA
  • Apache v2
  • GPL
  • MIT
  • LGPL
  • BSD
  • No License
  • etcetc

一覧はこちらのサイト様が分かりやすいと思います。

coliss.com

ライセンスは何処で確認するの?

意識のあるクリエイターの場合は、大体見える位置にライセンスが明記されています。
例えばだと、Twitter Kit Unityのライセンスは以下のGitのReadmeの目立つ位置に記載されています。

github.com

f:id:project-unknown:20170827004309p:plain

また、ソースコードに記載されているケースもありますし、Unityだと特にAssetにライセンスについて記載されていない場合は、EULAが適用されると記載されています。

unity3d.com

ライセンスが何処にも記載されていない場合は勝手に何でもやってよいの?

駄目です
ライセンスが記載されていないものこそ注意が必要です。
ライセンスが記載されていない場合は、著作権が放棄されている訳ではないですし、その利用方法は著作者が決めるものです。勝手な解釈は認められません。

では、ライセンス表記がなかったらどうするのか?
以下が正しい行動になるかなーと思います。

  • 著作者にコンタクトを取ってライセンスの確認を取る。
    • 著作物がコード等公開されているものであれば、ライセンスを明記して配布してもらうようお願いする
  • そもそも使わない

Webサイトに記載されているコードのライセンスの取扱は?

Webサイトで、親切な方がコードを記載しているのをよく見かけますが、これにもライセンスが適用されます。
なので、ライセンスが特に明記されていないコードについて、本来だとシステムに組み込んでは行けません。
(ただ、リバースエンジニアリングでもされない限りバレないと言うと言うのもあり、第一線でも平気でこれが行われているのが現実ですが…特にコピペエンジニアが多い現場だとこれが横行してます

特に、よく見受けられるのがWebサイトを見ながらSampleコードを作って、動いた喜びで自身のblogなどでも取り上げてしまうケース等あると思います。
これは再配布に当たるので本来だとやっちゃ駄目にあたります。
(目くじら立てて怒る人はそういないですけどねw

覚えて置くべきライセンス

さて、本稿の本題です。
色々ライセンスの事を気にしすぎると何もできなくなるので、
誤解を恐れずに記載すると、以下の3つのライセンスについては、特に何も気にしなくて良いです。
(と言うか、OSSなどは、以下の3つが特に多いです。親切なクリエイターさんが多い証拠ですね)

Apache v2 License

www.apache.org

こんな事言うと怒る人が出て来るかもしれませんが、私はApache v2 Licenseだとラッキーだと思ってます。
Apache v2 Licenseは以下を必須とします。

  • 著作権の表示
  • 変更箇所の明示

著作権の表示ですが、良くアプリとか使っていると、ソフトウェアライセンスの項目にこんなOSS使ってますよーと紹介が載っていると思いますが、あれです。
これは諸説あって、ソースコードの方にこのライセンスを使っていると明示するだけで良いと言う説もありますね。(実際にそうやって組み込まれている例をよく見ます)
が、私個人としては著作者へのお礼も込めてユーザが見える位置に良く置きます。

また、Apache v2 Licenseでは以下の事が許可されます。

  • 商用利用
  • 成果物の修正
  • 成果物の配布
  • サブライセンス
  • 特許に組み込んでもOK

ほぼなんでもありです。

MIT License

choosealicense.com

これも特に恐れずに使っても大丈夫です。
Apache v2と同様、著作権の表示さえやっていれば、殆ど何をやっても大丈夫です。

Unity Asset Store EULA

unity3d.com

Unityをやっている人にはおなじみのライセンスですね。
前述していますが、Unity Asset Storeでライセンサ表記が無い場合は基本、このライセンスが適用されます。

ざっくりとこのライセンスは、
ゲーム等に組み込んだ形でのみ再配布が許可されるって感じになる為、Asset Storeで購入したりしたものをゲームに組み込んで商用利用する形とする場合は特に問題が無いと言う話ですね。
(もちろん、ゲームジャム等でもゲームとして組み込んで配布するのも問題無しです。

では、気をつけないと行けないものは?

先に上げた3つ以外のライセンスについては注意が必要です。

GPL

特に代表的なもので、このライセンスを挙げるのですが、
おそらくMIT, Apacheライセンス並に広く浸透しているのがこのGPLライセンスです。

このライセンスは、商用利用も、修正・配布などにも使えるのですが、
ソースコードを明示しないといけません
なので、折角作ったシステムで、このライセンスを利用していると、作ったシステムのコードを開示しないと行けないと言う事態になります。

ただ、GPLライセンスであっても恐れる必要はありません(私は恐れてますが…w)
GPLライセンスの目的の1つは、GPLライセンスで作られた成果物の成長であったり、GPL事態の普及が目的であるため、
利用者に不備があり、問い合わせを受けたとしても速やかに対応を行えばトラブルに発展することは考えにくいです。

ハイブリットライセンス

これは特に意識しないと中々気づけ無いのですが、
その名の通り、ハイブリットライセンスは、著作物に複数のライセンスが混在している事を指します。
作者事例はMITライセンスとして配布していても、その作者が気づいていない所で、GPL等のライセンスの物を使っていた場合、
その成果物はGPLライセンスで配布しないと行けないという決まりがあります。
なので、このケースの場合、MITライセンスで配っている事自体が誤りなのですがね、、、
要するに、MITライセンスで配布されたとして、その中にGPLライセンスが混入していると、その作品事態がGPLライセンスとなる為注意しておく必要があります。

最後に

注意喚起が多くて、ゲンナリしてしまったかもしれませんが、
ライセンスは著作者が、この決まりを守ってくれれば使って良いよと、好意で言っていただいているものであるため、そこは尊守して、生産的な事につなげていきましょう!