2015年10月3日土曜日

東方BGM on VGSができるまで

東方VGSの収録曲数が100曲を超えてしまった。

いや、こんなに続くとは思ってなかったです。

記念に何かやろうと思ったけど、特に思いつかなかったので、どういう経緯で東方VGSが誕生したのか書いてみようと思います。

書き終わってみると、既視感みたいな感じのものをもの凄く感じたので、既に似たような記事を書いたことがあるのかもしれませんが、細かいことは気にせず...

時は2011年末、

Windowsでシェアウェアのゲームを出すも、1本も売れず、当時流行し始めたスマホでゲームを出せば売れるんじゃないかと考え、スマホでどうやってゲームを作るのかを調べてみることにしました。

iPhoneならObjective-c

ふむふむ。

Mac経験が無い私は、Objective-cなんて1ミリも知らなかった(Next Step開発時に作られたということなら知っていた)けど、Cの名を冠するものなら当然Cでも書けるだろうということで、悪くない。

まぁ、言語は別にどうでも良かったのですが、しかし、Mac必須というのがアレだったので、いつか対応しようと思いつつ、とりあえずAndroidで作ってみることにしました。

AndroidならJava

・・・クソだな。

まぁ、言語は別にどうでも良かったのですが、Javaでゲーム開発とかねーから!! ということで、ガワだけJavaで作り、メイン部分をC言語で作れるゲームエンジンを作ることにしました。
ガワ・ネイティブならぬ、中身・ネイティブです。
どうでも良いことですが、AndroidのJavaで作られたアプリのことを「ネイティブアプリ」って呼ぶのが未だに慣れない。「Javaで作ってるならネイティブじゃないじゃん!」と突っ込みたくなる。

その時書いた設計図が下記。
ゲームエンジンの設計図
(ガワ部分の設計は含んでいない)

VGE ; Video Game Engine です。

この落書きみたいな設計図で、現在のVGSの原型となるゲームエンジン(VGE)を作り、そこで動くゲーム第一弾として、以前DirectXで作ったEeePC専用ゲーム「Invader Block」の続編を開発。(あっさり完成)

ヒャッハー!
これで、スマホアプリがC言語で作れる!
まぁ、言語は別にどうでも良かったのですが(ry
初めてAndroidで動いた時の映像
(色がバグってるしアス比も狂ってる)
完成したInvader Block 2のリンクを貼っておきます。
宣伝は基本。
Android版(SUZUKI PLANのスマホ対応アプリ第一弾)
iPhone版(iPhone対応アプリ第一弾として1年後にリリース)

この時点のVGSには、音楽を再生する機能がありませんでした。

スマホって容量がちっさいし、回線もおっそい。
だから、AACとかOGGとかで音楽を鳴らすのはありえない。
いや、他のベンダーさんは皆そうやって音楽を鳴らしているんでしょうけど。

でも、他所は他所、ウチはウチ。

という訳で、小さな容量で音楽を鳴らす仕組みを作る必要があると考え、ソフトウェアシンセサイザー方式でチープな音源機能を実装して、そのプロトタイプを開発してみました。
独自音源のプロトタイプ
(ウインドウタイトルを気にしてはならない)
音を鳴らす仕組みはこれで完成。
  • サンプリング周波数: 22050Hz
  • ビットレート: 16bit
  • モノラル
  • 波形メモリ音源方式
  • 波形は三角波、ノコギリ波、矩形波(「たんけいは」ではなく「くけいは」ですが、プロト開発時は「たんけいは」と呼んでいたらしい。恥ずかしいw)の3つ
波形については、最終的にノイズを加えて4つになりましたが、その他の仕様はプロト開発時のものが現在でも使われています。

あとは、これに対応した逐次的に音を鳴らすための仕組み(サウンドドライバ)を実装すれば、音源システムが完成します。

サウンドドライバの開発知識は無かったので、MXDRVのソースを眺めて仕組みを読み取り、 サラの状態から綺麗に再設計するリバースエンジニアリング→リエンジニアリングという手法で設計。

最後に、このサウンドドライバに喰わせる音楽データを作るツールが必要です。

音楽データには、独自規格のMMLを採用。

最初はMIDIとか色々考えたけど、汎用規格ってなんかカッコ悪い。

全部独自設計するなら当然規格も自分で作るよね?

などと、意味のわからないことを考えながらMMLの仕様を、ジックリ小一時間ぐらい掛けて書いて、1週間ぐらい掛けてコンパイラを開発。
初期の頃に書いたMMLの仕様書
(サンプルMMLのヘッダにコメントで記述)
※完成後の仕様とは大分異なる

この、頭の天辺から爪先まで全て独自仕様で固められた謎の音源システムの名称を、私は Video Game Sound system(略してVGS)と呼ぶことにしました。そして、VGSはVGEと合体して「Video Game System」という名称になりました。

なお、AtariのVCS(Video Console System)をオマージュした名前のように聞こえるかもしれませんが、それは単なる偶然です。ゲームエンジンとして目標にしていたのは、どちらかといえばVCSではなくPCエンジンです。私はPCエンジンで育った人間です。PCエンジンの凄いところはデザインです。デザインとは見た目のことではなく、コア思想という設計思想のことで(中略)

そんな訳で、本当は VGエンジン という名称にしたかったのですが、VGエンジンという名称の製品(※車のエンジン)が既に世に存在していたからVGSにした感じです。(カテゴリが違うから商標上の問題は無かったと思うけど、念のため)

若干話しが逸れましたが、完成したMMLコンパイラのテストを兼ねて、数曲作曲。そして、それらを鳴らすサンプルアプリを作成しました。
音楽再生用のサンプルアプリ

おわかりいただけただろうか

これが東方VGSの原型です。
実はこれ、VGS Chiptune Music という名称で、Android Marketで公開していました。

まぁ、評価はアレです。

「音楽はクソだな!星5だ!」(フランス語で)

などと、罵られました。

これは、「お前の作曲の 腕が残念だけど、仕組みは面白い」的な意味だったのだろうか?フランス語はあんまりよく分かんないです...

なぜか、インドネシアで好評でした。
なお、日本では殆どダウンロードされていません。
ちなみに、非公開にしてあるので、もう手に入らない幻のアプリです。
(私の端末には普通に入っているけど)

その後、この音源機能が追加された新生VGSを使って NOKOGI Rider を開発。
NOKOGI Rider(開発中の映像)
そして、VGSをiOSへ移植して、iOS版のInvader BlockとNOKOGI Riderをリリース。

結果的にInvader BlockもNOKOGI Riderもそんなに沢山売れなかったものの、VGSの音源システムについては面白いという自信があったので、VGSを使って音楽を配信するアプリを作ってみることにしました。

そうです。

それが、WTC1 on VGSです。
VGSで作った音楽配信アプリ
(現在も公開中)

ついでに、音楽が好きだった東方Projectの楽曲も二次創作という 体でお借りして、東方BGM on VGSも作ってみた感じです。

最初は紅魔郷の全曲が揃ったら辞めるつもりでした。

何故なら、物凄く大変なので。

物凄く大変ではありますが、とりあえず、「1週間で1曲づつ追加していく」というマゾマゾしいルールを設け、本業の仕事もしながら、まるで連載作家のようなマゾマゾしい生活を実践することにしました。

そして、いよいよ紅魔郷が全曲揃って東方VGSを辞めれる!となった時は、本当に嬉しかったです。これでようやく人間らしい生活に戻れると。しかし、辞めてみて湧いてきたのは、達成感とか充実感ではなく、この マゾ・ライフが終わることの空虚感 でした。

私はアンチ嫌儲な人間です。タダ働きなんてまっぴら御免です。そういう性格の人間なので、収益化をした上で成功していれば、達成感や充実感があったかもしれませんが、東方VGSについては、収益化を一切せずに続けていたので、それらの満足感を得られることが無いことはある程度想定済みでした。

では、この空虚感は一体何なのか。

じゃぁ、妖々夢と永夜抄も全曲揃えて確かめよう

そんな悪魔の囁きに唆され、続ける事を辞める事に失敗。

どういう訳かアプリもすごく人気があったことも、辞め時を逃した大きな要因のひとつです。未だによく分からないのですが、VGSの音源はゲームのオマケとして作った「鳴れば良い」というレベルのチープなモノなのに、そのシンプルな音色は多くの人を惹きつけました。

一体どいうことなのか。

私に音楽の才能があるとは思えません。
音楽ではなく、効果音に対する拘りは結構あるのですが、それは恐らく普通の人の感覚と大分違います。同僚などに、私のゲーム効果音に対する見解を熱弁すると、大抵の人は「何言ってんだコイツ?」みたいな顔をします。私の見解は、まず「ゲームとは効果音である」という所から解説が始まります(中略)

要するに、一般ウケできるようなモノではないだろうと思っています。

それはさておき、いよいよ妖々夢と永夜抄も全曲揃ってしまった時は、流石にもう人間らしい生活に戻ろうと決めて、最終バージョン(1.00)をリリース。

マゾ・ライフが終わることの空虚感」の正体は結局謎ですが。しかし、恐らくこれはクリエイターが本質的に求めているモノなのだろうと考えることにしました。何故なら、クリエイターさんは皆、苦しみながらソレを楽しんでいるように見えるので・・・釈然としない思いはあるものの、これ以上の追求は身を滅ぼすだろうという危機感が強かったので、後ろ髪を引かれつつも、一旦身を引くことに成功。

しかし、最終バージョンをリリースしてから半年ぐらい経った頃、iOS8で(OS側のバグが原因で)東方BGM on VGSが起動できなくなってしまう不具合が発生しました。そして、この不具合を対策するついでに曲も追加してアップデートしたことを契機に、再び曲追加を復活させて、現在に至ります。

不具合対策だけすれば良かったのに、敢えて曲追加をする茨の道を復活させた理由は、新しい方向性が見つからずに迷っていたためです。だから、今は 次の一手を模索する間の繋ぎ という位置付けで、東方VGSを続けています。

なお、スマホで新たなゲームを出すのは(今は)得策ではない と思っています。
だから、今は新作をつくっていません。

というのも、パズドラとかモンストとかの登場で、スマホゲーム市場が望ましくない方向に成熟してしまったので。別にパズドラやモンストが面白くないと言っている訳ではありません。カスタマにそれらが受け入れられているなら、それで良いじゃない?と他人事のように思っています。

それでは何故、パズドラやモンストみたいなのが出てくるとマズイのかというと、娯楽産業というのは結局のところ可処分時間の奪い会いで、パズドラとかモンストみたいな感じの運営モデルのゲームには終わりが無いから、結果的にカスタマー流動性に淀みが生じることが良いない事だと思っています。

運営モデルは当たればデカイので、運営モデルで新たなモノを出す価値ならあると思いますが、当然ながらリターンがデカイが故に、リスクも更に大きいです。少なくとも、企業レベルの体力が無いと入り込む余地がありません。一番厄介なのはプロモーションで、これはスマホ黎明期の頃のような小手先の手段ではもうどうにもなりません。

だから、そのような状況下で、私のような個人が新作を出すのは自殺行為同然だから、新作を作れないということになります。

SUZUKI PLANが当初広告モデルを頑なに拒んでいた理由は、広告モデルはそういった悪い方向への加速を促す側面があると感じていたためです。広告モデルでマネタイズする感じの会社は、最初の内はそこそこ儲かるかもしれないけど、次第に儲からなくなってすぐに倒産するだろうと思っていて、事実今はそんな感じになり、死屍累々としている頃合いだろうと思います。(仮に今、真剣に個人でゲームを作って公開するなら、Steamとかでやった方が良いハズ。Steamはスマホアプリ市場と違って、運営型ではなくパッケージ型のモデルが今の所主流なので、未来がありそうな気がします。スマホアプリ市場と同じ道を辿る可能性も五分じゃないかとも思っていますが)

プロモーションはマーケティング上そこそこ重要な位置付けのものなので、広告モデルそのものを否定するつもりはありませんが、少なくとも運営型のライバル企業にカスタマを流し、小銭を貰っていくスタイルのアプリ広告はダメなパターンです(パッケージを売るための広告ならアリだと思うけど)。その点は敢えて割り切り、稼げる時に稼ごうとする人がウジャウジャ出てくることも、ミスディレクションを進める大きな要因のひとつだったと思っています。

東方VGSは、そんな厳しい環境の中で割と上手く立ち回っていると思います。
東方VGSの戦略はシンプルにニッチ戦略です。

具体的には、
  1. 運営型モデルのゲームと共存できるプロダクトにする
  2. iTunes(やApple Music)には無いコンテンツだけを供給する
  3. リーダーが真似できない特異性を保っている
といったことを意識して、WTC1 on VGSを作りました。

東方BGM on VGSは、戦略とかそういったものは一切考えず趣味に走って作ったものですが、WTC1 on VGSのシステムをそのまま使っている関係で、自動的にその戦略も引き継がれている感じです。(引き継がれているというより、意図せずに進化している感じなのかも)

未来の話しについて

唐突ですが、ここで東方VGSの未来の話しについて。
とりあえず、続けていくのが物凄くツライです。
しかし、続けていきたいと思っています。
そこで、ツラくならないようにする為の策を考えます。
だからといって、ガイドライン的にダメなことは絶対にやりませんが。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。

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

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