Unityでプロジェクションマッピングをしよう!!!
Unityでプロジェクションマッピングを、無遅延低負荷で行うためのプログラムです。 超簡単な操作で映像を実空間の平面上に投影することができます。 OSC & Arduinoなどと併用することにより、観客のアクションにすぐフィードバックを返すような、インタラクティブな映像表現を生み出すこともできます。
##用語
- フラグメント 1平面上に収まる1つにつながった投影面のこと。一つの投影面には1種類の変換行列が適応されるため、実空間における一つの平面には一つのフラグメントを対応づける必要があります。
##エディタの操作説明
- 右クリック メニューを表示/非表示
編集形式の選択
- UVモード 変換元の座標を調整します。投影先の物体の展開図を用意するなどして、合わせるといいと思います。
- Vertexモード 変換先の座標を調整します。実際にプロジェクターで投影しながら、各頂点を合わせてください。
- Invisibleモード エディタ部分を隠します。編集用の縁取りが消えるだけでなく、編集時と比べて投影変換のための計算が低減され、より高速に動作します。
編集動作の選択
- Createモード フラグメントを作成し、頂点を追加します。そのままAddモードに移行します。
- Addモード 選択頂点の次のインデックスに頂点を追加します。
- Removeモード 頂点を選択して削除します。
- Selectモード 頂点を選択します。選択された頂点は色が変わります。
- Moveモード 頂点を移動します。
変換の保存
- Save 変換の状態をファイルに書き出します。拡張子は「.homo」です。
- Load 変換の状態をファイルから読み出します。拡張子は「.homo」です。
##注意
- ホモグラフィ変換が成立するためには、4つ以上の頂点が必要となります。それ以下では正しいホモグラフィ変換が行われませんので、三角形などを定義する際は、例えば三角形の頂点+任意の1辺の中点で合計4点などして、必ず4点を確保するようにお願いします。
- MoveとSelectは基本的に排他です。Moveの時にSelectする機能はまだついていないので、SelectしてからMoveするようにお願いします。
##ライセンス
- このスクリプトの使用・改造は商用・非商用問わず自由です。
- このスクリプトを再配布することを禁じます。
- このスクリプトに関して生じた不利益には、一切の責任を負いません。
- 商用非商用問わず、報告の義務はありません。ですが、報告してもらえると作成者が喜びます。
##今後の開発について 曲面のホモグラフィ変換の仕方が全く思い浮かばなかったので、平面しかありません。 どなたかご存知の方いらっしゃれば、情報提供をお待ちしています。 まだまだ非力な部分が多いので、その部分を改造していくと思います。
##最後に 拙い文章、ソースコードですみません。 しかし機能としては自負しているので、ぜひご利用ください。