2018年11月25日日曜日

 LeapMotionは手のジャスチャー認識などができるデバイスです。仕組みとしては赤外線LEDと赤外線カメラを用いての位置を測定しています。

 そのためにカメラとしても使用することができます。この記事ではLeap Motionで映像をとりそれをリアルタイムでUE4で描画するといったことをしたい思います。パススルーという感じです。

最終的にはOculusでそれを見たいのですが、PCが不調で今回はお預けで・・・

バージョン
  • UE4.9.0
  • Leap Motion ソフトウェアバージョン 2.3.1(設定でイメージを許可するにチェック) 
  • Leap Motion公式のUEプラグイン


①適当にプロジェクトを作る。

②プラグインを確認する。UE4.9からはデフォルトでLeap Motionのプラグインが有効になっています。Enabledにチェックがあることを確認する。
メニューからEdit->Plugins->Input Devices

③Actorを継承したブループリントを作成する。
+Add Componentで「Leap MotionImage」を追加する。
コンパイルをして保存する。

④作成したアクターを適当にMapに配置してください。


⑤Play!それだけ!Leap Motionに映っている画像が表示されると思います。



これだとMRになってませんが・・・目指すはこのようなものです。 動画の環境はC++/OpenGLだそうです。Leap Motionなのにカラーなのは"Prototype Leap color sensor"を使っているからだそうです。

以下はLeap公式のアプリ 「Image Hands」って機能を使ってるけど、これは今のところUnityのプラグインのみにある。
https://developer.leapmotion.com/gallery/image-hands-500-blocks

UE4で鏡を作る

UE4で鏡のようなものを作ってみた。Content Examplesにも含まれているが、説明がないので書いてみました。カメラで撮った映像を映すマテリアルを作るようです。

結果。こんな感じにリアルタイムに反映されます。l




作り方概要
  1. レンダーターゲットを置く(テクスチャ)
  2. 撮影用のカメラを置き、テクスチャターゲット設定(シーンキャプチャ)
  3. テクスチャからマテリアルを作る
  4. マテリアルを張る 
作り方詳細

1. レンダーターゲットを置く(テクスチャ)

 コンテンツブラウザで右クリックしてRender Targetを追加する。名前を「NewTextureRenderTarget2D」とする。

2.撮影用のカメラを置き、テクスチャターゲット設定(シーンキャプチャ)

 ModesからScene Capture 2DをMapにドラックアンドドロップ。


 Scene Capture 2Dを選択した状態で、詳細画面のTexture Sceneで先ほど作った「NewTextureRenderTarget2D」テクスチャを設定する。


3.テクスチャからマテリアルを作る

 コンテンツブラウザで右クリックしてマテリアルを追加して、ダブルクリックしてマテリアルエディターを開く。
 何もないところで右クリックして「Sample Texture」を作る。選択して詳細のTextureで「NewTextureRenderTarget2D」を検索して選択する。画像の通り白い丸(謎)とEmissive Color(謎)を接続する。

4.マテリアルを張る
作ったマテリアルを適当なActorに張る。今回はCubeに張ってみた。解像度がもっとほしい場合は「NewTextureRenderTarget2D」をダブルクリックしてSizeX,Yを大きくする。



Content Examplesの以下に該当する箇所です。
https://docs.unrealengine.com/latest/JPN/Resources/ContentExamples/Reflections/index.html

2016年1月12日火曜日

仮想空間のオブジェクトに干渉するUnity+Perception Neuron


Perception Neuronにコリジョンつける Unity5.3

Perception Neuronを使えば、Unityの中に入った感じになれます。そしてUnity上のオブジェクトに干渉するにはCollinderとRigidbodyが必要です。そこでPerception NeuronのUnityアセットを使ってCollinderとRigidbodyを設定する(当たり判定の追加)。(ちなみにNeuronなくてもできます。自分も持ってません)以下の動画が最終的にできるものです。

左:Axis Neuron --データ-->> 右:Unity

 Axis NeuronがサーバーになっていてUnityでアクセスしてデータを取得する感じです。(実装は知らない)動画は初めから入っているデータ(DaiJumpAround)を再生しただけです。リアルタイムにも同じことができます。

事前準備

 事前に以下3点を行ってください。

Axis Neuronのネットワーク設定

  1. Axis Neuronの起動
  2. File->Setting->Broadcasting
  3. TCPを選択
  4. BVHのみにチェック port 7001
  5. OKをクリック

UnityとPerception Neuronの連携

解凍に次ぐ解凍
  1. unity_integration_0.2.4.zipを解凍
  2. さらにその中のPerceptionNeuronUnityIntegration_0.2.4.zipを解凍

Unityアセットの追加
  1. New Projectを作成
  2. Asset -> Import Packeage -> Custom Package
  3. 解凍したUnity Integrationの中のLeapMotion-CoreAssets-3.0.0.unitypackageを選択
  4. Import をクリック
キャラクターの設定①

  1. Edit -> Project Settings -> Tags and Layers
  2. Layersの項目を開き、User LayerにBodyを入力する。(User Layerはいくつもあるのでその中の空いている領域ならどこでも可)
キャラクターの設定②
  1. Edit -> Project Settings -> Physics
  2. あたり判定のマトリックスがある。そこのBody/Bodyのチェックを外す。
キャラクターをシーンに追加
Assets -> Neuron -> PrefabsからNeuronRobotをSceneにドラックアンドドロップして配置する。

ひとまず動作確認
  1. Axis Neuronを起動
  2. Woking Directoryの中の適当なファイルをダブルクリック(ロードに少し時間がかかる)
  3. 再生ボタンで再生する(ループを有効)
  4. Unityの再生ボタンでゲームを開始する
  5. NeuronRobotが動く

NeuronRoboにあたり判定を追加

まずUnityのメニューバーからNeuro -> SkeletonToolsをクリックする。

HierarcyもしくはシーンのNeuronRobotを選択するとSkeletonToolsにボタンが表示される。SkeletonToolsタブの中にあるAdd CollidersAdd Rigidbodiesをクリックする。


あたり判定が追加されたか確認する。適当にCollinderとRigidbodyを設定したCubeを配置して動かしてみた。それが一番上の動画。

 参考


2015年12月15日火曜日

Oculus Audio SDK Plugins V1.0.1をUnityで使ってみた。

今日Betaから正式版になったのでどのようなものか体験してみた。最終的には2つのボールから2種類の音が流れ、それが立体的に聞こえる気がするサンプルを動かすことができる。Oculusは使用しない・・・



パッケージのインストール

1.Oculus Audio SDK Plugins V1.0.1をダウンロード、解凍する。
2.Unityのプロジェクトを作成する。
3.パッケージのインポート Assets > Import Package > Custom Package
4.ダウンロードしたOculusNativeSpatializer.unitypackageを選択する
(audiosdk_1.0.1\AudioSDK\Plugins\Unity\配下)

設定の変更

1. Edit > Project Settings > Audio
2.AudioManagerのInspectorを変更する
 DSP Buffer SizeをBest latency
 Spatializer PluginをOculusSpatializer

実行

1.ProjectのAssets > OSPNative > scenes > RedBallGreenBallを開き、実行する
2.おもむろにヘッドホンを装着する
3.WASDもしくはカーソルで移動。マウスで視点を変更

参考

Oculus公式:Requirements and Setup

環境

Window 10
Unity 5.3 64bit Personal

2015年12月14日月曜日

Leap Motion コンテストのアプリを試してみる 未来のVRオフィス

Leap Motion公式でアプリコンテストを行っている。
Leap Motion 3D JAM


結構いろいろ試しているがOculusやUnityの相性や自分の英語力がないせいで、動かないアプリが多い・・・

その中でシンプルだけど未来を感じたアプリを紹介します。タイトルにもあるように未来のオフィスを感じさせる作品です。実際にDLして動かすことができます。

Virtual Real Meeting



環境:Leap Motion(2.3.1)、Oculus(SDK 0.8)
Leap MotionはOculusに装着してください!

ジェスチャーによって機能の選択、拡大縮小が可能です。また絵を描くことをできます。アプリ上で動画を作成するとこのアプリのチュートリアルを見ることができます。



類似アプリ

以下の動画はMR作品です(現実世界とVRの組み合わせ)
こちらの作品も未来のオフィスを感じさせるものになっています。
※3D Jamの作品ではありません。

AR Screen hackathon project



Unity5.3 VRSamples OculusやGear VRなしで遊ぶ、デバッグする

デバッグのたびにOculusを被るのは手間なのでマウスで視点移動をできるようにしたいと思いました。(振り向きには未対応)

Shooting180を使って説明します。
前回はVR Samplesをインポートして遊ぶところまで説明しました。
VR Samplesで遊ぶ

それでは視点をマウスで移動させるようにしていきます。ベストな方法ではありません。MAZEがプレイできなくなります><。もっといい方法があれば教えてください。

まずShooting180のシーンを開きます。そしてAssetでStanderd PackageのCharactersをインポートします。このパッケージのMouseLock.csを使用します。


現状ではHMDが接続されていない等のエラーが出てしまいます。そこで以下を編集します。
Project > Assets > VRStanderdAssets > Script > VRDeviseManagerをエディタで開きます。
画像の55行目、62行目をコメントアウトします。


次に先ほどと同じフォルダにある以下を編集します。
Project > Assets > VRStanderdAssets > Script > VREyeRaycasterを開きます。

usingに選択されている行を追加する。
using UnityStandardAssets.Characters.FirstPerson;


フィールドにMouseLookとGameObjectを作成する。
Startメソッドを新規に作成する。
        [SerializeField] private MouseLook m_MouseLook;
        GameObject point_cube;
        private void Start()
        {
            m_MouseLook.Init(transform, m_Camera.transform);
            point_cube = GameObject.Find("Cube");
        }

EyeRayCastメソッドの最終行に一行追加する。
m_MouseLook.LookRotation(m_Camera.transform, point_cube.transform);

先ほど使ったpoint_cubeを追加します。名前はCubeのままです。位置は下に記載

CubeにMainCameraをドラック&ドロップして親子関係にする。



2015年12月10日木曜日

Unity 5.3 VR Sampleをインストール、試してみる

Unityの5.3がリリースされた。さらにVR SamplesというAssetを作ってくれたそうなので遊んでみた。

結論:

楽しかった。

状況:
初めてUnityでOculus使いました。環境は後述。

手順:

Unity5.3インストールする

新規プロジェクト作成

メニューバーのWinodow > Asset Store

Asset StoreでVR Samplesと検索する


ダウンロードしてインポートする。


以下にいくつかのサンプルシーンがある。今回はShooter180で遊んでみた。
VRSampleScenes > Scenes > Shooter180


シーンのShooter180を開く。画面中央上部の再生ボタンを押す。

プレイ開始。「OK, I got it」を見てマウスを長押し。あとは
カーソルををセンターにあわせてクリック。カーソルををセンターにあわせてクリック。 

ちょっと改造したくなってくる!

環境
Unity 5.3 64bit Personal
Oculus Driver SDK 0.8.0.0

Nvidia Driver 359.06
Oculus Utilityが要求する最低のバージョン358.70
358.50では動かず

GTX960
Windows10 64bit

サンプルのより詳しい解説(英文)
http://unity3d.com/jp/learn/tutorials/topics/virtual-reality/vr-overview?playlist=22946