奥行きセンサー

体験型インスタレーションなどではカメラを用いて環境や鑑賞者をデータとして取り込み、それを表現の素材として活用するケースがよくあります。(私も過去にはDVカメラやWebカメラを使用していたものです..。)そうした中、2010年にMicrosoftがリリースしたKinectというゲーム用3Dセンサーの登場は決定的でした。奥行きが手軽にセンシングできるようになったからです。

今回はKinectではなく、Kinectと近しい性能を持つRealSenseという3DカメラをUnrealEngineで使用する方法を紹介したいと思います。奥行きを取得することで、環境やユーザーの身体をトリガーとしたインタラクションを実現可能となるはずです。

RealSenseの入手

RealSenseはIntelが販売をしているセンサーで、現時点でD415、D435、D435iというモデルがあります。それぞれ機能差がありますので、比較記事などを参考にして購入するのが良いと思います。この記事ではD435を使用します。Amazonにて3万円代で購入できるようです。

基本的な設定方法に関しては、こちらのページに詳しく書いてあります。私もこのページの説明に従ってセットアップをしました。この解説からポイントだけをダイジェストで紹介していきます。
UnrealEngine4 Wrapper for RealSense SDK 2.0

Visual Studioのインストール

プラグインのビルドのためにC++の開発環境としてVisual Studioのインストールが必要になります。方法は公式サイトにて説明がありますのでそちらを参照してインストールを完了させてください。

Unreal Engine 用に Visual Studio をセットアップする

RealSense SDKのインストール

まず下記ページからOSに合わせてSDKをダウンロードしてインストールします。私の環境ではWindows10用の赤い矢印のファイルをダウンロードしました。

Intel® RealSense™ SDK 2.0

インストールが完了すると「realsense-viewer.exe」というツールがあると思いますので、そちらを試しに起動してみてください。RealSenseが取得している映像や奥行きを確認できるはずです。確認が済んだらアプリは終了しておきましょう。これでデバイス関連のセットアップは完了です。

UnrealEngineファイルを入手

次にプラグインファイルやサンプルファイルを入手します。下記のページにアクセスし、Githubアカウントをお持ちの方はクローン、そうではない場合はzipファイルをダウンロードします。

https://github.com/IntelRealSense/librealsense

入手したフォルダの中の「wrappers」内に「unrealengine4」というフォルダがあります。これがUE4用のフォルダです。中にはプロジェクトファイルやプラグインのソースなどが入っていますので、必要に応じて任意の場所に複製して使用しましょう。

dllファイルのコピー

最初にダウンロードしておいたSDKフォルダの「bin/x64」内にある、「realsense2.dll」をUE4のプロジェクトフォルダ内にある「Plugins」にコピーします。これがないと後述するコンパイルが上手くいかないので、必ずコピーをしておきます。

UnrealEngineファイルのオープン

これでUnrealEngineのファイルを開く準備が整いましたので、「unrealengine4」内の「RealSenseUE.uproject」をオープンします。おそらくUnrealEngineのバージョンを聞かれますので任意のバージョンを設定してください。

その後、下記のようなメッセージが出て、プラグインのビルドを求められますのでOKを押しましょう。ビルドはしばらく時間がかかりますが、問題がなければファイルのオープンが完了するはずですので、TestLevelを開いてプレイし動作を確認してみてください。RealSenseからの映像が立方体にテクスチャーとして表示されたと思います。

RealSenseのデータ活用

RealSenseからどんなデータを取得するのかという設定は、TestLevelに配置されている「BP_RealSenseInspector」というアクターの詳細パネルで変更可能です。設定項目の詳細は下記ページに解説があるので参照してみてください。

UnrealEngine4 Wrapper for RealSense SDK 2.0

詳細パネルの中で「PCL」という項目があります。これはポイントクラウドの設定となり、ONにすると奥行き情報を3Dメッシュとしてレンダリングすることが可能です。

  1. ポイントクラウドの表示
  2. ポイントクラウドの更新頻度(小さい数値ほど頻度が高くなります)

設定次第で様々な活用ができると思いますので、ぜひ色々と試してみてください。まずはこれでRealSense導入の記事を終わります。

メニュー