第10回 プロジェクションマッピング実習

Monday, June 28, 2021

今回はプロジェクションマッピングの実習です!So exciting!

サンプルファイル

chimanaco/takara-univ-media-programming-2021
10が本日のディレクトリです。

Wikipedia によると、以下のように書かれています。

プロジェクションマッピングとは、CGをプロジェクタ等の映写機器を用い、立体物に映像を投影する技術である。

駅などの建築物に CG を投影してその形状を活かしたストーリーのある作品を見たことがあるのではないかと思います。 TouchDesigner でもプロジェクションマッピングを行うためのツールが用意されていますので使ってみましょう。

作例

YouTube 等で検索してみるとたくさん作品が見つかると思います。

Display 10-Output.toe

今まで network editor の中で色々やってきましたが、本題のプロジェクションマッピングに入る前に少しディスプレイへのイメージの出力の仕方についてお話します。

ディスプレイにイメージを出力するには Window COMP を使います。デフォルトですでに perform と名前がついた Window COMP がルートにあります。perform を選択すると Window Operator のところに project1 が指定されています。これは project1 がディスプレイに出力されるという意味です。

ディスプレイが1つの場合は Monitor に 0 を指定します。複数ディスプレイの場合はここの数値を1以上にすることで別のディスプレイに出力することができます。

project1 を選択し、Look タブの Background TOP を見ると ./out1 という指定があります。これはこの Container の中の out1 と名前のついた TOP を背景として表示するということです。

project1 を選択し、Layout タブの WidthHeight を見ると 1280 と 720 になっています。これがディスプレイに Window として開かれるサイズになります。

Window の開き方には2種類あって、1つ目は Open as Separate Window の横にあるボタンをクリックすると出てくる floating window です。Network Editor を編集しながらできるのでなかなかいいのですが、Editor も同時に開いているため、GPU に負荷がかかりフレームレートが遅くなることもあります。

そこで使うもう1つが Open as Perform Window で、こちらをクリックすると Network Editor が非表示になり、出力結果の Window だけになります。処理負荷も抑えることができます。 F1 がこのモードへのショートカットキーで Esc で元の Editor mode に戻ることができます。

これまでの設定だと TouchDesigner では 1280x720 の Window で表示していて、プロジェクター等の表示したいスクリーンが 1920x1080 だったとします。これに対処するにはいくつか方法があります。

1つ目は project1WidthHeight をそれぞれ1920と1080に変更する。

もう1つは perform を選択して Opening sizeFill に設定する方法です。これは最終出力の解像度がわからないときなどにお手軽に使えるのですが、この方法はディスプレイが増えた時に使えないので1つ目の方法を採用します

デフォルトでは上部にボーダーが表示されるので、perform を選択して BordersOff にします。こうするとフルスクリーンのようになります。

Display setting on OS

Windows

今回はプロジェクター1台を PC に接続して使用します。Display 設定に行って Duplicate ではなく Extend を選択します。PC が1として左側、プロジェクターが2して右側となるように位置を指定して、TouchDesigner 側ではディスプレイ1を0、ディスプレイ2を1として使用します。

Network

Mac

Display Arrangement に進んで、Mirror Displays のチェックを外します。Mac のディスプレイをメインとして、左側に配置します。

Kantan mapper 10.toe

今日は Kantan Mapper と呼ばれるツールを使います。日本語の簡単から来ているそうです。2Dのポリゴンやベジェ曲線を使って形を作り、テクスチャーを反映させて2Dのプロジェクションマッピングをすることができます。

PaletteDerivative > MappingkantanMapper があるので Network Editor にドラッグ&ドロップします。

Input はありませんが、Output は2つあります。上の方が最終的にディスプレイに送られるもので、下の方は displacement map 用ですが、今回は使いません。上の方にだけ Null TOP をつなぎます。

ドロップした Kantan Mapper を選択して、Kantan タブに行って Open Kantan Window のすぐ横にあるボタンをクリックすると Kantan Mapper のインターフェースが開きます。

まずは解像度を指定します。Resolutionに 1920x1080 を指定します(お使いのプロジェクターに合わせてください)。

Kantan Mapper component を選択して、Panel タブの Display を OFF にします。これをしないと Kantan Mapper のインターフェイスもディスプレイに一緒に表示されてしまいます。

何か形を作ってみましょう。四角形も作れますし、線をつないで自由に形を作ることもできます。形を作った後、TOP を選んで Texture にドラッグ&ドロップした後、その横にある x ボタンを押すとテクスチャが反映できます。

Transform

作った形を変形することもできます。 Select Shape(Toolsすぐ下の一番左の矢印)をクリックするとハンドルが出てきます。黄色の方を動かすと回転、ピンクの方は拡大縮小用です。

その隣の Select Keys and Handles は頂点を選択して keyStoning することができます。

その他にも OrientationRotateTranslate といったパラメーターが Transform カテゴリにあります。

Texture

Edit Texture をクリックしてテクスチャを編集することもできます。その後Set as Mask をクリックすると作った形を使ってテクスチャをマスクすることもできます。

Texture Edit window を一度閉じて、形を選んで Alt を押したまま変形をかけるとコピーが作れます。例えば、pivot を左下に変更しておくと、左下を基準に回転してコピーすることができます。

Second Output

2つ目の Output もせっかくなので補足しておくと、これと Remap TOPを使って、マッピングした結果が得られます。

Network

Other examples 10-Others.toe

その他のプロジェクションマッピングに使えるツールのサンプルです。

  • Kantan mapper
  • Stoner
  • CamSchnappr

本日の課題: プロジェクションマッピングをやってみて、どんなものに応用できそうか考えて書く

グループで KantanMapper を使って色々試してみてください。授業の最後にどんなことに応用できそうか100文字以下でまとめて Teams のコメントにて提出してください。実現の難易度は問いません。

例えば…

  • どんなものにプロジェクションしたら面白そうか?

参考

第11回 MIDI コントローラー、他のアプリとの連携 基礎

第9回 Kinect を使ってみよう