2011-09-22 7 views
6

私は地形、雲、その他いくつかの気の利いたものを生成するためにパーリンノイズをうまく使用しています。しかし、私は現在、飛んでいる昆虫(特にホタル)のグループをアニメーション化しようとしています。そして、これにもPerlinノイズを使用するように提案されました。しかし、私は本当にこれについてどうやって行くのかは分かりません。動きのためのパーリンノイズ?

ノイズマップのでように与えられた私に発生した最初のもの:ホタル

  1. 割り当てる各ランダム初期位置、速度、角加速度。
  2. フレーム上で、方向ベクトルに沿ってフライの位置を進めます。
  3. 新しい場所のノイズマップを読み、それを使って角加速度を調整し、 をより軽いピクセルに向かって「回す」ようにします。
  4. 角加速度を他のハエの近くで再度調整し、局所的な最大値の周りにクラスタリングされないようにします。

しかし、これは、ハエが地図の端に達する場合、または単一点を周回するだけで回ってしまう場合をカバーしません。 2番目のケースは大したことではないかもしれませんが、地図のエッジとの衝突を回避するための信頼できる方法を確信しています。

提案?チュートリアルや論文(英語でどうぞ)?

答えて

6

ここでは、2Dパーリンノイズの非常に良いソースです。まったく同じ原則に従うことができますが、グラデーションの2Dグリッドを作成する代わりに、1Dグラデーションの配列を作成することができます。これを使用して特定の軸のノイズを作成することができます。

このレシピに従うだけで、他の軸ごとに同様のパーリンノイズ関数を作成することもできます。これらの動きを組み合わせると、あなたの手に見事なノイズがあるはずです。 (パーリンノイズ関数がグローバルに単調であるので、また、あなたのハエしませんロケット狂気の距離を切った、ランダムaccellerationsや速度など、これらのノイズ関数を使用することができます。)

http://webstaff.itn.liu.se/~stegu/TNM022-2005/perlinnoiselinks/perlin-noise-math-faq.html

をあなたが興味なら他のタイプの動き、私はブラウン運動をお勧めします。ダストパーティクルがあなたの部屋の周りに浮かんでいるときに表示されるのと同じ種類の動きです。この記事では最後にもっと興味深い数学がありますが、Matlabのすべての熟練者であれば、最初の数組の説明はかなり理解しやすいはずです。そうでない場合は、funcitonsをGoogleで検索し、環境に対応するネイティブのものを見つけてください(または自分で作成してください)。)これは、もう少し現実的で、かつノイズ

http://lben.epfl.ch/files/content/sites/lben/files/users/179705/Simulating%20Brownian%20Motion.pdf

飛んでハッピーをパーリンより計算速度が大幅に向上します!

+0

年老いた質問に答えるのは厄介な瞬間です。 – Peaches491

+0

それは良い答えです。私がやり遂げたことよりも優れており、将来的には便利になるでしょう。ありがとう。 –

1

おそらくあなたはboidsを探していますか?

Wikipedia page

それはあなたが "飛ぶに軽い行動で何をしようとしているとして、多分あなたは、アトラクタまたはリパルサを生成するノイズを使用することができ、オリジナルのコンセプトでパーリンノイズを備えていません。

PS:上にリンクされたページには、Firefly algorithmへの関連リンクがあります。おそらくそれに興味がありますか?

+0

私はホタルのアルゴリズムを見ましたが(簡単にグーグルグーグルにするように名前が付けられました)、少しホタルに特化したものを探していました。私はboidsを見ます。 –

+0

衝突を避けたい場合は、鳥や魚など、どんな群れのシミュレーションをしても本当にクールです。混乱していると感じるもの、つまりすべての要素が統一された方向に向くわけではない場合、「凝集力」の影響を無効にすることができます。 – jv42

関連する問題