2012年9月5日水曜日

広告出資 - update4

2012年9月5日

8/26から売り出したSHOT04-NOKOGI Riderの製品版ですが、ここ数日、着実に販売数が伸びています。
想定していたよりも買ってくれる人が多いみたい。
ただし、Lite版のダウンロード数の伸びが悪い・・・。
たぶん、Androidユーザをターゲットにした広報をやらなきゃダメかな。。。

という訳で、Lite版を広告出資してみることにしました。
とりあえず、50ドルの予算で入札価格3セントというかなりみみっちい投資で。
アフィリエイト広告というのに広告効果が本当にあるのか、眉唾物なので。
私自身、興味をもってアフィリエイト広告をクリックしたことが一度もありません。
クリックするつもりは無かったのに、サイトの広告配置が悪い所為で間違えてクリックしてしまったことならありますが。
という訳で、とりあえず様子見です

まだ、宣伝は承認されてません。
入札価格が低すぎると承認され難いらしいのですが、入札価格の相場が全然分かりません。
未だ嘗て、アフィリエイト関連のことには一切関わったことがないので、完全に未知の領域です。
これで1日放置してみて、承認されないようなら少しづつ入札価格を引き上げていき、最低ラインを探る方向で。

とりあえず、販売対象国は製品版が売れた実績のある英国、米国、日本。
対象プラットフォームはAndroid2.3限定。
あと、「その他」に分類されていないモバイル通信事業者限定で。

広告を載せる端末の詳細な分類ができるのは良いですね。
さて、どうなるものか。。。

2012年9月8日

広告配信を開始した結果が出てきました。
入札価格は3セントで問題無さそうです。
クリック率(クリック数÷表示数×100)はだいたい、0.9%ぐらい。
そして、平均クリックコスト(CPC)は2セント。

広告配信初日のクリック数は、1日あたりだいたい800回(コスト=16ドルぐらい)。
当日、Lite版がインストールされた数は、16件前後。
広告を打たない時のインストール数は、だいたい3~5件前後。
なので、広告効果によるLite版のインストール数は、12件ぐらい。

つまり、広告をクリックした人の1.5%ぐらいの人がインストールしてくれた計算になります。
有料アプリならともかく、無料アプリにしては低すぎる気がしますが。
CPC(Cost Per Click) = 0.02$ぐらい
CPI(Cost Per Install) = 1.33$ぐらい
※私がCPIと呼んでいるのは、一般用語(Cost Per Inquiry)ではありません。(独自の造語とうことで)

CPIが高すぎです。
CPCが2セントであれば、CPIの妥当価格は(高くても)50セント前後と読んでいたので。
まぁ、宣伝する側はCPCは気にするけど、CPIなんか気にしないでしょうねぇ・・・。
(それを気にしなければ、出資者離れによりアフィリエイト業界は衰退していく訳ですが)

ちなみに、Lite版をインストールしてくれた方の3人に2人が製品版を買ってくれれば、コストを回収できます。もっとも、今の製品版の販売価格(日本円で150円)は、今のところ戦略価格のため、かなり安めに設定しているので、Lite版→製品版へのフローは気にしない方向で。(製品版の販売価格の設定戦略については、別の記事で書きました)

とりあえず、現状ではアフィリエイト広告を出資する価値は無さそうです。
もうちょっと、妥当なターゲットに配信先を絞れる仕組みが必要かもしれません。
AdMobは、他の広告媒体よりもその辺がよくできていると思いますが、それでもこの状況です。

まぁ、もう暫く様子見をしておきます。
とりあえず、もう50$追加出資してみました。(計100$)
この100$を溶かしきった状態でCPIに改善が無かったら、今後アフィリエイト広告には一切出資しない方向で。

例えば、同じ広告を同一端末でクリック(多重クリック)した場合、同一端末によるクリックには多重のコストが発生しないような仕組みが最低限必要な気がします。

同一端末によるクリックには多重のコストが発生しないような仕組み」というのは、技術的には然して難しいことではありません。これをやらない理由は、「それだと業者がやっていけない」というのが背景にあるのではないかと思います。勿論、業者の表向きの言い分としては、「規約で違反が起こらないようにガードしている」とかでしょうけど。

実は、アフィリエイト広告には、成果報酬型のスタイルのものも幾つかあるようです。
しかし、それらは全般的に成果数に対応した広告費の他、成果数に関係なく支払う固定費のようなものを設定しているところしか見当たりません。それでも、損益分岐点が明確になるので、一定の収益能力がある商品であれば、この成果報酬型を選択するのがベストです。

しかし、個人が気軽に出資することができません。
やはり、個人は「多少の違反が起こる可能性」を受容しつつ、クリック単価型の広告を利用せざるを得ません・・・そう考えると、ある意味、現状のクリック単価型のアフィリエイト広告にもそれなりの存在意義はあるのかも。(でも、コストが高すぎるから、もうやりません)

2012年9月9日

AdMobでAndroidアプリを宣伝する場合、CPI(Cost/Install)をチェックできるようでした。
ツール→アプリコンバージョントラッキングで確認できます。
ちなみに、昨日の記事で書いたCPIは、手動+推測で求めたものでしたが、正確でした。
ただし、CPIについては、時間の経過とともに上昇していきます。

無料アプリの宣伝で、100$支払ってもインストールして貰える数はせいぜい30~50ぐらいかと。
結論としては、無料アプリで1インストールあたり5$ぐらい有料アプリなら1インストールあたり30$ぐらいの収益が得られるアプリじゃないとお話しになりません。(もちろん、私のアプリが単にデキが悪かったのかも・・・と一瞬思いましたが、インストールしてみないとデキの良し悪しなんて分からないですよね?)

私の最初の直感(アフィリエイトをクリックしようと思ったことは無い)が一番正しいのかも。
たぶん、今後は個人が出資できるレベルのアフィリエイトはどんどん無くなり、成果報酬型だけが生き残る(ただし、ジリ貧)という感じになるのではないかと予測しています。

これから、アフィリエイト広告に出資しようと思っている方はご注意ください。
少なくとも、私は、残りの出資残高を溶かし次第、金輪際アフィリエイト広告には出資しない方向で。
別のマーケティング方法(※ステマなどの信義誠実の原則に反するものを除く)を考えたいと思います。


2012年9月12日

まだ、完全な結果は出ていませんが、今のところ、
・クリック数 3,142回
・総コスト 62.45$
・インストール数 56回
・CPI 1.12$
という状況。

CPIが2$を超えていた時期もありましたが、大分落ち着いてきたようです。
当初の想定上限CPI(50セント/インストール)は軽く超えていますが。
載せるパブリッシャーの種類によって、成果にかなりムラがあるのかもしれません。

入札価格はあまり関係無さそうです。
①土曜日に、上限価格を引き上げて入札価格を3セントに据え置く
②日曜日に入札価格を5セントに引き上げる
という実験を試みたのですが、その結果インストール数は、土曜日の方が多いという感じ。

入札価格よりも、時間帯の方が影響が大きいかもしれません。
土曜日は、
①午前中までは上限投資額を10$に設定
②午後に引き上げを実施
という感じで設定したのに対して、日曜日は土曜日からそのまま据え置きでした。
つまり、入札が発生する時間帯を避ける形になったのかもしれません。
そうなると、一番まずいのはデフォルト設定で放置ですかね。
確証は持てませんが。

基本的にはもうやらないつもりですが、気が向いたらやるかも。
ただし、やるにしても最低数ヶ月程度はブランクを空けると思います。


誘導について

先日公開したSHOT04ですが、そのLite版(無料)では、1面のボスを倒すと、「フルバージョンを買ってね!」という趣旨の宣伝メッセージを表示する仕様にしています。

よく、フルバージョン(製品版)の購入先へのリンクボタンを張って、それを押せばブラウザやGooglePlayが起動される感じのアプリがあったりします。ですが、SHOT04の場合、そういうのは一切表示しない仕様にしています。

これは、私のセキュリティーポリシー上の事情によるものです。
セキュリティーポリシーといっても、単なる自分ルールですが。

私が公開するゲームアプリのセキュリティーポリシーでは、「一切の通信行為や個人情報の抜き出しをできないようにするため、パーミッション要求を基本的にしない(ただし、スコアを保存したりするために必要な、ストレージパーミッションは例外的に割り当てる)」という方針になっています。

しかし、「パーミッションが最小なら必ずしも安全か?」と言われると、必ずしもYesではありません。
Androidには、インテントという仕組みを使うことで、アプリから別のアプリを起動する仕組みがあります。
そして、この仕組みを使って、ブラウザ経由で情報を抜き出したりすることは、不可能ではありません。
詳しくは、以下の記事を参照してください。(※英語です)
http://leviathansecurity.com/blog/archives/17-Zero-Permission-Android-Applications.html

なので、私が配布するアプリでは、インテント機能も使用しないようにしています。
そのため、購入ページへ誘導するリンクボタンを作ることができません。

「個人製作のアプリで、そこまで厳密なルールは居るのか?」
という疑問を持たれる方も居るかもしれません。

しかし、私は個人販売の場合、『法人以上に信用が要求される』と思っています。
法人を作るのは、昔と比べれば恐ろしく簡単ですが、それでもそれなりに大変です。
なので、法人というだけで、それなりの社会的信頼を得ることができます。
それに対して、自然人というのは権利能力が強すぎるので、信用を得るのは法人以上に大変です。

そこで、結構ガチガチなセキュリティーポリシーを定めて、それを遵守するようにしている訳です。
たぶん、外部のセキュリティの専門家にコードレベルの監査がされたとしても「このアプリは完全に安全です」と烙印を押していただける程度の水準だと思います。でも、外部監査法人などに依頼する予算なんて当然無いから、「所詮は自分ルールなんだろ?」と言われれば、それまでですが。

でも、購入誘導のボタンを設置するぐらいなら良いような気がしていますが。
目的がハッキリしていますし。
ただ、購入誘導を設置したところで、効果はあまり変わらないと思っていたりします。
本当に「欲しい!」と思った人なら、そんな誘導が無くても能動的に探してくれると思うので。

むしろ、購入を促すメッセージを、日本語環境なら日本語で表示する(ローカライズする)方が重要かも。
現状、購入を促すメッセージは英語のみで表示するようにしています。
英語のみにしているのは、プログラムはロケール・ニュートラルで作るのが好きだというが理由。

2012年9月3日月曜日

良いアイディアなら、メモってはならない

アイディアが浮かばなければ、次回作(SHOT05)の開発はやらないつもりでしたが、浮かんできました。
良い感じです。たぶん。
SHOT04-NOKOGI Riderよりも難易度は落とす方向で新作の構想を適当に考えていたら、浮かびました。
ただ、そのアイディアが必ずしも採用されるとは限りませんが。
私の場合、アイディアが浮かんだら、メモを取らずにそれを暫く寝かせます。

暫く寝かしても、クッキリ内容を忘れないネタであれば、それは本物です。
忘れてしまうようなネタは、「その程度のネタ」=「ゴミ」です。
よく、ゲーム作りの(※ゲーム作りに限らず)ネタをメモ(ネタ帳)に纏めたりする人が居ると思います。
しかし、本当にそのメモが役立っているのか、甚だ疑問です。
もちろん、やり方は人それぞれなので、そういうやり方を否定する訳ではありません。
ただし、私の経験上、それは無意味な行為だという結論になりました。

過去に私が取っていたメモの大半は、現在の私がその内容を解読できません。
たぶん、英語か日本語っぽい言語(※英語の方が筆記体で早く書けるから英語の比率が多い)で書かれているのですが、書いた当人の私ですら解読不可能なレベルの象形文字(?)や図形が雑然と書かれています。
しかし、それらのネタの中で「生きているネタ」に限っては、後々読んでも解読できます。
逆説すれば、解読できないアイディアはゴミ(だった筈)です。
ついでに、そもそも「生きているネタ」の部分については、メモが無くても鮮明に記憶できてます。
なので、「書くだけ無駄」です。

もちろん、「生きているネタ」も何年か経てば、記憶が風化して忘れると思いますが。
でも、遅くとも風化する頃までにはアイディアを形にした成果物ができているので、やはり無意味。
ただし、書くことで整理ができることもあるから、書く行為そのものは悪くないと思います。
ですが、書き残すことを意識する必要は全く無い筈です。
逆にすぐに解読できる形(キレイな字)で書いてしまうと、生きているネタとゴミの区別がつき難くなって不便です。
だから、ネタに関しては、物理的なメモ帳ではなく、脳内のメモ帳にだけ書き留めておくのがベスト。

当面、SHOT04-NOKOGI Riderの残作業があり、SHOT05の開発に手をつけることができません。
あと、昨年作り貯めた曲の大半を放出してしまったので、また新たに作曲する作業も必要。
なので、それらをやっている期間が、アイディアを寝かせる期間になると思います。たぶん。

2012年9月2日日曜日

配送通知を送信?

SHOT04 - NOKOGI Riderですが、無事売れ始めました。
B国とA国でも売れていたので、なんとか私のつたない英語でも通じたようです。

謎なのが、GoogleCheckOutの受注結果の画面。
海外の場合「配送通知を送信」という謎のボタンが出ていて、配送のところに「未発送」となっています。
「なんじゃこりゃ?」と思って調べましたが、特に何もしなくて良さそうな感じ。
日本国内で売れた分では表示されないので、たぶん、為替関連の何かだと思いますが。

ちなみに、日本と海外の売り上げ比率は2:3ぐらい。
海外の方を安く設定した訳ではありません。価格はむしろ、海外の方が割高に設定しました。
具体的には、8/26の為替レートで、日本円で150円(国内販売価格)以上の切りの良い数字です。
(B国=1ポンド20ペンス、A国=2ドルで設定)

やはり、海外の人の方がダウンロード販売に抵抗が無いのかも。
もっとも、現時点で売れた本数が少ないから、結論付けるには早すぎますが。

2012年8月29日水曜日

波形メモリ音源(VGS)

拙作「SHOT04 - NOKOGI Rider」で採用している波形メモリ音源VGSについて、解説します。
まず、VGSという音源は、物理的には実在しません。
私の脳内で設計し、それをソフトウェア・エミュレーションする方式で、「SHOT04 - NOKOGI Rider」に搭載しました。

基本スペック:
・周波数: 22050Hz固定
・ビットレート: 16bit固定
・チャネル: モノラル固定
・同時発音: 6声
・音色数: 4(三角波、ノコギリ波、矩形波、ノイズ)
・声部別エンベロープ
・ピッチダウン(※ピッチアップは不要だったので未実装)
・声部別ボリューム
・マスターボリューム
・自動マスターボリューム制御(主にフェードアウト用途)

ちなみに、分解率=周波数という方式を採用。つまり、22050fpsです。
厳密には、処理周期は100ms間隔(10fps)ですが、オペレーションは22050fpsのフレーム間隔で出せます。
つまり、音の長さの最小は、だいたい45μ秒(1μ秒=100万分の1秒)程度の間隔になります。
テンポ120の場合、32768分音符がだいたい61μ秒になるので、「テンポ120の65536分音符よりちょっと長く、32768分音符よりちょっと短い」という感じです。

・・・少し分かり難いですね。
もう少し分かり易く例えるなら、報道によると東京証券取引所では、次期売買システムの取引性能を「1件あたり1ms以下にする(1秒間に1000件以上の取引ができるようにする)」らしいですが、そのシステムで「1回の取引をしている間に22回ぐらい音符を鳴らすことができる」という感じです。

一見すると誰得機能ですが、かなり重要な機能です。東証の方は誰が得するのか理解に苦しみますが。
この分解性能の粒度によって、音楽の表現性能が劇的に変わります。
この辺りのことは、音源本体(ハードウェア=エミュレータ)ではなく音源ドライバの役回りですが。

もちろん、音源ドライバも自作しました。
音源ドライバ仕様は、固定長のオペレーションで発音指示や待機指示をしたりする感じです。
昔のアーケードゲームとかだと、Z80で組むのが一般的。

VGSの場合、「何処からがハード仕様で、何処からがドライバ仕様なのか」がかなり曖昧ですが。
一応、一般的な区分は、「オペレーションを送るプログラム」がドライバで、「オペレーションを処理する部分(プログラム)」がハードウェア(エミュレータ)という風になります。
VGSの場合、ハードも論理的な存在だから、境界線が曖昧になります。
全てが論理的であれば、境界線の存在自体、ナンセンスだったりします。

そして、オペレーションの集まりが曲データになります。
ただ、オペレーションをずらずら並べて曲データを作るのが面倒なので、独自のMMLコンパイラ(MMLで書いたものをオペレーション集合に変換するプログラム)も作りました。

例えば、「SHOT04 - NOKOGI Rider」の「STAGE 1」のMMLは以下のような感じ。
$Brass \s600 \e22050 @1 %80
$Harp \s1000 \e1500 @0 %50
$Bass \s10   \e200 @2 %50
$Sq \s600 \e22050 @2 %75
$Sq2 \s6000 \e22050 @1 %80
$Hue \s5000 \e22050 @2 %80
$Osi \s22050 \e10000 @2 %80
$Ou \s500 \e5000 @1 %50

$B  \s10 \e1000 p-128 @0 %10 v35 o3
$S  \s1  \e1000 p-128 @3 %20 v20 o4

#-----------------------------------------------------------------------------
# Bass
#-----------------------------------------------------------------------------

Ch0 t172 m8 v12 (Bass) o3l16 |
Ch0 d8ddd8ddd8ddd8dd c8ccc8ccc8ccc8cc < b-8b-b-b-8b-b-b-8b-b-b-8b-b- a8aaa8aa aa>a<a>g<a>f<a
Ch0 l8 gggg gggg dddd dde-f gggg gggg ggrg16g16 gggg
Ch0 gggg gggg ff>f<f ff>f<f gg>g<g g16g16g>g<g g16g16g>g<g l16 <ffggaab-b-
Ch0 > crcccrcccrcccrcc drdddrdddrdddrdd grgggrgggrgggrgg frfffrfffrfffrff
Ch0 crcccrcccrcccrcc grgggrgggrgggrgg <g4.a4.b-4^2 l8 gg>g<g
Ch0 > l16 c8c4ccc8c8>c8<cc < g8g4ggg8g8>g8<gg f8f4fff8f8>f8<f8 > d8d8>d8<ddd8d8>d8<dd
Ch0 c8cc>c8<ccc8cc>c8<cc d8dd>d8<dd dd>d<d>c<db-d grgggrgggrgggrgg d8d4ddd4f+4
Ch0 l8 > dd>d<d4d>d<d < gg>g<g4g>g<g > cc>c<c4c>c<c dd>d<dcc>c<c
Ch0 dd4d16d16dd>d<d cc>c<c cc>c<c < aa>a<a4a>a<a aa>a<a4 a>a<a
Ch0 l8 > dd>d<d4d>d<d < gg>g<g4g>g<g > cc>c<c4c>c<c dd>d<dcc>c<c
Ch0 dd>d<d4d>d<d < aa>a<a4a>a<a > dd>d<d4d>d<d dd>d<d4ddd

#-----------------------------------------------------------------------------
# Melody
#-----------------------------------------------------------------------------

$Me1 r1r1r1r1 d2rdc<b- a2f4a4 g1^2r2 > d2rdc<b- >c2<a4>f4 d1^2r2
$Me2 e-2re-fg f2d4f4 g2rgab- a2g4f4 g2>c2< b-4a4g4a4 b-4.>c4.d4^2.r4
$Me3 (Sq) < e-2re-dc d2<b-2> c2rc<b-a g4b->d8^2 e-2re-fg f2d2 b-2rb-ag f+4a>c4.d4
$Me4 < a4gf8^2 b-4ag8^2 e4fg4efg a4.g16f16g4e4 d2ref4 g2rg>c4< a1^2.r4
$Me5 a4gf8^2 b-4ag8^2 e4fg4efg a4.g16f16g4e4 d2rdefec4<a4.>e4 d2.^16 l32 ef ga b->c d1

Ch1 v13 (Brass) \s3000 o5l8  (Me1)(Me2)  (Me3) (Brass) v-- (Me4)(Me5) v++
Ch2 v12 (Brass) \s6000 o4l8 <(Me1)(Me2)> (Me3) (Hue) > v- (Me4)(Me5)< v+

#-----------------------------------------------------------------------------
# Side-A
#-----------------------------------------------------------------------------
Ch3 v10(Ou)o4l16
Ch3 a>dfa<  v- a>dfa<  v- a>dfa<  v- a>dfa<  v+++
Ch3 g>ce-g< v- g>ce-g< v- g>ce-g< v- g>ce-g< v+++
Ch3 fb->df< v- fb->df< v- fb->df< v- fb->df< v+++
Ch3 < fa>cf v- a>cfa v- fc<af v- c<afc v+++

Ch3  grgr8.gggrgr8.gr
Ch3   drdr8.dddrdr8.dr
Ch3 (Sq) \s1000 > g4.fe-d2 <  @1 b-2g4b-4
Ch3 @2l8 b-2rb->cd f2rfa>c
Ch3 @1l16 \s50 g>d<db-<b->g<g>d<db-<b->g<g>d<db- \s1000
Ch3 @2g4.fga4b-4
Ch3 l2>ce-d<ab->dc1 <<g>cdg b-4.>c4.d4^2.r4
Ch3 (Ou)l8 e->e-ce-<g>e-ce- < d>d<b->d<g>d<b->d< c>c<a>c<f>c<a>c< gb->dg<gb->dg
Ch3 l16 c>c<g>c<e->c<g>c< c>c<g>c<e->c<g>c<
Ch3 < a>afadafa<a>afadafa<
Ch3 b->b-gb-db-gb-< b->b-gb-db-gb-<
Ch3 < df+a>c df+a>c df+a>c df+a>c

#-----------------------------------------------------------------------------
# Side-B
#-----------------------------------------------------------------------------
Ch4 v12\s100\e1000@2%65o5l1 # dc<b-a


Ch4 l32 v2  d>d< v+ d>d< v+ d>d< v+ d>d< d>d< v+ d>d< v+ d>d< v+ d>d< v+ d>d< v- d>d< v- d>d< v- d>d< d>d< v- d>d< v- d>d< v- d>d<
Ch4 l32 v2  c>c< v+ c>c< v+ c>c< v+ c>c< c>c< v+ c>c< v+ c>c< v+ c>c< v+ c>c< v- c>c< v- c>c< v- c>c< c>c< v- c>c< v- c>c< v- c>c<
Ch4 l32 v2< b->b-< v+ b->b-< v+ b->b-< v+ b->b-< b->b-< v+ b->b-< v+ b->b-< v+ b->b-< v+ b->b-< v- b->b-< v- b->b-< v- b->b-< b->b-< v- b->b-< v- b->b-< v- b->b-<
Ch4 l32 v2  a>a< v+ a>a< v+ a>a< v+ a>a< a>a< v+ a>a< v+ a>a< v+ a>a< v+ a>a< v- a>a< v- a>a< v- a>a< a>a< v- a>a< v- a>a< v- a>a<

Ch4 v9(Sq)l8 \s4000 v9 b-2rb-ag f2rfdf g1 d4.e-16f16g4b-4
Ch4 g2rgab- >c2.f4d1^2r2 l16
Ch4 \s1000 c<b->c4r8c2
Ch4 <a4.b->cd4f4
Ch4 g4.fe-d4<b-4 f2r2
Ch4 < g2>c2d2g2 >d2.^16l32 e-fgab->c d1 l8
Ch4 < v-- r32 e-2re-dc d2<b-2> c2rc<b-a g4b->d8^2 e-2re-fg f2d2 b-2rb-ag f+4a>c4.d8.^32 v++

#-----------------------------------------------------------------------------
# Side-A+B(C part)
#-----------------------------------------------------------------------------
$SI1 l8(Ou) dfa>d< dfa>d< dgb->d< dgb->d< ceg>c< ceg>c< <a>dfagec<g a>afadafa c>c<g>c<e>c<g>c< dfa>d< dfa>d< dfa>d< dfa>d<
$SI2        dfa>d< dfa>d< dgb->d< dgb->d< ceg>c< ceg>c< <a>dfagec<g d>d<a>d<f>d<a>d< c>c<a>c<e>c<a>c< dfa>d<dfa>d< dfa>dfa>d

Ch3 o4    v++ (SI1) (SI2) f8 v--
Ch4 o4    r16 (SI1) (SI2) f16

#-----------------------------------------------------------------------------
# Drums
#-----------------------------------------------------------------------------
Ch5 l4 (B) cccc cccc cccc ccc8 (S)c8c8c16c16
Ch5 l16 (B) c4 (S)c8.(B)c c8cc (S)c4
Ch5 l16 (B) c4 (S)c8.(B)c c8cc (S)c8c8
Ch5 l16 (B) c4 (S)c8.(B)c c8cc (S)c4
Ch5 l16 (B) c4 (S)c8.(B)c c8cc (S)cccc
Ch5 l16 (B) c4 (S)c8.(B)c c8cc (S)c4
Ch5 l16 (B) c4 (S)c8.(B)c c8cc (S)c8c8
Ch5 l16 (B) c4 (S)c8.(B)c c8cc (S)c4
Ch5 l16 (B) c8 (S)ff (B) c8 (S)e-e- (B) c8 (S)d-d- (B) c8 (S)<bb>

Ch5 l16 (B) c4 (S)c8.(B)c c8cc (S)c4
Ch5 l16 (B) c4 (S)c8.(B)c c8cc (S)c8c8
Ch5 l16 (B) c4 (S)c8.(B)c c8cc (S)c4
Ch5 l16 (B) c4 (S)c8.(B)c c8cc (S)cccc
Ch5 (B) c2c2 (S)c8(B)c8c8 (S)c8(B)c8c8 (S)c8(B)c8
Ch5 (S) f4.d4.<b-4> (B)r2c8(S)c8c8cc

Ch5 l16 (B) c4 (S)c8.(B)c c8cc (S)c4
Ch5 l16 (B) c4 (S)c8.(B)c c8cc (S)c8c8
Ch5 l16 (B) c4 (S)c8.(B)c c8cc (S)c4
Ch5 l16 (B) c4 (S)c8.(B)c c8cc (S)cccc

Ch5 l8 (B)c(S)c(B)c(S)c(B)c(S)c(B)c(S)c
Ch5 l8 (B)c(S)c16c16(B)c(S)c(B)c(S)c16c16(B)c(S)c
Ch5 l8 (B)c(S)c(B)c(S)c(B)c(S)c(B)c(S)c
Ch5 l16 (B)c8(S)c8c8cc cccc cccc

Ch5 l8(B) cc(S)c(B)c4c(S)c(B)c cc(S)c(B)c4c(S)c(B)c cc(S)c(B)c4c(S)c(B)c cc(S)c(B)c4c(S)cc
Ch5 l8(B) cc(S)c(B)c4c(S)c(B)c cc(S)c(B)c4c(S)c(B)c cc(S)c(B)c4c(S)c(B)c cc(S)c(B)c4(S)ccc
Ch5 l8(B) cc(S)c(B)c4c(S)c(B)c cc(S)c(B)c4c(S)c(B)c cc(S)c(B)c4c(S)c(B)c cc(S)c(B)c4c(S)cc
Ch5 l8(B) cc(S)c(B)c4c(S)c(B)c cc(S)c(B)c4c(S)c(B)c cc(S)c(B)c4c(S)c(B)c cc(S)c(B)c (S)cccc16c16
特殊な命令は、主にエンベロープ関連の以下3つぐらいで、あとは標準的な仕様だと思います。
・「\s」スタート・エンベロープ(音を鳴らし始めてからMAX音量になるまでの時間)
・「\e」エンド・エンベロープ(音を止めてから音量0に減るまでの時間)
・「%」キーオフ・タイミング(%50で4分音符を鳴らせば、8分のタイミングでキーオフ指令を出して、そこからエンド・エンベロープによる減衰が始まります)

音色数は少ないのですが、エンベロープさえ弄れれば表現の幅は無限大です。
だから、音色数はもっとも基本的な三角波、ノコギリ波、矩形波(+ノイズ)だけでも、割と困りません。
フレキシブルな波形変化については、波形メモリ音源やPSG音源の単音では不可能な部分(FM音源じゃないとできない特徴)ですが。一応、複数チャネルを使って音を重ねれば、多少の変化は得られます。

ただし、あまり重ねすぎると汚くなりますが。
絵の具と同じです。
だから、同時発生数を敢えて6声に制限しました。
6声ぐらいが一番キレイ。


2012年8月27日月曜日

体験版によるマーケティング成果

先日、めでたくSHOT04 - NOKOGI Riderの製品版をリリースできた訳ですが、今回は、開発途中(1面完成時)に即座にソレを体験版(Trial版)として無償公開して、ユーザーさんの反応を伺いながら製品開発をする・・・というスタイルで開発を進めてきました。

こういうスタイルで開発をした理由は、開発と同時にマーケティング(広報)活動をするため。
広報は苦手ですが、やらないことには製品版を売ることができません。

なお、今回の体験版公開→製品版リリースまでのタイムラインは概ね以下のような感じです。
(1) 5月初頭に体験版初期バージョン(Ver0.01)をリリース
(2) 5月中旬にユーザーからの要望対応で体験版のバージョンアップ(Ver0.02)
(3) 8月25日に製品版リリースと同時に体験版をLite版相当にバージョンアップ(Ver1.04)

体験版の有効なインストール端末数の遷移は以下のようになりました。

・オレンジ色の線 = Ver0.01
・緑色の線 = Ver0.02
・青色の点 = Ver1.04(Lite版)

体験版に関して、その他に実施した広報活動といえば、「開発状況をブログに書き続ける」ぐらい。
それでも、結構な数をインストールしてもらうことができました。(約4ヶ月の累計DL数は980件ぐらい)
ただ、公開から一ヶ月ちょっと経過後から、右肩下がりになり始めてしまいましたが。

でも、製品版の公開初日まで、200端末程度、インストールしてくれていた方々が居て、そこから一気に60件ぐらい(=有効インストール端末数の3割りぐらい)、Lite版をDLしていただけました。

この60件の中から、何件製品版の購入まで進んで貰えるかが、一番重要な点です。
あと、この60件(今週中にはもうちょっと増えると思います)の中から想定率を超える売り上げがあれば、例えば広告に出したりなど、お金をかけて本格的な広報活動をすればそれなりの対価が得られると判断できますし、想定率を下回っていたら「お金をかけて広報活動をしても無駄」と判断できます。つまり、ちゃんと売れるかどうかを見極めるのに十分程度の試金石を得ることが出来たことが、この広報活動の最大の成果です。

有効インストール端末数が200/1000(約20%)という状況から、既に悲観ムードですが...orz
InvaderBlock2の時のように、Windows版から流れて買ってくれる方については、期待しています。
Windows版(Lite版)は、今週中頃にはVectorから配布開始されると思います。

SHOT04 - 曲の解説

SHOT04 - NOKOGI Riderで使っている曲の解説などを少々入れておきます。
SHOT04 - NOKOGI Riderとは、昨日公開したAndroid用のゲームです。(コチラを参照)
以下、順不同で。

Stage 2

ピストンコラージュ(ピスコラ)を手に入れて最初に作った曲です。
洞窟物語をちょうどクリア後にピスコラの存在を知り、そして作った曲なのでダンジョン風に。
形式は、オーソドックスな3部構成。
Intro -> Aパート -> Bパート -> Cパート -> Intro(loop)
Cパートのフレーズが結構気に入ったので、それを他の楽曲でも色々使ってます。

ピスコラの曲投稿サイトに、この曲の原曲(ピスコラ版)を投稿したところ、「80年代の戦隊ヒーローモノみたい」という感想を頂いたのがキッカケで、SHOT04のタイトルを「戦隊ヒーローモノっぽく」という訳で、「NOKOGI Rider」にしました。

なので、実質、Stage 2の音楽が、SHOT04のメインテーマになります。
Stage 2の音楽は、無料のライト版でも「CONFIGURATION」→「MUSIC ROOM」で聴けるので、Androidをお持ちの方は是非、聴いてみてください。(確かに、戦隊ヒーローモノっぽい曲です。私としてはダンジョンのBGMとして作った曲でしたが)

Boss 1

ARPGのボス風の曲が欲しくて作った曲。
ボスの曲で真っ先に思い浮かんだのが英雄伝説Ⅱ(Falcom)のストッパー。
イントロがどことなくそんな感じに聞こえなくも無いです。
形式は、2部構成。
間に音楽理論を色々と無視した即興フレーズを入れてるから3部構成っぽいですが。
Intro -> Aパート -> 即興(R.Organ) -> Bパート -> Aパート(loop)

私の曲の場合、構成の場合は基本的に2つに細分できる形式です。(AならA->A')
2つに細分できなパートは基本的に即興か間奏のどちらかです。(※一般論ではないです)
即興の主旋律でBパートと繋がる部分で、間違ってFのところをF#にしたのですが、即興という事でそのまま。
ただ、このF#が良い味を出している気がしないでもないです。

Stage 1 - SHOT03 arrange

ARPGのお城ステージ的なところ意識して作った曲。
お城といえばソーサリアン(Falcom)の「消えた王様の杖」しかないので、Bパートにそのベースパタンを流用。
Intro -> Aパート -> 間奏(SHOT03の4面) -> Bパート -> Intro(loop)

この曲のAパートの対位法旋律がかなり上手く作れました。
理論を踏まずに作っているので、上手くできることはある意味奇跡です。
「適当に旋律を重ねてみたら上手くいった」という感じ。
殆ど手癖だけで作曲をしています。

Boss 2

Stage 2のアレンジです。
ARPG用に作った曲でした。
Boss 1だとちょっと強そうな感じだったので、もっと弱い感じのボスの曲が欲しくて作曲。
ちょうどこの頃、東方怪綺談の「the Grimoire of Alice」を耳コピーしていて、半音階移調で同じテーマひたすら鳴らし続ける作曲方法が面白そうだと思い、構成を拝借。
なので、1部構成です。
Aパート(A->A'->A''->A(loop))
the Grimoire of Alice」との構成上の違いは、間奏が無いところぐらい。
和声の変化パタンはだいたい同じ。
Boss 2を聞いて『これって「the Grimoire of Alice」のパクリじゃん』と気づけた人は鋭い。
これも一種の二次創作ということで、お願いします。

Stage 3

ARPG用に時計塔のようなステージの曲が欲しくて作曲した曲です。
FalcomのARPG全般で、時計塔が佳境というイメージが強い。
若干自由なソナタ形式っぽい形式。
A(提示) -> B(展開) → A2(再現) → C(終結) → A(loop)

Stage 5

ARPGのラストダンジョンにする予定だった曲です。
Stage 3と共通のモチーフ(ARPGのメインテーマ)を使ってます。
コチラもかなり自由なソナタ形式っぽい形式。
A(提示) -> B(展開) → A2(再現) → C(間奏) → B2(展開2) → D(終結:A+B展開) -> A(loop)

Boss 3

ARPGの強敵っぽいボスキャラ用の曲。
強いイメージの曲を作るのに有効なのは、コナミのドラキュラのような音階を入れること。
それだけで、妙な臨場感がでます。
モチーフ自体はStage 2から流用。
Intro -> Aパート -> 間奏(Stage 2) -> Bパート -> Intro(loop)

Stage 4

この曲が実質、一番最近作った曲です。
正式なタイトルは、「その箱を開けてはならない」。

私の曲にしては珍しく、正式なタイトルのある曲です。
というのも、ピスコラの曲投稿サイトで作曲コンテストがあると聞き、それに参加するために作曲したので。
コンテストに参加する場合、曲にはタイトルが必要なようだったのでつけました。
結果は入選ならず。

コンテストのテーマは「箱」・・・エロいですね。
ちなみに、単に「箱」というと、英語圏では女性器を意味するスラングになります。
なので、「けしからん」という訳で「開けてはならない」というタイトルにしました。
結局のところ「開けてしまう」→「開けなければならない」という意味を示唆するサイドストーリーを添えておいたので、実はかなり官能的。猛々しく古風な日本のお父さんが、隠れてコッソリとエロ本を読むような微笑ましい場面を想像して創造。
そこまで読み取れた人は、採点者&主催者サイドには居なかったかもしれませんが。
「カッコイイ曲ですね」といった感想が大半。
まさか、サ○エさんのN平さんだとは誰も思うまい・・・
・・・という作曲者の性格の悪さのようなものが見えたり、見えなかったり。
そういった意味で、この曲は本質的に私という人間性そのものを現している曲かもしれません。

形式は、私としてはまともな普通のソナタ形式に近い感じ。
Aパート -> 間奏 -> Bパート -> Aパートの展開 -> Bパートの展開 -> Cパート(展開の纏め)
※本当は、Cパートの後、Aパートの再現部を鳴らして終結部になるソナタ形式の曲ですが、ループ用に再現せずにダイレクトにAパートに戻りループ。

Ending + Clear

これらは、SHOT03のEndingとClearをそのままVGSへ移植しただけ。
使いまわしは基本。

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

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