nokkiiです
去年のACでも紹介したプロジェクションマッピング班ですが
一定の成果を上げたので発表させていただきます。

PM班ではまず、プロジェクションマッピングを行うための手法として
2つの手法を使うことにしました。

・プロジェクションマッピングにおけるキャリブレーションの手間を最小限に抑えるべく設計されたOSSであるmapamokを使う方法
・自作のプロジェクションマッピング用ソフトウェアを制作する方法

まず、mapamokの説明をしたいと思います。
使い方としては

1.プロジェクションマッピングを行う建築物をSketchupでモデル化、model.daeを作成し、mapamokのdataディレクトリに配置すると、起動時に自動的に読み込まれます。
sketchup_prism

2.マッピング箇所のデータさえ読み込めば、数カ所の点を建物のカドにマッピングするだけで自動的に建物データを現実の建物とマッピングしてくれます。 3.あとは付属のshader.fragに記述されているシェーダデータを再生するか、自分の オリジナルのシェーダを再生して楽しむことができます。

prism
mapamok_mapping
mapamok_mapping2
mapamok_mapping3

備考
ただし、mapamokで再生することができるのはシェーダだけなのでテクスチャ等をマッピングするためには、mapamok自体に手を加える必要があります。また甘えた機能が一切なく、非常に硬派なUIです。プロジェクションマッピング班ではプリズムハウスの2階をマッピング地として選定し投影しましたが、バーチャル立命班が立命館大学BKC内の多くの建物をSketchupでモデル化しているので、モデル化されたものに関してはmapamokにも 応用することができます。

次に自作ソフトウェアについて説明します。PM:IBMと名づけました。
PM:IBM(Projection Mapping Image Batch Maker)はだれでも簡単に思い思いの 動画をプロジェクションマッピングするために@PG_nokkiiと@bitter_foxが作った ソフトウェアです。
ここからダウンロード可能です。

無料で簡単にプロジェクションマッピングを行うソフトはmapamok以外にはなく、またmapamokもシェーダしか扱えない上にモデルを用意する手間もあるので、どうにか手を抜いてやれないかと考えて作りました。3Dの平面にテクスチャを貼り、その向きを変えることによってマッピングするのが一番かしこいやり方ですが、製作期間の都合もあり手を抜きました(更に手を抜くためにHSPを利用したのが 逆に修羅の道の始まりだっt)。その分空間把握が苦手な方でも扱えるようになっています。

使い方
1.動画を画像に変換して実行ディレクトリに置きます。
確かBMP,JPG,PNG,GIFには 対応しています。

2.キャリブレーションに使いやすい画像を選び、読み込みます。

3.メインウィンドウをマッピング場所に投影し、画像が自然に映るように加工することでキャリブレーションを行います。まず、メインウィンドウの加工したい箇所をドラッグするとレイヤーが作られます。

4.メニューから加工したいレイヤーを選び、加工します。高度にキャリブレーションするにはテクニックが要ります。

5.Save機能がついています。いつ落ちてもいいようにこまめに保存しましょう。

6.バッチボタンを押すと実行ディレクトリの全ての画像にキャリブレーションを適用します。

7.新しく作られたキャリブレーション済み画像ファイルを動画に戻せば、綺麗に再生することができます。
pmibm_modify
PM:IBMを用いて投影したい画像を壁の歪みに合わせて歪ませる

pmibm_mapping
マッピングできました。
連続した画像を全て加工すれば動画もいけます。

備考
本来であれば台形的な補正が必要なところを平行四辺形に歪める機能しか作っていないため、完璧に補正することは不可能に近いです。しかし、レイヤーを重ねながら補正することによって台形に近い補正を表現することが可能です。PM:IBM職人になるか、プルリクするか移植してください。また、HSP内蔵の傾き画像処理関数がイマイチなために傾けた画像の一部が欠けます。これも痛いところです。

Twitterでフォローしよう

おすすめの記事