AIRNovel更新:シーケンスとマッシュアップとグローバル

●リリース Ansan_sdkAndroidChromeOSiPadiPhone……plgTween
2.64
* chg:sub.anなどちょこちょこ変更した
* add:[snapshot]でlayer属性に「plg:プラグイン名」と指定する事でプラグインも
    含めてスナップショットを取る事が出来るように。
    自作プラグイン向け公開APIの「AnLib.getSnapshot()」も同様。
* add:plgTweensy拡張、TweensySequenceを使えるように。
* add:指定URLのHTTPサービスから文字列を取得する[let_webapi](webapi取得)追加
* add:json文字列から値を取得する[let_json_decode](json分解取得)追加
* bug:画像やテキストロード時のエラー処理修正。きちんとエラーメッセージが出ない件に対応。
* bug:Android、iPhone版の本文でエラーが発生していた不具合修正(sub.anでマクロ未定義)



アニメ機能「Tweensyプラグイン」は機能追加。
[tsy~]はトゥイーン一つ一つを扱うタグでしたが、
[tsy_seq~]シーケンスというひとかたまりでトゥイーンアニメを扱えます。
新規追加サンプルのTweensySequence.anprjを動かしたり、TweensySequence.anを見てもらうと色々判るかも。

今までの[tsy]だと位置A→位置B、というような単純な動作だけでしたが、

[tsy layer=絵 time=2000 y=0 ease=Bounce.easeOut]
[wait_tsy layer=絵]
[tsy layer=絵 time=2000 x=&800-112 ease=Bounce.easeIn]
[wait_tsy layer=絵]
[tsy layer=絵 time=2000 y=&600-112]
[wait_tsy layer=絵]
[tsy layer=絵 time=2000 x=0 ease=Bounce.easeInOut]
[wait_tsy layer=絵]


A→B→C→D……とトゥイーン(プロパティの変化)をいくつも繋げ、
順番に実行される一連の動作として扱えます。

[tsy_seq_new seq=一連の動作]
[tsy_seq_push seq=一連の動作 layer=絵 time=2000 y=0 ease=Bounce.easeOut]
[tsy_seq_push seq=一連の動作 layer=絵 time=2000 x=&800-112 ease=Bounce.easeIn]
[tsy_seq_push seq=一連の動作 layer=絵 time=2000 y=&600-112]
[tsy_seq_push seq=一連の動作 layer=絵 time=2000 x=0 ease=Bounce.easeInOut]
[tsy_seq_start seq=一連の動作]


上と下の例では意味が全く違います。上は「レイヤやプラグインに対して一つの動作」下は「([tsy_seq_new]で作った)シーケンスに対して複数の動作」。
下は「シーケンス」をひとかたまりの命令書のように、「後は勝手に動いて!」と動かす事が出来ます。
(サンプルのTweensySequence.anprj にて、「s」でアニメ動作中でも「p」や「i」キーが利くところが判りやすいかも。スクリプトの動作と一連のトゥイーンアニメが独立しているわけです)



[let_webapi][let_json_decode]という新規タグ追加。
(この二つのタグはプラグインにしたかったのですが、どうやら前者がセキュリティ的に動かないっぽい?)
これらを駆使すると、例えば日本語→英語なんていうテキスト翻訳機能を実現できます
Web APIとの連携、マッシュアップというやつですね。国語辞書で意味説明を取ってきても面白そう。
手順は二つ。
1.[let_webapi]でWebサービスを利用し、日本語文字列から英語翻訳結果をJSONで取得。
  英語←→日本語の翻訳APIとして使えるYahoo Pipesを作った(管理人日記) - むぅもぉ.jp

例えば以下の感じ。
[let_webapi name=e_txt url="http://pipes.yahoo.com/poolmmjp/je_translation_api?_render=json&text=Yahoo!で翻訳するよ"]


翻訳結果が e_txt に入ります。

  処理結果のjsonはここで見れます。(リンクそのものがWebサービスへの要求になっている)
  jsonをブラウザで見てもよく判らないですが、例えばブラウザアプリのJSON Editorにペースト→「Build tree」を押すと、中に入っているデータのツリー構造がエクスプローラー風に閲覧できます。

2.json形式の文字列から、値を取得する。
  今回利用したWebサービスはjsonで値を返し、翻訳結果は value.items.0.description という位置にあります。(JSON Editorで見るとよく判ると思います)
  この値を[let_json_decode]にて取り出すわけです。

[let_json_decode name=e_txt json=&e_txt path="value.items.0.description"]
[trace text=&const.an.let_json_decode.success]
[trace text=&const.an.let_webapi.err cond=!const.an.let_json_decode.success]
[trace text=&e_txt cond=const.an.let_json_decode.success]





●Android、iPhone版の不具合は、AndroidとiOSのノベルゲームを作ろうとAIRNovelを使って下さっている、エジプト人の方が発見して下さいました。
グローバル!
スポンサーサイト
プロフィール

ふぁみべぇ

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

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