プロシージャル3 「創発的関係」

プロシージャル

AとBとを別々に作っておいて、何らかの関係を付けて動かすのが広い意味でのプロシージャルです。このうち、「大きな鳥が水面の上を飛べば波打つ」のように、自然法則や直接的な因果関係によって結びついているように見せるタイプを「必然的関係」としました。今回は、「クルマの走行映像と生物の動き」のように、本来関係ないが意図的に関連を付けるタイプについて話します。これを「創発的関係」と述べることにします。実際にクルマにカメラを搭載して、その映像とプログラム上の生物と関連づける場合、しばらく走行していると、関係性がなんとなくわかってくる面白さがあります。人は常に関係や意味を推測しています。この性質を刺激することになります。
最初に示すのは、「モグモグ」という伸び縮みするキャラクタが動くと大地が動く、というものです。大ナマズが暴れると地震が起こるという話にヒントを得て作製しました。ウエイトという技術の練習です。鹿島神宮と香取神宮には大ナマズが暴れないように、要石(かなめいし)で大ナマズを封印しています。鹿島神宮の神様はタケミカヅチ、香取神宮の神様はフツヌシです。いづれも出雲の国譲りに登場する武の神様です。人を超える強い神様によって封印することで地震を防いでいます。地震の原因(関係性)を何とか知り、2度とないようにという昔の方の切実さを感じます。神話はインスピレーションの宝庫です。まず映像を見ていただきましょう。

この映像はblenderで作製しています。上部に「モグモグ」というキャラクタがいます。「モグモグ」にはボーンという骨に相当するものが入っており、このボーンと体とをウエイトよって関連付けます。これによってボーンを動かすと体が動くようになります。さらにこのモグモグのボーンと、大地との間にもウエイトによって関連付けます。するとボーンを動かすと体が動くと同時に大地が動きます。ボーンと体というのは「必然的関係」なわけですが、ボーンと大地は通常関係ないので、「創発的関係」になります。このように離れていても重みによって関係付けるというのは、大変興味深く思っています。先回の「プロシージャル2の「怪鳥モグモグ」」も同様にモグモグのボーンと体とはウエイトで関連付け、さらに離れてボーンを用意し、それと翼とをウエイトで関連付けます。「怪鳥モグモグ」の場合は、fbxファイルにしてTouchdesignerに渡し、こちらで頭と翼とを同期させて動かしています。ウエイトはTouchdesignerには無い機能です。似たようなことをさせる機能としてGroup SOPがありますが、blenderのウエイトのようにウエイトをグラデーション的にかけることができません。このため、ウエイトを使いたい場合は、blenderで関連付け、fbxでTouchdesignerに持っていくのが便利だと思います。

次に示すのは、更に手を加えた例です。映像の中央付近に「モグモグ」が動が動きます。今回もまず動画を見てください。

これは「モグモグ」が動くと、大地の盛り上がっている部分と穴の部分が同期して動いているのがわかると思います。地面の一部が「モグモグ」と関連しているのです。この映像でもう一つ注目いただきたい点は、「モグモグ」は大地の凸凹に沿って動いていることです。この大地にめり込まないようにする技術をシュリンクラップと言います。blenderの制限機能(ボーンコンストレイント)の一つです。「モグモグ」のボーンと体はウエイトで関連を付けます。そしてシュリンクラップをかけます。更にモグモグのボーンと大地にウエイトで関係付けます。この時のウエイトは0.002等のように非常に小さい値です。これらによってオブジェクト(モグモグのこと)が動くと、重みをつけた部分が大きく変化することが実現できます。ウエイトの値が非常に小さいのにこれだけ大きく動くのは、フィードバックあるいは非線形性が影響しているように思われます。これは偶然見つけた関係性です。AIのCopilotはこの現象を知らなかったので、珍しい使い方ではないかと思います。「大地にめり込まないようにする働き」シュリンクラップはボーンと大地とを関係付けます。そして、ボーンと大地とはウエイトで関係付けるので、シュリンクラップとウエイトの機能との相互作用があるようです。ウエイトだけの場合は動きを予測できますが、この場合は正確には予測できません。未知が生じています。これは詳しく調べたい技術です。ウエイトは重要な関係なので、次回詳細を説明したいと思います。以前に「コンピュータに宿る非線形性・・・」を書きましたが、blenderには計算上に発生する現象があるようです。実世界にはないこれらの現象は、コンピュータならではの創作につながります。

次の例は、クルマの走行映像と「ハリコルゲ」という私が作製したキャラクターとの関係について説明します。「ハリコルゲ」を次に示します。

これは、架空の古代の怪物です。これは大ナマズのように封印されていたわけですが、その封印が解けつつある状態を次の映像で示します。

地面からもがいて出ようとしています。「ハリコルゲ」はblenderで描いて、そのメッシュ形状をobjファイルにしてTouchdesignerに渡し、Touchdesignerで映像を作製しました。クルマの走行映像から映像の動きの量を取り出し、「パリコルゲ」の動きをつけています。クルマの走行映像と「ハリコルゲ」は本来何の関係もありません。これらの間に関係をつける点が「創発的関係」です。2つ前のblog「プロシージャル1 「諸法無我」」で、MAXの場合における映像の動き検出の方法を簡単にふれています。これと同様のことをTouchdesignerで行っています。その部分を次に示します。

Moviefilein TOPは実際のクルマで撮影する場合はカメラ映像にします。白黒にしてCache TOPを使います。これは幾つ前までのフレームを記憶するかを決めるオペレータです。例えば4フレーム前までを記憶します。つぎのCachselect TOPは一つはindexの値を0にして今のフレームを選択、もう一つのindexを-4にして4つ前のフレームを選択します。これの差を取るのがComposite TOPです。そしてAnalayzeは全ピクセルの平均を求めます。これは色として出力されます。次のTop to CHOPはAnalyze TOPの色情報を数値に変換するものです。これで今のフレームと前のフレームとの差が求まりました。後はこれをさらに平均するなどを行っています。MAXもTouchdesignerの場合も、今のフレームと前のフレームとの差を数値化した値を「複雑さパラメータ」と呼んでいます。通常カメラに映る映像が複雑であると複雑さパラメータの変化も大きくなります。走行映像の場合では、狭い道を走っている時、カーブする場合等が大きくなります。これを基に音楽を作るのが自動作曲、映像にエフェクトをつけるのが自動絵画です。詳しくは「特開2019-20638 音生成装置、音生成制御プログラ」, 「特開2019-92094 画像生成装置、表示システム、及びプログラム」に記載しております。この複雑さパラメータを使って、color map, normal map, height mapと呼ばれる3つの映像を変化させます。これらはシェーダーをコントロールするpbr MATの入力となります。これらによって映像に動きを与えます。このpbrは質感表現をするものですが、「ハリコルゲ」や「大地」のメッシュを変更していません。ですから飛び出しているように見えるのは錯覚です、色や陰、反射等でそのように見せています。シェーダーの技術についてもそのうち取り上げたいと思っています。このように複雑さパラメータを使って、もともと関係ないオブジェクトに関係性を与えることができます。複雑さパラメータはウエイトとは違う関係性の与え方です。前のblog「プレグナンツとベイズ推定、その応用について」で述べたように、人は常にベイズ推定しています。だから何で動いているのか、ということが気になるわけです。これはこうかな、と思う気持ちでモノに接する状態を作りだすので、モノとのコミュニケーションになります。

「ハリコルゲ」がどうなったかについて、次の映像を示しておきます。

これはblenderで作製した「「ハリコルゲ」をfbxファイルでTouchdesignerに渡しています。objと違って「ハリコルゲ」の模様も含めています。浮遊しているような揺らぎの感じもpbr(シェーダー)によって作製しています。「ハリコルゲ」の封印は破られ海に放たれました。これから地球はどうなるのでしょうか?

実は次のように思って作製しました。「ハリコルゲ」の復活に呼応して復活したのが「モグモグ」だったのです。「モグモグ」の出撃のシーンを次に示します。

この映像の鐘の音は「モグモグ」の復活を祝う祝福なのです。そして急いで「ハリコルゲ」に向かうために、翼を生やし海を渡るシーンが、前回のblogの「怪鳥モグモグ」であったのです。急げ「モグモグ」。

コメント