スキップしてメイン コンテンツに移動

投稿

ラベル(LeapMotion)が付いた投稿を表示しています

対象が増えればニッチ産業も増えるはず理論

ここ最近と言うにはちょっと古い(5月中旬から7月中旬)で気になった記事です。 写真はフライングボールから抜粋です。 これは快適! Leap Motion V2(ベータ版)で格段に良くなったSkeletal Tracking機能 試そうと思ってすっかり忘れてた・・・。 メインPC復帰後に、記念に一発やろうと思います。 実際の感想はその後に。 グーグルの3Dヴィジョン「Tango」、タブレット版も始動 近未来を構築するプログラミングの一個な気がする。 こういうのを開発したいのか?こういうのを利用して開発したいのか? 使いながらもっと考えていきたい。 実機デモに人だかり、ソニーが医療用3D HMDについて講演 際はHMDだけでは意味がなく、それを使えるようにするソフトウェアが重要だと思う。 以下2点の規模の拡大から、この市場も大きく拡大すると思う。 医療分野にかける市場規模が拡大し、エンジニア需要が増えている。 携帯系ゲーム業界で3Dプログラマーが増えたものの、この業界は頭打ちの気配が出ている。 ゲーム業界でやっていた人が、この業界に入ったときに、一気に拡大する予感を感じさせる。 仮想現実でバック・トゥ・ザ・フューチャーのホバーボードを実現した「Hoverboard VR」 思いつきそうで思いつかないアイディア。 Wiiのコントローラーがハックできれば簡単なのかな。 「触れられるテレビ」を目指し立体の形状・硬さを再現する力覚提示システム さすがNHK技研、未来感がある。 毎回思うのだが、研究所の研究発表はもっと斬新な感じにできないのかな? "Hello world"みたいなばっかな気がする。。。 サムスンがOculusと共同でモバイル端末向け新型VRヘッドセットを開発中 得意の同じものを相手よりいい品質で低価格で提供する殺法だろうか。 購入側としてはありがたい気もするが、どうせなら技術で対抗してほしい。 スマホで自由自在に操作できムービー撮影・ヘッドアップディスプレイ連携なども可能な新型ドローン「Bebop Drone」の威力がわかる公式ムービーまとめ 次から次へと出ますね、低コスト高機能化は進む一方。 キラーコンテンツは何になるんだろう? リビングを没入型ディスプレーに やってやれないことはないと思いながら、 難し...

網膜投影型ディスプレイGlyph

タイトルは、なんか名前がかっこいいなって思ったからです(笑) 含む、いろいろ気になった記事のまとめです。 2013/12~2014/1編、ちょっと2013/11も含む。 ■ アップル、3DセンサのPrimeSense買収を認める。初代Kinectの奥行き認識技術のメーカー  むむむ、キラーコンテンツの予感。  先にやられるのは悔しいが、道ができていると楽ではある。 ■ HP Desktop integrated LeapMotion‏  HP社のDesktopにもLeapMotionが入るらしい。  HWとして広まったら、次はキラーコンテンツとなるソフトウェアだろう。  何か浸透するものがでたら、NUIもあっという間に広がるかな。 ■ ヘッドホンモードになる網膜投影型ディスプレイ Glyph 来年発売、予価499ドル  立体視をさせるディスプレイといえば、OculusRift。  かと思っていたら、そういうわけでもなく、  網膜投影型ディスプレイなんてあるんですね。  この領域も今後はやっていくのかな。  (注:この題の来年は2014年です。) ■ NASA JPL、Kinect とOculus Rift を使ったロボットアームコントローラをデモ  なんか想像しやすくて、ありそうなんだけど、  実物がかっちりあるとやっぱりすごい。  動くものがあるということは、それだけでインパクトがある。 ■ 建物を丸ごと3Dスキャンしてハイクオリティな3DCGを作り出すエンジン「Thorskan」  ハイクオリティすぎる・・・。  3Dモデルだと思って見てるから、そうも見えるけど。  Oculusで見たら、現実ぶっとぶな。 ■ 3次元的に操作できる「音波浮揚」技術:東大が開発  Kinectなどで取得したデータを基に形成させれば、  ヒトの形や、腕の形などを形成させることも可能なのでは。  壊れないような強度があれば、簡単なアームにも。 ■ 水蒸気でどこでもディスプレー  もっと精度上がってこれば、  すり抜けられる壁とかもできて、  遊園地のアトラクションとかにも加えられるのでは。  どこでも、って感じはしないけど(笑) あらためて見直してみると、ほんとうにいろいろある。 いろんなところ...

なんとなくエロいは難しいかな

題と画像は少し絡みがあるようなないような感じです。 LeapMotionで3つほど。 Using the Leap Motion Hardware with Unity/Web Player 少し前にLeapMotionをUnityで使う方法が提示されていた。 LeapMotionもKinectと一緒で、HWの中にWebServer持ってますね。 そこを利用して使うことが可能とのことです。(未確認) 動画:Leap Motionの3D 彫刻アプリFreeformデモ。空中で手を動かしてモデリング LeapMotionを利用したアプリケーションも増えています。 なんか触りがぬるっとしてて、ちょっと気持ちよさそう。 ただこんなにナチュラルに操作できるのだろうか? 合わせてこんな操作覚えられるのかな? Leap Motionのジェスチャーコントロールで近未来を体験 HPからLeapMotion入りのPCが発売されています。 どのノートPCにもデフォルトで搭載されるようになったら、 誰しもが持っていることも普通になりますね。 インターネット介して、 画面上のバーチャル粘土をこねあうのも、もう目の前かもしれません。 んー、ネット越しだと、ゴーストみたいな色気がないのが残念です。。。 特にこういうなんとなくエロいみたいなのはすごく難しそう。 いろんなセンスがすごくいりそうな気がする。

LeapMotionでMVVMを勉強してみた

アーキテクチャー(でいいのか?)パターンの勉強をかねて、 LeapMotionアプリをWPFでMVVMで作ってみた。 と言っても、このURLを参考にしてなので、オリジナルではありません。 http://www.atmarkit.co.jp/ait/articles/1311/05/news020.html 勉強してみた感想です。 実はMVCと大きく変わらないように感じました。 (ここは私の力不足なのだと思います。  まだ理解しきれてないんだろうな・・・。) 意味がわかりました。 下に自分で書いてある、ViewModelからViewへの通知が胆なわけですね。(2014/04/24追記) MVCと比較して、 ビジネスロジック(でいいのか?)をどこに置くか、 それが決まっているのだと思いました。 どこに置くか決まっているということは、 保守もしやすくなるし、テストも書きやすいし。 やっぱり重要ですね。 (少しは理解できてると、自分を納得させてみる。) 少し話がそれますが、ViewModelからViewへの通知が新鮮だった。 前にLeapMotionのロジックをどこに置くか考えてみたが、 ロジック側から画面へ通知すればいいんだって思った。 単純なことなのに、なぜ気付かなかっただろう。 途中から、MVVMの感想ではなくなってしまった。。。 .NETならSignalRもあるし、これからどんどんIntaractiveなのが増えていくのでしょう。 やっぱりおもしろいアプリケーションを作りたい。

Tokyo Motion Control Network Vol.02 に参加してきました

9/26(木)に Tokyo Motion Control Network Vol.02 に参加してきました。 平日の19時からだったが、参加者は60名程度いたかと思う。 ほとんどの人が初参加という感じだった。 リピーター率が低いのがちょっと気になった。 以下アイディアソンとして思ったことをつらつら書きます。 初めてアイディアソンに参加したが、 特別な技法を利用しているというわけではなかった。 誰もがKinectもLeapMotionも知っているし、使っているメンバーだった。 そのせいかセンサーを利用したアイディアの広がり方が早いと思った。 その一方センサーに近いアイディアになりがちだった。 これは考える時間(20分とかだったかな?)に対して、 センサーで解決するというゴールに向かっているためでもあるとは思う。 技術勉強会とは異なるためか、ふわっと終わった気もした。 これがリピーターの少なさにつながっている気もした。 その他。 スタッフを含めると確認できただけでも、MicrosoftMVPが3人いた。 OculusRiftとの組み合わせしている人もいた。 やはり相性はいいと思う。 センサーは人に見えないものが検知できる。 その見える化が一つのアイディアになる。 コミュニケーションを促進させるのでなく、 あえて阻害させるというアイディアもあり、 そこにもおもしろさがあると感じた。 次回は10/31(木)だそうです。 また参加しようか、どうしようか。。。

UnityでLeapMotionを呼び出すAPIについて考える

LeapMotionをUnityで使うプログラムを書くときに、 呼び出し方や使い方はその他の入力機器とあわせる形がいいのだろうか? 例えば キーボードのスペース を使う場合は、  Input.GetButtonDownから入力を得ている。 Input.GetButtonDown ("Jump") そこで ジェスチャー が行われたか判断する場合は、 LeapMotionを使うと以下のような形になるかなと考えている。 LeapMotion.DetectGesture("Circle") 使いやすさを考えたら他の入力機器と同じようなAPIにしておくことで、 誰にもで理解できて使いやすい形になると思う。 では使いやすさではなく、 性能面や、例外のハンドリングとかはどうなのだろうか? やろうと思えばLeapMotionの中(OnFrame)でがしがし動かすこともできると思う。  どこかにベストプラクティスみたいなのがあるのかな? UnityでLeapMotion使うと、うまくDisposeできなくて固まってしまったりする。 この辺も何か対応方法あるのかな・・・。 Unity終了させるときに必ずDisposeさせる方法とかあったら教えてください。  なんか最後は全然関係ない内容になってしまった。 駄文ということで。

LeapMotion×UnityでBlockShooterを作成しました

「Unity入門」で作成したBlock Shooterを、 LeapMotionで操作できるように改造しました。 UnityでLeapMotionを操作できるようにdll等をセットします。 LeapMotionをUnityで使う方法  を参考にして下さい。 Leap用のusingを付け加えます。 using Leap; Leap用に変数を宣言しておきます。 public class Gun : MonoBehaviour { // leap用のリスナーとコントローラー private LeapListner listner; private Controller controller; StartでLeapのリスナーなどを初期化します。 void Start() { // Leapのリスナー、コントローラーの初期化とセット listner = new LeapListner(); controller = new Controller(); controller.AddListener(listner); Update内を変更します。今回は弾丸発射を簡単にするため、マウスクリックから自動連射に修正しています。 void Update() { /* 略 */ Vector3 screenPoint = Input.mousePosition; /* 略 */ } void Update() { /* 略 */ // Unityの画面に対する、Leapでの指の位置を取得する Vector3 screenPoint = GetLeapPointOnUnityScreen(); /* 略 */ } 今回の本丸となる、Leapの位置データ取得箇所を作成します。 // Leapのスクリーン上の座標を、Unitiyのスクリーン上の値に変換する private Vector3 GetLeapPointOnUnit...

C#とLeapMotionでカーソルを操作する

Leap Motion: Move Cursor を参考に、 C#とLeapMotionを使ったカーソル操作のためのコードを、 なるべく簡素に記述します。 ※VisualStudio2012を利用しています。 LeapMotion用に、dllの参照などを設定しておきます。 LeapMotionをC#で使う方法 を参照。 Consoleアプリケーションを作成します。 マウスを動かすためのWin32APIを呼び出すクラスを準備します。 using System.Runtime.InteropServices; namespace MoveCursor { class MouseCursor { [DllImport("user32.dll")] private static extern bool SetCursorPos(int x, int y); public static void MoveCursor(int x, int y) { SetCursorPos(x, y); } } } LeapMotionの動作の根幹となるクラスを作成します。 using System; using Leap; namespace MoveCursor { class LeapListnerMin : Listener { public override void OnInit(Controller cntrlr) { Console.WriteLine("Initialized"); } public override void OnConnect(Controller cntrlr) { Console.WriteLine("Connected"); } public override void OnDisconnect(Controller cntrlr) { ...

やっぱり今の時代は英語も要るよね

LeapMotionを触ってみて、 意外にとっつきにくいと思った二つの記録を残しておきます。 単純な実力不足ですが。。。 Leap Motion のC#のAPI LeapMotionのC#のAPIを探すのに時間がかかった。。。 Google検索でスパッと出てくれればいいのに。 ここ です。 最初に読むと良いところ 後、英語が苦手な人には、 LEAP MOTION JPDOCの オーバービュー を読んでからはじめると、 Leapのドキュメントも読みやすいし、 プログラミングもしやすいと思いました。 実際に自分も先にこれ読んでたらもっといろいろわかりやすかったなって思った。 例えばtoolってなんだよって思ってたら、 ツールは指より長く、より薄く、より直線です。 とのこと。 なるほど~。 って、LeapMotionのサイトを訳してくれているだけなので、 そういう意味では本家を理解できればそれでいいのだと思います。 少しずつ慣れていければ、いいものが作れそうな気がします。 ついジェスチャーとかを考えたくなるけど、 実際には必要になったときに構築すればよいかなと。 やはりその前にどんなものが必要か、 どういったアプリが使えるのかを考える必要があると、 あらためて思いました。

LeapMotionをC#で使う方法

UnityでLeapMotionが使えたので、 今度はC#でもと思ったのだが、これがなかなかはまった。 結論的には、 ” Leap Motion Developer SDK で開発できる環境を整える(Windows C# 編) ”を、 見れば大丈夫です! とは言えそこにいくつくまでにいろいろ手間取ったので、 記録を残しておきます。 ここ (LeapMotionのサイト)とか ここ (C# MVPの人)にdllを並べてみる。 (他にも参照の設定とかもしてあります。) コンパイルは問題なくOK。 ところが実行したら、TypeInitializationException発生 なんかよくわからん例外が発生し困る。。。  とりあえずInnerExceptionを確認すると、 DLL'LeapCSharp'が読み込めません、とのこと。 言われたとおり並べたんだけど。。。 ” Leap Motion Developer SDK で開発できる環境を整える(Windows C# 編) ”を、 確認したらパスを通していた。 ならってパスを設定。 (なぜx86にパスを通すのだろうか?  自分のマシンも64bitなんだけどな・・・、うまくいっちゃうし・・・。  誰か知っていたら教えてください。) 問題なく実行できました、めでたしめでたし。 こちらもまた実行する方法はまた次回。 それにしても全然使い方法を書いていないな。

LeapMotionをUnityで使う方法

UnityでLeapMotionを使用するための手順です。 この サイト を参考にさせてもらいました。 環境は以下の通りです。 Windows7SP1 LeapMotion 1.0.2+7287 Unity 4.1.5f1 以下設定手順です。 準備 LeapMotionのセットアップを完了さておいてください LeapMotionのSDKをダウンロードしておいてください。 詳細は LeapMotionのサイト を参考にしてください。 Unityでプロジェクトを新規作成します。 まず二つのdllをコピーします。 コピー対象のdllとコピー先がポイントなので間違えないようにしてください。 LeapMotionのSDK(この場合だとC:\Programs\LeapSDK\lib\UnityAssets\Plugins)にある、Leap.dll、LeapCSharp.dllを、 Unityプロジェクトのトップ(この場合だとC:\work\LeapMotion\UnitySampProject)に、     コピーします。 Pluginをコピーします。 LeapMotionのSDK(この場合だと...割愛)にある、 LeapCSharp.NET3.5.dllを UnityのAsset(この場合だとC:\work\LeapMotion\UnitySampProject\Assets\Plugin)に、 コピーします。 ※Pluginフォルダは作成しました。 Unityからも追加されていることが確認できます。 SampleScriptを作成し、using Leap(3行目)を記載しても、 問題なくコンパイルが通ることを確認します。 これでLeapMotionを使う準備は完了です。 LeapMotionを動かすプログラムを書けば、自由自在に動く、はずです。 実際にUnityでLeapMotionを動かすのはまた次回。