tks_yoshinagaの日記

KinectやLeap motion, VRやARなどの技術を使ってやったことのメモとか

ARCoreで検出した水平面にオブジェクトを落とす

1.はじめに

8月末にGoogleからAndroid用ARプラットフォームのARCoreが発表されました。
下記サイトにも書かれているようにARCoreによってマーカーを使わずに端末の位置・姿勢のトラッキングができたり、床やテーブルなどの水平面の検出ができたりします。

ARCore Overview  |  ARCore  |  Google Developers

f:id:tks_yoshinaga:20170919144234j:plain

またSDKも非常にシンプルで、提供されているサンプルを活用すれば画面をタップするだけで空間の好きな位置にオブジェクトを配置するアプリをすぐ実現できます。

Choose Your Development Environment  |  ARCore  |  Google Developers

ところが提供されているサンプルの数は1つのみのため、例えば落下したオブジェクトが床でとどまるような表現をするコンテンツを作る場合には、ある程度プログラムを書く必要ありますが情報が少ないのが現状です。(2017/9/19現在)

 という訳で今回は水平面とオブジェクトが相互作用するようなコンテンツの作り方を基本サンプルを編集する形で紹介します。

続きを読む

Windows Mixed Reality Headsetで自作コンテンツを動かす with A-Frame

1.はじめに

 前回の記事で紹介した、Unityを用いたWindows Mixed Reality Headset (以下WinMR)対応コンテンツの作り方に続き、今回はウェブブラウザ上でVRを実現できるWebVR対応ライブラリのA-Frameとの連携についてご紹介。既存サンプルを編集しWinMRで利用するまでの手順をまとめます。

続きを読む

HoloKitとGoogleTangoで手軽に光学シースルーAR

手軽に光学シースルーARが実現できるHoloKitを入手したのでレポート。
光学シースルーARというのはカメラで撮影した風景映像にCGを重ねるのではなく、HoloLensのように目で見ている風景の上にCGのみが重畳される方式のARです。
それをGoogleTangoやARKitに対応したスマートフォンと、段ボール製のヘッドセットで実現できてしまうのがHoloKitです。

1.体験

外観は大きめのハコスコといったところ。上部に挿入したスマートフォンの画面に表示された3Dコンテンツが鏡やハーフミラーで反射してユーザーの目に到達する仕組みになっています。

f:id:tks_yoshinaga:20170817172126j:plain

さらにTangoやARKitは端末の位置や向きをリアルタイムに推定することができるのでHoloKitを装着したまま動き回ることで色々な位置・角度でCGを観察することができます(動画参照)。

続きを読む

筋電とHoloLensを組み合わせたARシューティング

数年前に手の位置と筋電を使ったARシューティングシステムを開発しました。
これは、Leap Motionで取得した指の先端位置を画面上の照準の位置に反映させ、筋電センサ(EMG:Electromyography)で手をギュッと握ったときを検出して弾を撃ち、それをARで表示するというシステムです。

続きを読む

HoloLens: 開発ハンズオン資料一覧

これまでにARコンテンツ作成勉強会で開催したHoloLensハンズオンの資料をまとめました。HoloLensを用いた開発のチュートリアルとしてお役立てください。
 

1. GazeとTap&Holdを用いたオブジェクトの移動

HoloToolkitのInputManagerを使用し、カーソルが当たっているオブジェクトを指でつまんで動かすまでをノンプログラミングで実現する方法について解説しています。

HoloLensハンズオン:Gaze,Tap And Hold編 


2. AirTapを使って目の前にオブジェクトを生成させる

AirTapを認識して利用者の手前にオブジェクトを生成し、下に落とします。SpatialMapping(空間認識)も行っているため、落下したオブジェクトは床やテーブルに衝突して止まります。

HoloLensハンズオン:AirTap & SpatialMapping編

続きを読む

Google TangoでMarker Detectionを使おう

1.はじめに

 GoogleのTangoという技術を搭載した端末が発売されたおかげで、HoloLensのようなマーカーの事前準備が不要なARを手軽に実現できるようになりました。ところがそれに慣れてくると、「CGの配置を自由に行いたい」「毎回同じ位置にCGを表示させたい」という欲も出てきます。前者についてはDepthデータと画面のタップの組み合わせを、後者についてはAreaLearningの機能を用いれば実現できますが、開発・利用ともに手間や工夫を必要とします。そこで今回はこれらをもっと手軽に実現しようということでTangoSDKで提供されているMarker Detection機能をご紹介します。
 この機能では正方形マーカーとCGの位置が対応づけられているため、例えば以下の動画のようにマーカーを実際に手で動かしてCGを移動できます。また、マーカーを置きっぱなしにすれば毎回同じ位置にCGを出現させることも可能です。さらに、マーカーが検出に失敗したときはTangoのトラッキング機能が使えるため、ARコンテンツの体験を継続することができます。

続きを読む