Stage3D対応のAway3D 4.0 – ダイナミックシャドー

Flash Player 11のStage3Dに対応した3Dライブラリ「Away3D ver 4」を試してみました。これはAway3Dに標準搭載されている影の表現を使ったデモです。

  • demo (Require Flash Player 11.1)
  • source (with Away3D 4.0 alpha)

ダイナミックシャドー(動的な影)については、3年前に「Papervision3D演出サンプルNo.05:Shadow Cubes」という記事でPapervision3Dを用いて試したことがありました。その時はリアルタイムな影の計算は処理負荷のコストが高く、実装方法もアクロバティックなテクニックが必要だったため、案件で使いづらいという印象を持ちました。

デモを見ればお分かりのとおり、今年になってFlash PlayerがフルにGPUに対応したことで、処理負荷の点は解決しました。では実装方法の難易度についてですが、Away3D 4.0 alphaには素晴らしいことにダイナミックシャドーが標準搭載されていて、コードもシンプルです。実際のコードを紹介すると次のとおり。

var light = new DirectionalLight();
scene.addChild(light);

var material = new ColorMaterial(0xFFFFFF);
material.shadowMethod = new SoftShadowMapMethod(light); // ←ココ(1)
material.lights = [light]; // ←ココ(2)

var plane = new Plane(material);
plane.castsShadows = true; // ←ココ(3)
scene.addChild(plane);

ポイントとしては(1)で影の質感を設定、(2)で影響を受ける照明を設定(複数の指定が可能)、(3)で3Dオブジェに対して影の影響を受けるかどうかを設定ということになります。

このブログではStage3D対応の3DライブラリとしてAlternativa3D ver8を主に紹介してきましたが、ここに来てAway3Dが実はかなり優れていることに気づきました。主にいいと思ったのは次の点においてです。

  • Flash界隈で人気の3DライブラリPapervision3Dと似たAPI (Away3DはPapervision3Dの派生ライブラリ)
  • プリミティブオブジェクトやマテリアルの種類が豊富
  • フィルターやフォグ、ダイナミックシャドー、3Dテキストなど機能が豊富
  • 物理演算やパーティクルなどサードパーティのライブラリも強力
  • Alternativa3Dに比べてシンプルにコードを記述できる
  • オープンソースである

この他にもオレンジさんの勉強会の資料Flashup 第12回発表資料 「最新のFlash3Dを使ってコンテンツを作ってみようAway3D入門講座」にAway3Dの機能が詳しく掲載されています。

処理パフォーマンスはAlternativa3DやFlare3Dのほうが若干優れている印象ですが、GPU支援を受けるのであれば処理パフォーマンスは気にならないかなとも思いました。

Away3Dについては作り貯めたデモが幾つかあるので、数回に分けてブログで紹介したいと思います。

投稿者 : 池田 泰延

BookMark

ブックマークはこちらからどうぞ。

このエントリーをはてなブックマークに追加