Tutti Lab

元シリコンバレー在住のおっさん技術者、モバイルVRアプリ開発に挑戦中

iPhoneでTensorflow Liteを試してみる

先日モバイル向けのTensorflowである、Tensorflow Liteがリリースされました。 Tensorflow Liteは、フル機能のTensorflowと異なり、iOS/Androidデバイスにて、学習済みのモデルを高速・高性能で動作させるための仕組みであり、学習や、任意のモデルの構築(M…

Zap Boxを試してみた

Kickstarterで話題になった「紙」によるモバイルMRデバイス「Zap Box」が来ました!ポジショントラッキングのためのマーカも、ハンドトラッキングのためのスティックもすべて紙でできています。この円形のマーカを部屋のあちこちに設置することで、モバイル…

ARCoreでポジショントラッキング

過去、Vuforia、Kudan、ARKitにてモバイルVR向けのポジショントラッキングを実現する方法を書いてきました。 今回は、先日Googleより発表されたARCoreを利用したポジショントラッキングを実現します。 ARCoreのインストール ARCoreを利用するためには、以下…

Windows Mixed Reality向けヘッドセットが来ました

こちらで予約受付がされていた(現状品切れ)Acer製のWindows Mixed Realityヘッドセットが、本日届きましたので、さっそく試してみました。 セットアップ ハードウェアのセットアップは非常にシンプルです。他のコンソール型のVRヘッドセットのようなたくさ…

MFT2017に出展したVRコンテンツ

今年もMaker Faire TokyoにVRコンテンツを出展しました。www.youtube.com へなちょこCooking Oculus Touchを活用したVR料理ゲーム(?)です。 食材をナイフでカットし、焼き色を付けて、皿に盛りつけます。 盛り付けが完成すると、AIがその料理に名前をつけ…

ラズパイZero WでMovidius NCSを動かす

前回は、苦戦しながらもラズパイ3にUbuntuをインストールし、Movidiusを動かしました。 今回は、ラズパイ3ではなく、より安価・小型(でも非力)なラズパイZero Wで、Movidiusを動かしてみます。なお、ラズパイZero Wはラズパイ2・3とARMアーキテクチャ…

ラズパイにUbuntu 16.04 LTSをインストールし、Movidius NCSを試す

話題のMovidius NCSを入手しました。非常に安価で、かつUSBポートに差すだけで、Deep Learningによる認識処理を高速に実行できる、ということで、 ラズパイにMovidius NCSを接続すると色々面白いことができそう。ラズパイでMovidius NCSについては、以下に手…

ARKitを利用してGoogle Cardboardでポジショントラッキング

過去、モバイル向けARエンジンであるVuforia・Kudanを利用したモバイルVRでのポジショントラッキングに挑戦してきました。 今回は、先のWWDCで発表されたAppleのARエンジンであるARKitを利用したポジショントラッキングに挑戦してみます。youtu.be UnityでAR…

Unity5.6.1f1でAndroidManifest-main.xml merging error

Unityを5.6.1f1にアップデートしたら、開発中のGearVR用のアプリが「AndroidManifest-main.xml merging error」でビルド不能に・・ AndroidManifestを書き換えよ、とのことですが、何のことやら・・こちらに解決方法がありました。 C:\Program Files\Unity\E…

Enabling or adding a Renderer during rendering

遅まきながらUnity5.6へアップデートしたのですが、Unity5.5で動作していたプログラムが動かなくなりました。 gameObject.SetActive()にて、"Enabling or adding a Renderer during rendering"というエラーが発生している模様。 原因は、gameObject.SetActiv…

陰影表示の際のOnBecameVisibleとOnBecameInvisibleについて

現在開発中のアプリで、OnBecameVisible(), OnBecameInvisible()にて、オブジェクトがカメラに映り込んでいるかどうかを判定し・・、という処理を作っていたのですが、どうにも思い通りに動かない。 明らかにカメラからオブジェクトが外れているにもかかわら…

KUDAN SDKを使って、Gear VRでどこでもドア(2)

前回は、Gear VRで「どこでもドアに近づく」体験を実現すべく、まずはマーカレスARが可能なKUDANをインストールしました。 今回は、KUDAN SDKを利用して、ポジショントラッキング機能を実装し、どこでもドアに近づいてみます。www.youtube.com Kudan Camera …

KUDAN SDKを使って、Gear VRでどこでもドア(1)

前回は、Unity Native VRでどこでもドア(ポータル)を実装しました。前回の予想どおり、前回開発したものをそのままGear VR向けにビルドしたところ、問題なく動作しました。 ただし、Gear VRにはポジショントラッキングがないため、どこでもドアに近づくこ…

どこでもドア(ポータル)をUnity NativeのVRで実現してみる

VRでどこでもドア体験、ぜひやってみたい!と思うのですが、関東在住ではないので、気軽に行けそうにありません。 www.doraeiga-vr.comそこで、Oculus Rift向けに作ってみようと思ったのですが、RenderTextureをごにょごにょして・・と色々考えたものの、ど…

シーン内GameObjectの初期化の順序などについて

シーン内GameObjectの初期化の順序について、私はごく最近まで「シーン内のGameObjectは入れ子構造の親から順に初期化、子はシーンの上にあるものから順に初期化」される、と勘違いしていました。 +GameObject1 | | | +---GameObject2 | +---GameObject3なら…

VR広告SDK「Immersv」を組み込んでみました

モバイルVRアプリ開発において「マネタイズ」は大きな課題です。一般的にモバイル向けアプリ(特に個人開発者)のマネタイズ手段は広告であり、各種提供されている広告SDKをアプリに組み込むことで、アプリ内で広告を表示し、実績に応じて広告収入を得る、と…

getterのケアレスミスでUnityクラッシュ

以下のコードですが、 private int _curNum; public int curNum { get { return curNum; } set { _curNum = value; } } 正しくは、「return _curNum;」としなければなりません。 なお、上記の間違いコードを実行すると、Unityがクラッシュします。 スタック…

Quadで円形プログレス

uGUIのImageは、fillAmountを使って簡単に円形のプログレスができるのですが、SpriteやQuadにはfillAmountに相当する機能がないようです。 こちらやこちらに、Quadを使った円形プログレスの実現方法があるのですが、予め0→360度でα値を1→0とした画像を…

Oculus Touchをつかってみる

Oculus Touchが出荷され、約一月が経ちました。Oculus StoreにはOculus Touch対応コンテンツが多数並び、Oculus Touchの凄さを体験できるわけですが、一方で開発向きとなるとまだ情報が足りない状況のようです。 今回は、Oculus Touchの練習用に作成したコン…

VR Trip around the world

私が開発したVRゲーム「VR Trip around the world」が、幸運にもVRゲームコンテストMSI VR JAMのファイナリストに残りました。プレーヤーは、指定された場所で写真を撮影すべく広大なVRの世界を飛び回ります。VR世界の移動、となると最も懸念の課題が「VR酔…

Vuforia for Unityを使って(擬似)ハンドトラッキング

前回、Viforia for Unityの機能を活用し、Google Cardboardでポジショントラッキングを実現する方法について記載しました。同様に、Vuforia for Unityを使うことで(擬似)ハンドトラッキングも可能です。 Vuforiaでは直接「手」を認識することはできません…

UNIBOOK7で、ThetaSによる360度立体視映像配信について書かせていただきました

知人に紹介いただいたことがきっかけで、UNIBOOK7の「第8章 ThetaSを使った360度立体視映像配信」を書かせていただきました。 半年ほど前、ThetaSを2台使った360度立体視の撮影・配信についてブログにかきましたが、その当時は、私の知識不足&当時作…

Oculus Touch + Daydream View

Oculus TouchとDaydream View、それにPixelが一気に届きました。週末はいじり倒します!

Vuforiaの認識精度を上げるには

はじめに 前回、Vuforia for UnityのExtended Tracking機能を利用してGoogle Cardboardでポジショントラッキングということで記事を書いたところ、ブログ始めて以来の反響、非常に驚きました。モバイルVRでもポジショントラッキングをやりたい、というニーズ…

Vuforia for UnityのExtended Tracking機能を利用してGoogle Cardboardでポジショントラッキング

はじめに Google CardboardやGear VRなど、スマホを利用したいわゆる「モバイルVR」は、Oculus Rift/HTC Vive等と比較し、値段が安くお手軽にVR体験を楽しむことができます。一方で、Oculus Rift/HTC Viveには搭載されているハンドデバイス(Oculus RiftのOc…

Daydream technical previewを使ってみる

はじめに 先月注文したPixelとDaydream View、ようやく発送されました。ただ諸事情により手元に届くのは、あともう二週間後になりそうです。 今回は、実機入手後すぐに開発にとりかかるべく、Unity Daydream technical previewの導入を試してみたいと思いま…

Google VR SDK for Unityをより詳細に見てみる

前回は、Google VR SDK for Unityをインストールし、付属のDemo SceneをとりあえずAndroid端末上で実行してみました。特段なにもはまることなく、スムーズに実行まですすめることができました。 一方で、Demo Scene内のオブジェクトを見てみると、Google Car…

Google VR SDK for Unityを使ってみる

Googleの10月4日のイベントで、最新のVRヘッドセットDaydream Viewが発表されました。軽くて装着感もよさそうだし、$79という低価格は非常に魅力的です!私も早速手に入れて色々開発してみたいところなのですが、当面日本での発売は予定されていないとのこと…

Unityで3DカメラIntel RealSenseを使ってみる

これまで、ThetaSやスマホを2台使いすることで360度立体視映像を撮影するアプリケーションを作成してきました。これら端末を2台使いすることで左右視差のある映像を録画し、背景部分を除去して背景とCGを重畳することで、かんたんに360度立体視コン…

プリレンダリングの360度立体視CGとカメラ入力映像を重畳し、エンコードする

前回は、Maker Faire Tokyoに出展したVR撮影システムについて、360度立体視CGのプリレンダリングのやり方について書きました。 今回は、その360度立体視CGと、カメラ(魚眼レンズを付けたiPhone2台)入力画像を重畳し、mp4動画ファイルとしてエンコー…