Adobe Flash非公式テクニカルノート Starlingフレームワーク1.4の新しい機能
2013年9月23日にStarlingフレームワーク1.4が公開されました。パフォーマンスの向上のほか。そのおもな内容を9月24日づけのblog記事「Starling 1.4」にもとづいてご紹介します。 01 概要Starlingはこのリリース1.4でさらに磨きがかかりました。さまざまな手が加えられて、ゲームなどの処理はより速く、安定的になります。しかも、コードは何ひとつ書替えずに済みます。また、新しいAIRの機能もすべて対応しています。たとえば、テクスチャの4096×4096ピクセルのサポートやRectangleTextureクラス、16ビットテクスチャといった新しいオプション、あるいはAIR 3.9から可能になるiOSのバックグラウンドの実行などです。 02 パフォーマンスの向上Starlingフレームワークすべてにわたって最適化を施しました。たとえば、つぎのような項目です。これまでより10%パフォーマンスがよくなります。
03 Sprite.clipRectプロパティSprite.clipRectプロパティを使って、Spriteオブジェクトに任意の矩形でマスクが加えられます(シンタックス001)。矩形でマスクするには、つぎのように1行のステートメントを書き加えるだけです(「Starling Demo」の[Clipping]参照)。 Spriteオブジェクト.clipRect = new Rectangle(x座標, y座標, 幅, 高さ);
図001■「Starling Demo」の[Clipping]
04 DisplacementMapFilterクラスDisplacementMapFilterクラスが加わり、DisplayObjectインスタンスを動的にピクセル単位でゆがめられます。つぎのような水面の揺らぎのサンプルコードがGitHubに掲げられています。
05 失われたコンテキストの扱いApple以外のデバイスでは、何らかの理由でデバイスコンテキストを失ったときクラッシュしないために、静的プロパティStarling.handleLostContextをtrueに定めておかなければなりません。これまでは、Starlingがテクスチャデータをメモリにもつことで、コンテキストが失われたときテクスチャを復元しました。新バージョンでは、もとのテクスチャを読込み直します。そのため、Starlingが費やすメモリは、前より50%少なくて済みます。とくにモバイルでは、これは大きな違いです。 AssetManagerクラスを使っていれば、テクスチャデータは自動的にメモリされます。つまり、Starling 1.4にアップデートするだけでよいのです。 アセットの扱いを自ら最適化することも難しくありません。新たなConcreteTexture.onRestoreイベントハンドラにコールバックを定めれば、コンテキストが失われたときに呼出されます。たとえば、コンテキストがなくなった場合、つぎのようにもとのテクスチャを読込み直します。おおもとのデータから復元しますので、メモリにため込まずに済むのです。
06 AssetManagerクラスの改善AssetManagerクラスに備わったのは、失われたコンテキストの自動的な最適化だけではありません。テクスチャとサウンドに加えて、汎用XMLやJSON、さらに生のByteArrayデータが扱えるようになりました。
07 テクスチャサイズの拡大とRectangleTextureクラス2048×2048ピクセルを超えるテクスチャが使えないかというのは、これまでとても多い要望でした。それが、AIR 3.8の機能でできるようになりました。生成するContext3DオブジェクトのプロファイルにContext3DProfile.BASELINE_EXTENDEDを定めることにより、テクスチャが4096×4096ピクセルまで扱えます(ただし、デバイスがサポートしていなければなりません)。 もうひとつAIRに加わった役立つ機能は、低レベルのテクスチャタイプを扱うRectangleTextureクラスです。Stage3Dのテクスチャは、これまで幅と高さのピクセル数が2の累乗でなければなりません。Starlingでは、内部的にメモリを使ってこの制限は外しました。Starling 1.4ではさらに、可能な場合には自動的にRectangleTextureが内部的に用いられ、費やすメモリを抑えます(Context3DProfile.BASELINEプロファイルからサポートされます)。 08 HiDPI(MacBook Retina)のサポート最新のMacBookの優れた解像度を使うには、つぎのふたつを行うだけで済みます。
もし、Retinaディスプレイをおもちなら、前述04「DisplacementMapFilterクラス」のデモの水面をよくご覧ください。解像度がフルに使われているのを確かめられるでしょう。 09 その他の機能他にも多くの追加や修正があります。詳しくは「Starling: Changelog」をご覧ください。おもな項目はつぎのとおりです。
作成者: 野中文雄 Copyright © 2001-2013 Fumio Nonaka. All rights reserved. |
||||||||||||||||||||