Sunday, July 20, 2008
AE / imageCollide
PING イメージなど、透明部分のある(アルファチャンネル)イメージの、不透明な部分が重なった時に「true」を返します。ファンクションが有効な最大イメージサイズは 80 x 80。
imageCollide(イメージ名1, イメージ名2, しきい値ピクセル数)
imageCollide(the name of image 1, the name of image 2, threshold)
パラメータ 「threshold」
日本語にすると限界点とか、しきい値という言葉になりますが、イメージの半透明な影とか滲みの部分が重なった時にでも、「true」を返えさない範囲が設定できます。別な言葉で言えば、実際のイメージの実質的な部分の衝突で、「true」を返す設定にできます。どういう数値にすればその範囲が定められるのか、サンプル作成時点では不明でしたが、とにかく設定すれば機能するようです。ドキュメントによると、「threshold」 の設定は 0 から 255 となっていますが。
サンプル2 のイメージサイズは、50x50 ピクセル。 完全に不透明な円の直径は 26 ピクセルなので、「threshold」 を 12 としてみた処、範囲が遠過ぎてあまり効果が見えませんでした。少しづつ数値を上げて、最終的に 90 にしたところ完全な不透明部分の衝突で、trueが返されました。
-- カード内のスクリプト(サンプル2)
on mouseMove
if imageCollide(the name of img 1,the name of img 2,90) then
put "Collide!" into fld "collide"
else
put "" into fld "collide"
end if
end mouseMove
始めにAnimation Engineを開いて、start using stack "animationEngine"
サンプルスタックは、下記をメッセージボックスにコピペしてリターンキーを
go stack url "http://homepage.mac.com/kenjikojima/jrevnote/imageCollide.rev"
false
true
false
パラメータ threshold 設定
true
パラメータ threshold 設定
PING イメージ