「ハコビジョン」はスマートフォンで再生した動画を手のひらサイズに“プロジェクションマッピング”するおもちゃ。透明なアクリルに映像を反射させて、箱のなかの小さなジオラマに映像を重ねて楽しむことができるものです。いままで東京駅プロジェクションマッピングの再現や、等身大ガンダムのプロジェクションマッピングを再現するバージョンなどが作られてきました。
で、この「初音ミク」バージョン。ミクさんの
そう「ハコビジョン」自体はいままで「プロジェクションマッピングの再現」として作られていたこともあり、背景のジオラマ(今回の場合はライブステージ)と同じ奥行きに映像を投影する仕組みになっています。背景のジオラマと、映像が重なって見えるようになっている。そこにミクさんを出すわけですから、背景のジオラマに張り付いている映像みたいに見え…てもこれはしかたないですよね…。
しかし、そこであきらめてはいけない!手軽に入手できる材料は揃ったのだ!あとは自分でもっと飛び出すステージを作ればいいだけなのである…!
…というわけで、改造した結果を動画にしました。
動画にだいたいのことは載っていますが、ざっとおさらい。
材料は
- ハコビジョン 2個
- 黒いテープ(光沢のないもの。黒い製本テープがおすすめです)
- 動画再生用Nexus 7(7インチタブレットなら画面サイズ的には足りると思いますが、今回はNexus 7(2013)で調整しました)
要するにハコビジョンを縦に2つ連結して、奥の“ステージ用ハコビジョン”と、手前に“ミクさん用ハコビジョン”を作ってしまえ…というわけですね。で、映像は7インチタブレットを使って「スマホ2つぶん」をいっぺんに流す、という寸法。
手前のハコビジョンはステージを使わないので、とっぱらって後ろの壁をカッターで切ってしまいます。
そしてハコビジョン2個をセロテープで連結。
箱の中は完全に真っ黒じゃないとかなり気になるので、黒テープで補強しつつ内側を黒くしていきます。
両脇はテープをこんなふうに切って…
きれいに貼っていきます。
ついでに床のぶぶんもテープを貼っておくといいです。この床が“ミクさんが立つステージ”になります。
全部貼ったら…
ハコビジョンの投影用パネルをはめておしまい!
長々と書きましたが、工作にかかる時間は全部で10分もかかるかどうかってところだと思います。簡単です。
あとはNexus 7で動画を再生して、上に載せれば完成!
再生する動画は
- Avisynthをインストールしておく
- 奥(ステージ)用の動画(16:9)をBack.aviとして作る
- 手前(ミクさん)用の動画をFront.aviとして作る(音はこの動画のものが使われます)
- てのひライブフェス用の公式配布素材のうち、ステージ用ワイヤフレーム画像(位置合わせ用)をWireFrame.pngというファイル名で置く
- 以下のコードをHakoLive.avsというファイル名で保存する
# 設定値
GUIDE_SOURCE = "WireFrame.png"
GUIDE_LENGTH = 450
FRONT_SOURCE = "Front.avi"
BACK_SOURCE = "Back.avi"
FRONT_POS_X = -0.08
FRONT_POS_Y = 0.22
FRONT_SCALE = 1.15
BACK_POS_X = -0.08
BACK_POS_Y = 0.1
BACK_SCALE = FRONT_SCALE
SHADOW_LEVEL = 0.7
#
TOTAL_WIDTH = 1920
TOTAL_HEIGHT = Int(TOTAL_WIDTH/16*9)
# 前景・背景クリップの読み込み
FRONT=AviSource(FRONT_SOURCE)
BACK=AviSource(BACK_SOURCE)
# ガイドクリップの読み込み
GUIDE=ImageSource(GUIDE_SOURCE,fps=30,end=GUIDE_LENGTH).ConvertToYUY2()
GUIDE=FlipHorizontal(GUIDE)
GUIDE_TOTAL=BlankClip(clip=FRONT,length=GUIDE_LENGTH,width=TOTAL_WIDTH,height=TOTAL_HEIGHT)
GUIDE=BilinearResize(GUIDE, IntMod4(TOTAL_HEIGHT*BACK_SCALE), IntMod4(TOTAL_HEIGHT/16*9*BACK_SCALE))
GUIDE=TurnRight(GUIDE)
GUIDE_TOTAL=Overlay(GUIDE_TOTAL, GUIDE, x=Int(TOTAL_WIDTH/2*BACK_POS_Y+TOTAL_WIDTH/2), y=Int(TOTAL_HEIGHT*BACK_POS_X), opacity=1.0, mode="Blend")
# 出力用クリップの生成
TOTAL=BlankClip(clip=FRONT,length=FrameCount(FRONT),width=TOTAL_WIDTH,height=TOTAL_HEIGHT)
TOTAL=AudioDub(TOTAL,FRONT)
# 前景・背景の音を削除
FRONT=KillAudio(FRONT)
BACK=KillAudio(BACK)
# 左右反転
FRONT=FlipHorizontal(FRONT)
BACK=FlipHorizontal(BACK)
# 影の生成
SHADOW=Greyscale(FRONT).Levels(10, 100.0, 255, 0, 255).Blur(1.0).Blur(1.0).Blur(1.0).Blur(1.0).Blur(1.0).Invert
BACK=Overlay(BACK, SHADOW, mode="Multiply", opacity=SHADOW_LEVEL)
# 前景あてはめ
FRONT=BilinearResize(FRONT, IntMod4(TOTAL_HEIGHT*FRONT_SCALE), IntMod4(TOTAL_HEIGHT/16*9*FRONT_SCALE))
FRONT=TurnRight(FRONT)
TOTAL=Overlay(TOTAL, FRONT, x=Int(TOTAL_WIDTH/2*FRONT_POS_Y), y=Int(TOTAL_HEIGHT*FRONT_POS_X), opacity=1.0, mode="Blend")
# 後景あてはめ
BACK=BilinearResize(BACK, IntMod4(TOTAL_HEIGHT*BACK_SCALE), IntMod4(TOTAL_HEIGHT/16*9*BACK_SCALE))
BACK=TurnRight(BACK)
TOTAL=Overlay(TOTAL, BACK, x=Int(TOTAL_WIDTH/2*BACK_POS_Y+TOTAL_WIDTH/2), y=Int(TOTAL_HEIGHT*BACK_POS_X), opacity=1.0, mode="Blend")
GUIDE_TOTAL+TOTAL
function IntMod4(float "value") {
return Int(Int(Int(value)/4)*4)
}
…で、保存したHakoLive.avsをAviutlなどで読み込めば「Nexus 7用のサイズに変換された」動画が出てきます。背景の影も自動的につきますので、あとはAviutlで書き出すだけ。
原理自体は簡単で、同様のものは既にいろいろありますが、「すぐ手に入る材料」かつ「超簡単な工作」でできるので、ぜひ試してみてください。ぐっとハコビジョン・ライブの印象が変わりますよ!