Wonderfulで始めるAlternativa3D

初級編8. MovieClipMaterial

MovieClipMaterialはその名の通り、Flash APIのMovieClipを使用する事が出来るマテリアルです。

MovieClipMaterialクラス

alternativa.engine3d.materialsパッケージの中のクラスです。

インスタンス生成時に以下の引数を指定できます。
MovieClipMaterial(movieClip:MovieClip, textureWidth:uint, textureHeight:uint, clipRect:Rectangle = null, matrix:Matrix = null, smooth:Boolean = false, precision:Number = 10, fillColor:uint = 0, refreshRate:int = 1)

movieClip:MovieClip
Flash APIのMovieClipを指定します。

textureWidth:uint, textureHeight:uint
MovieClipMaterialも、内部では、ENTER_FRAMEごとに、MovieClipをBitmapDataにdraw(matrixを使用できる為、たぶんcopyでは無いと思います。)し、Texture化しています。textureWidth, textureHeighは、そのBitemapDataのサイズを指定します。
省略できない引数ですが、通常はMovieClip.width、MovieClip.heightで問題ありません。

clipRect
MovieClipをクリッピングする場合に、大きさをFlash APIのRectangle(flash.geom.Rectangle)を使用して指定します。なお、クリッピングする場合は、クリッピング幅、高さをtextureWidth, textureHeighに指定してください。(クリッピング幅、高さよりtextureWidth, textureHeighが大きい場合は、fillColorで塗りつぶされます。)

matrix
MovieClipをBitmapDataにdrawする際に使用するmatrixを Flash APIのMatrix(flash.geom.Matrix)を使用して指定します。

smooth:Boolean, precision:Number
TextureMaterialと同じ

FillColor
内部でBitmapData作成時に塗りつぶす指定する色です。alphaチャンネル込みの0x00000000で指定します。 (transparentは常にtrue)

refreshRate
MovieClipのリフレッシュレートを指定します。
1で、1フレームごとにTexture(BitmapData)に転写。
2で、2フレームごとに1回転写します。

使用例

以下はMovieClipMaterialを使用した利用例です。

 

loaderを使用して、外部から画像を読み込み使用する

loaderで読み込む画像を、MovieClipにネストしMovieClipMaterial化する事で、画像の読み込み後自動で表示する事もできます。もっとも無駄にリフレッシュしているので、パフォーマンス的にはあまり良い方法ではありません。

	//画像を読み込む。
	var context:LoaderContext = new LoaderContext();	
	var loader:Loader = new Loader();
	loader.load( new URLRequest("sample1-8-1/sample.jpg"),context);

	//MovieClipを作成します
	var mc:MovieClip=new MovieClip()
	mc.addChild(loader)
	// プリミティブを作成します
	var box:Box = new Box(300,300,300);

	//MovieClipMateriallを作成して張り付ける
	//なおloaderでは、読み込み完了するまで、
	//画像の大きさが取得できないので、先に入れておく
	var material:MovieClipMaterial=new MovieClipMaterial(mc,365,365,null,null,true,10,0xCCCCFF)
	box.cloneMaterialToAllSurfaces(material);
	template.scene.root.addChild(box);

このページのコンテンツには、Adobe Flash Player の最新バージョンが必要です。

Adobe Flash Player を取得


.src

Memo

Ver5.6.0では、MovieClipMaterialのクリッピングでバグが確認されています。
症状及び、取り合えずの対処方法は以下で書かれています。(英語)
http://forum.alternativaplatform.com/posts/list/1357.page#16315

 

 

 

Menu

入門編

初級編

7. Sprite3Dとは?

中級(インタラクティブ編)

1. インタラクティブなオブジェクト

2. 反応するモデルと反応しないモデル

3. サーフェースごとのマウスイベント

4. フェースごとのマウスイベント

中級(コントローラー編)

1. コントローラーとは?

2. コントローラーをカスタマイズ

3. 重力・衝突判定

4. LookAt

中級(カメラ&View編)

1. カメラZOOMとFOV

2. 複数のカメラとView

3. Viewのクリッピング

中級(メッシュ作成編)

1. 頂点を作成する

2. 面を作成する

3. 表面を作成する

4. UVを設定する

5. メッシュを作る

実践・応用編

1. 読み込んだ画像で絵本を作る

3. GoogleNexusOne

4. 3Dスロット

5. ルービックキューブ

実験編

1. 3dsの読み込みと操作

2. イラレで作ったpathを押し出す

3. 押し出しによるText3D

4. 自作のマテリアルクラスを作る

5. フラットシェーディングマテリアル

6. 衝突判定を利用した跳ね返り

7. Sprite3Dによるパーティクル表現

8. Sprite3Dでピクセルレンダー

9. Objectのグロー、ブラー