メタボールにチャレンジしてみたよ

Tweenerを使って動きを作っていくとシャキーンという感じの動きを簡単に作れるのですが、
慣れてくると少し有機的な動きを取り入れてみたいという衝動に駆られます。

ということで、今回は「メタボール」に挑戦してみました。

メタボールって言葉自体はあまり馴染みがないかもしれませんが、ボールが滑らかにくっついたり離れたりするデモを見た事ある人は結構いるのではないかと思います。
あのレンダリング手法をメタボールと言います。

今回チャレンジしたのは2Dメタボールです。3Dは実装が大変そうなのでやめました。
参考にしたのは、mysketch.blog 炎の作成(1):メタボールの作成という記事です。
というか実装の方針は、ほとんどそのままです。

作成したサンプルではマウスを追跡するボールを時間差で動かしています。ボール自体は中心から外側に向かってアルファ値を滑らかに変化させており、このボールをメタボールとして描画しています。
描画の方法はいたって単純で、アルファが閾値以下の場合は白、閾値以上の場合は黒に色の置き換えをするだけです。この置き換えは、BitmapDataのpaletteMap()で実現できます。

今回は、メタボールの基本的な実装方法を確認しただけで終わりましたが次回以降では、メタボールを使って少し凝った表現を何か作ってみたいと思います。

ソースコード