blog「ポストモダンと「擾乱を伴う反復系」1」以降の4回に渡って、オブジェクトが自律した動きを作り出す方法として、フィードバック系を作製し、その中にそれを乱す擾乱をオブジェクト自身が作る手法を紹介してきました。この擾乱がポストモダンでいう「差異」でフィードバックが「反復」に当たります。そして先回ポテンシャルフィールドについて述べ、ポテンシャルによってオブジェクトを動かすことができることを述べました。この場合、オブジェクトに対してポテンシャルフィールドは外部に相当します。もしポテンシャルフィールドの変化が、オブジェクトが移動するためのフィードバック中に組み込まれるなら、場であるポテンシャルフィールド自体もオブジェクトに含まれることになります。この場合、ポテンシャルフィールドが変化することでオブジェクトを動かす行為は、フィードバック内の擾乱とみなすことができます。即ち新しい「擾乱を伴う反復系」の誕生です。この新しい系では、ポテンシャルフィールドは内部に含まれるため客体ではありません。この系は主客未分の系となります(ポテンシャルフィールドを含めてオブジェクトとなります)。動画をみながら解説していきましょう。
前回の動画は線状のポイントがポテンシャルフィールドに衝突し低い所に溜まりました。今回もポイントでできた線状のポイントは同じ作り方です。noise SOPから作っています。今回は数を600ポイントから120ポイントに減らしています。形状が複雑でないのはそのためです。ポテンシャルフィードルドも前回は高かったのですが、あまり高いと線状のポイントが乗り超えることができないので、ポテンシャルの高さを下げています。山が小さいのはそのためです。線状のポイントの平均値とマウスの位置との差をspring SOPのexternal forceにフィードバックして線状のポイントがマウスを追っかけるようにしています。これがフォードバック制御です。線状のポイントはポテンシャルフィールドの影響によって変化し、低い所へ移動します。更にポテンシャルフィールドを周期的にランダムに変化させ、線状のポイントに影響を与えます。また常に軽くspring SOPのturbulence(乱流)パラメータにforceを与え若干の動きを作っています。ポテンシャルフィールドとturbulenceの2つが擾乱です。フィードバック系の内部にこれらの擾乱が在るので、この系は「擾乱を伴う反復系」になっています。今回はポテンシャルが変わるということ自体が擾乱になっており、これによって線状のポイントが変化します。このことは、線状のポイントにとってポテンシャルは自分自身を動かす内部の仕組です。このためポテンシャルフィールドは外部にある客体ではありません。「擾乱を伴う反復系」の内部に在るのです。このことがこれまでの系と違っています。以前のblogに「 「人とモノとの間」 ・・・」で主客未分の話をしましたが、今回の場合、線状のポイントとポテンシャルフィールドは主客未分の関係になっているのです。動画の右側は線状のポイントから13ポイントを選択し、その部分に細胞を配置したように見せた図です。これをよく見ていただくと、ポテンシャルフィールドの頂点付近には、細胞が乗り越えれなくなっており、できるだけポテンシャルの低い所を通ろうとしていることが分かります。またポテンシャルに衝突すると、移動速度が低下するので、ポテンシャルが無い所と比べて動きが遅れます。このようなことで動きが細胞ぽく見えます。
あちこち飛んで申しわけありませんが、この動画と一つ前のblog「ポテンシャルフィールド・・・」の「最短経路の探索」の動画をみていただくと、応用例のイメージが湧くと思います。この動画ではポテンシャルフィールドに対して最短経路を探索します。避難経路のシミュレーションを想定すると、例えばポテンシャル分布は商品棚のようなモノがある場所になります。求まった最短経路にそってマウスを動かすと、人(細胞状のオブジェクト)が商品棚の無いところを通って入口から出口に移動することになります。障害物によって通りにくくなった状態を含めてシミュレーションできるようになるでしょう。ロボットを動かす際の経路を求めるのも同様です。ポテンシャルの低い経路即ちモノが無い場所を認識して、その経路をに沿って目的方向へ移動させるのに活用できるでしょう。
ポテンシャルのような障害があった場合、「擾乱を伴う反復系」で自律したオブジェクトを作り、外部にポテンシャルフィールドがあるとする場合と、今回のように場の情報を擾乱と捉えるて主客未分の場合、どちらがシステムとして適しているかを検討しておきます。恐らく「主客未分」のほうが適切なシステムでしょう。自律したオブジェクトと障害物という系では、障害物を避けることによって生じるポイントの移動を再度オブジェクトにフィードバックすることが本筋です(先の「Boids(ボイド)・・・」の時のようにフィードバックせずに使っても違和感のない場合もありますが)。そうするともう一つ外側に新しくフィードバックが入ります。そうなると2重のフィードバックにありがちな不安定性の問題が現れるでしょう。最初からポテンシャルフィールドを系の中に取り込んでおくとその心配はありません。このためポテンシャルフィードを障害物とする場合は、主客未分の系のほうが適しているでしょう。主客未分といったような哲学的概念が今回のように具体的な構成に活用できるようになったのは、個人的には成果と思っています。
動画に至るまでの途中の状態を一つ示しておきます。
右側はマウスが中心にある場合で、線状のポイントがポテンシャル分布の底を選択し、マウス位置の周りに集まってきています。線状ポイントから13ポイントを選択してそこに青い球をアサインしたのが右図です。青い球はサイズが違っていますが、これは時間的に12ステップ重ねて表示しているためです。つまり13ポイントの位置の12ステップ分が重ねて表示しています。それぞれ移動しているのでサイズが違って見えているのです。そしてこの青い球だけに対してnoise TOPを適応すると(input0, input1共に入力します)、動画にある細胞状の形状が作れます。
コメント