じゅころぐAR

ARのブログ

Looking Glass Portraitに画像や3Dモデルを表示する方法まとめ

少し前ですが、Looking Glass Portraitが届きました。
表示方法をいろいろ試してみたので、基本的な使い方などまとめておきます。

開封の儀

いい感じの大きさのいい感じの箱です。

f:id:jyuko49:20210524203353j:plain

開けるとキャリングケースに入ったLooking Glass Portraitが出てきます。

f:id:jyuko49:20210524203421j:plain

f:id:jyuko49:20210524211518j:plain

本体はB6版の単行本くらいの大きさ。まさにフォトフレームみたいなサイズ感です。
PCとの接続に必要なUSB-CケーブルとHDMIケーブルも付属しています。

f:id:jyuko49:20210524212746j:plain

セットアップ

Looking Glass Portraitに画像を転送するには、HoloPlay ServiceとHoloPlay Studioをダウンロードする必要があります。

こちらのページからOSに合うインストーラをダウンロードします。

lookingglassfactory.com

HoloPlay Serviceは、PCとLooking Glassを接続するためのソフトウェアですね。
起動した状態でPCとLooking Glassをケーブルでつなぐと認識されます。

f:id:jyuko49:20210524233658p:plain

接続の際はUSBケーブルだけでなくHDMIもつながっていないと認識されないようです。 上手く認識されないときは、両方のケーブルがしっかりと挿さっているか確認して、Looking Glassの電源をON/OFFするとよさそうです。

続いて、HoloPlay Studioを起動してみます。こちらはPCと接続したLooking Glassに画像を転送するためのデスクトップアプリのようです。

f:id:jyuko49:20210524234043p:plain

[ADD HOLOGRAM]で画像をHoloPlay Studioに追加して、[SYNC PLAYLIST]でLooking Glassに同期ができます。
サンプル画像をダウンロードできるURLがあるので、まずはそちらをDLして試してみるとよいと思います。

Looking Glass Portraitでの表示方法

早速、Looking Glass Portraitでコンテンツを表示してみます。
調べてみると様々なツールが提供されているのですが、表示方法としては大きく2つのパターンに分けられそうです。

  1. Holoplay Studioを使って画像や動画を転送し、スタンドアロンで表示する
  2. PCと接続した状態でLooking Glassに映像を映す

Looking Glass Portraitの特徴を活かせそうなのはスタンドアロンで表示するパターンで、こちらを先に紹介します。
PCを接続するパターンは今までのLooking Glassと同じような使い方と思われ、Unity、Blender、HoloPlay.jsを試してみました。

HoloPlay Studioで画像を転送するパターン

iPhoneでポートレート画像を撮影する

iPhoneでポートレート撮影した画像を表示する方法です。

iPhoneでカメラアプリを起動すると、ポートレートモードに対応した機種であれば撮影モードで"ポートレート"が選択できます。このモードで写真を撮影するだけでOKです。
立体的に見たときに見栄えがよくなればと輪郭強調照明で試しました。

f:id:jyuko49:20210525002459p:plain

Looking Glassで大きく表示させるために近くから撮影して接写になりすぎると、カメラアプリで"離れてください"と警告が出ました。この警告が出ている状態で撮影した画像はHoloPlay Studioにインポートできないようです。

撮影した画像はこんな感じです。

f:id:jyuko49:20210524202923j:plain

撮影した画像をHoloPlay Studioにインポートするには、[ADD HOLOGRAM]から"iPhone Portrait Photo"を選択して[IMPORT FILE]です。
インポートに成功するとPlayListに追加されるので、[SYNC PLAYLIST]でLooking Glass本体に転送します。

写真だと全然伝わらないですが、結構立体的に見えてます。

f:id:jyuko49:20210524202958j:plain

リアルに存在するフィギュアや人などをLooking Glassで表示させたい場合には、かなり手軽に使えると思います。

UnityでQuilt画像/動画を作成する

3Dモデルを立体的に表示するには、様々な角度からのレンダリング結果を1枚に結合したQuilt画像というものを作ればよいようです。

公式にはこちらに説明があります。Quiltはキルト生地のキルトですね。

Quilts - Looking Glass Documentation

実際の画像はこんな感じです。静止画だけでなく動画にも対応しているようです。

f:id:jyuko49:20210525004620p:plain

今回、3Dモデルはプロ生ちゃんを利用しております。

3d.nicovideo.jp

このQuilt画像を作成する方法について調べたところ、Unity向けのプラグインを使うのが簡単そうです。

使い方はこちらのマニュアルに書いてあります。

Looking Glass Learn

HoloPlay Serviceを起動し、Looking Glassを接続した状態で、Unityエディタで実行を行うと、Looking GlassにUnityのシーンが表示されます。

f:id:jyuko49:20210525010657j:plain

実行したまま、F10キーを押すとスクリーンショットが撮影でき、Quilt画像がPNG形式で保存されます。画像はUnityのプロジェクトフォルダの直下にあります。

静止画ではなく動画で保存する方法は、先程のマニュアルに記載されており、"Holoplay Capture"にUnityプラグインに同梱されている"Holoplay Recoder"とHoloplay Recoderをキックする簡単なスクリプトをアタッチします。

マニュアル通りのスクリプトなら、1キーで録画を開始して、4キーで終了するとファイルが保存されます。ファイルはプロジェクトフォルダ直下にあるWebM形式の動画ファイルになります。

作成したQuilt画像/動画もHoloPlay Studioから転送して、スタンドアロンで表示できます。
[ADD HOLOGRAM]から"Quilt Photo and Video"を選択して[IMPORT FILE]になります。

PCと接続してLooking Glassに表示するパターン

Unity

こちらは、Quilt画像の作成で使ったUnityプラグインで再生できます。
録画して使うのではなく、PCと接続してUnityでアプリ実行したまま、操作を行う形になります。

Blender

Looking Glass FactoryではUnityプラグイン以外にも、BlenderやUnreal Engine向けのツールが提供されています。
最近Blenderを触る機会が多いので、Blenderのアドオンも試してみました。

GithubからBlenderアドオンをzipファイルでダウンロードして、Blenderにインストールします。

インストールすると、"LKG"と一見すると卵かけご飯のようなタブが追加されます。

f:id:jyuko49:20210525013106p:plain

Looking Glassを接続した状態(例によってHoloPlay Serviceが必要)で、[Create Render Setup]を行うと、シーンにカメラが追加され、"Multiview"という名前でLooking Glassの形状を示す枠線が表示されます。この枠の中に表示したい3Dモデルが収まるように配置します。

f:id:jyuko49:20210525013659p:plain

準備ができたら、[Send Quilt]をクリックするとLooking Glassに表示されます。

f:id:jyuko49:20210525013922j:plain

HoloPlay.js

最後にHoloPlay.jsを使った表示を試してみます。

HoloPlay.jsについては以下のリンク先で紹介されており、three.jsのシーンをWebブラウザでLooking Glass向けにレンダリングして表示ができるようです。

Looking Glass用のThree.jsライブラリ入門 - Looking Glass Documentation

マニュアル通りに進めてみると、Holoplay JavaScriptライブラリーが見当たりません!
もしかして提供終了しているのかなと思いつつ、巡り巡ってこちらのページの"You can download our bundle here"から無事ダウンロードできました。

Getting Started - Looking Glass Documentation

展開してlocalhostで動かしてみます。Web開発にも使っているMacbookなので、localhost実行にはhttp-serverを使いました。

Looking Glassを接続した状態(くどいようですがHoloPlay Serviceが必要)で、exampleをブラウザで開くと以下のような表示になりました。

f:id:jyuko49:20210525020813p:plain

言われるがままにブラウザのウインドウをLooking Glass側に持っていって全画面表示にすると、たしかに立体的に表示されます。

f:id:jyuko49:20210525021043j:plain

glTFを表示するexampleもあったので、手持ちの3Dモデルを表示するのは簡単そうです。せっかくthree.jsに対応しているので、今回はMMDLoaderを使ってMMDを表示してみました。

f:id:jyuko49:20210525022246j:plain

gdgd妖精s公式で配布されていたMMDで商用利用・再配布はNGですが、非商用の同人利用はOKなモデルです。再配布にならないようローカルでの実行のみで、サーバにはアップしない形で個人利用しています。

詳細は割愛しますが、three.jsのドキュメントexamplesを参考にしてもらえれば実装できます。

表示方法の比較・まとめ

リアルなオブジェクトを表示する場合は、iPhoneのポートレート撮影で十分に立体感のある見え方になります。
UnityやBlenderが使えなくてもカメラで撮影するだけなので手軽に利用できます。

3Dモデルを表示する方法は多数あり、自身の使いやすいツールを使えばよいと思いますが、PCと接続しなくてもスタンドアロンで表示ができるLooking Glass Portraitの特徴を考えると、Quilt画像の作成が有効な手法の一つになると思います。
Quilt画像を自作する場合は、Unityプラグインが扱いやすいです。

作成したシーン(画像や動画ではなく)を他のユーザーにも公開しやすいという点では、HoloPlay.jsを用いたWebの実装も活用できるシーンがありそうです。

上記3つに共通しているのは、ユーザー同士でコンテンツを共有しやすいという点ですね。
自分が作った作品を公開したり、他のユーザーが作った画像を表示したり、Looking Glassで表示できるコンテンツが増える方向になっていくと楽しいかなと思います。