Adobe Flash非公式テクニカルノート 次期Starling 1.6とSprite3D
Gamuaのblogの2014年10月21日付記事「Sprite3D and What's Next」で、次期Starlingフレームワークについて、とくに新しいSprite3Dの説明がなされました。その中身をかいつまんでご紹介します。 01 Sprite3DStarlingフレームワークは、つぎの正規リリースとなるバージョン1.6に向けて開発が進められています。新バージョンには、これまでどおりバグの修正や最適化が加えられます。さらに、これまで要望の多かった新たな機能が備わります。 それがSprite3Dクラスです。このクラスを用いれば、あらゆる表示オブジェクトを3次元座標空間で動かすことができます。つまり、真の遠近法が使えることを意味します。それは特別の効果というだけでなく、Starlingがこれまでできなかった新しい考え方が採入れられるのです。 実際に、この機能を用いてできることを紹介するビデオが用意されました(ビデオ001)。簡単な神経衰弱のゲームに、見栄えのする3次元の効果を加えています。 ビデオ001■Starling - Sprite3D(英語)この機能はすでに直近の開発版には備わっています。いくつか説明を補いましょう。 まず、なぜ新たなクラスとして加えたのかということです。Flash 10がそうだったように、これまでのDisplayObjectに3次元のプロパティを加えることも考えられました。 けれど、核となるStarlingのエンジンは2次元なのです。これまでユーザーが書いてきたコードも2次元でしょう。AGALコードで独自の表示オブジェクトをつくっても同じです。3次元の論理にもとづいて別のコンテナに分けることで、古いコードを確実に動かせます。さらに大切なのは、新たなコードがこれまでより複雑にならないということです。オブジェクトはすべて単純で簡単な2次元のままだからです。違うのは、ただSprite3Dの助けを借りて、3次元空間の中を動かすことができるということだけです。 もちろん、平面のオブジェクトしか使えないという訳ではありません。たとえば、6つのSprite3Dの子オブジェクトをひとつの親Sprite3Dオブジェクトにまとめて立方体にすることもできます(図001)。 図001■6つの子Sprite3Dオブジェクトをひとつの親Sprite3Dオブジェクトに入れてつくった立方体 それでも、Starlingは3次元のエンジンではありません。そのため、つぎのようないくつかの制約があります。
02 他の変更Starling 1.6は、他にも内部的な強化が施されています。 たとえば、最近のFlash / AIR 15では、RenderTexturesを使うための制限が減りました。そのため、Starlingはフィルタを入れ子にできるようになります。たとえば、フィルタを全画面に掛けたシーンの中に、フィルタを加えたオブジェクトが置けます。 さらにこの強化により、RenderTexturesが占め続けるメモリを半分に減らせました。なぜなら、二重にバッファをもたずに済むからです。それはつまり、そのようなテクスチャへの描画が速くなることを意味します(ドローコールがひとつ減ります)。 その他の強化としては、AssetManagerが複数素材を平行して読込めるようになり、ロード時間が大幅に減ります。また、改善されたButtonクラスには、オーバーと非アクティブの状態が加わりました。より詳しい変更点は、新バージョンが公開される4ないし6週間後に明らかになります。 03 2015年ロードマップ本リリースの後は、つぎのような機能が考えられています。
最後の機能は、StarlingのAPIの変更がともなうかもしれません。その場合には、つぎのメジャーバージョンStarling 2.0で備わることになるでしょう。これは、ユーザーがレンダラを独自に書き、カスタム表示オブジェクトも含めて、効率的にバッチできる機能です。 作成者: 野中文雄 Copyright © 2001-2014 Fumio Nonaka. All rights reserved. |
|||||