2014年9月21日日曜日

これまでで最も大きな東方VGSのリリースです

久々に東方VGS(Android版)をアップデートしました。

今回のリリースには「Appleに対する抗議」という裏があります。

先日リリースされたiOS8.0では、SUZUKIPLAN製のアプリが軒並み動かなくなる不具合が発生します(ご注意ください)。この不具合はVGS mk-IIでオープンソース化している部分が該当箇所だったので、技術的な原因をGitHubのVGS mk-IIのリポジトリでシェアしています。
※iOS側ではなくVGS側の問題だということであれば是非Pull Requestを投げてください

不具合の原因は要するに「Appleがやらかした所為」という認識なので、この件はAppleが対策すべきだと思っています。ただ、私が言いたいのはそんな下らない責任の擦り付け合いではなく、Appleには失望したということです。

4GB超のバカみたいなデカさに比例して、どの程度ユーザに喜ばれるエンハンスがされたのかサッパリ分かりませんでした。
・使い難くなったカメラロール
・動かなくなったメッセージアプリ
・使わないバンドルアプリ増加
・一向に賢くなる気配のない公式キーボード
などなど。

確かに色々なエンハンスメントが見受けられましたが、唯一、ユーザに喜ばれそうなフューチャーは、サードパーティ製のキーボードへの対応ぐらいだと思いました。これもAndroidなら初期の頃から出来てたことなので、今さら感しか感じられませんでした。「何故3年前にやらなかったし」と。

現在、AppleのWebサイトに以下のようなことがデカデカと書かれています。

これまでで
きなiOS
リリースです。


自虐?

OSについては、誰も大きくなることを望んでいないと思います。
OSの容量は小さければ小さいほど良いと思います。

また、大きい≒重いです。
世の中には「俊敏なデブ」も居るかもしれませんが、飽くまでも一般論として。
OSの動作は軽ければ軽いほど良いと思います。

小さくて軽い方が、コンテンツ(アプリや音楽など)が沢山入るしサクサク動くので。

OSはコンテンツを入れる器です。
Windows然り、
Androidにも然り、
言うまでもなくiOSについても然り。
デカくて重い上、中身があまり入らない器など誰が望むのか...

端末がデカくなった件については好みが分かれそうですが。個人的には今でもiPhoneは3.5インチがベストサイズだったと思っています。これは単なる私の好みの問題ですが、少なくとも「全ての人が大きくなることを望んでいたか?」と問われれば、答えは確実にNoだと断言できます。「モーバイル機器ならコンパクトな方が望ましい」という人も少なからず居るので。
デカい画面が必要なら、自宅でiPadやMacBookAirを使った方が良いと思います。
これは半ば引き籠り気味な私特有の考え方なのかもしれませんが。


欠陥だらけのOSアップデート


魅力に欠ける端末アップデート


それらを提供するAppleに失望しました
※そういった意味ではBad Apple!!を入れた方がメッセージ的な意味でも適切だったかもと思ったのですが、これは単純に準備が間に合いませんでした。無念。


文句を言うだけなら誰でもできます。
既に各所で「iOS8はアカン」という声が上がっているので、そろそろ飽きた感もあります。
そこで、本当にユーザに喜ばれるアップデートとは何ぞやというお手本をAppleに代わって示してみようというのが、今回のアップデートの端的な動機です。
捻くれててごめんなさい。


そんな暇があったらiOS8の不具合対策を早くせい!
というお叱りの言葉を頂かないかと、ヒヤヒヤしながらアップデートの作業をしてました。

日に日に「iOS8で動かない」という報告が順調に増えていく事に心を痛めております

しかし、対策の目途はまだ立っていません

本当に申し訳ありません

三日とろろ美味しゅうございました

流石に三日とろろのくだりはジョークですw

【追記】
この日記を投稿したすぐ後に原因を特定しました。
みまがうことなきiOS8のバグです。
https://github.com/suzukiplan/vgs2/issues/3

2014年9月15日月曜日

iPhoneアプリのAppビデオプレビューを掲載するためにやったこと(まとめ)

iOS8のAppStoreからビデオプレビュー(Appビデオプレビュー)が掲載できるようになるようです。
まだ、iOS8もリリースされていない状態ですが。
しかし、iTunes Connectでは設定できる状態になっていたので、今度リリースするアプリ(iPhone版の連魂)にAppビデオプレビューを載せてみることにしたのですが、案の定、色々と地雷が敷いてあったので、Appビデオプレビューを掲載までの流れを(備忘録を兼ねて)書いておきます。

(1)OS X 10.10βをインストール

Appビデオプレビューを追加するには、OS X 10.10以降が必要です。ところが、現時点(2014年9月14日時点)では未だ公式リリースされていないので、beta版を入手してインストール。
OS X 10.10 beta をインストール中

(2)ビデオの解像度を調整

ニコニコ動画(ニコニコ自作ゲームフェース4)用に撮影した動画をそのまま登録してみたところ、ビデオサイズが1136x640、640x1136、1920x1080、1080x1920じゃないとダメだと言われました。
何故かディスられてるiPhone 6(無印)w
つまり、
iPhone 5(4インチ)のPortrait or Landscape
iPhone 6 PlusのPortrait or Landscape
の何れかということのようです。

ちなみに、登録できる動画は1つだけ(4種類全部は登録不可)らしいです。
つまり、現状は1136x640 or 640x1136の二者択一ですね。
iPhone 6が普及するかは未知数なので。
「iPhone 6 Plusに注文殺到!」みたいな記事をしばしば見ますが、正直、眉唾モノです。というより、私はあんな馬鹿デカいiPhoneは要らない。iPhoneは3.5インチのヤツが一番使い易かったと今でも思っています。画面が小さい?デカいのが欲しいならMacBookAirの方が楽しいですよ?(Macを買えば、ちょっと勉強するだけでiPhoneアプリも作れます)
iPhone 6とだいたい同じぐらいの値段(※実質価格)でMacBookAirが買えますよ?

(3)ビデオを640x1136に編集

ニコニコ動画の方に投稿した動画の解像度はVGS mk-IIの解像度(320x400)なので、まずはiPhone版の枠画像をスクリーンショットから切り出し、
iPhone版から切り出した枠画像
これと動画をaviutilを使ってハメ込み合成する形で320x568の動画を作成し、それをffmpegで640x1136に引き延ばしたものを準備しました。(一度320x568にしているのは、私の環境ではaviutilが縦720ピクセルを超える動画を編集できないためです)

(4)ビデオの長さを調整

上記動画の容量はだいたい100MBぐらいで、Appビデオプレビューに掲載できる動画は500MB以内と書かれていたので、「これで大丈夫だろう」と思って登録してみたところ、今度は「長すぎる」と怒られました。どうやら、ビデオの長さ(尺)は15秒~30秒にする必要があるようです。
こういう事は最初から書いておいて欲しい…
そこで、SUZUKIPLANのロゴ~タイトルデモ~デモプレイ~SUZUKIPLANのロゴの範囲だけを切り出し29.22秒に編集。

(5)音声の調整

上記の29.22秒の動画を登録してみたところ、一見上手く登録出来たように見えたのですが、Appビデオプレビューにカーソルを合わせてみたところ、音声は44.1kHz、ステレオ、サラウンドなしにしなければダメだと言われました。正直もうグロッキー状態です。
だからこういう事は最初から書いておけと…
動画のエンコーディングにツンデレエンコのYouTubeモードを使っていたのですが、どうもそれだと音声を48kHzに変換してしまうようで、そこで引っ掛かってしまったようです。そこで、44.1kHzステレオの元動画(avi形式)を、ffmpegで元ビットレートを保った状態でH.264/AVC+AACにエンコーディングしました。
変換結果(ffprobeで出力)

【指定コマンド】(参考)
ffmpeg -i  promotionvideo_short5x.avi -vcodec libx264 -crf 25 -acodec libvo_aacenc -threads 0 promotionvideo_short5x.mp4

(6)最大24時間待機

ようやく正常にAppビデオプレビューが登録できました。
正常に登録できると以下のような感じで処理が始まります。
処理には最大24時間掛かるようです。
処理が始まれば成功(した筈)
おつかれさまです。
以上です。
私は4回ぐらい心が折れそうになりましたが、何とかなりました。

動画の編集って時間が掛かるので面倒くさいんですよね...
外注すると高いですし。
30秒動画なら(編集を凝らなければ)十万ぐらいで作ってくれるプロダクションもあるかもしれませんが、Appビデオプレビューの解像度は割と特殊なので、当面対応してくれるところは無いかもしれません(ニーズがあればすぐに出来るかもしれませんが)。ちなみに、私は撮影から編集まで全部ひとりでできるので、動画の外注関連の相場には疎いです。

最近はPCも高速だから編集もお手軽にできるし、ツール類も概ね無料で揃います。だから、自力編集がオススメです。参考までに、私が動画撮影に要したコストはPCを除けばだいたい3000円ぐらい(&初期投資のみ)です。

【私の撮影環境】
・撮影機: Windows+DirectX9上のVGS mk-IIで連魂をエミュレーション (無料)
・撮影ソフト: Bandicam (有料/3000円ぐらい)
 ※ロゴ表示が気にならなければ無料
・動画編集: aviutil + 拡張プラグイン (無料)
・エンコーディング: ffmpeg (無料)

それでもやはり面倒くさい。
Androidのプロモ動画(YouTube)と比べると格段に面倒くさい。
まぁ、これだけ面倒くさい対応が必要だからこそ、Appビデオプレビューを載せておくだけで(出始めの数か月ぐらいは)目立てて良い感じではないでしょうか。

iOS8が浸透したぐらいの頃には皆やっている感じになると思いますが...

そして、iOS8じゃないとAppビデオプレビューは見れないですが...

2014年9月7日日曜日

連魂 ~ Soul Incarnated

SUZUKI PLANの新作弾幕STG「連魂」について、色々と説明します。
ゲームの大まかな内容は、動画で概ね把握できると思います。

概要

連魂は「連射すること」を重視した弾幕STGです。スマートフォンはタッチパネルで操作する関係で、この点に満足がいくSTGがありませんでした(※当社比)。もちろん、連射がなくても面白いSTGであれば沢山あります。しかし、満足に連射できるSTGがスマホでもやりたい・・・連魂は、そんな作者の想いから誕生したスマートフォンのための連射重視型弾幕STGです。

叩いてください!

これ見よがしに叩いてください!

熱く、切なく、時に優しく叩いてください!

【操作方法】
・画面をタッチした地点を目指して自機が左右に移動します(上下移動はできません)
・画面から指を離すとショットを発射します
・画面を2点マルチタッチするとショットを連射します(※iPhone版のみ)
・戻るボタンを押すか画面を3点マルチタッチするとポーズします(※Android版のみ)

【遊び方】
・自機が敵や敵弾に衝突するとゲームオーバーです
・全2周の道中(ボスなし)を突破すればオールクリアです
・オールクリアに要する所要時間は2~3分ぐらいです
・このゲームには自機の残機やコンティニューはありません
・このゲームではショットで敵だけでなく敵弾も破壊することができます
・敵機は若干固めで敵弾は柔らかめです
・敵機や敵弾は爆風で誘爆することができます
・敵弾を狙って撃破すれば誘爆で一掃することができます
・2周目にはレンコンみたいな形状の打ち返し弾があります
・レンコン弾は破壊することができません
・スコアには倍率が掛ります

【スコアの倍率】
・倍率 = 連爆倍率 + 打込倍率 (最大32.00倍)
・連爆倍率 = 連爆コンボ数 ÷ 10 ※小数点以下切り捨て (最大16倍)
・打込倍率 = 打ち込み1回につき上昇 (最大16.00倍)
・打込倍率の上昇値 = 0.01 × 連爆倍率
・連爆倍率はミスショットをすると1/2に減少します
・打込倍率は減少しません

今回のテーマは、ズバリ「連射」です

今回のテーマとか言いつつ、SHOT03ぐらいの頃からそれとなく意識しているテーマですが。
超連射68kへのリスペクトみたいな...
果たして通じる人がどれ程居るのかはさておき

当初のタイトルは「連射魂」でした。
ただ、「けいおん!」ではないですが、マーケティング的な方面の都合もあり、どうしても(日本語で)4文字に収めたかったので、短縮して「連魂」になりました。

やっぱり、連射って大事だと思います

疲れるけど。
疲れるのは嫌だけど。
でも連射はしたい。
ゲームをプレイしている気分になるので。

スマホは(縦スクロールの)STGと相性が良いゲーム機ですが、この「連射欲」を満たしてくれる作品はほぼ皆無に等しいです。ショットについては垂れ流すのが普通ではないでしょうか。これは、スマホのインタフェース的な事情も当然ありますが、弾幕STGの場合、「撃つこと」よりも「避けること」にフォーカスしているので、ショットは垂れ流し状態でもゲームとしては成立してしまうことが要因だと思っています。

だから、Battle Marineのような形のゲームを作ってみたのですが、Battle Marineはどちらかといえばスナイプ(狙い撃ち)に重きを置いてしまったため、連射欲を満たせるか?と問われると、そうでもない感じでした。

そこで、今回は連射欲を満たすことに重点をおきました。

連射をすると何故疲れるのか?

普通に考えれば、手を動かす運動行為そのものが疲れを引き起こす最大の要因だろうと思いがちですが、実のところ、運動行為よりも精神的な疲労が大きいのではないかと仮定しました。なぜ、そのように仮定したのかというと、このブログの初期の頃(Invader Block 2のAndroid版を作っていた頃)の記事にヒントがあります。

2012年2月の記事より抜粋
http://suzukiplan.blogspot.jp/2012/02/blog-post_22.html
小一時間ぐらい、Android版のInvaderBlockを遊んでいて気付いた問題・・・
スライドしまくっていると指が疲れる。
ん~・・・仕様です。
タッチペン推奨ということで。
こればっかりは、どうしようもない。(仕様だけに)

この問題に対して、後日の記事で現状のインタフェース(スライドではなくタッチした位置を目指してバーを動かすインタフェース)にすることで自己解決しました。

そういった経緯から、SUZUKI PLANブランドのゲームの標準インタフェースがスライド式ではなくポイント式になった訳ですが、この時、指が疲れた原因は「精神的なもの」だったから、連射も同様に精神的に疲れるのだろうと仮定した訳です。

どうすれば疲れなくなるのか?

連射が(精神的に)疲れる原因は、「連射しなければ敵を倒せないため」です。だから、その原因を解消してあげれば、「連射しても疲れない形」になります。私はそれについての解決策を、Battle Marineの時に採用した誘爆システムから見出しました。これにより、「必ずしも連射をしなくても敵を撃破できる形」になったと思います。

もちろん、それだけでは不十分です。

何故なら、連射をする必要が無くなってしまったので。
そこで、これを解決する手段を講じる必要があります。

連射インセンティブ

一番良い解決策は、スコアによるインセンティブ供与だろうと考えました。しかし、バカみたいに連射し続けていればスコアが上がるというのは当然ダメです。それではゲーム性が無いので。ゲームである以上、「何かしらの成功報酬」としてスコアをアップさせる必要があります。

そこで、敵機に命中した時にスコアを引き上げる形にしました。その上で、敵弾は柔らかく(狙い撃つ)、敵機は固くする(連射で撃破)という感じにしてみました。

下図のブロック(※かなり固い)が登場するエリアがありますが、そこ(ブロックへの打ち込み)が連射欲を満たせるパラダイス地帯です。インカム待ち画面(デモプレイ)で、ブロック地帯で連射を楽しんでる感じでプレイしているので、(右下の倍率の上がり方を含めて)チェックしてみてください。
ブロックエリア
(連射パラダイス)
打ち込み倍率(0.00~16.00倍)と連爆倍率(1~16倍)を組み合わせることで、程好く連射欲を満たせつつ疲れない仕様になったのではないかと思います。

より快適なゲームプレイ方法

たぶん、以下のような感じで持てば、より快適にプレイできるんじゃないかなと思います。
精神的な意味ではなく、運動行為的な意味で。
快適なプレイ方法(物理)
もちろん、片手でも快適にプレイできるようにしたつもりではありますが・・・

iPhone版について

今回、ロケテ的な意味合いも込めてAndroid版を無料(広告付き)で先行リリースしましたが、iPhone版もリリースします。ただ、iPhoneアプリに広告を入れるのは若干面倒くさいということが分かった(Invader Block 3の時にそれで2回ぐらいリジェクトを喰らって結局広告を外してリリースした)ので、今回iPhone版は有料版のみ販売することにします。

・Android(Google) = 無料モデル(広告)
・iPhone(Apple) = 有料モデル
というのが、ある意味それぞれのプラットフォームの生態系に適したスタイルではないかなと思い始めている今日この頃です。

【Android版「連魂」を入手】(無料)

https://play.google.com/store/apps/details?id=com.suzukiplan.RENCON