WaterHologram - dominickchen/cmrd GitHub Wiki
5W1H
What
この作品について
水中にホログラムが浮いているように見せかけるために、透明の板で囲んだ空間に魚を浮かせ、その空間に釣り糸を垂らすことでホログラムの魚を釣ることができるようにする、という作品です。
ホログラムについて
映像を立体的に空中に浮かべることが可能な「映像の表示手法」の一つ。 本来は映像の表示手法である以上に、立体的に映像を記録する技術を指します。 今回作成するのは厳密にはホログラムではなく、擬似ホログラム、ペッパーズ・ゴーストです。 ペッパーズ・ゴーストとは、手品に用いられる視覚トリックの一種で、以下の画像のように床面の映像を投影面に反射させるような手法です。
When
5/31〜7/19
Where
暗い場所
Who
- 佐久間響子(3年)
- 石黒太一(4年)
- 中野綾(4年)
- 宮田泰盛(4年)
Why
- ホログラムは決まった映像を流す、という使われ方をすることが多い。 → もっとインタラクティブにホログラムを利用することができるのではないか?
- 拡張現実で地面などに現実にはないものを表示させられるように、水の中にも像を表示したい。 → ホログラムを使った釣りゲームというアイデアに
How
基本的な擬似ホログラムの作り方については以下を参考にしました。 【スマホとCDケースで出来る3Dホログラム映像作ってみた】
- Blenderで魚のモデリング&アニメーションを作る。
- 作ったモデルをUnityに取り込み、ホログラム用の映像に変換
- Arduinoで距離センサーを用い、釣り針と魚の距離を取得
- センサーで取得した距離をもとに、Unity上で魚を動かす
- Unityの実行画面を画面共有アプリでiPadにリアルタイム投影
- iPadに写った画面を擬似ホログラム装置に反射させる
利用するソフトウェア一覧
1. Blenderで魚のモデリング&アニメーションを作る
モデリングやアニメーションに関しては経験があったので苦は特になかったです。 なおローポリゴンで動物のモデリングをするときは、「Time Locker」というゲームの作者otsuka氏の以下のツイートが役立ちます。 ※植物を作るのには不向きです 【挫折した人でもできるかもしれない3Dモデリング(ローポリ)】
モデルができたら、Unityに取り込めるようにfbx形式でエクスポートします。
2. 作ったモデルをUnityに取り込み、ホログラム用の映像に変換
図の左側のように、インポートした3Dモデルの周り四方向にカメラを置いて、出力したのが右のものになります。
これは以下の動画を参考にしました。
【Pepper's Ghost Hologram Pyramid Unity】
ただしこのままだと魚がアニメーションしていないので、Blenderで作ったアニメーションをUnity上でループさせるようにします。
以下を参考にしました。
【【Unity開発】Animator Controllerまとめ 3Dユニティちゃん【ひよこエッセンス】】
3. Arduinoで距離センサーを用い、釣り針と魚の距離を取得
※線と線をセロテープで繋いだだけという少々危険な配線のため、本来はブレッドボードを利用してください。
ドミニク先生から距離センサとジャンパー線をお借りしました。Arduinoは所持していたMaruduino UNO R3(Arduinoの互換ボード)を利用しました。
センサーで距離を取得してArduino上のシリアルモニタに表示させるだけであれば意外と簡単でした。以下のサイトを参考にしました。
【Arduino で測距センサーを試してみた!】
Arduinoの基本操作に関しては以下が参考になります。
【届いたら速やってみよう!ARDUINO(アルディーノ)入門編「HELLO WORLD」】
4. センサーで取得した距離をもとに、Unity上で魚を動かす
5. Unityの実行画面を画面共有アプリでiPadにリアルタイム投影
6. iPadに写った画面を擬似ホログラム装置に反射させる
- CDケース自体はポリプロピレン(PP)、ポリスチレン(PS)だがホログラムの用途で使う場合、材質よりも表面の加工(反射)の問題
- ポリプロピレンやポリスチレンは大抵表面が半透明〜白加工されていて、透明なものは店頭で取り扱っていない
所感
反省点
- パソコンとiPadの投影にタイムラグがあったため、タイミングを重視するこのゲームは少しプレイしづらかった。
- 手順4の完成が発表前日と遅く、ゲーム部分にあまり手を加えられなかった。
- コンセプトをより深めるために、実際に水を入れた水槽の中に入れるなどの工夫をしたかった。
- 制作発表の際にご指摘いただいた通り、一度釣り上げると一度プログラムを終了してから再度実行しなくてはならなかったので、常に人がそばにいなければならなかった。→釣り上げてから暫く経ったらゲームの最初に戻るように変えたほうが展示としてはよかった。
- 魚の種類を増やして、釣った魚をコレクションできるようなシステムを作ってみたかった。