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を配置して動かしてみた。それが一番上の動画。

 参考