Flash CS3 ドキュメンテーション |
|||
| ActionScript 3.0 のプログラミング > ビットマップの操作 > ノイズ関数によるテクスチャの作成 | |||
ビットマップの外観を変えるには、noise() メソッドまたは perlinNoise() メソッドのいずれかを使用してノイズ効果を適用します。ノイズ効果とは、チューニングされていないテレビ画面に表示されるノイズのようなものです。
ビットマップにノイズ効果を適用するには、noise() メソッドを使用します。このメソッドは、ビットマップイメージの指定領域内のピクセルに対し、ランダムカラー値を適用します。
このメソッドは、次の 5 つのパラメータを受け入れます。
randomSeed (int) : パターンを決定するランダムシード数です。その名に反し、同じ数が渡されると実際には同じ結果が生成されます。真にランダムな結果を得るには、Math.random() メソッドを使用し、このパラメータに乱数を渡します。low (uint) : このパラメータは、0 から 255 までの各ピクセルに対して生成される最小値を示します。デフォルト値は 0 です。この値を低く設定すると暗いノイズパターンになり、高い値に設定すると明るいパターンになります。high (uint) : このパラメータは、0 から 255 までの各ピクセルに対して生成される最高値を示します。デフォルト値は 255 です。この値を低く設定すると暗いノイズパターンになり、高い値に設定すると明るいパターンになります。channelOptions (uint) : このパラメータは、ノイズパターンを適用する、ビットマップオブジェクトのカラーチャンネルを指定します。値は、4 つの ARGB カラーチャンネル値の任意の組み合わせです。デフォルト値は 7 です。grayScale (ブール値) : true に設定されると、ビットマップピクセルに randomSeed 値が適用され、イメージからすべてのカラーが効果的にウォッシュアウトされます。このパラメータはアルファチャンネルに影響しません。デフォルト値は false です。次の例では、ビットマップイメージを作成し、青いノイズパターンを適用します。
import flash.display.Bitmap; import flash.display.BitmapData; var myBitmap:BitmapData = new BitmapData(250, 250,false, 0xff000000); myBitmap.noise(500, 0, 255, BitmapDataChannel.BLUE,false); var image:Bitmap = new Bitmap(myBitmap); addChild(image);
より有機的な外観のテクスチャを作成するには、perlinNoise() メソッドを使用します。perlinNoise() メソッドは、煙、雲、水、火、あるいは爆発といった効果に最適な、リアルで有機的なテクスチャを生成します。
perlinNoise() メソッドはアルゴリズムによって生成されるので、ビットマップベースのテクスチャよりもメモリ消費量を抑えられます。ただし、プロセッサの使用に影響を与えるので、Flash コンテンツを低速化し、特に古いコンピュータではフレームレートよりも画面の再描画速度が遅くなります。これは主に、Perlin ノイズアルゴリズムの処理に必要な浮動小数点計算によるものです。
このメソッドは、次の 9 つのパラメータを受け入れます。最初の 6 つのパラメータは必須です。
baseX (数値) : 作成されるパターンの x (サイズ) 値を指定します。baseY (数値) : 作成されるパターンの y (サイズ) 値を指定します。numOctaves (unit) : このノイズを作成するために組み合わせるオクターブ (つまり個々のノイズ関数) の数です。オクターブ数を多くすると、よりきめ細かいイメージを作成できますが、処理時間も長くなります。randomSeed (int) : ランダムシードの数値の働きは、noise() 関数での働きと同じです。真にランダムな結果を得るには、Math.random() メソッドを使用し、このパラメータに乱数を渡します。stitch (ブール値) : true に設定されると、このメソッドはイメージのトランジションエッジをスティッチ (またはスムージング) してシームレスなテクスチャを作成し、ビットマップ塗りとして分割します。fractalNoise (ブール値) : このパラメータは、メソッドによって生成されたグラデーションのエッジに関連するものです。true に設定されていると、効果のエッジをスムージングするフラクタルノイズを生成します。false に設定すると、乱流を生成します。乱流があるイメージにはグラデーションに視覚的な不連続性があるので、炎や海の波のようなシャープな視覚効果に適している場合があります。channelOptions (uint) : channelOptions パラメータの働きは、noise() メソッドでの働きと同じです。ノイズパターンが適用される、ビットマップのカラーチャンネルを指定します。値は、4 つの ARGB カラーチャンネル値の任意の組み合わせです。デフォルト値は 7 です。grayScale (ブール値) : grayScale パラメータの働きは、noise() メソッドでの働きと同じです。true に設定されていると、ビットマップピクセルに randomSeed 値が適用され、イメージからすべての色が効果的にウォッシュアウトされます。デフォルト値は false です。offsets (配列) : 各オクターブの x オフセットと y オフセットに対応するポイントの配列です。オフセット値を操作することで、イメージのレイヤーをスムーズにスクロールできます。オフセット配列内の各ポイントは、特定のオクターブノイズ関数に影響を与えます。デフォルト値は null です。次の例では、perlinNoise() メソッドを呼び出して緑と青の雲効果を生成する、150 x 150 ピクセルの BitmapData オブジェクトを作成します。
import flash.display.Bitmap; import flash.display.BitmapData; var myBitmapDataObject:BitmapData = new BitmapData(150, 150, false, 0x00FF0000); var seed:Number = Math.floor(Math.random() * 100); var channels:uint = BitmapDataChannel.GREEN | BitmapDataChannel.BLUE myBitmapDataObject.perlinNoise(100, 80, 6, seed, false, true, channels, false, null); var myBitmap:Bitmap = new Bitmap(myBitmapDataObject); addChild(myBitmap);
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000248.html