Alternativa3Dには、プリミティブパッケージが用意されており、これらを使うと非常に簡単にメッシュを作成することができます。

しかし、これらのクラスでは、複雑なメッシュを作ることが出きません。そこでプリミティブを利用せず、自由なメッシュを作成したいときは、createVertex, createFace, createSurfaceを利用します。

プリミティブに関する記事は、Alternativa3Dを試してみる Part.02 : PrimitiveとMaterialが詳しいです。

createVertex

まず始めにcreateVertexを利用してメッシュの頂点を作成します。

次の例では、頂点を4つ作成しています。



var mesh:Mesh = new Mesh();
 
mesh.createVertex(0, 0, 0, "v1");
mesh.createVertex(100, 0, 0, "v2");
mesh.createVertex(100, 100, 0, "v3");
mesh.createVertex(0, 100, 0, "v4");

第4引数に、その頂点を示す固有のIDを割り振ります。AS Docsではid:Object = nullと示されています。このIDは、後に頂点へアクセスするときに利用します。

createFace

頂点情報を作成したら、その頂点をひとつのFaceとして集約します。



mesh.createFace(["v1", "v2", "v3", "v4"], "f0");

第一引数に、頂点情報の配列を渡します。この頂点情報とは、先ほど createVertex で割り振ったIDです。createVertexと同じく、このFaceにも固有のIDを割り振る必要があります。フェイスへのアクセスにIDが必要なのもまったく同じことです。

もし、マテリアルにTextureMaterialを利用する場合は、UVマッピングをする必要があります。その場合は、【Alternativa3D】setUVsToFaceとTextureMaterialでビットマップ画像をテクスチャとして利用を参照してください。

createSurface

1つ、または、複数のフェイスを1つのサーフェスとして更に集約します。



mesh.createSurface(["f0"], "s0");

フェイスを作成した時と同じく、第一引数にフェイス情報の配列を、第二引数には、このサーフェスのIDを割り振ります。

setMaterialToSurface

サーフェイスを作成したら サーフェスにマテリアルを渡しましょう。Mesh#setMaterialToSurfaceを利用します。



mesh.setMaterialToSurface(new FillMaterial(0xffffff), "s0");

第一引数にマテリアルを、第二引数にマテリアルを適応するサーフェスのIDを渡します。

これらを利用した簡単なデモを作成しました。あわせてご覧ください。createVertex, createFace, createSurface | wonderfl build flash online

前の記事
次の記事