2ntブログ
短期合宿
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
ActionScript DisplacementMapFilterでおっぱい失敗
動的におっぱい揉みたくて挑戦
結論から言うと重くて失敗

oppai.jpg


やってる事は、
・手が動いたら、
   ・手の影をGradientGlowFilterで生成
   ・その影を元にDisplacementMap計算
   ・おっぱいに適用
   ・手の影が変形後のおっぱいからはみ出さないように処理

上のFlashのように手の形が固定なら、上記手順の結構な箇所が省けるんですが
そのうち手の形も動的に変化させたいので、毎フレーム計算。
頑張って最初よりは軽くなったんだけど、両胸揉むのは厳しすぎると思ってここでギブアップ

影画像からDisplacementMap計算する際に参考にさせていただいたサイト
FACEs:某ゲームのようなエフェクト
とにかく二つ目のコードが神


ActionScript SpriteにGraphicsでいっぱい描画すると重くなる
取得したマウス座標をただ直線で結ぶだけのコードが
グルグルと線を描いてると、何故かどんどん重くなってカクカクになる。
//抜粋-----------------------------------------------------
private var dragStart:Point = null;

private function onMouseDown( e: MouseEvent ): void{
if( dragStart == null ){
dragStart = new Point( mouseX, mouseY );
}
}
private function onMouseMove( e: MouseEvent ): void{
if( dragStart ){

//draw
var g:Graphics = sp.graphics;
g.lineStyle( 4, 0x661111 );
g.moveTo( dragStart.x, dragStart.y );
g.lineTo( mouseX, mouseY );

dragStart.x = mouseX;
dragStart.y = mouseY;
}

}
private function onMouseUp( e: MouseEvent ): void{
dragStart = null;
}

//ここまで---------------------------------------------------------

原因分からず困る。
試しにgraphics.clear()を呼ぶと最初の軽い状態に戻るんで、SpriteかGraphics。
で、気が付く。
Spriteを拡大縮小回転しても綺麗なのは内部で描画したベクターのObject持ってるから。
それが多くなるのが原因?もしかして追加描画するたびに全ベクターデータを再描画している?
(結局そうなのかどうなのかは分からず)

リファレンスを探すとSprite.cacheAsBitmapと言うそれっぽい物があるんで、
これをtrueで解決!と思ったのにやっぱり変わらず・・・
Google先生で調べると、「変化が無かった時にキャッシュを使う」だけらしい。

結局上のコードはGraphicsで描いてはbmp.bitmapData.draw()することに。

//抜粋-----------------------------------------------------
private function onMouseMove( e: MouseEvent ): void{
if( dragStart ){

//draw
var tmpSp:Sprite = new Sprite();
var g:Graphics = tmpSp.graphics;
g.clear();
g.lineStyle( 4, 0x661111 );
g.moveTo( dragStart.x, dragStart.y );
g.lineTo( mouseX, mouseY );

dragStart.x = mouseX;
dragStart.y = mouseY;

bmp.bitmapData.draw( tmpSp );
}

}
//ここまで-----------------------------------------------------

解決したけど、なんかアホな事をしてる気がしてすっきりしない。
ActionScript DisplacementMap
無料FLASH作成ツールのFlexばっかり触ってます。

ポイントに重み付け、判定処理を色々いじって動作を少し軽く変更。一段落
x_ray.jpg


DisplacementMapが使えるとの事なんで、何か面白い事が出来ないかなと思って膣内カメラ。
キャラもちょっと動かしたかったんですが、メインのカメラ処理書いたら作るのに飽きちゃいました…InnerCamera.jpg

画面のどっかクリックで操作開始。
[A]で奥に、[Z]で抜く
子宮内ではカーソルキーでアングル変更