ExGame さくっと入門

48
201236日火曜日

description

JavaScript 製 Flash Player である ExGame の使い方、開発運用方法をさくっと説明しています。

Transcript of ExGame さくっと入門

2012年3月6日火曜日

ExGame メンテナ

HTML5 front-end engineer

エンジン開発

Front-end optimization

Who am I ?

@sou

2012年3月6日火曜日

2012年3月6日火曜日

JS 製 Flash Lite 1.1 Player

(変換ツールではない、SWF ランタイム)

ActionScript も動く

Flash Lite 1.1 compliant

Yet Another SWF Runtime written in JavaScript

2012年3月6日火曜日

DeNA 内製使ってるの?

2012年3月6日火曜日

ガンダムロワイヤル始め多くのタイトルで実績

2012年3月6日火曜日

SWF 制作&対応どうやってるの?

2012年3月6日火曜日

FP & Android 向けに作り

iOS 向けに調整 (ExGame)

2012年3月6日火曜日

透過ボタンを置いてタップ対応

文言、画像等の調整

画像はサイズ注意

「Android 向けに」

2012年3月6日火曜日

「iOS 向けに調整」

2012年3月6日火曜日

「調整」画質とフレームスキッピングの最適バランスを取る

2012年3月6日火曜日

scale を下げフレームスキッピングを緩和する

重い場合

2012年3月6日火曜日

フレームスキッピングが出ない → 余力ありそう!

scale を上げ高解像度を狙う

軽い場合

2012年3月6日火曜日

scale が鍵

2012年3月6日火曜日

scaleSWF240px

scale:2.0

scale:1.5

Canvas360px

Canvas480px

2012年3月6日火曜日

scaleSWF240px

scale:2.0

scale:1.5

Canvas360px

Canvas480px

SWF の解像度決定

2012年3月6日火曜日

displayScale

2012年3月6日火曜日

displayScale

displaySale:320/480

displayScale:320/360

Canvas360px

Canvas480px

画面320px

2012年3月6日火曜日

scale で解像度を設定し、displayScale で画面に合わせる

2012年3月6日火曜日

scale で解像度を設定し、displayScale で画面に合わせる面倒

. .

2012年3月6日火曜日

JJUtil.js

自動で scale, displayScale を計算

ロケーションバー隠し対応

(ExGame fullScreen モードの改良版)

2012年3月6日火曜日

scale 調整に必要なもうひとつのこと

2012年3月6日火曜日

scale 調整に必要なもうひとつのこと

デバイス差2012年3月6日火曜日

Pixel Density

描画性能

GPU アクセラレーション有無

2012年3月6日火曜日

Pixel Density

描画性能

GPU アクセラレーション有無

2012年3月6日火曜日

Pixel Density

描画性能

GPU アクセラレーション有無

2012年3月6日火曜日

高解像度デバイスには高解像度向けの設定を

必要な描画性能は GPU アクセラレーションで

2012年3月6日火曜日

scale を求める式

2012年3月6日火曜日

var ratio = window.navigator.userAgent.indexOf('OS 4_') > 0 ?

1.0 : window.devicePixelRatio;

var scale = 320/240 * ratio;

var config = {

scale: scale,

displayScale: 1/scale

};

ExGame 表示幅 / SWF 横幅 * Ratio

scale を求める式

2012年3月6日火曜日

var ratio = window.navigator.userAgent.indexOf('OS 4_') > 0 ?

1.0 : window.devicePixelRatio;

var scale = 320/240 * ratio;

var config = {

scale: scale,

displayScale: 1/scale

};

ExGame 表示幅 / SWF 横幅 * Ratio

scale を求める式

理論上限値

ここから下げていく

2012年3月6日火曜日

描画負荷

2012年3月6日火曜日

苦手な描画

Flash アニメーションと JavaScript/Canvas アニメーションのミスマッチ

描画負荷

2012年3月6日火曜日

苦手になりやすい

画面全体を再描画するアニメ(例:フラッシュ)

アルファを利用した着色

頻繁に色が変わる着色

(負荷原因となりやすいが、状況次第で言い切れない)

描画負荷

2012年3月6日火曜日

(折々に実機確認をはさむと吉)

2012年3月6日火曜日

実機確認

2012年3月6日火曜日

ExGame Player

ExGame 簡易実行ツール

クエリパラメータで指定実行

例: player.html?swf=a.swf&scale=2.667&fps=8..

単純な HTML & JavaScript

ローカル&Mobageサンドボックスで容易に実行

2012年3月6日火曜日

(デモ)

2012年3月6日火曜日

いつ確認?

単体 Flash 製作時

合成時

何を確認?

動作するか☆

描画パフォーマンス

2012年3月6日火曜日

ExGame Loader

ExGame 自動ローダ

object 要素をパースして ExGame をロード

突っ込んでおくと適宜 ExGame 化してくれる

(初期条件は「UA が iOS」)

起動遅延があるため、本番利用は非推奨

2012年3月6日火曜日

陥りがちな罠

2012年3月6日火曜日

Flash Lite 1.1 注意

AS

合成注意

問題の半分は合成時に起こる

depth 衝突

disableFrameSkip(基本はデバッグ用)

onpreload(無い方が速い)

「罠」

2012年3月6日火曜日

VISION

2012年3月6日火曜日

FP コンテンツを SP でも使えるように

当初

2012年3月6日火曜日

HTML5 のミッシングパーツを埋めるプロダクト

複雑なアニメーションをこなす(例: キャラアニメ)

優れたオーサリングツールの存在(Adobe Flash)

実は

2012年3月6日火曜日

Flash Player の Android 版提供中止

状況の変化

2012年3月6日火曜日

FP 資産活用 → HTML5 アニメを支えるエンジン

2012年3月6日火曜日

Question ?

2012年3月6日火曜日

ありがとうございました。

2012年3月6日火曜日