2023年5月8日月曜日

OSSと商用利用について

昨今OSSを利用しない商用ソフトウェアはほぼ存在しないと思います。

商用ソフトウェアで利用可能なOSSライセンスについての(一般論としての)私の認識は概ね下記と同じです。

商用利用できるオープンソースライセンスはけっきょくどれで何をすればいいのか?(Qiita)

上記記事では「GPLは使わない方が良い」とのことですが、個人的には GPL も含めて良いと思っている節があります。商用ソフトウェアでも積極的にソースコード公開した方が良いのではないかと。その方が結果的にソフトウェアの再利用性が高くなり世の中が便利になりそうな気がするので。

商売する上では「競合に簡単にマネされる」といった側面もあるので、全てのケースでそうすべきとまでは言いませんが、可能な範囲でライセンスはGPLにした方が良いと考えています。

という訳で、東方VGS(iOS, Android)のバージョン4(2022.01再開時バージョン)のライセンスはGPLv3にしてます。

https://github.com/suzukiplan/tohovgs4-ios/blob/master/LICENSE.txt

https://github.com/suzukiplan/tohovgs4-android/blob/master/LICENSE.txt

東方VGSの技術的な特異点はVGSのチップチューン・サウンドの仕組み(部品)ですが、経済性(商業的な意味での価値)は「部品」にはほぼ無いと思っているので、部品にはより再利用性が高い(≒緩い)ライセンスである 2-Clause BSD を採用しました。

https://github.com/suzukiplan/vgs-bgm-decoder/blob/master/LICENSE.txt

https://github.com/suzukiplan/vgs-mml-compiler/blob/master/LICENSE.txt

経済性があるのは「部品」ではなく「コンテンツ」です。(※ソフトウェアの場合)

理由は簡単で「大半の人は部品ではなくコンテンツに感動するため」です。もちろん、部品に感動する特殊な性癖の方も居るかもしれませんが、それはある種の性的マイノリティだと思います。

昨今は、映画、音楽、マンガなどのコンテンツそのものは幾らでも無料で手に入るし、何なら将来的にはAIが自動生成してくれるかもしれないので、コンテンツに経済性を発生させることにすら一工夫が必要です。

しかし、部品そのものに経済性は無くてもゼロから開発するには相応のコストが掛かるので「部品はどんどんオープン化してより良い部品が生まれる形にした方が実利がある」というのが私の基本的な考え方です。

VGS以外だとZ80エミュレータなんかも作ってますが、これも単なる「部品」ですね。

なので、それ単体での経済的価値は無い筈です。

しかし、Z80エミュレータについては、開発当時(2019年)すでに多くのフリーウェアが存在したのですが、ライセンス周りが結構曖昧なものが多かったので、差別化のためMITライセンス(2-Clause BSD より若干緩いライセンス)にしています。

https://github.com/suzukiplan/z80/blob/master/LICENSE.txt

エミュレータ関連のソースコードは、微妙なライセンスで提供されているものが多く、その代表例が fMSX でしょうか。

fMSXライセンス(抜粋)

The fMSX source code is written in portable C and will work on any sufficiently fast computing platform, be it a personal computer, a videogame console, a PDA, a cell phone, a set-top box, a DVD or MP3 player, or even a digital camera. Some examples of fMSX being ported to various platforms can be found below on this page. If your company intends to use MSX emulation in its products, you can license the fMSX source code from me to use it for commercial purposes. I am also available for consulting work in the software emulation, embedded programming, and other fields. See my resume and contact me if interested.

fMSXのソースコードはポータブルCで書かれており、パーソナルコンピュータ、ビデオゲーム機、PDA、携帯電話、セットトップボックス、DVDやMP3プレーヤー、デジタルカメラなど、十分に高速なコンピュータプラットフォームで動作する。このページでは、さまざまなプラットフォームに移植されたfMSXの例をいくつかご紹介します。もしあなたの会社がMSXエミュレーションを製品に使用するつもりなら、私からfMSXのソースコードをライセンスして、商業目的で使用することが可能です。また、ソフトウェアエミュレーション、組込みプログラミング、その他の分野でのコンサルティングも可能です。私の履歴書をご覧いただき、ご興味があればご連絡ください。 

「ライセンスを受けることで商用利用できる」とありますが、事実上それはかなり困難です。日本語で「ライセンスしてくれ」とメールを送ったところで無視される可能性すらありそうですし、そもそも、より緩いライセンスのMSXエミュレータなら他にもあるので、わざわざレガシーなfMSXを(お金を支払ってまで)使う理由がありません。

また、fMSXの場合、商用利用についての条件は定義されていますが、非営利目的やプライベートユースについての許諾が一切されていないので、例えば大学の研究目的での使用などでも利用できない可能性がある不自由なライセンスだと思われます。

しかし、fMSXはエミュレータ黎明期からOSSとして提供されていたため、色々なエミュレータのコードベースとして汚染されているのが実態で、例えばBlueMSXなどのコードベースになっていた時期もあるようです。

そこで、明確に自由なライセンスのZ80エミュレータを生み出すことには価値があると考えて作ってみました。

この他にもエミュレータ界隈は古くからOSSが浸透していましたが、「利用は原則自由だが商用利用はNG」という不自由なライセンスが多い印象があります。

例えば、FM音源エミュレータで有名なfmgenのライセンスも、商用利用に関してはfMSXと概ね同じ「不自由なライセンス」になっているようです。

https://github.com/kuma4649/MDSound/tree/master/MDSound/MDSound/fmgen

何故、そんなに商売を毛嫌いする必要があるのか?

太古の昔のインターネットには「嫌儲」という謎の文化があり、それに毒されているのかもしれません。

冷静に考えれば、経済的に発展している国はほぼすべて資本主義のスキームを採用していて、資本主義社会では認知拡大のためのツールとして「商売」がとても有用なので、これを積極的に活用しない手はありません。

もちろん、fMSXのようにライセンスビジネスで小銭を稼ぐ路線=部品そのものに経済性を求める方向もナシではないと思いますが。(ただ、どう考えても大して儲からないと思いますが)

2023年4月28日金曜日

【不具合】東方VGS(iOS)で広告が読み込まれないエラーが発生して楽曲がアンロックできない

2023.04.21あたりから、iOS版の東方VGSで広告が読み込まれないエラーが発生しているようです。

以下、AdMobのコンソールで確認した内容です。

青いバーが日次の広告収益(※白斜線は前週 & 緑はアプリ内課金収益)ですが、4月22日以降は¥0になっていることが分かります。

XCODEで確認したところ、広告取得のタイミングで「Request Error: No ad to show」というエラーになっていることが分かりました。

このエラーは、

  • ポリシー違反等で広告配信がストップされているケース
  • AdMobの障害
  • 純粋に広告在庫が無いケース

などで発生する可能性があるようです。

AdMobのコンソールで確認したところ、広告配信制限に引っかかっていることが分かりました。

誤解を招く開示情報?

・・・要修正のところに例がありましたが、どうもそういうケースに引っかかっているようには思えません。

報告日が4月21日とのことなので、時系列的にこれが原因とみて間違い無さそうです。

という訳で、Googleへ再審査(異議申し立て)を出してみました。

審査には1週間程度掛かるとのことで、その間にアドオン未購入の方が楽曲アンロックができなくなってしまうため、平行して広告が読み込めなかった時、リワード広告を再生せずに楽曲をアンロックするアップデートを行います。

アップデート後 ※予定
(読み込み失敗→広告無しでアンロック)

2023年4月20日木曜日

東方VGSに「東方妖々夢 〜 Ancient Temple」(花映塚版)を追加しました

最近は中々多忙で時間が取れなくて久々のアップデートです。

まだ神霊廟をコンプリートしてなくて6面道中で行き詰まっていた(オケヒ再現は色々な意味で厳しい)のですが、ここで一旦過去に立ち戻って花映塚版の「東方妖々夢 〜 Ancient Temple」を追加しました。

ちょうど本家新作が久々の夢時空スタイル(参考)とのことなので、久々つながりで作りかけで積みゲー状態だった花映塚を進める良い機会かもしれない...ということで。

かなり初期の頃に、花映塚版ではなく妖々夢版のAncient Templeを入れてレビューが軽く炎上したこと(約10年前?)が昨日のことのように思い出されます。花映塚版と妖々夢版ではテンポも調性も異なるので致し方がありません。

東方VGSのレビューは荒れることが少なかったので、荒れた時のレビューの内容はよく覚えています。例えば、何に脈絡もなくアップデートテキストに4000字キッカリの長文ポエム(怪文書?)を載せてみた時とか。

今回はちゃんと真面目に採譜しました。

コーダのアルページョだけは原曲音源から聞き取りにくかったので妖々夢版からコピペしてキーだけ調整しましたが、他は全部無駄に新規で耳コピしました。変化を求めるには車輪の再発明をし続ける必要があるので、無駄に無駄を積み重ねて生きていきたいところです。

当時作り直さなかったのは、当然ながらシンプルに面倒臭かったことと技術的な事情(今もまだ上手くはないですが当時は今よりも更に耳コピが下手でAncient Templeは原作midiを見て作っていた事)が大きいのですが、「同じ曲をやるなら進化していなければならない」などと一丁前のことを考えており、私のアレンジの腕前に起因して進化ではなく逆に劣化したらどうしよう...などと無用な心配をしていたことを思い出しました。

この10年で「進化でも劣化でも良いから変化してれば何でもOK」と考えるように成長(老化?)したので、10年前の自分との違いをひとりでコッソリと楽しみたいと思います。

東方のお寺の曲は結構好き(妖怪寺とか)

2023年3月8日水曜日

東方VGSのDAU状況

最近、本業多忙で東方VGSの配信ができていません。(2023.02は配信0でした)

流石に丸1ヶ月放置状態だとアクティブ率も落ちているんだろうなぁ...と心配になり、DAUの推移を調べてみました。

以下、2022年1月に東方VGSを再公開してから現在(2023年3月上旬)までの日々のDAU推移(DAUはiOS+Androidの合計)で、ついでに新規配信楽曲(タイトル別)の配信期間をコメントインしてます。

ざっくりと、

  • 地霊殿: 順調に成長
  • 星蓮船: 序盤で一時ピークアウト→後半で持ち直し(ベースライン上昇)
  • 妖精大戦争: ボラティリティが最大化
  • 神霊廟: 一定水準で推移

という傾向が見られます。

5年ぐらいのブランクがあったのですが、地霊殿の期間(たったの3ヶ月)で概ねピーク到達できたようです。

1ヶ月全く音沙汰無しでも大きく落ちてなくてひとまず安心しましたが、なるべく早く復活したいところです。

それはともかく、妖精大戦争のアップダウンの激しさが中々興味深いです。データを見る限り「妖精大戦争 〜 Faily Wars」が人気だったようです。(アレンジで少しイジりすぎたけど大丈夫かな?と心配した曲だったのですが)

参考までに、それぞれのタイトルの原曲の人気度合いを第15回人気投票の音楽部門の結果をベースに集計してみました。(※ポイント偏差値を追加)

ついでに、タイトル毎に個人的に一番好きな曲(マイベスト)も書いてみます。

【地霊殿】

順位名前ポイント偏差値
4ハルトマンの妖怪少女368699.8
14少女さとり ~ 3rd eye234279.8
17ラストリモート199274.6
28霊知の太陽信仰 ~ Nuclear Fusion143766.3
42廃獄ララバイ113361.8
66緑眼のジェラシー78356.6
111死体旅行 ~ Be of good cheer!40551.0
127ハートフェルトファンシー35650.3
130旧地獄街道を行く34850.2
133華のさかづき大江山34050.0
175渡る者の途絶えた橋21748.2
180業火マントル20048.0
191暗闇の風穴17247.5
225封じられた妖怪 ~ Lost Place11746.7
260地霊達の起床7746.1
350エネルギー黎明 ~ Future Dream...3245.5
356地霊達の帰宅3145.4
  • 平均値: 56.93
  • 中央値: 50.2(130位)旧地獄街道を行く
  • 偏差値60以上: 5曲(人気が高い曲)
  • 偏差値50以上60未満: 5曲(標準的な曲)
  • 偏差値50未満: 7曲(人気が低い曲)
  • マイベスト: ハートフェルトファンシー(50.3)

【星蓮船】

順位名前ポイント偏差値
16感情の摩天楼 ~ Cosmic Mind222178.0
38春の湊に115162.1
45平安のエイリアン106160.8
96万年置き傘にご注意を53052.9
102幽霊客船の時空を越えた旅47352.0
108夜空のユーフォーロマンス44351.6
143虎柄の毘沙門天32449.8
146法界の火31549.7
151小さな小さな賢将29449.4
154キャプテン・ムラサ27449.1
161魔界地方都市エソテリア24148.6
210時代親父とハイカラ少女13547.0
253スカイルーイン8446.2
298空の帰り道 ~ Sky Dream5145.7
313閉ざせし雲の通い路4445.6
350青空の影3245.5
452妖怪寺745.1
  • 平均値: 51.70
  • 中央値: 49.4(151位)小さな小さな賢将
  • 偏差値60以上: 3曲(人気が高い曲)
  • 偏差値50以上60未満: 3曲(標準的な曲)
  • 偏差値50未満: 11曲(人気が低い曲)
  • マイベスト: 幽霊客船の時空を越えた旅(52.0)

【妖精大戦争】

順位名前ポイント偏差値
29メイガスナイト142466.2
156真夜中のフェアリーダンス25748.8
157妖精大戦争 ~ Fairy Wars25648.8
214いたずらに命をかけて12946.9
222年中夢中の好奇心12146.8
223ルーズレイン12046.8
261可愛い大戦争のリフレーン7646.1
381春の氷精2245.3
452春の氷精 - 静 -745.1
  • 平均値: 48.96
  • 中央値: 46.8(222位)年中夢中の好奇心
  • 偏差値60以上: 1曲(人気が高い曲)
  • 偏差値50以上60未満: なし(標準的な曲)
  • 偏差値50未満: 9曲(人気が低い曲)
  • マイベスト: 妖精大戦争 ~ Faily Wars(48.8)

 【神霊廟】

順位名前ポイント偏差値
22デザイアドライブ185372.5
55聖徳伝説 ~ True Administrator93358.9
64古きユアンシェン82657.3
82死霊の夜桜63154.4
116佐渡の二ッ岩38850.7
141大神神話伝32849.9
163夢殿大祀廟23948.5
184素敵な墓場で暮しましょ18247.7
185リジッドパラダイス18147.7
209妖怪裏参道13647.0
247小さな欲望の星空9046.3
255デザイアドリーム8246.2
266ゴーストリード7346.1
309門前の妖怪小娘4745.7
313妖怪寺へようこそ4445.6
318欲深き霊魂4245.6
  • 平均値: 50.63
  • 中間値: 47.7(184位)素敵な墓場で暮しましょ
  • 偏差値60以上: 1曲(人気が高い曲)
  • 偏差値50以上60未満: 4曲(標準的な曲)
  • 偏差値50未満: 11曲(人気が低い曲)
  • ランキング未掲載: 1曲(神社の新しい風)
  • マイベスト: 妖怪寺へようこそ(45.6)

もっと人気が低い曲中心でやりたいですね。全部偏差値40台以下のタイトルとか無いのかな...妖精大戦争がメイガスナイトだけ突き抜けていますが、他は全部40台なので良い感じです。

ちなみに、売上は昨年比で結構落ちていますが、それでも今年の目標値(損益分岐点の2万円/年)は余裕でクリアできたので、今年いっぱいは売上関連の対策は一切しない予定です。

合理的ではないものを作りたい

ここ最近、実機版の東方VGSの開発が忙しくて、東方VGSの曲追加が滞っています。 東方VGS(実機版)のデザインを作りながら検討中。基本レトロUIベースですがシークバーはモダンに倣おうかな…とか pic.twitter.com/YOYprlDsYD — SUZUKI PLAN (...