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へ移植しただけ。
使いまわしは基本。

2012年8月26日日曜日

SHOT04 - NOKOGI Rider for Windows

VectorでWindows版のSHOT04(LITE版)を公開する手続きをしました。
数日後に公開されると思います。

公開されました。
http://www.vector.co.jp/soft/winnt/game/se499091.html

海外サイトについては、ドキュメントを英語化する作業ができてからやる予定。
なお、公開予定のREADME.TXTに書いておいたのですが、Windows版の製品版については、今のところ配布予定は未定(ただし、販売したい意思は有り)としておきました。

英語情報

NOKOGI Riderの英語情報をとりあえず執筆。(こんな感じ
まぁ、私の英語はかなりアレです・・・得意ではありません。

要は、通じれば良いです。
しかし、通じているかどうかが最大の疑問ですが。
一応、海外の方から感想などを貰えているので、とりあえず通じていると思っておきます。

読むのと聞くのは翻訳ツールがあるので割と問題ありませんが、書くのと話すのは難しい。
海外に住んだ経験のある人曰く、読むのと聞くのは1年程度住んでいれば誰でもできるようになるようです。しかし、書くのと話すの(特に書く事)は、不自由なくできるようになるのには2~3年ぐらい掛かったそうです。3年ぐらい海外で生活していると、日本の友人や親と話すとき、とっさに単語が出てこなくなるデメリットもあるようですが。

海外の方と文通していれば、その内上達してくれるんじゃないかと期待。
とりあえず、勢いでやりとりをすれば、結構普通にコミュニケーションできます。
あとは、(本業で)オフショア案件をやる時とかに、通訳に頼らず積極的に英語を使うようにすると、結構上達します。
あまりひどいと現地の方から「スイマセン、オマエ ハ ニホンゴ デ オk」と突っ込まれますが。
でも、曲がりなりにもコミュニケーションできる程度の水準に達すれば(通訳を咬まない分)、やりとりのスピードがアップするので効率的です。まぁ、オンサイトじゃない場合、時差があるから通訳を介しても効率面では変わらない気がしますが。

NOKOGI Rider - Information (13-Mar, 2013)

NOKOGI Rider is a vertical-scrolling danmaku STG (hell-barrage shooting game).

It features '90s arcade-style graphics and complex music based on wave memory sounds.
The game itself has a rather retro feel, but the controls are designed specifically for the touch screen of a smartphone. For example, unlike many games that have been ported from arcade games, there are no difficult to use software buttons on the screen. The game can be played easily with one hand.

Screen shots:

Download

Android version:
- Paid: https://play.google.com/store/apps/details?id=com.suzukiplan.SHOT04 (1.6MB)
- Lite: https://play.google.com/store/apps/details?id=com.suzukiplan.SHOT04T (1.0MB)

Windows version:
http://www.melonbooks.com/index.php?main_page=product_info&products_id=IT0000157766 (1.7MB)
* Windows version is sales on Japanese DL store "Melonbooks DL"
* You can download the Lite version for Windows to click "体験版ダウンロード".

iPhone/iPodTouch version:
Coming soon!

Basic Play

Clear the level using a laser that can erase shots and enemy bullets.
There are five stages in total.
*Only one stage in lite version.

Gameplay

Android version:
- Touching the screen will cause your piece to move to the selected spot while shooting.
- Removing your finger from the screen will charge your laser meter.
- Touching the screen while the laser meter is fully charged will fire the laser.
- Pushing the back button or multitouching three points on the screen will pause the game.
- Pushing the home button will paused the game and return to the home screen.

Windows version:
- Left click: same as "Touch"
- Right click: same as "Puase button"
- Alt+F4: same as "Home button"

iPhone/iPodTouch version:
- Touching the screen will cause your piece to move to the selected spot while shooting.
- Removing your finger from the screen will charge your laser meter.
- Touching the screen while the laser meter is fully charged will fire the laser.
- Multitouching three points on the screen will pause the game.
- Pushing the home button will ended the game and return to the home screen.

Items

1) Medals
-Medals appear when an enemy is defeated in the sky.
-Collect medals by moving close to them.
-When firing laser, medals will be collected without going close to them.
-Besides lasers, there are various situations that affect medal collection.
-Collecting medals while firing the laser will recharge the laser meter slightly.
-Medals collected when shot value is high are worth more points.
-The cumulative medal score will be reset to zero upon a miss.

2) Stars
-Stars appear when an enemy is defeated on land.
-"+1" will be displayed if a star is collected while shooting.
-"Energy" is displayed if a star is collected while resting or shooting laser.
-If many "+1" are collected, the shot value will increase in a short amount of time.
-Collecting "Energy" will fill the laser meter.
-The cumulative "+1" score will be reset to zero upon a miss.

3) Stardust
-Stardust appears when an enemy's bullet is erased or trasnformed
-Stardust is automatically collected.
-Collecting stardust will improve your score slightly.
-The cumulative stardust score will be reset to zero upon a miss.

4) 1up
-1up will appear when certain enemies are defeated.
-When 1up is collected, game is extended.

*In this game there are no powerups. The starting condition is also the strongest.

Extension

There are six extensions to be achieved at certain scores.
1- 1,000,000 points
2- 3,000,000 points
3- 6,000,000 points
4- 10,000,000 points
5- 20,000,000 points
6- 30,000,000 points
If you achieve an extension with 8 vehicles remaining, nothing will happen.

Vehicles

There are three types of vehicles.
- TYPE A: Well-rounded vehicle (for intermediate players)
- TYPE B: Excels at high-speed, low-range attacks (for advanced players)
- TYPE C: Excels at low-speed, long-range attacks (for beginning players)

Difficulty

There are three levels of difficulty.
- BEGINNER: The easiest mode.
- SOLDIER: A mode that will be enjoyable for gamers.
- NINJA: A mode for those unique people who consider themselves shooters.
*I recommend that even experienced and skilled shooters start by beating the BEGINNER mode.

Shot Value

Shot value will increase through actions such as firing at enemy bullet.
The value is displayed in the top left of the screen. The maximum value is 99,999.
When the shot value is over 10,000, received scores will be doubled.
If the shot value does not increase for a certain amount of time, it will begin to drop rapidly. 
The harder the level of play, the longer the time until the shot value drops.
In other words, compared to BEGINNER mode, in NINJA mode, the shot value will drop slower and be easier to maintain.

Hints

The key to attacks in this game is the proper use of the laser.
Using the laser allows for relatively easy clearing. 
First, aim to clear levels by fully using the laser.
However, because the shot value falls through use of the laser, your score will be low.
So once you have mastered the game while using the laser, next try to play while using the laser as little as possible.
Also, score for normal shots is higher when enemies are closer. 

Saving and Playback of Replays

By selecting "SAVE REPLAY" on the home screen after a game ends, you can save a replay of the previous game, with up to 8 replays possible to be saved at once. 
Use "LOAD REPLAY" to playback saved replays.

Practice (only in paid version)

In practice mode, you can practice any stage that you have reached at least once. 
In practice mode, your highest score, and the replay of your highest score, are automatically saved. 
In practice mode you start with 8 vehicles.

Play Data

By selecting "PLAY DATA" on the home screen, you can check play records.
The records that are saved include scores, rankings, number of times each stage has been played, and playing time. 
*In the paid version play data is automatically saved, but in the Lite version it is cleared when the app is closed.

Music Room

From the title page selecting "CONFIGURATION" then "MUSIC ROOM" will allow you to listen to all music used in NOKOGI Rider.
*In the Lite version, you can only listen to music used in the Lite version.

Differences between the Lite and paid versions

- Number of stages: paid-5, Lite-1
- Play data save: paid-yes, Lite-no
- Replay saves: paid-yes, Lite-no
*There is no in-app purchases in this game.


2012年8月25日土曜日

公開しました

SHOT04 - NOKOGI Riderの製品版とLite版を公開する手続きをとりました。
いつ公開されるかは分かりませんが、その内、公開されると思います。
そういえば、Googleが何か審査をするようなことを言っていたので、若干時間が掛かるかも。

今回は、かなりタフな開発でした。
とりあえず、完成に至るまでの経緯を振り返ってみます。


2011年3月 - SHOT03完成
SHOT03が完成した後、宣伝用に載せたフリーゲームのDLサイトで「洞窟物語」を見つけて遊んでハマり、「ARPGでも作ってみようか」という軽いノリでマップエディタを作り始めました。

マップエディタは、たぶん、1ヶ月ぐらいで完成。
画面は↓こんな感じ。
主な仕様は、
・3層のレイヤー
・チップ毎に可変サイズの当たり判定を入れれる
・自動海岸線機能あり
・イベント配置機能あり

結局、ARPGは作らなかったけど。
ただ、SHOT04のステージエディタとして役に立ちました。
イベント配置機能以外は誰得状態でしたが。
(自動海岸線とか、作るのが結構大変だったのに)


2011年4月~8月 - 本業多忙
本業が恐ろしく多忙で記憶が定かではありません。


2011年9月~2012年1月 - 作曲
洞窟物語を知ったお陰で、ピストンコラージュの存在を知り、作曲しまくりました。
一応、ARPG用のBGMを作る名目で。
そのARPGのメインテーマ曲が↓コレ。
http://www.k2.dion.ne.jp/~ysuzuki/sample2.mp3

上記URLの曲データは、厳密にはピスコラで作ったものではなく、VGSへ移植したものです。
ちなみに、ピスコラで最初に作った曲が、SHOT04の2面で使っているBGM。
1面のBGMは、SHOT03のアレンジ(2面と4面を組み合わせた感じ)。
SHOT04の3面と5面の曲は、隠しモチーフとして上記URLの曲の旋律を使っています。
4面の曲は、ピスコラの曲投稿サイトでやってたコンテストに応募したりしました。
結果は入選ならず。(5位ぐらいだったと思います)

ピスコラのお陰で、「私もオリジナルの波形メモリ音源を作りたい!」と思い、ほぼ知識ゼロの状態から音の勉強を始め、その結果、VGS(Video Game Sound)が生まれました。まぁ、もともと自作ゲーム用のソフトシンセを作りたい欲求はあったのですが、敷居が高そうだと思っていました。

勉強してみると、音の仕組みというのはもの凄く簡単でした。
これなら、誰でも簡単に自作のサウンドエミュレータを作れると思います。
なのに、洞窟物語ぐらいしかそれらしいことをやっていないのが不思議。
「波形メモリ音源エミュレータの作り方 ~ ゲーム音源を作ろう」みたいな本を出せば売れますかね?
狙いどころがマニアックすぎるかな?
スマホ用のゲームの場合、容量の大きさ(を少なくすること)がかなり重要なので、ニーズはあると思いますが。


2012年2月~3月 - Androidを触り始める
この頃もまだ仕事がかなり忙しく、自分がゲーム開発をしていることは完全に過去のものになってました。
ただ、ふとした思い付きでAndroidタブレットを購入し、開発環境を揃えて開発を始めました。
で、サクッとInvaderBlock2を開発。

InvaderBlock2はタダで配っても良かったのですが、試したいことがあったので有償にしました。

試したいことというのは、「本当に売れるのか?」ということ。
案の定、マーケットに載せただけでは売れません。
しかし、Windows版を無料でVectorに載せてみたところ、数本ですが売れました。

正直驚きました。
たった一本でも「売れた」という事実に。
そこで、「ちゃんとしたモノを作れば、そこそこ稼げるかも」と思い、欲望と共にSHOT04プロジェクトを始動。

~以下、中略(SHOT04プロジェクトでやっていたことは、ブログにだいたい書いてあるので割愛)

2012年8月
無事完成。 ← 今ココ

今のところ、次回作の予定は未定です。
とりあえず、SHOT04の拡販活動をしつつ、次の構想を練ります。

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

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