20151124.会津大学 jins meme 概要 & unity plugin作成
TRANSCRIPT
OpenAppLab センサーコース
JINS MEME 概要
一般社団法人T.M.C.N / 株式会社システムフレンド
前本 知志
・システムフレンドという会社でセンサー&デバイス部長やってます!KINECT等のセンサーを使ったアプリ(イベント用コンテンツ、医療ヘルスケア系)スマフォのARアプリ(最近はやりのぬり絵してキャラに取り込めるやつとか)を作っています。http://www.systemfriend.co.jp/kinect_nui
・エアー書道では何度かテレビ出演をしています2013年1月6日 東京MX TV 「Tokyo, Boy」 新年スペシャル2013年8月26日 日本テレビ 「NEWS ZERO」 などなど。
・TMCN (Tokyo MotionControl Network) Co-founder(理事)https://www.facebook.com/TokyoMotioncontrolNetwork
自己紹介
こういうのを作ってます。
https://youtu.be/ZSXwhj8HqkE
https://youtu.be/YxCGnmfChKk
書籍執筆
https://www.shoeisha.co.jp/book/detail/9784798139630
Intel RealSense SDKセンサープログラミング2015/5/12発売
中村薫, 前本知志, 斎藤裕佑,
谷口直嗣, 初音玲(Tokyo MotionControl Network)
このセッションのながれ
1• JINS MEMEとは
2• JINS MEMEでの開発
JINS MEMEとは
JINS MEME
• 今の疲れが見える。気分が見える。世界初、内なる自分を知ることができるウェアラブルメガネ
• 頭部の動きをセンシング(加速度センサー、ジャイロセンサー)
• 目の動きをセンシング(3点式眼電位センサー)
3点式眼電位センサー
人間の眼球は電荷を帯びており、その電位差を眼電位と言います。
INS MEME に搭載されている三点式眼電位センサーは、鼻パッドと眉間部分から検出される眼電位によって、眼球運動にともなう目の周りの電位差を検出します。
それにより、8 方向の視線移動とまばたきをリアルタイムに測定できます。
JINS MEMEでの開発
JINS MEME アプリ開発
https://developers.jins.com/ja/resource/docs/startup_guide/ios/
https://developers.jins.com/ja/resource/docs/datalist/ios/
公式SDKが無償で公開されています。
ネイティブで作るのは考えただけで面倒なのでMEMEの一般発売前日に思い立って作りました。
Unity Pluginを作りました
https://goo.gl/IU2ugV
Unity Plugin
ネイティブ
SDK
ネイティブ
Plugin(ObjectiveC)
ネイティブ
Plugin(C#)
アプリケーション
コード(C#)
必須 オプション
Unity Plugin ネイティブ側- (void) memeRealTimeModeDataReceived: (MEMERealTimeData *) data {
self.latestRealTimeData = data;}
char* MEMEGetSensorValues() {NSString *value = [NSStringstringWithFormat:@"%f,%f,%f,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",
instance.latestRealTimeData.pitch,instance.latestRealTimeData.yaw,instance.latestRealTimeData.roll,
:
instance.latestRealTimeData.powerLeft];
return MakeStringCopy([value UTF8String]);}
ネイティブSDKからのコールバック
データを文字列に変換してUnityへ返す
Unity Plugin C#側[DllImport("__Internal")]private static extern string MEMEGetSensorValues();
public static string GetSensorValues() {
if (Application.platform == RuntimePlatform.IPhonePlayer) {
var values = MEMEGetSensorValues();if (string.IsNullOrEmpty(values)){
return string.Empty;}return values;
}return string.Empty;
}
ネイティブプラグイン関数の宣言
ネイティブプラグイン関数のラッパー
iOS実機実行時のみネイティブ呼び出し
応用するとAndroidの時の処理やPCで実行するときなどのケースを作れる。
スマホ系センサーと Unity
• Unityに対応させると動きを3Dで可視化したり、印象的なビジュアルを付けやすくなる
• iOSとAndroidの違いを(かなり)吸収できる
• Unityとは文字列でのデータのやりとりになるのでエレガントでない、ちょっとパフォーマンスも落ちる。
とはいえ、Unityで作れるメリットは大きい!
まとめ
• JINS MEMEやMoffBandなどスマホ系センサーのSDKをUnityに対応すると楽しいことになります。
• Unity非対応センサーのUnity対応にぜひトライしてみてください。