2017年5月6日土曜日

View.OnTouchListenerでのマルチタッチ処理

やりたいことはシンプルなのに実装が色々と面倒臭かったので、備忘録を兼ねてメモ。

(やりたいこと)
・1つのViewでマルチタッチを処理したい
・タッチされている座標だけ把握できればおk

(やりかた)

(解説)
・Android SDK単品では無理そうなので、SparseArrayのテーブル(touching)を準備
・touchingテーブルは、タッチIDを主キーにタッチされている座標を記憶する
(主キーがint型なのでHashMapではなくSparseArrayを使った方が処理効率が良い)
・タッチ開始(ACTION_DOWNなど)を検出した時にテーブルにPointをadd
・移動(ACTION_MOVE)を検出した時にPointを更新
・タッチ終了(ACTION_UPなど)を検出した時にテーブルからPointをdelete

(若干疑問点)
タッチ開始(DOWN)とタッチ終了(UP)は1タッチID毎にイベント(※ここで言うイベントとはonTouchのコールバックのこと)が発生するが移動(MOVE)は2本指同時に動かした時、両方同時にイベントが発生した。
これが恒常的なもの(保証されているもの)なのかが若干疑問。
一瞬、「DOWNとUPの場合、非MASKのactionIdの9〜16bitにタッチIDが付加され、1回のイベントで取得できるactionIdは1つだから保証されているのでは?」と思ったけど、それならMOVEが1回のイベントで複数処理されるのがおかしい。
MotionEventのactionIdなんですが、明らかに設計ミスっぽい気がする(ただし、当然ですがここはプリミティブ過ぎて今更直せないという感じだろうか)。

(追記)
CANCELの場合もMOVEと同様、複数指分が纏めて走るらしいので、CANCELの時はtouchingをclearするように修正。

2017年5月1日月曜日

お金の掛からない宝くじでも買っておく的な

グリマスの音ゲーの事前登録が始まってました。
https://millionlive.idolmaster.jp/theaterdays/

ただ、動画で流れているゲーム画面を見て若干食傷感が...ゲームが音ゲーとして面白ければやりますが、デレステ or バンドリの焼き増しレベルだったらスルーする予定です。
でも、もしも面白かった場合、事前登録するだけでSSRが貰えるかもしれないという乞食根性で事前登録しておきました。
100万も集まるかは微妙な気がしないでもないですが。
ちなみにバンドリの事前登録はだいたい50万前後。知名度が低くて50万も集まったのなら、アイマスの看板があれば100万なんて余裕なのかな?
ペース的にはつい先程(この記事を投稿する小一時間前)丸1日で10万突破したとのこと。

以下、PVを見た感想を書いておきます。

①モーションが独立している

コレ要るんですかね?
デレステの場合は初発だったからウケましたが、後発で独立モーションを取り入れたところで、そこまでウケるものではないでしょう。なので、単純に開発コストだけがハネ上がっているように見えてしまう。
それでARPPUが上がる(=お金を落とす層がそれを有難がって落とすお金の量を増やしてくれる)のであれば、それなりにやる意味はあるかと思いますが、ドレスショップが閑古鳥状態のところを見ると、恐らくそれも無いでしょう。
なので、メリットがあるとすれば、「デレステを陳腐化させてパイを奪えるかもしれない」ってところですかね。なので、事実上ソレの一点狙いだろうと理解しました。
つまり、運営がCA系列以外ということであれば、それなりに意味がありそうです。(また運営がCA系列ということであれば、正直コレは意味不明です)

②協力ライブ

なるものがあるらしいことを仄めかすセリフがあった。
...けど、3度目となるともう新鮮さは無いですね。
ただ、仮に運営がCA系列以外だとすると、流石に何かしらの知財ガードがされているはず(知財権をバンナムが握っていた場合、バンドリの協力ライブ導入を排除できる筈なので、それがされていないということは少なくともバンナムではなくCA側が権利を握っている筈・・・気になって少し調べてみましたが、例えばデレステやバンドリのスタンプとかは多分コレで、やはりCA側が特許を出願しているらしい)。
なので、私の予測通り運営がCA系列以外だとすると、デレステやバンドリの協力ライブとは(少なくとも権利化されている範囲は)別物にせざるを得ないから、もしもそうだとすると面白いものになる可能性があるかも。
というのも、デレステもバンドリも協力ライブはまだまだ面白くする余地がかなりありそうというか、不満みたいなものが結構あるシロモノなので。

③ソロプレイ(片手でもプレイできる)

これは...要らないかな。
私は基本iPad Proでプレイするから縦持ちするのは、端末の大きさの関係で面倒なので。
ただし、デレステ同様iPhoneとアカウント共有できれば、iPhoneではコチラを中心にプレイとかはあるかもしれない。
しかし、画面をポチポチするだけなら難易度的に楽すぎてツマラナイものになるかなと。
加速度センサーとか使った何かとかなら新鮮味があって良いかもしれませんが。ただ、それで快適にプレイできるように作るのは恐ろしく難しい筈だし、現状の画面を見る限り単なるヌルいポチポチゲーっぽい。

このゲームの現時点の期待値としては「正直よく分からない」という感じです。
面白く出来そうな余地は結構ありそうですが、既にやり尽くされたジャンルだからそれを今更進化させるのは多分相当難しくて、「単純にシンデレラじゃない方のアイマスを音ゲー化しました」みたいな方向のものに落ち着く(=私がスルーするタイプになる)可能性が今のところ高そうかなと。まぁ、モノが出てみないと分からないので、とりあえず期待せずに事前登録だけしておく分には良いのではないでしょうか。事前登録するだけならお金も掛からないから、お金の掛からない宝くじでも買っておく的な感じで。

2017年4月9日日曜日

クズ運なのですが、

昨夜、ガルパの単発ガチャ(250)でピックアップを引き当てる。
ピックアップを引ける確率は0.5%。
デレステのピックアップとだいたい同じ確率ですが、デレステでも結構たくさん単発ガチャ回したけど、単発でSSR引けたのは1回こっきり(フェス時のみ)で、フェス以外でピックアップを引けた回数はゼロ。
そんなクズ運の私が単発で引くことが出来たというこは、バンドリのガチャは今緩い感じなのかな。(私が突如豪運を覚醒した可能性もゼロではないけど)
IPが弱いから、まずは緩めにして当てさせることでファンを増やし、2周目以降で課金兵を育てる作戦なのかなと勘ぐってしまった。
アニメの方はネット上の批判を見る限り、ズッコケたんですかね?
私は見ていないから何とも言えません。
実のところ全く見ていない訳ではなく、AbemaTVで11話の一部だけチラッと見てみたのですが、恐らくトータルで(ネット上で言われているほど)悪くないコンテンツだったのではないかと推測しています。
大ヒットするか?と言われると無理だと思いましたが。(※ただし、私はけもフレの1話で大ヒットすることを予想できず一度切ってしまったので、当たるコンテンツを見分ける能力は皆無ですが)
AbemaTVだとタイムシフトが(無料会員だと)出来ないので、決まった時間に見ないといけない=時間の都合が合わないと見れないという点が私には少々厳しい。AbemaTVは、スキマ時間に見る用途では良い感じだと思っていて、CA=広告会社だからビジネスモデル的に狙い通りだと思うのですが、その半面、そのスタイルは目的意識を持った視聴には向かないので、例えば、ドラえもんやフルハウスなど(1話完結もの)や懐かしのアニメ(既にストーリーを把握しているもの)といったコンテンツとは相性が良いけど、ストーリーモノには向かないと思っています。(だから、何故ドラマチャンネルなんかがあるのか割と謎)
あとは、時期が悪かったのかも(前期はけものフレンズがあまりにも強すぎて、他に何やっていたかすら思い出せないレベル)。

2017年4月8日土曜日

iOSアプリの提供中断について

SUZUKI PLAN製のiOSアプリですが、しばらくの間、提供を中断します。
※復帰する可能性があるので「提供終了」ではなく「提供中断」としています。

提供中断の理由は、AppStoreでアプリを提供するには年額12,000円のライセンス料をAppleに収める必要があるのですが、売上から得られる収益(※)がライセンス料未満になったので、今回のライセンス更新を見送ったためです。
※少し補足すると、売上 = Android + iOS両方の売上の合計です。iOS単体だと結構前からライセンス料を下回っていたのですが、最近はAndroidも落ちてきて、ついに合算でライセンス料を下回った形です。
なお、インストール済みのアプリについては引き続き利用できます。
ただし、AppStoreからの再インストールはできないので、ご注意ください。

2017年4月1日土曜日

ラブライブ一人負け?

2chを見てたら、「バンドリ(ガルパ)が出てきてラブライブが一人負け」みたいなことが書かれていたけど、そんなことはないだろうと思って少し調べてみました。

まず、バンドリのランキング(iPhoneのセルラン)の推移がこちら。
バンドリのセルラン(iPhone/日本)
同期間のラブライブの推移がこちら。
ラブライブのセルラン(iPhone/日本)
赤線: バンドリのリリース日
そして、同期間のデレステの推移がこちら。
デレステのセルラン(iPhone/日本)
赤線: バンドリのリリース日
デレステの方はちょうど3末に集金力の高いイベント(シンデレラフェス)があったから1位を取れているけど、ラブライブの方も何となく3末にかけて上がっている。3末というと年度末会計ということで何かしら集金力の高いイベントがあったのではないかと予測(ラブライブの方はプレイしていないからよく分からないですが)。

このままだとよく分からないので、ラブライブとデレステの集計範囲を1年にしてみます。

まず、ラブライブの過去1年の推移。
ラブライブの過去365日のセルラン推移
そして、デレステ。
デレステの過去365日のセルラン推移
分かり易くするために最低ランク位置を基点にした補助線(青)を描いています。

ラブライブもデレステもバンドリリリース(赤)以降に過去1年間で最大の下げ幅を更新しているので、ラブライブ一人負けというより、仲良くシェアを奪われている感じだと思います。

ただ、個人的にはデレステの落ち方の方が微妙に気になります。
バンドリのリリース前に過去365日間最高の落ち込みを記録しているあたり。
上記の日付は2月22日ですね。
関係無いですが、2月22日というと私がSSSを走っていた時と重なりますね。

バンドリが無くても下降トレンドに入っていたような気がします。

完全に個人的な趣向のことですが、先日のシンデレラフェスで「ミスしてもコンボが繋がる」という新しい能力(正確には組み合わせ技みたいな形ですが)が追加されましたが、ソレで少なくとも私のデレステへの課金モチベーション+プレイモチベーションが一気に吹き飛び、その後の限定ガチャで欲しい能力のアイドルが追加されても課金しない感じでした。(無料石で数回回して「あー、出なかったわー残念」で終了)

それでも、相変わらずフェスではセルラン1位を取れているから安泰なのかな。あのフェス限定能力の所為で、少なくとも私は「もうデレステには1円も落とさないぞ」と決意したのですが、これは少数派の意見だから無視しても良い感じなのかなと。少数派は淘汰されても仕方ありませんね。(無限の財布を持つ少数派なら話しは別かもしれませんが、その少数派というのはゲームが目的の外にあるから大丈夫ってことかなと)

だからといって、バンドリに金を落とすかというと全然その気もなく、ある意味お財布にとって優しい状況。なので、ラブライブ一人負けというよりは全部共倒れしている印象です。

このジャンル自体の飽和...ですかねぇ。

2017年3月31日金曜日

しゅわりん☆どり〜みん(悪夢)

ガルパの第一回イベントが無事終了。
若干、期待ハズレな内容でした。

イベントの内容:
①曲をプレイする都度イベントptが入る(ただし消費ブースト0だと入らない)
②特定キャラクタ、特定属性の編成でイベントpt増加
③ブースト消費量を上げることで効率化できる
④協力ライブのイベントptが高め

なので、上位入賞を狙うのであれば、
②ガチャでスコアの高い編成を揃え、
③消費maxで
④協力ライブを回し続ける
という感じ。

②と③はまぁ良いです。
問題は④。

協力ライブでは、プレイする曲をリクエストしてルーレット方式で抽選をするのですが、当然イベントを走っている人はなるべく高い得点が取れる期待値の高い曲を選ぶ(「しゅわりん☆どり〜みん」ばかりが選ばれる)ので、協力ライブの選曲が偏ってしまう。

曲のリクエスト機能は不要だったとまでは言いませんが。

では、どうすれば良くなる(私ならどうする)か勝手に考えてみました。

(1)選曲ランダムの部屋を作る
レギュラー、ベテラン以外にエキスパートみたいな感じの部屋を作り、そこでは選曲が常時ランダムで難易度がExpert固定(レビュラー+ベテランの景品が入手できる)とかがあれば良かったんじゃないかなと。

(2)報酬(イベントpt、アイテム)の獲得条件
・スコア獲得順位が高いほど報酬が多くなる
・フルコンボとれたら獲得倍率1.5倍とか
・ライフ残量が少ないほど獲得報酬の率が低くなる(0なら無報酬)

(3)切断ペナルティ
メンバー確定後に通信を切断した人はペナルティで5〜10分間入室禁止とかそういう処置(これならサーバ改修無しで実現できるので割と簡単に実装できると思う)が無いと、メンバーガチャ感覚でリセマラする人が居てウザい。

(補足)
・(2)だけだと恐らく破綻する(ますます選曲が偏る)ので、(1)と(2)は合わせて一本だと思っている
・(3)が無いと今度は選曲ガチャをする人が現れる

2017年3月26日日曜日

ガルパで☆4を入手

今まで10連ガチャのハズレ(☆3)だけでプレイしていましたが、ようやく☆4(SSR相当)を引けました。
さて、「これを引くまでに幾らぶっ込んだのか?」ですが、結果的には課金したのは最初の初心者パック(1000円)ポッキリで、無料石だけで10連をトータル4回まわしたところで出てくれました。(結構運が良かった方かな)

石の集め方としては、
・カード別エピソード解放 = 25個〜50個?
・Expertでフルコンを取る = 1曲50個
・スコアランクSを取る = 1曲50個
・ストーリー解放 = 1回につき50個
・侘び石(協力ライブ不具合) = 1000個
・初心者パック = 1日80個
・リリース記念 = 1日50個
・イベント景品
あたり。

前回記事を書いた時点で、既にHardはフルコンし尽していたことに加え、ストーリーもだいたい解放済みだったので、「もう課金しないと厳しいかも」と思ったのですが、完全に見落としていた大きめの無料石ソースが「カード別エピソード解放」です。
下の方のエピソードというヤツ(鍵マーク=未開放)
左側のエピソード1はすぐに解放でき、右側のエピソード2はレベルMaxにしないと解放できません。☆3と☆4の場合、右側のエピソードの解放は条件(レベルMaxだけでなく属性別のアイテムが必要)がかなりキツイので、解放はかなり難しいですが。
☆4のエピソード2解放条件(※☆3:☆4=3:4)
ですが、☆2と☆1なら、どちらの条件も緩いので簡単に解放できます。
そして、☆1のカード(全25枚)だけでも、貰える無料石の総数は 75×25 = 1875個 とかなり多めです。

そんな感じで、前回の記事執筆時点から無料石を追加で5000個捻出して、それでガチャを挑んだ結果、なんとか☆4をゲットできました。(これでもう大きめの無料石ソースは潰しきったので、これ以降の強化は流石に課金必須かな...)

ちなみに、今回引いた☆4の特技は回復でした。
前回の記事時点では「できればスコアup」と言っていた気がしますが、これについては結果オーライです。(むしろ回復が欲しかった)

デレステだったら回復なんてSR1枚あればどんな曲でも余裕でクリアできてしまうので、デレステの価値基準だと回復SSR=ゴミみたいなものなのですが、ガルパだと回復はかなり重要。
デレステよりもゲーム本編が結構シビアで、体力はどんなに能力を上げても初期値(1000)固定というのが大きい。

現時点で最難関の曲は、
・空色デイズ(Lv26...これは完全に詐称: 私の見立て = Lv27相当)
・don't say lazy(Lv26...これはやや詐称: 私の見立て = Lv27相当)
・シュガーソングとビターステップ(Lv28)
の3曲ですが、これらについては未だに回復無しだと(今の私の腕では)クリアすら危うい。

しかも、デレステのように特技がランダム発動ではないので、「回復を1枚入れておけばオールOK」ではないという罠付きです。この3曲の中で私が最も安定してクリアできるのはシュガーソング(Miss=10前後)ですが、☆3と☆4の回復を各1枚編成していても、未だに落ちることがあります。(☆2でも良いから全員回復にすれば流石に安定する)

更に、協力ライブ(一般)だと、初心者が入ってくることもあるので、コチラが特大回復を積んでおくことで、初心者が落ちるリスクを低減できるという利点もあります。「☆4持っているなら上級者部屋へ行けよ」と思われるかもしれませんが、一般部屋の方が良いアイテムが落ちるんですよね。(上級者部屋だと特定の属性アイテムしか落ちません)

ついでに、イベント向けになるべく高いポイントを取ろうとすると、敢えてパフォーマンスの低い編成にしないといけないという事情もあります(これはイベントガチャを引けば良いのですが、イベントに関してはそこまでガチで走るモチベーションが今のところ湧いてません)。

なお、「協力ライブのメンバーに☆1や☆2が居る」ってだけで通信を切ってくる輩が結構居るのですが、そういう人たちはだいたいイベントを走っている人です。民度が低い。(そこまでするなら、ガチャを回して得点の高い編成を作って、ずっと上級者部屋でプレイしろよと思ってしまう)
私は、初心者の前でExpertをフルコンしたり、高得点を叩き出してドヤりたい人なので、☆1の人が入ってくるのは寧ろウェルカムなのですが...

ちなみに、協力ライブをプレイした時の全体スコアに影響するのは、メインチームのリーダーだけでなく全体の総合アピール値になります。だから、リーダーが☆4の特訓後Lv Maxの人でもスコアが低いことが割とよくあります。(たぶん、イベントの得点が高くてレアリティが高いカードを持っていない or リセマラで本気を出して以降ガチャを回していない人かなと予測)

なお、☆4のアピール値は☆3とあまり大差はありません。
私の手持ち(☆4=1枚, ☆3=5枚)のアピール値はこんな感じ。
☆4 = 30000前後(Lv Maxで特訓済み + エピソード1のみ解放)
☆3 = 26000〜28000(全員Lv Maxで特訓済み + エピソード1のみ解放)
せいぜいこの程度だから、☆4が出なくても☆3を育てるだけでスコア的にはかなり高くなります。(ついでに、協力ライブクリア時はスコア判定の閾値は低くなるのか、☆3のLv Maxを5枚編成とかでプレイすれば、協力ライブ自体はランクAでも曲別のスコアランクSが取れることが結構あります)

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

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