AIRNovel&ANBooks更新:ゲームパッド(β版)とFlex4.10.0

●リリース 全ソース
3.77
* bug:初期化処理時に負荷が高いと接続を検知できず、ゲームパッドが反応しない不具合対応。
    GameInputEvent.DEVICE_ADDEDが処理負荷? によって発生しないことがある。
    最初のクリック待ち・[s]で自らチェックしに行けばいけた。以降はDEVICE_ADDED・REMOVEも発生し、正しく動作する。
    暫定的に対処する(暫定13/8/25)Adobeはん、はよ直して……
3.76
* beta:[event]に「key=gamestick」「key=gamesbuttons」追加(※β版につき正式使用不可)。ゲームパッドなどゲーム用入力装置をつなげられます
* info:Flex SDK 4.10.0 + AIR 3.8 でビルド

●ANBooks更新(公開先
1.27
* chg:AIRNovel 3.77に更新。
1.26
* chg:AIRNovel 3.76に更新。

 すでにANBooksで作ったプロジェクトのan_sdkは、「ant upd_an」にて更新出来ます。不具合修正していたりするので、なるべく最新に更新して下さい。




 AIRNovelでゲームパッドが使えるように! ……するため休み休み研究中です。


【参考写真】レトロ調 デジタル対応 USBゲームパッド|BGC-FC801シリーズ


 二年前弱に色々制限が多い形で、しかも自分で特殊な技術を使ってようやく作ったりしてた機能が、Adobe AIR 3.7(最新は3.8)から結構手軽に出来るようになってます。

 以下はブラウザFlashゲームをゲームパッドで操作するサンプルです。
ゲームパッドでブラウザゲームが遊べる時代が来た!話題の GameInput API を使ってみよう | ICS LAB

ただし、ブラウザFlashでの動作には注意点があります。

 Google Chromeでは「ブラウザ組み込み版(PPAPI)」ではなく「プラグイン版(NPAPI)」のFlash Playerを推奨します。
【プラグイン設定画面】(chrome://plugins)から有効・無効を変更してからリロードして下さい。(【場所】が「Google Chromeなんとかかんとか」のほうを一時的に無効化)
 NPAPIでないと[trace]も正しく出ないようです。

 いずれ対応されるかなと。


 余談ですが、AIRNovelをブラウザテストするときは、シークレットモードのウインドウで開くと、何度もテストしてもキャッシュが残らず「キャッシュ残り具合で一時的に出てしまう不具合」が起こらずいい感じです。



ブラウザからテスト
 AIRNovelからも使えるようになっています。
 まだまだ暫定的なBeta版で、タグなどもまだまだ変わる可能性がありますが。

(画像クリックでブラウザ上実行。動かない場合はこちらを開いてください)
(前述通り、「プラグイン版(NPAPI)」のFlash Playerを推奨)

 Alcon(→Alconの導入とデバッグ)を起動しておいてゲームパッドを操作すると……
 ブラウザFlash上で動くAIRNovelがゲームパッド入力を検知し、
 変化するたびにイベントが発生し、
 [trace]でAlconに入力値を吐き出します。

  ・enabled──trueが正常、falseはデバイス(GameInputDevice)が無効
  ・stick──十字キー、スティックの情報をキーボードのテンキー風に表現した値
  ・0:0──スティックの横軸、縦軸の倒れ具合(アナログスティックだと小数に)
  ・10-0:──ここでの10はスティック軸(2)とボタン(8、上のファミコン風ゲームパッドのボタン数)を足した、コントロール(GameInputControl)の数
  ・00000001──ここではボタンの押され具合


デスクトップアプリからテスト
 AIRNovelからも使えるようになっています。
icon_air.pngver3.77_ans.air
 同様にAlconに出力。

 Alcon出力は以下のスクリプトで出しています。

[event global=false call=true key=gamestick label=*gameinp]
[event global=false call=true key=gamesbuttons label=*gameinp]
; [event key=enter_frame label=*gameinp call=true frame=100]
[s]

*gameinp
[trace text="&'enabled:'+ const.an.gameinp.enabled +' stick:'+ const.an.gameinp.stick + ' '+ const.an.gameinp.axis0 + ':'+ const.an.gameinp.axis1 + ' '+ const.an.gameinp.count +'-0:'+ const.an.gameinp.buttons@str"]
[return]


 この状態だと、ゲームパッドのスティックやボタンを押すたびにイベントが発生する「イベント型」。
 1・2行目をコメントアウト(行頭に ; をつける)し、3行目の ; を削除し有効にすると、一定時間ごとにゲームパッドの様子をAlzonへ出力する「ポーリング型」で検知します。


「自分のゲームでもさっそく使いたい!」
 という人、色々注意点と準備が有ります。

・ベータ版なので、あくまで実験。まだ正式版として配布しないで下さい。もっといい形に作り込む予定です。
・ベータ版なので、この機能についてのマニュアル類や組み込み変数の資料は未更新です。
・AIR SDK 3.7以上が必要です。この機会にFlex 4.10.0の導入を!(方法は後述)
・プロジェクトをAIR SDK 3.7以上のAdobe AIRアプリプロジェクトにする。つまり以下のファイルを変更。
  ・build.xml
    旧:<property name="SwfVersion" value="18"/>
    新:<property name="SwfVersion" value="21"/>
  ・prj-app.xml
    旧:<application xmlns="http://ns.adobe.com/air/application/3.5">
    新:<application xmlns="http://ns.adobe.com/air/application/3.8">

   【参考】AIR Versionと機能、制限(参考:memo・SWF Version

   Compiler Option   FlashPlayer   AIR Ver
   --------------------------------------------------------------------------------------
   -swf-version=11   10.2      2.6   Linuxでも動作する最大Ver
   -swf-version=20   11.7      3.7   ゲームパッドサポート
   -swf-version=21   11.8      3.8   最新


 これらの準備が出来たら、桜サンプルのタイトルなどで、ゲームパッドでボタンフォーカスを動かすことができるようになります。

[event global=true call=true key=gamestick label=*gamestick]

*gamestick
[return cond=!const.an.gameinp.enabled]
[set_focus to=prev cond=const.an.gameinp.0<0]
[set_focus to=next cond=const.an.gameinp.0>0]
[set_focus to=prev cond=const.an.gameinp.1<0]
[set_focus to=next cond=const.an.gameinp.1>0]
[return]




Flex 4.10.0の導入方法
 Flex4.10.0はインストーラーでインストールする事が出来ます。
 同時に導入できるAdobe AIR も最新の3.8です。様々な不具合修正やパフォーマンス改善されているので、お勧めします。

  Apache Flex 4.10登場 | マイナビニュース


 この頃(2013-02-20)とは違って(最新の)ANBooksからフォントswfも作れるようになっていますので、是非是非導入して下さい。
(現状のFlex SDKとは別のフォルダにインストールし、ANBooksの【ビルド環境設定】からFlex SDKパスを切り替える)
スポンサーサイト



プロフィール

ふぁみべぇ

Author:ふぁみべぇ
 →@famibee
 →メアド(四角を@に)

カテゴリ
リンク
検索フォーム
最新記事
月別アーカイブ