JavascriptでLeap Motion事始め

Kenta Kowaki
Kenta Kowakiフリーランス、フロントエンドエンジニア at コウワキデザイン
Javascriptで
LeapMotion事始め
自己紹介
幸脇 健太(コウワキ ケンタ)です
フリーランス2年目になりました。
コウワキデザイン
という屋号でやっています
元Flasherなフロントエンドエンジニアです
時々サーバやバックエンド言語もさわってます
Twitter : @kuwk
Web : http://kuwk.jp
LeapMotionを使って
JavascriptとCanvasで
子供向けのコンテンツを
作ってみた話
今日のアジェンダ
コトの始まり
自分には3歳の娘と
1歳の息子がいます
前々から自分の子供に
ゲームとか作ってみたかった
でも、コントローラとかマウ
スとかキーボードまだ難しい
iPad持ってない
LeapMotion持ってる!
LeapMotionで
作ってみよう
LeapMotionとは
2012年にLeap Motion社から販売された
手元専用のモーションキャプチャ機器
キャプチャできるのは指先から肘まで
キャプチャ範囲は60センチ立方くらい
なんか楽しそう!
思ったより精度良くなかった!
• 手を握ると指をうまくキャプチャ
できなかったり
• 手のひら/手の甲が逆だったり
• キャプチャされてる指が骨折して
たり(関節の方向おかしい)
2014年にv2リリース
格段に精度良くなってる!
• v1であったような変なキャプ
チャ激減
• 以下検出可能に       
手の左右/指の種類/関節/ピンチ/グラブ
• 赤外線カメラ画像の取得
• VR対応
Actionscriptがなくなってる…
SDKも色々
Visualizerのデモ
Javascriptで
LeapMotion
LeapJS
詳しくはこちら
https://developer.leapmotion.com/javascript
https://js.leapmotion.com/leap-0.6.4.js
<script type="text/javascript"
src=“https://js.leapmotion.com/
leap-0.6.4.js”></script>
<script type="text/javascript">
function init(){
// LeapMotionClass
var controller =
new Leap.Controller({enableGestures: true});
// LeapMotion接続
controller.connect();
// LeapMotionの実行frame
controller.on('frame', function(frame) {

// 実行コード

});
}
window.addEventListener('load', init);
</script>
ちなみにLeapMotionの内部では
WebSocketサーバが起動してます
ws://localhost:6437/
詳しくはこちら
https://developer.leapmotion.com/documentation/javascript/
supplements/Leap_JSON.html
どんな値が取れるのか
主に使いそうな情報
•手
- 位置(x/y/z)
- 左右
- 手の向き
- グラブ
•指
- 位置(各関節 x/y/z)
- 種類(親指~小指)
- 曲げ伸ばし
- ピンチ
•ジェスチャー
- フリック - キータップ - 回転
あと手の他にツール(棒状のもの)の
キャプチャも可能です
※白色じゃないと認識されにくい
詳しくはこちら
https://developer.leapmotion.com/documentation/javascript/
devguide/Leap_Overview.html#motion-tracking-data
ここから作ったものの話
コンテンツ1デモ
各指の曲げ伸ばしから、
グー・チョキ・パーの判定
// LeapMotionの実行frame

controller.on('frame', function(frame) {

// 親指から小指に向かって 0 ~ 4
console.log(frame.hands[0].fingers[0].extended);

});
// extendedNumber = 伸びてる指の数
if (extendedNumber == 5) {

// パー

} else if (extendedNumber == 2 &&
_finger[1].extended && _finger[2].extended) {

// チョキ

} else if(extendedNumber == 0){

// グー

}
実際遊ばせてみた
_人人人人人_
> 不評!! <
‾Y^Y^Y^Y‾
理由
•センサーの反応場所がわからない
•子供の手だとうまく指がキャプチャされ
ない
•アンパンマンがいない
コンテンツ2デモ
遊ばせてみた
_人人人人人_
> 好評!! <
‾Y^Y^Y^Y‾
理由
•手のキャプチャ表示があるので自分の操
作がわかりやすい
•寿司 = にぎるってわかってる
•寿司が好き
1歳がやるとこんな感じ
まとめ
悩ましかった点
•基本のジェスチャーが少ない
•細かい操作が大変/UIの工夫が必要
•キャプチャ範囲の慣れが必要
•テストしてるとおかしな人間に見られる
•子供の手だとうまくキャプチャされない
良かった点
•ハード買い換えることなく、ソフトウェ
アの改善で精度が上がってる
•今後の精度向上に期待がもてる
•キャプチャされる情報が多く精度高い
•未来感ある
•作ってて楽しい
楽しいは正義
ご静聴ありがとうございました
1 of 46

Recommended

Oculus Interaction SDK でグラブまわりの設定方法 by
Oculus Interaction SDK でグラブまわりの設定方法Oculus Interaction SDK でグラブまわりの設定方法
Oculus Interaction SDK でグラブまわりの設定方法聡 大久保
178 views35 slides
グッドパッチ_会社紹介資料.pdf by
グッドパッチ_会社紹介資料.pdfグッドパッチ_会社紹介資料.pdf
グッドパッチ_会社紹介資料.pdfssuserd88f4a
372 views61 slides
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】 by
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】Unity Technologies Japan K.K.
4.6K views41 slides
ある工場の Redmine 2017 by
ある工場の Redmine 2017ある工場の Redmine 2017
ある工場の Redmine 2017Kohei Nakamura
4.6K views15 slides
MusicEngine for Unity/ADX2を使った簡単音楽同期ゲーム制作 by
MusicEngine for Unity/ADX2を使った簡単音楽同期ゲーム制作MusicEngine for Unity/ADX2を使った簡単音楽同期ゲーム制作
MusicEngine for Unity/ADX2を使った簡単音楽同期ゲーム制作Sho Iwamoto
19.9K views38 slides

More Related Content

What's hot

【Unite Tokyo 2019】HDRPコワクナイ! HDRPで目指す小規模で高品質な映像制作 by
【Unite Tokyo 2019】HDRPコワクナイ! HDRPで目指す小規模で高品質な映像制作【Unite Tokyo 2019】HDRPコワクナイ! HDRPで目指す小規模で高品質な映像制作
【Unite Tokyo 2019】HDRPコワクナイ! HDRPで目指す小規模で高品質な映像制作UnityTechnologiesJapan002
7.7K views129 slides
BIMからはじまる異世界転生 ~Unity Reflect が叶える新しい建築の世界~ by
BIMからはじまる異世界転生 ~Unity Reflect が叶える新しい建築の世界~BIMからはじまる異世界転生 ~Unity Reflect が叶える新しい建築の世界~
BIMからはじまる異世界転生 ~Unity Reflect が叶える新しい建築の世界~UnityTechnologiesJapan002
663 views40 slides
究極のゲーム用通信プロトコル “WebRTC” by
究極のゲーム用通信プロトコル “WebRTC”究極のゲーム用通信プロトコル “WebRTC”
究極のゲーム用通信プロトコル “WebRTC”Ryosuke Otsuya
9.4K views90 slides
目標の構造としてのゲーム ―ゲームデザイン分析手法「UOSモデル」の提案― by
目標の構造としてのゲーム ―ゲームデザイン分析手法「UOSモデル」の提案―目標の構造としてのゲーム ―ゲームデザイン分析手法「UOSモデル」の提案―
目標の構造としてのゲーム ―ゲームデザイン分析手法「UOSモデル」の提案―井戸 里志
14.2K views24 slides
MRTKで始めるAR開発 (HoloLens 1 and 2, ARCore, ARkit) by
MRTKで始めるAR開発 (HoloLens 1 and 2, ARCore, ARkit)MRTKで始めるAR開発 (HoloLens 1 and 2, ARCore, ARkit)
MRTKで始めるAR開発 (HoloLens 1 and 2, ARCore, ARkit)Takashi Yoshinaga
632 views127 slides
今日から始める LotusScript - Domino クラスライブラリの使い方 by
今日から始める LotusScript - Domino クラスライブラリの使い方今日から始める LotusScript - Domino クラスライブラリの使い方
今日から始める LotusScript - Domino クラスライブラリの使い方Takeshi Yoshida
5.3K views78 slides

What's hot(19)

【Unite Tokyo 2019】HDRPコワクナイ! HDRPで目指す小規模で高品質な映像制作 by UnityTechnologiesJapan002
【Unite Tokyo 2019】HDRPコワクナイ! HDRPで目指す小規模で高品質な映像制作【Unite Tokyo 2019】HDRPコワクナイ! HDRPで目指す小規模で高品質な映像制作
【Unite Tokyo 2019】HDRPコワクナイ! HDRPで目指す小規模で高品質な映像制作
BIMからはじまる異世界転生 ~Unity Reflect が叶える新しい建築の世界~ by UnityTechnologiesJapan002
BIMからはじまる異世界転生 ~Unity Reflect が叶える新しい建築の世界~BIMからはじまる異世界転生 ~Unity Reflect が叶える新しい建築の世界~
BIMからはじまる異世界転生 ~Unity Reflect が叶える新しい建築の世界~
究極のゲーム用通信プロトコル “WebRTC” by Ryosuke Otsuya
究極のゲーム用通信プロトコル “WebRTC”究極のゲーム用通信プロトコル “WebRTC”
究極のゲーム用通信プロトコル “WebRTC”
Ryosuke Otsuya9.4K views
目標の構造としてのゲーム ―ゲームデザイン分析手法「UOSモデル」の提案― by 井戸 里志
目標の構造としてのゲーム ―ゲームデザイン分析手法「UOSモデル」の提案―目標の構造としてのゲーム ―ゲームデザイン分析手法「UOSモデル」の提案―
目標の構造としてのゲーム ―ゲームデザイン分析手法「UOSモデル」の提案―
井戸 里志14.2K views
MRTKで始めるAR開発 (HoloLens 1 and 2, ARCore, ARkit) by Takashi Yoshinaga
MRTKで始めるAR開発 (HoloLens 1 and 2, ARCore, ARkit)MRTKで始めるAR開発 (HoloLens 1 and 2, ARCore, ARkit)
MRTKで始めるAR開発 (HoloLens 1 and 2, ARCore, ARkit)
Takashi Yoshinaga632 views
今日から始める LotusScript - Domino クラスライブラリの使い方 by Takeshi Yoshida
今日から始める LotusScript - Domino クラスライブラリの使い方今日から始める LotusScript - Domino クラスライブラリの使い方
今日から始める LotusScript - Domino クラスライブラリの使い方
Takeshi Yoshida5.3K views
ユーザエクスペリエンスを正しく理解する-UXとUXデザイン by Masaya Ando
ユーザエクスペリエンスを正しく理解する-UXとUXデザインユーザエクスペリエンスを正しく理解する-UXとUXデザイン
ユーザエクスペリエンスを正しく理解する-UXとUXデザイン
Masaya Ando88.7K views
UnityによるAR/VR/MR 開発体験講座 by Yuichi Ishii
UnityによるAR/VR/MR 開発体験講座UnityによるAR/VR/MR 開発体験講座
UnityによるAR/VR/MR 開発体験講座
Yuichi Ishii17.1K views
SQIP2015講演資料「チケット駆動開発の運用パターン集~問題はチケットに分割して統治せよ」 by akipii Oga
SQIP2015講演資料「チケット駆動開発の運用パターン集~問題はチケットに分割して統治せよ」SQIP2015講演資料「チケット駆動開発の運用パターン集~問題はチケットに分割して統治せよ」
SQIP2015講演資料「チケット駆動開発の運用パターン集~問題はチケットに分割して統治せよ」
akipii Oga13.7K views
今だから聞きたい 「一番新しい xRアプリの作り方」 2020年 最新版 by UnityTechnologiesJapan002
今だから聞きたい 「一番新しい xRアプリの作り方」 2020年 最新版今だから聞きたい 「一番新しい xRアプリの作り方」 2020年 最新版
今だから聞きたい 「一番新しい xRアプリの作り方」 2020年 最新版
HoloLensハンズオン:ハンドトラッキング&音声入力編 by Takashi Yoshinaga
HoloLensハンズオン:ハンドトラッキング&音声入力編HoloLensハンズオン:ハンドトラッキング&音声入力編
HoloLensハンズオン:ハンドトラッキング&音声入力編
Takashi Yoshinaga29.6K views
確実に良くするUI/UX設計 by Takayuki Fukatsu
確実に良くするUI/UX設計確実に良くするUI/UX設計
確実に良くするUI/UX設計
Takayuki Fukatsu336.3K views
Prototipação de software by Marcio Costa
Prototipação de softwarePrototipação de software
Prototipação de software
Marcio Costa1.3K views
ShareFileを徹底的にセキュアに使う方法 ~利用可能端末の限定やファイルの封じ込めなど~ by Citrix Systems Japan
ShareFileを徹底的にセキュアに使う方法 ~利用可能端末の限定やファイルの封じ込めなど~ShareFileを徹底的にセキュアに使う方法 ~利用可能端末の限定やファイルの封じ込めなど~
ShareFileを徹底的にセキュアに使う方法 ~利用可能端末の限定やファイルの封じ込めなど~
ある工場の Redmine 2021 ( Redmine of one plant 2021 ) by Kohei Nakamura
ある工場の Redmine 2021 ( Redmine of one plant 2021 )ある工場の Redmine 2021 ( Redmine of one plant 2021 )
ある工場の Redmine 2021 ( Redmine of one plant 2021 )
Kohei Nakamura3K views
Redmineを使ったヘルプデスクシステムでサポート業務を効率化 by Go Maeda
Redmineを使ったヘルプデスクシステムでサポート業務を効率化Redmineを使ったヘルプデスクシステムでサポート業務を効率化
Redmineを使ったヘルプデスクシステムでサポート業務を効率化
Go Maeda11.9K views

JavascriptでLeap Motion事始め