2016年2月25日木曜日

3Dアプリ Standland をリリースするまで

とうとうリリースしました!



作成開始を決めたのが 2015年7月なので、制作期間は 約8ヶ月。
Flaskにとっては、かなり長期間の開発となりました。

どんな道のりを辿ったのかを振り返りもかねて書いてみようとおもいます。

道のり


7月20日 初めてのdaeファイルを作成して試してみる
7月22日 ポリゴン数やアニメーションの切り出しなどでハマり始める
8月17日 ゲーム要素を「合成」にしていたのを「ルーレット」に変更
9月2日 Apple Watchの検証して実装を見送り

(9月16日 FitPort ver1.5.0 リリース)
(10月4日 Coyomi ver1.1.1 リリース)
(10月7日 Coyomi ver1.1.2 リリース)
(10月30日 OnePath ver1.0.0 リリース)
(11月7日 Timesheet ver1.7.0 リリース)

11月4日 ちびキャラを登場させる案が浮上
11月17日 キャラをタップで、何を喋らせるかの具体案が出てくる
11月27日 ゲーム要素を「ルーレット」から「アチーブメント」形式にすることを決定
11月29日 Gemmyを歩きまわらせたい欲がでてくる
12月2日  Gemmyの表示数や動きについての仕様が確定
12月16日 10Dayスタッツ画面をいれることに決定
1月11日 キャラをタップした時の動作仕様が確定
1月19日 夜にランプを表示することを決定
2月24日 リリース


Github上のコミットグラフ


はじめての3Dグラフィック

Standlandは、3Dグラフィックのアプリ。 
COLLADA形式のモデリングデータを作成し、それをSceneKitで取り込みしています。
モデリングデータは @horiuni さんがBlendarを使って作成
3Dははじめての経験だったのでとても興奮しました。

時間とともに、光源を移動/色を変えて 時間毎に変わっていくようにしよう。 
キャラを眠っている、立っている状態毎のアニメーションいれよう。
 雲も動かしたい。歩かせたい。

...とやってみたいことが盛り沢山。動くって楽しい♪
「後で、自分の首を締めると思わずに...」と @horiuni さんが後でつぶやいていましたw

Flaskの得意技! 作りながら考える

とりあえず動くものを作る。
良い案がでたらまた作る。
古いものはどんどん捨てる。
です。

今回のStandlandも、それらしい最終形が見えてきたのは12月ぐらいからでした。
私達が作るような小さいアプリは、最終形がみえているなら1, 2ヶ月ぐらいでだいたい出来上がります。
どれだけ、模索の時間をおくのかー? というのが全体的な期間の差に。
アプリの開発期間の算出って難しいですよねww

2度変わったメイン機能

最初から、「多くスタンドできたら、キャラが増えていく」という発想はあったものの、どのようにキャラがGETできるのか? の方法は途中で大きく変わっていきました。

最初は「合成」するという案。
スタンドで貯めたGEMを使って合成すると、新しいキャラが増える。
キャラの数は限られているので、早々に集めてしまい楽しくないかも。
同じキャラが出てきたら、なんだか残念。という懸念がありました。

次は 「ルーレット」 の案。
ルーレットの中には新キャラの他に、GEM×10 なども入れることにより、残念度を減らそうと出てきた案。
内部の実装的にはほとんど作り上げて、実際回したりして試していました。
合成よりは懸念は少し改善したですが、全ては払拭できておらず悶々と。

この間に「ちびキャラ」の案が浮上
たまーに、小さいキャラが登場する。それをタップすると、そのキャラをゲットできるという案。今までの案よりも、出てきた時の喜びは大きい。
出なさすぎは寂しいが、出過ぎもすぐに集まってしまうという懸念は残ったままなのだが、この案が出てきた背景には メイン画面がちょっとさびしい という気持ちもあったのと思う。この時点では、Gemmyはまだ歩く予定もなかったですし....。

そして最終的には現在の「アチーブメント」の案に。
"5回連続したらボーナス" というボーナスの存在はそれまでにもあったのですが、GEMが多くもらえる という形でかんがえていました。
それを、現在の形..... 達成までの進捗が見えて、頑張ったら必ずキャラゲットできるようにしました。
"進捗がみえる" という発想の転換はとても大きくて、今までの懸念を一気に払拭してくれました!

最後の案に落ち着いたのは11月末。
途中に寄り道期間があったとはいえ、開発開始から5ヶ月目の出来事でした。

空白の2ヶ月間?

9月、10月にコミットがなくなっていますが実はこれは空白期間ではありません。
モデリングデータを作成といっても、どんなキャラがいいか? どんなものだったら作りやすいか? などの選定から、  @horiuni さんに模索しながら作業してもらっていました。
はじめての経験だから時間がかかったというのももちろんありますが、逆に私の実装側が、モデリングデータのおかげで作業量が少なくなったというのがあります。
アニメーションなどもモデリングデータ任せになるので。
Appleのサンプルコード Fox でも、コード量はホント少ないです。

その間、私はtvOSと戯れたりしておりました。

8ヶ月という期間は長いのか

メイン要素が変わっていきましたが、こういう悩む部分というのは、すっと良いアイデアが出るわけでないので、ある程度、悶々とする期間はやっぱり必要だなと思います。
が! 8ヶ月集中を持続するのはやっぱりツライなぁーという印象も。
長くても5ヶ月以内で完了できるものに絞って集中したほうがよいかな というのが今の気持ちです。

こんな感じでやっとお目見えできた、スタンドランド
無料なので、ぜひお試しくださいね!

• • •