Adobe Flash非公式テクニカルノート Starlingフレームワーク1.5の新しい機能
Starlingフレームワーク1.5が正規に公開されました。多くの最適化やバグ修正、および新たな機能が加えられています。blog記事「Starling 1.5」にもとづいて、おもな変更点をご紹介しましょう。 01 プロファイルの自動選択Adobeは先にStage3Dの新たなプロファイルとしてContext3DProfile.BASELINE_EXTENDEDを加えました。これにより、4096×4096ピクセルのテクスチャが使えます。また、つぎのAIR 14には、新たなプロファイルとしてStandardが加わります。他の機能と併せて、より複雑なAGALプログラミングができるようになります。 これらの新たなプロファイルは、柔軟性をより高めます。しかしそのために、デバイスごとに正しいプロファイルを選ぶことが難しくなりました。そこで、Starlingにプロファイルの新しい選び方が用意されました。 ひとつは、つぎのようにStarling()コンストラクタの第6引数にプロファイルの配列を渡すやり方です。すると、お使いのハードウェアで動く最初のプロファイルが選ばれます。
もうひとつは、コンストラクタの第6引数に文字列"auto"を渡すことです。そうすれば、使えるプロファイルの中から最適なものが選ばれます。
その後、Starlingが初期化できたら、使われているプロファイルはStarling.profileプロパティで調べられます。そうすれば、そのプロファイルにゲームの処理が合わせられるのです。たとえば、プロファイルが最高なら高品質のHDテクスチャもロードできます。 デフォルトは、安全のため"baselineConstrained"としています。また、複数のプロファイルをサポートするには、その分のテストが求められるでしょう。 02 可能な場合にはRectangleTextureオブジェクトを自動的に用いる内部的な設計上の理由により、デフォルトの2の累乗サイズのStage3Dテクスチャは、実際には使わなくてもミップマップ用のメモリを割当てます。これでは、大切なテクスチャメモリの1/3がつねに費やされてしまうことになって無駄です。 けれど、"baseline"プロファイルからは、Stage3Dがレクタングルテクスチャをサポートします。その大きな利点は、2の累乗の縦横サイズでなくて構わないことです。さらによいことに、ミップマップメモリも割当てません。 [注] ここで述べているのは、Starlingのテクスチャのクラスの話ではありません。テクスチャがGPUにアップロードされるとき内部的に用いられるクラスのことです。すべては内部的に行われます。 そこで、StarlingはできるかぎりRectangleTextureオブジェクトをデフォルトとします。この機能を用いるには、つぎのことを行います。
これらにより、Starlingは自動的にレクタングルテクスチャを用い、テクスチャに費やすメモリが33%減らせます。 03 回転したサブテクスチャのサポートを追加TexturePackerのユーザーには、StarlingやSparrowの形式で書出すとき、アトラス内で回転させて、効率的にテクスチャをつくる手があります。Starling 1.5ではこのテクスチャの回転がサポートされます。 これにより、アトラスの数を減らして、さらにメモリを節約することもできるでしょう。 図001■サブテクスチャを回転するとによりサイズが減らせる 04 touchGroupプロパティの追加DisplayObjectContainerインスタンスは、新たにtouchGroupというプロパティを備えました。これは、長く要望されていたプロパティで、ようやく正規に加えることができました。有効に定めると、タッチ操作できるひとつのオブジェクトのように扱えます。 これは、FlashのDisplayObject.mouseChildrenプロパティと似た機能です。つまり、DisplayObjectContainerインスタンスをタッチイベントの対象にできるのです。 05 起動時間が大幅に速まったこれまで、Starlingは初期化されるとき、すべてのAGALプログラムを一度につくっていました。けれど、多くのゲームではそれらの一部しか使いません。時間と資源が無駄になっていました。 そこで、AGALプログラムは、初めて使われる前に動的につくるようにました。これで、Starlingが起ち上がるのに時間がかからなくなりました(Starlingユーザーのajwfrostから指摘されたことです)。 06 細かな改善
07 ただ単に動くモバイルでは、開発用デバイスでは動くにもかかわらず、ある特定のデバイスファミリーだけで起こることにたびたび悩まされます。Starling 1.5では、それらの多くを解決しています。
08 更新履歴詳しい更新の履歴についてはGitHub「Starling: Changelog」をご参照ください。 作成者: 野中文雄 Copyright © 2001-2014 Fumio Nonaka. All rights reserved. |
|||||||