Makery Blog

西麻布のクリエイティブラボ「Makery」でテクノロジーとアイデアをこねています。

水中に潜ってプレイするARコンテンツを制作しました。

f:id:bbmedia:20171225104447p:plain

 

12/3(土)に行われた、第1回ゆるプル選手権にて、水中に潜ってプレイする

ARコンテンツを制作しました。 

 

今回は概要やその時の検証の様子、結果などを書いていこうと思います。

 

※今回は事前にプール内でのスマホの所持、撮影許諾等を得ています。 

  通常はプール内での撮影は禁止だと思いますのでお気をつけください。

 

イベント概要

水泳が苦手な方でも気軽に楽しめる「水泳ゆるスポーツ」。

水泳とエンターテインメントをかけ合わせることで、これまでにないプールの体験を

提供するイベントです。

 

今回「VIRTUAL DIVING MASK」という新たに開発されたプロダクトを使用して、

第1弾コンテンツ「ARおさかなキャッチ!」を制作しました。

 

virtual-diving-mask.com

 

仕組み

水中ゴーグル内に防水スマートフォンを入れ、スマートフォンのカメラ越しの

AR映像をレンズを通して見る仕組み。 

※ゴーグルの詳細な仕組みについては上記のURLをご覧ください。

 

f:id:bbmedia:20171225122825j:plain

 

コンテンツの内容

オレンジ色のおさかなを見つけて、ゴーグル右上部のボタンを押して捕まえ、

3匹捕まえたタイムでランキングを競います。

1匹捕まえるごとに難易度が上がるようになっています。

 

f:id:bbmedia:20171225122711p:plain

www.youtube.com

 

開発

水中でのコンテンツ制作が初めてだったため、苦労もたくさんありました。

項目ごとに、まとめていきたいと思います。

 

アプリ

Unity + Vuforiaで開発。

ARKitでもARCoreでも、TangoでもなくVuforiaです。

  

今回制作するにあたって、ARKitやTangoも水中で検証してみたのですが、

エレベーターや新幹線などの移動する場所と同様、ズレてしまったり、

平面が認識できなかったりしたため断念。

 (ARCoreは対応端末を持っていませんが、基本的には同じ結果が予想されます。)

 

弊社オリジナルコンテンツの「SEEKAR (ARKit ver.)」を水中で試した際、

奇跡的に平面を認識できたときの動画が以下です。

※通常はプール内での撮影は禁止だと思いますのでお気をつけください。

 

seekar | bbmedia

www.youtube.com

  

 

また、コンテンツ内で泳いでいるおさかなの群れは、群衆アルゴリズム(Boids)を

使用して制作しています。

 

www.youtube.com

 

欠点として、リアルタイムでおさかなの3Dモデルを生成・制御しているため、

ミッドレンジ程度のスマホだと処理が重くなってしまう。スマホ本体の発熱も大きくなるためこれも処理が重くなってしまいます。

対策として、近くを泳いでいるおさかなはハイポリ、遠くを泳いでいるおさかなは

ローポリで生成しています。また、Occlusion Cullingなども使用し、カメラの範囲外は

描画しないようにしたりと、負荷を軽減しています。

 

発熱の件に関しては今回は水中のため水冷方式で冷却できるかと思っていましたが、

室内の温水プールであったことも有り、思ったよりも水が冷たくなく冷却効果が

発揮できていなかった様に思います。

 

ちなみに、バッテリー持ちはフル充電で3時間弱ほど。

 

マーカー

今回一番苦労した項目。 

初めの話では、水中でポジショントラッキングがやりたいとのことだったので、

まず制作したのが以下のマーカーです。

初期型

f:id:bbmedia:20171225160825j:plain

 

素材:耐水紙

大きさ:2000 x 2000 (mm)

その他:重り(25kg)

 

紙自体は耐水紙なので破れはしないものの、水中でふにゃふにゃで

まともにマーカーとしては使用できずという結果に。。。

 

コンテンツの内容も考えつつの次期型。

次期型

f:id:bbmedia:20171225161136j:plain

 

素材:発泡スチロールの立方体

大きさ:300 x 300 x 300 (mm)

その他:てぐす、重り(5kg)

 

発泡スチロールの浮力が強すぎて沈まずという結果に。(これは想定内)

 

次期型と同時期に制作していたのが、今回のイベントで使用した最終型。

 マーカー数を1つに絞り、確実なかたちに。

最終型

f:id:bbmedia:20171225161427j:plain

 

素材:ターポリン生地

大きさ:500 x 500 (mm)

その他:アクリル板、譜面台、重り(7.5kg)

 

ターポリン生地に印刷したマーカーをアクリル板に固定してふにゃふにゃになるのを

防ぎ、譜面台自体も重さ(3.5kg)があるのに加え、重りをさらに追加したことにより、

安定感がありしっかりと認識できるマーカーが完成。

 

 

この最終型に行き着くまでに、約3週間かかりました。。。

 

 

次回開催する際には、見た目のブラッシュアップも兼ねてぜひオリジナルで制作したい

ですね。

 

その他苦労したこと

  • 陸上と水中では勝手が違う

  ラボでの検証ではうまく行っても、実際水中では思い通りにならない事もあった。

  • 水中では画面が濡れてタップできない&誤動作する

  水に入出の際、水中では常にタップされた状態やスワイプ、タップと誤動作する。

  画面ロックアプリや物理的なカバーを試してみるも失敗。

  ネイティブプラグインで作成する必要がありそう。。。

  • 水中では電波が遮断されるため、無線による制御などができない。

  水中ではどんなことが行われてるのか地上の人にはわからない。

  空間共有をしようにも無線の接続が出来ないし、有線だと自由度が下がる。。。

 

イベントの様子

f:id:bbmedia:20171225165859j:plain

f:id:bbmedia:20171225170008j:plain

f:id:bbmedia:20171225170539j:plain

 

 

水中でARをするコンテンツは初めてだったので、大変だった部分も多かったですが、

また1ついい経験になりました。

 

最後までお読みいただきありがとうございました。