スポンサーサイト
2008.09.08 | |
ActionScript勉強中。
DisplacementMapFilterにパーリンノイズ画像を設定するよくあるサンプルです。
速度と変化量を設定して表示ボタンを押すと、左側にフィルタを適用した画像、右側にフィルタに使用している画像が表示されます。
やってることは、まずパーリンノイズのオクターブ毎に変化スピードを決めといて、フレーム毎にオフセットをそのぶん変化させてパーリンノイズ画像を作って、DisplacementMapFilterにセットするというカンジです。
以下が上記サンプルのActionScriptのソースです。
image_mcというのがフィルタを適用する元画像(ムービークリップ)です。
import flash.display.BitmapData;
import flash.geom.Point;
import flash.geom.Matrix;
import flash.filters.DisplacementMapFilter;
// ノイズ関数の数
var octaveCnt:Number = 3;
// 乱数シード
var rndSeed:Number = Math.floor(Math.random() * 65535);
// マスク画像オフセット
var maskOffsetX:Number = image_mc._width + 10;
var maskOffsetY:Number = 0;
// パーリンノイズのオフセット値の配列
var offsetArray:Array = new Array();
// パーリンノイズの変化量の配列
var speedArray:Array = new Array();
// 変化スピード
var speed:Number;
// ゆがみの拡大率
var scale:Number;
// フィルター画像表示用ムービークリップ
var map_mc:MovieClip;
// パーリンノイズ画像
var perlinNoiseBitmap:BitmapData = new BitmapData(image_mc._width, image_mc._height);
// 表示ボタン
test_btn.onRelease = doInit;
// 初期表示
doInit();
// 表示の初期化をします。
function doInit() {
// 速度と変化量の設定
speed = Number(speed_txt.text);
scale = Number(var_txt.text);
// マップ用ムービークリップの設定
if (map_mc) {
map_mc.removeMovieClip();
}
map_mc = _root.createEmptyMovieClip("map_mc", _root.getNextHighestDepth());
map_mc._x = image_mc._x + maskOffsetX;
map_mc._y = image_mc._y + maskOffsetY;
// 変化方向の初期化
initOffsetArray();
}
// オフセット配列を変化速度配列の初期化
function initOffsetArray() {
// 関数の数だけ必要
for (var i:Number = 0; i < octaveCnt; i++) {
offsetArray[i] = new Point(0, 0);
// 乱数で変化する向きを決定
speedArray[i] = new Point(speed * (Math.floor(Math.random() * 2) == 0 ? -1 : 1),
speed * (Math.floor(Math.random() * 2) == 0 ? -1 : 1));
}
}
function onEnterFrame() {
// オフセット位置の変更
for (var i:Number = 0; i < octaveCnt; i++) {
offsetArray[i].x += speedArray[i].x;
offsetArray[i].y += speedArray[i].y;
}
// パーリンノイズ画像生成
perlinNoiseBitmap.perlinNoise(image_mc._width,
image_mc._height,
octaveCnt,
rndSeed,
false,
true,
1,
false,
offsetArray);
// 歪みフィルターを作成
var filter:DisplacementMapFilter
= new DisplacementMapFilter(perlinNoiseBitmap,
new Point(0, 0),
1,
1,
scale,
scale);
image_mc.filters = [filter];
// パーリンノイズ表示用ムービークリップに画像をセットアップ
map_mc.attachBitmap(perlinNoiseBitmap, 1);
}
2007.03.10 | | Comments(15) | Trackback(0) | Flash/ActionScript
素敵な時間をくださるなら日額10万円以上の謝礼でも十分喜んでおられます
2008-08-01 金 17:17:34 | URL | エロ #t0u7/3A. [ 編集]
ガチです!奇跡的少女と生SEX
2008-08-07 木 20:06:50 | URL | エロ #QA/MW0wU [ 編集]
愛あるメールをくださる方には日額30万円
2008-08-10 日 15:28:17 | URL | 在宅バイト #n3Jezd0k [ 編集]
セレブ限定出張ホストサービス
2008-08-13 水 16:05:35 | URL | エロ #U6OV4.mc [ 編集]
1●歳の真白なココロに刻まれたレイプの記憶
2008-08-14 木 14:04:10 | URL | 無料動画 #J8N0m4cc [ 編集]
一般男性との時間に憧れるちょっと勝気な彼女達
2008-08-19 火 13:03:47 | URL | 不倫 #lFcxmI42 [ 編集]
犯罪確定級の動画配信情報
2008-08-28 木 20:58:33 | URL | エロ #T5N..VCk [ 編集]
稀に見る高額交際お申し込み
2008-08-31 日 15:51:33 | URL | エロ #U.OP0Cco [ 編集]
モテる度を採点中
2008-09-01 月 15:49:53 | URL | モテる #/Lk3Q3EI [ 編集]
年収1億を超える女性様達
2008-09-02 火 15:11:04 | URL | 熟女 #6Sbij0U. [ 編集]
彼氏のよりおっきーとの大絶叫
2008-09-04 木 13:35:36 | URL | 女子高生 #r70j5Z8E [ 編集]
新感覚な性感
2008-09-05 金 13:46:37 | URL | おまんこ #m5G0kfwg [ 編集]
ピュアな一面を持つセレブ女性様
2008-09-06 土 13:05:50 | URL | 不倫 #Ipz88ky. [ 編集]
お家でいるだけで日給10万円
2008-09-07 日 13:26:55 | URL | 在宅バイト #5Q.aD8wk [ 編集]
今だけ無料診断受付中
2008-09-08 月 15:05:50 | URL | パーティー #.GuasAZY [ 編集]
« | HOME | »
Author:HundredthMonkey
プログラマ。