蟻をモデリングして、歩かせてみたいと思います。
まずは、蟻をモデリングしていきます。
そう、蟻は小さいものだから、少し引いて、ちょこまかと歩き回っている様子をレイトレーシングする場合、細かく作り込んでも、多分、小さすぎて見えません。加えて、蟻が登場するシーンを思い浮かべ、沢山の蟻が行列しているところとか、餌に群がる様子とかをモデリングしようとすると、沢山の蟻をインスタンスする必要に迫られます。
それならば、デフォルメすることで物体数を絞り、データ量と演算速度を最適化することの方が利点が大きいです。
次は蟻の歩き方をモデリングしてみましょう。
調べてみたところ、6本足の虫たちは、3本づつが対になって歩くらしいです(↓)。
上図の様に、茶色の足3本と、深緑色の足3本が互い違いに動きます。3本づつ2組で、各々、往復運動するので、三角関数を使って動かしてみます。
上述の通り、2組(4個)の変数を生成、cosで前後、sinで上下に足を動かす動作に充てます。
足を後→前に動かす間は足を上げ、前→後ろに動かす間は足を下げて地面に足を付けているので、sin<0の範囲は、0にクリップします。
横軸に時間の経過(0≦t≦1)、縦軸に1)2)の変数をプロットすると、以下図の様になります。
上のt=0〜1間で一歩分なので、後はこの繰り返しとなります。
すごく単純な動きですが、この変数値に従って足を前後・上下に動かしてみると、ちゃんと歩いている様な動きになってくれました。
どのような動きになったか?は、ページの最後にリンクした動画でご確認ください。
コンピュータのプログラムが間違っていることを「バグ(bug;虫の英語が語源)」と言います。
でも、虫って、あんな小さい体の中に、まともな「脳」なんて持っていないんですよ。人間で言う所の「(反射)神経」だけで生きているらしいです。
「Aを感知したらBという行動をとる」という幾千もの「神経」が組み合わさって、彼らは生命を維持しています。これ、コンピュータプログラムに通じるものがあるでしょ?
そういう意味ではね、虫たちは生命としてはとても単純だけど、コンピュータプログラムと比べてみると、ものすごく高度で完全なプログラムなのです。その子たちを捉まえて、人間の作ったぼろいプログラムのミスを「バグ」なんて呼ぶのは、ちょっと失礼極まりない話ですね。
完成したデータをリンクしておきます。
1) | Xi-TRACEデータ | walking_ant.xitr |
2) | マッピングデータ | walking_ant_soil.jpg |
1)で、レイトレーシングを実行します。2)は、地面のマッピングデータです。レイトレーシングする時に読み込んで使うので、同じディレクトリに置いてください。
完成した動画を以下にリンクしておきます。
まずは一匹。すごくデフォルメしたモデリングなので、今回の様なアップで観てしまうと、色々と粗が目立ちますでしょう?今回は動きに注目してご覧ください。