2015年1月22日木曜日

TangoでARを出してみた。




これまでXperia Z3で開発してましたが、
TangoでARを出してみました。

一番の違いはぬるぬる滑らかに動くこと!
ARで表示されるドラゴンや背景のカメラ映像が全くカクつくことなく表示される。
リアルタイムで認識した特徴点を追加しまくるので、3Dモデルを余裕で回り込る。

ただしサイズが大きい!
そしてアタッチメントにつけるとタブレットサイズなので頭がすっごく重くなります。
これがXperia Z3のサイズになったら走り回るのは全く苦にならないだろうな。

すべてのスマートフォンがTangoの鬼スペックを最低限積んでくれたらいいのに!

---Tango Tablet スペック----------------------
 CPU:NVIDIA Tegra K1
 RAM:4GB
 内部ストレージ:128GB
 OS:Android 4.4 KitKat
 カメラ周り:4MPカメラ、モーショントラッキングカメラ
  センサー:赤外線センサー、深度センサー
 サイズ:7インチ



今は現実的に厳しいと思うので、一部の
ゲーマー向けにゲーミングスマートフォンを発売しないかなぁ。
ゲーミングPCのように需要あると思います。
チャレンジングなメーカーさん、ぜひぜひ作ってくださいませ。

机や床の上を飛び跳ねたり壁をブチ破ってくるモンスターを倒すリアルモンハンとか、
カメラ映像の中を自然にどこまでも走り回る初音ミクとか、
画像処理による数センチ単位でのユーザ位置追跡とか、
ケーブルなしのデバイスで実現できる世界がここまで来てる。

Tangoをいじってみたいエンジニアさんはぜひご連絡ください。
好きなアプリを作るのでもいいですし、試しに既存のアプリを動かしてみるのでも構いません。
tangoを触りながら可能性を一緒に模索しましょ!




Tangoって何?って方向け → ProjectTangoとは?


--以下エンジニアさん向け--------------------------------

2015年1月11日時点で4つのデモアプリが用意されています。  
    1. Project Tango Cube Mover
    2. Project Tango Wizard Demo
    1. Project Tango Explorer
    2. Project Tango Debug Overlay Viewer
開発者向けSDKとしてJavaだけでなくUnityも提供してくれてるのがすごくありがたいですね。




2015年1月15日木曜日

ウェアラブルexpoまとめ

ウェアラブルexpoに行ってきましたのでざっくりと注目展示をご紹介します!


YAMAHA
指、腕の動きを認識するデバイス


グローブの伸び縮みで指の動きを認識させる。
元々医療用に作ったものらしい。
グローブ以外にも胸や足など全身に装着するパーツがある。












Flexible Battery - Jenax
シート状の折り曲がるバッテリー

これがあればウェアラブルデバイスをコンパクト化できますね。
衣類系なんかに埋め込むのも便利です。







castAR
kickstarterに出てたやつですね。仕組みは特徴的で、HMDのプロジェクターから前方に映像を投影し、反射した光を偏光メガネで見るというものです。ヘッドトラッキングの精度はいまいちでしたが、画角はかなり広く、環境を選ばなければmoverioよりもリッチな体験ができそうです。



杉原SSEI
位置情報計測システム
加速度・地磁気(一部wifiも)などのセンサーなどを使い、ユーザーの位置を計測するシステム。デモ動画は精度かなりよかった。
複数のセンサーを使っているのがポイント。センサーの種類はスマホと変わらないとのこと。



welcat

腕に装着するバーコードリーダー
作業中に使うウェアラブル。
写真のデバイスを腕に装着する。
物流倉庫などで使えるのでは?
レーザーがかっこいい。











brother工業

以前から片眼HMDを出しているが、今回出していたのは頭に装着するタイプのもの。
位置を自由に調整できます。透過型と非透過を選べる方式。非透過はやはり映像が綺麗に映し出されますね。見るのにコツがいりますが。
http://www.brother.co.jp/news/2015/150107_airscouter/

2015年1月5日月曜日

【KPI分析(第1回)】用語解説編

あけましておめでとうございます。
meleapの2015年も本日からスタートしました!
今年はmeleapの名前が世界中に轟くような1年にします。必ず!

さて、ブログネタですが、meleapにはソーシャルゲーム業界あがりの人間が自分以外いないので、半分社内向けにソーシャルゲーム(に限らずアプリ全般)界隈でよく出てくるKPI(Key Performance Indicators:重要業績評価指標)について何回かにわけて書いていきたいと思います。

まずは第1回目なので、超基本的な用語解説から。

◆ダウンロード数

これはそのままですね。アプリがダウンロードされた数です。
でも、この数字はほとんど意味をなさない数字です。なぜならその大半はもう遊ばれていないか、端末から削除されてるから。
でも大きな会社の偉い人は気にする数字です。「◯◯万ダウンロード突破!」とかいいたいですからね。
あと、広告のゴールとして設定されがちですが、広告の役割は良質なユーザーを効率よく獲得することなので、ダウンロード数だけ見て一喜一憂するのはなんの意味もありません。

◆DAU

これは、daily active usersの事で1日のアクティブユーザー数です。ちなみにMAUは月のアクティブユーザー数。
この数字、一昔前(ブラウザマンセーの頃)は超重要な数字とされていて日々上がった下がったを注視してましたが、現在においては非常に不確かな数値でDAUをウォッチしててもあまり意味がないと言われています。
DAUはブースト施策などで簡単に上がるし、次の日にはガクッと下がります。なので、純粋にユーザーが楽しく遊んでくれているか、なにかゲーム内に問題が起きていないかをチェックするのには、信頼性に欠ける数値なのです。
このあたりは今後もっと深堀りしていきます。

◆PU

payed usersの略で、課金をしたユーザー数の事。
この数値は今も昔も非常に重要なKPIの一つです。基本無料モデルが定着し、一人がいくつものアプリを試しては削除してを繰り返している中、1円でもお金を支払ってくれたユーザーというのはそのアプリにとって非常に価値のあるユーザーです。
課金率や課金額は広告や施策により大きく上下しますが、このPUはそこまで大きく変動しません。なによりアプリ自体の面白さが影響してくる数値です。この数値が減少しているということは面白いと思ってくれていたユーザーの期待を裏切り離れていってしまった事を意味します

◆課金率

アクティブユーザーのうち、課金者がどのくらいいるかの割合です。基本的には、Dailyで見ることが多いので、DailyのPU/DAUで算出します。
先にも説明したとおり、DAU自体がブースト施策などで大きく変動する値なので、課金率もおのずと大きく変動します。
ですので、売上を予測する上で重要な数字ではありますが、あまり信頼性はない数字です。

◆ARPPU

ARPPU(average revenue per payed users)は課金者一人あたりの平均課金額で、売上/PUで算出します。
この数値を上げることは売上にダイレクトに影響するので、重要な数値ですが、サービスを長続きさせたいのであれば、しっかりとバランスをとり、時にはARPPUの上昇を抑えるなどの処置も必要な場合があります。ガチャモデルのゲームなどはARPPUが高くなる傾向にあり、ARPPUの上昇がコンテンツの消費スピードを加速させたり、無課金ユーザーと重課金ユーザーとの差を広げるなどして、ユーザーを離脱させる原因にもなりかねません
とはいえ、売上を上げることを義務付けられている苦しいサービスの場合は(ほとんどそうだけど)、ガチャ施策などでARPPUを手っ取り早く上げ、その場しのぎの売上向上を行う事が多いのが現状かと。

◆ARPU

ARPU(average revenue per users)は、ユーザー一人あたりの平均課金額で、売上/DAUで算出します。
こちらもDAUを計算に使用しているので、あまり信頼性の高い数値ではないです。
広告の効果検証として、新規ユーザーが課金者(PU)になったかを評価する指標として用いる場合もあるけれど、個人的にはあまり注視しなかったです。

◆継続率

その名の通り、アプリをダウンロードしてくれた人のうち何人が継続して遊んでくれているかを示す指標です。
一般的には、ダウンロードしてから1〜7日、14日、30日、くらいを目安にそれぞれの継続率を見ていきます。
ブラウザゲーム全盛の頃は、アプリをリリースしたらmobageやGREEの新着枠に掲載され、そこから数万というユーザーが自然流入してきたので、翌日継続率、3日後継続率、7日後継続率あたりをいかに高めるかに躍起になっていました。その初動でアプリの生死が決まるといっても過言でなかったからです。
もちろん、現在のネイティブアプリでも継続率の重要性は変わりません。ただ、傾向として無理やり施策で継続率を上げるという流れから、ゲーム自体の面白さで上げていくという本質的な流れに変わってきていると思います。

◆LTV

life time valueの略で、ユーザー一人あたりがゲームを辞めるまでの生涯課金額の事。主に広告効果を評価する際に使用する。
広告によって1ユーザー獲得するのに使った金額より、そのユーザーが辞めるまでにこのゲームに課金した金額が高くないと、広告を打つ意味がなく、広告を打てば打つほど赤字になってしまいます。
なので、アプリのLTVよりいかに低い金額でユーザーを獲得できるか。そして、獲得後にLTVを下げないような優良なユーザーを獲得できるかが、広告担当者の腕の見せどころになるのかと思います。
このあたりも今後もう少し深堀りしていきたいです。

◆売上

特に説明も必要ないですが、アプリの課金額の合計です。
単純な課金額の合計をグロス売上、プラットフォームの手数料を差し引いた売上をネット売上とか言ったりします。
売上を予測する上で、DAU✕課金率✕ARPPUという式を使ったりします。
ただずっと言っているようにブースト施策によって各種KPIは大きく変動するので、正確に予測するにはもっと根底にあるKPIを元に算出する必要があります。
売上アップはゴールではありますが、上辺の数値だけ見てては適切な施策どころか一過性で寿命を縮める施策を打つことになってしまいます。現場にはあまり売上アップを強要しないほうが健全な運営ができると思います。


とりあえずはここまで(なんか気づいたら大ボリュームになってた^^;)。
とはいえ、上に挙げた用語は基本中の基本のものです。
見るべき指標はアプリによって異なるし、施策によっても異なります。
また、ブラウザゲーム全盛の頃とネイティブが主戦場の今とでも大きく異なります。

KPI分析の手法も日進月歩です。
アプリの異変にいち早く気づくために、施策や広告を効率よく打つために、より「正確」なKPIはなにかを各社日々追求しています。
次は、より「正確」なKPIとはなにか、というあたりを書こうかと思います。では。

2014年12月26日金曜日

【unity C#】Prefab生成時に名前の後ろにつく(clone)を消す方法

UnityでPrefabをInstantiateすると自動的に名前の後ろに(Clone)がつきます。
今回こまったのが他のスクリプトからオブジェクト名を使って指定しているため(Clone)がついていると名前が違うため指定できません。

それではC#での(Clone)を消す方法を紹介します。

using UnityEngine;
using System.Collections;

public class nametest : MonoBehaviour {
public GameObject target1;
void Start()
{
GameObject newTarget1 = (GameObject)Instantiate(target1);
newTarget1.name = target1.name;
}
void Update () {

}
}


あとはInspectorでtarget1にPrefabをセットしたらOKです。
javascriptでの書き方はググればすぐ出てくるのでそちらをどうぞ。


参考サイト
 http://answers.unity3d.com/questions/28114/remove-clone-from-instantiated-gameobjects-name.html





2014年12月14日日曜日

カメ○メ波が出せるようになったぜ!

子供の頃のごっこ遊び。
カメ○メ波出しまくってた(つもり)



でもふと現実に戻ると何も出ない。
あんなに気を練り込んだのに。



これからは違う。
出せる!!!出せるぜ!




左半分は術者の動きの映像、
右半分は術者が顔に付けているスマートフォンで表示される映像。
動画前半はエネルギー弾出してる。映像よりも発射音重視の技。

圧巻は0:20からの映像である。
術者が腕を振り下ろすと同時に稲妻がほとばしる!
最後は必殺技でドラゴンを消し飛ばす!

技を出すのに必要なのは、Androidスマートフォンと
Android Wear搭載のリストバンドデバイス、
そしてmeleap製のアプリ。
あと気合い。

使用端末:Android Wear(Samsung gear live)
        Android Smart Phone(Xperia Z3)
開発環境:Android Studio, Unity

Wearの加速度センサ値を基に独自アルゴリズムを使用した。
術者の動きを事前に登録しておき、リアルタイムのモーション判定を実施している。
登録する動きは何でもおっけー。現時点では3パターンのモーションを認識する仕様。

※)顔に付けてるスマートフォンから伸びるケーブルは、
  右半分のスマートフォン画面動画を取るためで他の処理は何もしていません。

次は動き回りながら技出せるようにするよ!
ほんじゃーね!

2014年12月9日火曜日

Android Studio 0.9.9へのアップデートに伴うエラー

Android Studioをアップデートするとこのようなエラーが出たので解決方法を載せておきます。


Error:The project is using an unsupported version of the Android Gradle plug-in (0.12.2). The recommended version is 1.0.0-rc2.
<a href="fixGradleElements">Fix plugin version and re-import project</a>

Error:(16, 0) Gradle DSL method not found: 'runProguard()'
Possible causes:<ul><li>The project 'PopSomeGotSome_20141202' may be using a version of Gradle that does not contain the method.
<a href="openGradleSettings">Gradle settings</a></li><li>The build file may be missing a Gradle plugin.
<a href="apply.gradle.plugin">Apply Gradle plugin</a></li>



どうやら runProguard というものがないらしい。グーグルで調べてみると出てきました。
build.gradle 内にある runProguard を minifyEnabled に変更するとエラーが解決するとのこと。


 buildTypes {
        release {
            runProguard false ←をminifyEnabled falseに変更
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

build.gradleの場所は画像を参照してください。
wearのアプリも作っている場合は両方とも変更が必要です。
最後にSync Project with Gradle Filesをクリックするとエラーが消えました。
アップデートすると今まで動いていたものが動かなくなるというのはやめてほしいですね。




2014年11月23日日曜日

攻殻機動隊の世界はどうやって実現するのか



「攻殻機動隊」と言えば日本を代表するSF作品です。
作品の中では電脳化、義体化、人工知能、ゴーストハックなど様々な未来的技術が出てきます。
最近、その攻殻機動隊の世界を実現化していこうというプロジェクトが発足されました。
https://www.bandaivisual.co.jp/koukaku-special/realize/index.html
そのオープニングイベントみたいなものが開催されていたので、そこでの話をふまえ「攻殻機動隊の実現」についてまとめてみます。


電脳化
攻殻機動隊ではマイクロチップを使っていますが、実際にはマイクロチップの開発は相当時間がかかりそうです。
脳の動きをデジタル化するというテーマにおいては現在、脳波のセンサリングが最も進んでいますが、脳波は非常にノイズが多いので、複雑で正確なデータを取ることは今のところできていません。
一方で、脳に直接電極をつなぐことができれば、もっといろんなことができるだろうと言われています。その開発が進めばマトリックスにも出てくるような世界が実現できそうです。
ただ、その実験対象となる患者(脳に直接電極を接続する必要がある人)は非常に少なく、開発はあまり進んでいないようです。

ではどうすればいいのか。
現実的なやり方としては、体の挙動を細かくセンシングすることで脳の動きを捉えるということです。
人間は無意識に眼球が動いたり、心拍数が上下したり、貧乏ゆすりをしたりします。
そのような動きをウェアラブルなどでセンシングすることである程度脳の動きを把握することができるのです。
直接脳をハッキングしなくても「意識すること無く意思(無意識も含む)を伝える」ということであればウェアラブルデバイスでもある程度可能なのです。

義体
攻殻機動隊の中では「義体」がよくでてきます。
要はサイボーグですね。
草薙素子は脳と脊髄以外全て義体化しています。
よく考えるとすごいことですよね。
内蔵も筋肉も骨も義体というのはどんな感覚なんでしょうか。
自分が何なのか分からなくなりそうです。
逆に言えば、人間はどこまでも「拡張」、「変態」できるわけです。
常識的な「肉体」から離脱し、違うものに変化できるわけですね。
「自分の体以外のものにコネクトし、ハックする」という意味で、義体化は電脳化とも似ていると言えます。
ロボットの駆動部分を直接自身の体に接続するかしないかの違いですね。

では、どのようにして実現するのでしょうか。
直接肉体に接続する例で言えば、義手・義足のように装着するパターン、ロボットを着るように装着するパターンがあります。
サイバーダインのロボットなどは後者ですね。
一方で脳移植はもちろん、臓器移植などの「移植系」は現状かなり難しいらしいです。

他にも、例えば「他人の目を盗む」にはウェアラブルカメラとoculusがあれば実現はできます。
これを進化させれば、テレイグジスタンスでロボットに乗り移り、あたかも自分の体のように操作することができます。
この場合、人間対ロボットの関係は必ずしも1:1と限りません。
1体のロボットの目や体を複数人が共有して互いに干渉し合うということもあり得ます。
動ける人が動けるときにロボットに入り込んで作業するということも考えられます。

まとめ
人間の神経や脳に直接機械を接続するのはまだまだ先になりそうです。
ただ、ウェアラブル技術を使うことで「脳と肉体をインターネットに自然に接続する」ということはできます。
ウェアラブルと言っても、ヘッドマウントディスプレイやリストバンドタイプのものだけではなく、固さ・つかみ心地・衝撃などのフィードバックを伝えるデバイスも重要になってきます。
いくつかのデバイスがそろうことで自然な接続ができるようになるのです。
その意味で、ウェアラブルにはまだまだ可能性がありそうです。