痕跡

痕跡

「痕跡」は、オブジェクトが存在していた跡のことです。過去の栄華が偲ばれるようなノスタルジックな場合もあるし、動きの経路の場合もあるし、生きてきた証しの場合もあり、また何かに対して働きかけの跡でもあります。心に訴えかける要素が強く、表現の重要なテーマだと常々思っています。人が歩くと足跡が残る、重たいモノと軽いモノではへこんだ深さが違う等は、リアリティを与える重要な項目です。また心の中に残っている痕跡となると、まったく手が付けられない対象です。このように「痕跡」は奥深い内容です。今回のblogではそうした奥深さに迫ることは残念ながらできませんが、これまで作製してきた方法をまとめようと思います。Touchdesignerを使って行った代表的な4つの表現を紹介します。最初の2つはこれまでのblogですでに使った内容です。後の2つが今回の紹介になります。また補足として過去を扱う機能を紹介します。痕跡を表現する方法は今後も様々検討できるでしょう。今回のblogが議論のきっかけになればと思っています。
「痕跡」や「アフォーダンス」と言ったテーマを考える場合、現象学を思い出します。現象学の考察自体はまた別に扱いたいと思っています。主観の中に客観があり、それを方法として求めるという側面が強いテーマだと思います。もう少し砕いて言うと、痕跡をどうとらえるのかとうのは主観的な問題ですが、その中で共通に扱えるプログラムという客観的な方法を探すという作業のように思います。

ノスタルジックな方法

以前のblog「非線形現象の加工、モノとのコミュニケーション」で使った画像を再掲致します。

これは砂漠の古代都市を描いた映像です。塔や壁状になっている部分が、かつての繁栄の名残を表しています。このように過去の栄光の跡として表現するのは「痕跡」の代表的な表現です。描いているのは今の姿なのですが、過去の姿を思い起こさせうようとするアプローチです。技術だけではなく、何を題材にして描くかも重要です。人が持っている共通の何かがテーマになると思います。

フィードバックにより跡を残す方法

次は、描いていく軌跡を消さないで残していくという手法です。Touchdesignerではこれはフィードバックによって作製することができます。前の状態を保持してその上に今の状態を描きます。フィードバックの方法では過去をどれぐらい残すのがを調整することもできます。これまでのblogでは「カオス」のローレンツアトラクターの動画、「非線形動画+α」内の動画、「プロセス絵画」内の動画及び絵画、ではこのフィーバックを使って痕跡を残して描いています。これらの例を次に再掲しておきます。

「プロセス絵画」で主張したように、音楽や体験はプロセスが中心で完成した時にモノが残りません。痕跡は時間性が加わりそれを残します。その人固有の時間性が工学的な操作を経て、その人固有の信号になるというは、研究できる課題だと思います。

記憶させることで跡を残す方法

まず、動画を見ていただきましょう。Touchdesignerによるものです。

ポコポコとへこんでいくことが分かると思います。この動画の主要な構成は、以前のblog[プロセス絵画」、「暗黙知の次元2」の動画を作製する技術とほとんどかわりません。どこに凸凹の形状を作るかを指定するところが違っているだけです。主要な部分はpbrによる見かけ上立体化する技術です。その実態は色によって凸凹を付けるディスプレイスメントです。pbrのcolor Mapとheight Mapを使います。height Mapに黒っぽい色を割り当てると、そこの部分下がります。今回は指定した座標に円の形をした黒っぽい色をheight Mapに重ねることで、凹を作ります。同じ場所にcoler Mapにも重ねています。これは下がったところの色を付けるためです。
円を付ける座標は次のように決めます。マウスをクリックする毎にそのマウスの場所をtable DATに記憶していきます。20個まで記し、それ以上クリックすると上書きするようにしています。そして、このテーブルに記憶した値に対して円を割り付け、この円に色を付けるます。これを上記のMapに合成することで実現しています。合成する円の図形を作製する部分を次に示します。

元々は3次元の球です。これを2次元の円に変換してpbrのMapに使用できるようにします。球の部分が左側にあります。それらをtable DATの座標に割り当てます。そしてこれらを一つにまとめるのがmerge SOPです。次に色反転をしています。これは動画のようにへこませるためで、黒色になるほどへこむからです。これをgeometry COMPを使って2次元化し、再度色を調整してcolor Mapとheight Mapに合成しています。今思うと最初から2次元で作ってもよかったように思います。この痕跡プログラムのポイントはpbrを使用して立体に見せること、table DATを使って位置を保持すること、そしてへこませる形状を、3次元から2次元に変換してpbrに仕様するcolor Map、higeht Matに合成することでした。
上の図でmerge SOPを色反転しないで使った場合はどうなるかを次に示します。

このように上に浮き出るようになります。これも痕跡の示し方の一つだと思います。この色反転する・しないで痕跡の表現が変えられる点は応用ができそうです。そのうち作製し紹介したいと思います。
私はこうしてblogを書いておりますが、この行為自体「痕跡」と言えるように思います。

対象の動きに応じて変化させる方法

対象が動くにつれて痕跡が付いていく場合を考えてみます。その前に対象が「毛ガメ」という作製したキャラクターを使っているので、痕跡のテーマには直接関係ありませんが、キャラクタについて簡単に述べていきます。まず、毛ガメの動画を見ていただきましょう。

毛ガメは文字どうり毛の生えたカメです。Touchdesignerのインスタンシングという操作に対して、少し問題があると思っており、その対策を検討する中で作製したキャラクタ―です。TouchdesignerはGeometry COMPを使ってインスタンシングすると同時にそれをrender TOPによって2次元化します。インスタンシングというのは、例えば一つの木をつくっておいて、それをある図形を構成するポイントにそれぞれ生やす役割です。この時、大きさや回転角等をそれぞれ変えることができます。たまに直面する問題が、インスタンシングして何かが複数取り付けられた3次元形状を作製し、それを一つの塊として、これを別の図形にインスタンシングしたいという場合があります。残念なんがらこれを行う方法を知りません。つまり1度しかインスタンシングできないように思うのです。もしも解決策があれば、是非教えていただきたいと思います。できなくなる理由は、インスタンシング後の取り出しがrender TOPであり、2次元になるからです。この問題の解決策として、最初copy SOPによって対象のポイントに割り付ける操作をします。インスタンシングと違うのは、copy SOPでは、一つ一つのサイズや回転角を変えることはできません。しかし、同じものを対象に複数配置することはできます。copy SOPを作用させた後も3次元形状であるので、これをある形状全体にインスタンシングすることはできます。これにより、ほぼ2回インスタンシングしたのと同じ状態が作れます。この部分のプログラムを次に示します。

毛とお椀形状とをcopy SOPの入力に入れている部分があります。これでお椀の各ポイントに毛を割り付けることができます(1回目のインスタンシングに相当します)。次にカメの形を構成しているポイントにこれをgeometry COMPを使ってインスタンシングし、renderで取り出します(2回目のインスタンシング)。この方法で毛ガメを作製しました。上の動画では毛ガメは途中球になります。これは高速移動する場合のモードです。
それでは、毛ガメを使った痕跡の例を見てみましょう。

毛ガメが海の中に現れて、氷の都市(blendrで作製しobjファイルでTouchdesignerに移行)を破壊する動画です。毛ガメが進むにつれて氷の城壁が崩れてなくなっていきます。これが痕跡を表している部分です。氷の都市をローポリ(ローポリゴン:処理を軽くするためにメッシュの数を少なくした3次元形状のこと)で作製したため、壊れ方が雑になっていますが、何をしたいかは分かっていただけると思います。対象の動きに合わせて壊れる箇所を動かすことが今回のポイントです。この部分のプログラムを次に示します。

group SOPに氷の都市を構成するpointが表示されています。黄色のポイントが赤い立方体の内側にあります。立方体は毛ガメが移動するにつれて、z軸方向に伸びていくように同期させています。そうすると立方体の内側の黄色いポイントも増えていきます。そして次のtransform SOPは黄色いポイントに対して、y軸方向の負側、すなち下側に引っ張ります。これによって黄色のポイントは海の下に移動します。これが壊れて海の中になくなるように見せる仕掛けです。要約すると、毛ガメの移動に同期して、ポイントをコントロールすることで実現しています。pbrを使う方法と異なり、これはメッシュをコントロールしていることが特徴です。

補足:過去データを扱う機能

最後に過去のデータを活用する代表的な使い方を紹介しておきます。
1.cache TOPによる方法: 「プロシージャル3 「創発的関係」 」でcache TOPを紹介しています。映像のどれだけ前のフレームから記憶していくかを決めるオペレータでした。そして何フレーム前の映像を取り出すかを指定するのが、cacheselect TOPでした。現在と過去の4フレーム前との差を求めることで複雑さパラメータを求めていました。映像の記憶に便利なオペレータです。
2.Trail CHOPによる方法:Trail CHOPは指定した時間(あるいはサンプル数)を横軸にして測定した値を表示するオペレータです。どんどん入力が入ってくると、指定した時間(あるいはサンプル数)を超えた分は過去のデータから削除されていきます。Trail CHOPの後、analyze CHOPで全体の平均を取ると移動平均が求まります。これは大変便利なオペレータです。

コメント