marching_ants.jpg


蟻の行進

 前回(「蟻を歩かせる」)作成した蟻(下図)を、ぞろぞろと行進させてみようと思います。



 上動画の通り、蟻の姿と歩き方のモデリングは終了しています。今回のテーマは、蟻が行列しながら行進している様子をモデリングすることです。


 蟻は何か食べ物を見つけると、それを巣に持ち帰る時に匂いを残すそうです。その匂いには、「こっちに食べ物があるよ」と言う情報が含まれているため、仲間の蟻達がそれに気が付くと、その匂いを追って食べ物に到達します。食べ物を持ち帰る時、2匹目以降の蟻も同じ匂いを残しながら巣に戻るので、その道筋の匂いはどんどん濃くなっていきます。
 更に、匂いは空気の流れによって拡散されて漂うので、何10匹も同じ道を行ったり来たりしている内に少しづつ補正され、巣と食べ物を結ぶ最短ルートに近づいて行きます。

 「蟻を歩かせる」でも少し触れましたが、とても単純なルールで生きている虫なのに、ちゃんと最適化を図りながら行動しているのですから、驚きですよね?

座標データの生成

 ここから、蟻が行列して更新する様子の座標データを生成して行きます。

 適切な曲線の上をぞろぞろと歩かせたいと思います。何10匹もの蟻の歩く座標を手動で作るのはしんどいので、スクリプトを使って自動計算させましょう。

 まず、白いキャンバスに適切な曲線を描きます(下図)。

ant_pos1.png

 赤い線が、蟻の通る道です。適切なグラフィックエディタなどを使って作図してください。

 ここに、乱数を使って蟻を適当に散らして配置します(下図)。

ant_pos2.png

 青●が蟻の位置、緑色の線が進む方向です。

 そうしたら、以下のルールで1匹1匹の蟻を歩かせます。

 このルールだと、蟻の歩く道筋(赤い曲線)は、自由に決めることができます。

 例えば、山手線みたいにループさせると、蟻はグルグルとその周りを回り続けます。簡単な文字であれば、文字に沿って歩かせることもできるかもしれません。ただし、上の様な簡単なルールですので、あまり複雑な図形になると、線と線のつなぎ目等で、行ったり来たりトラップされてしまったりしますので、適切に図形を調整して見てください。

 下図は蟻の通り道の作図例です。

ant_pos3.pngant_pos4.png


 蟻を使ってレンダリングする前に、簡単な図形を使って行進させてみた試行動画を以下に示します。



 上の動画で、蟻の数は32匹です。

 スクリプト(marching_ants_pos.xitr)では、青●の座標と、進む方向(緑線)のデータをテキストファイル(座標ファイル、marching_ants_pos.txt)に出力しています。後ほどレイトレーシングデータからこの座標ファイルを読み込んで、蟻のモデルを配置します。


完成データ

 完成したデータをリンクしておきます。

1) Xi-TRACEデータ marching_ants.xitr
2) マッピングデータ walking_ant_soil.jpg
3) 座標計算用スクリプト marching_ants_pos.xitr
4) 座標計算用図形 marching_ants_pos.xpic

 1)でレイトレーシングを実行します。レイトレーシングの実行には、蟻の座標を計算した座標ファイルが必要となります。2)は1)から読み込んで使用するマッピングデータです。1)と同じディレクトリに置いてください。
 3)4)で蟻の座標を計算して座標ファイルを作成しますので、レイトレーシングする前に3)を実行してください。

 完成した動画を以下にリンクしておきます。



 上の動画で、蟻の数は32匹です。
 蟻は小さいので、あまり引き過ぎると、ただの黒い点がうごめいているだけに見えてしまいます。ある程度蟻の形が判る様にアップにしてみたところ、この位の数がちょうど良いと思いました。
 最初はもっと、100匹近く歩かせてみたかったのですが、視界の範囲内に100匹も登場すると、もう、ゴチャゴチャし過ぎて逆にダメかと……。


home

download

gallery