
Wonderfulで始めるAlternativa3D
MovieClipMaterialはその名の通り、Flash APIのMovieClipを使用する事が出来るマテリアルです。
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で読み込む画像を、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);
Ver5.6.0では、MovieClipMaterialのクリッピングでバグが確認されています。
症状及び、取り合えずの対処方法は以下で書かれています。(英語)
http://forum.alternativaplatform.com/posts/list/1357.page#16315
8. MovieClipMaterial
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のグロー、ブラー