
オプションサービス
ソーシャルアプリにおいて、Flashはゲーム性や表現力を高めるためにも欠かすことのできない技術です。個々のユーザやその交流相手の状態に応じて、サーバ上で動的にFlashデータ生成させることができれば、その表現力はより一層高まります。
一方、サーバサイドでのFlashの動的生成(テキスト、画像の置換や別のFlashデータとの合成等)を実現するためには、以下のような問題を解決しなくてはなりません。
従来のツールを使用した場合、Flashデータを動的合成するために非常に多くのサーバリソースが必要となるため、(A)サーバを大量に並べる、(B)生成済みデータのキャッシュ制御を行うなどの方法を組み合わせて対策をする必要がありました。
しかし、これらの対策は、インフラコストの大幅な増加や、システムの複雑化などの弊害を招いてしまうため、根本的な解決策たりえませんでした。
従来のツールを使用した場合、Flashクリエイターが作成したFlashファイルを、ファイルフォーマットを熟知した開発者が1つ1つ手作業でテンプレート化する処理を実装する必要がありました。これは、生成対象ファイル固有のデータ構造に沿ってデータを解析・編集するためのロジックをプログラム上に書かなくてはならないことを意味します。
そのため、元のFlash素材を更新する場合や素材の数が多い場合、Flashの構造が複雑な場合などにおいて、開発コストが非常に高くついてしまい、更新のスピードも落ちてしまうという問題を招きます。
あらかじめ合成済みFlashを用意しておき、状況に応じて使用するFlashを切り替えることで擬似的にFlashの動的生成を実現することはできますが、アーキテクチャが複雑化し運用コストを高騰させる原因にもなりかねません。
また、あくまでも擬似的な生成であるため、リアルタイム性やカスタマイズ性を強く求められるようなアプリでは利用できない等、用途にも限界があります。
これらの問題は、大量のアクセスが集まりやすく、なおかつ頻繁な更新が必要なソーシャルアプリを運営する事業者にとって、大きな悩みの種となっています。結果として、(特にモバイル)ソーシャルアプリでのFlash活用は、特定の場面でのほぼ静的な内容に限定されてしまうことが多いのが現状です。
[プロデューサーが実現したい演出例]
Flamixerとはswfmill(※1)やMessagePack(※2)を用い、独自のアプローチでFlashの超高速生成を実現したPHP拡張モジュールです。多くの素材から構成される複雑なFlashも超高速に生成可能なため、ソーシャルアプリの演出効果を飛躍的に高めることが可能になります。
KLabが開発したFlamixerとKGDを用いることで、swfmillなどの一般的に用いられるモジュールのみを利用した場合に比べ、15倍〜100倍以上の高速化を実現することができます。
これにより、従来困難とされてきた、多重かつ動的に合成されたFlashをゲームのバトルシーンなど、頻繁に発生しかつ効果的な演出が求められるシーンに活用することが可能となりました。同時に、Flash生成のために専用サーバを増設する必要もなくなり、既に生成処理のためにサーバを増設している場合は、その削減も可能となりました。
※1 swfmill (http://swfmill.org/) swf<->xml の相互変換を実現するオープンソースのツールです。
※2 MessagePack(http://msgpack.org/) オープンソースのバイナリシリアライズフォーマットです。