■吉里吉里/KAG/TJS雑談質問スレ■その21at GAMEDEV
■吉里吉里/KAG/TJS雑談質問スレ■その21 - 暇つぶし2ch292:名前は開発中のものです。
10/07/01 23:45:06 Qaf7rZnA
質問です。
画像からムービー再生へのトランジションを行いたいのですが、
トランジションが黒の画像で終了し、それから動画が再生されてしまい
うまくいきません。
また逆の場合はうまくいきました(画像をback、動画をforeの場合)
何かヒント等お願いいたします。

[image layer=1 page=fore storage="EV01_01" visible=true]
[video visible=true mode="layer"]
[video loop=true]
[videolayer layer=1 page=back channel=1]
[layopt layer=1 page=back visible=true]
[openvideo storage="EV01-01.mpg"]
[preparevideo]
[wp for="prepare"]
[playvideo]
[trans layer=1 time=1600 method=crossfade]

293:名前は開発中のものです。
10/07/02 01:21:40 mAIsEAI3
吉里吉里を実行したら、224.0.0.252にアクセスしようとしてFWに検知されたんだけど
これは何をしようとしているの?

294:名前は開発中のものです。
10/07/02 03:02:07 qrBhCZjE
関係ない話だが、俺も永年使ってるとあるプレイヤーで
特定のファイルだけ再生がカクカクになってって最後は停止・・・というのになってる。
新しいDivXを入れた辺りからそうなったみたいだ。

295:名前は開発中のものです。
10/07/02 03:09:53 GnhoDBHQ
>>293
たしか DirectDraw でフルスクリーンにするときのバージョンチェック処理で DirectX コンポーネントが勝手に外部通信しようとする

なお、224.0.0.252 の通信自体は、Vista 以降に搭載されているLAN用の自動アドレス割り当て処理が使う通信で、
これをひっかけるFWソフトはなにかおかしい

296:名前は開発中のものです。
10/07/02 03:13:09 GnhoDBHQ
>>279
再生モードはなに使ってる?
デバイスドライバの更新とかでオーバレイが腐った可能性があると思われる。
ミキサー(VMR) やレイヤ再生してみて差をみるべし

それでも異常なようなら短いサンプルでいいからup
他人の環境でチェックしてもらうのが良いと思われ

297:名前は開発中のものです。
10/07/02 03:15:46 QAmrYELt
224.0.0.252つうとvist以降か。
吉里吉里はドライバのバージョンを確認しに行くんだっけ?

298:名前は開発中のものです。
10/07/02 03:18:12 QAmrYELt
被ったか、おまえら夜中なのに考えることは一緒なんだな・・・。
たしかに224.0.0.252を検出するFWは設定がきつすぎる。

299:名前は開発中のものです。
10/07/02 15:43:20 b5T/g5L2
>>292
どうもトランジション処理とレイヤ動画処理との間で不整合生じてるぽい。バグだけどわりと根が深そう。

[trans time=1600 method=crossfade]

として全体トランジションにしておけば、動画描画先になる子レイヤ自体は内部レベルでの差し替えは発生しないので正しく表示される模様

どうしてもレイヤ単位にトランジションしたければ、ダミーのレイヤを一つつくって、動画の描画先レイヤはそれにして、
VideoOverlay.onFrameUpdate で対象レイヤに assign するような構造にすればたぶんなんとかなると思われる

300:名前は開発中のものです。
10/07/02 23:31:52 j75c+nEe
まぁ、いくらFW突破しても
すぐ対策されるわけで・・・

301:名前は開発中のものです。
10/07/03 02:45:33 kxpqTxJq
>>292

>>299 はちょっと間違いだった

レイヤトランジション中に裏動画の絵がまったく出ないのは、
クロスフェードトランジションがソース画像のα値を参照してしまうことによるもののようだ。
これはおそらく描画先画像の type 基準で動作しているためで、両方同じでないといけないものなので明確な「仕様」ってことになる

対策としては、ムービーの画像描画後に該当レイヤのαを 0xff でうめるようにするか、
 
 [image layer=1 page=fore storage="画像" visible=true mode=opaque]

と、元画像をロードするときに opaque 指定にしておけばよい

なお >>299 の「不整合」自体は直接原因ではないが別のバグだった。

動画再生したままで2回トランジションを行うと、本来なら元レイヤの画像が表示されるべきだが、
この画像が、内部的にずっと動画で上書きして破壊される状態になってしまっている。
レイヤを手動で update() するとどんどん内容が更新されてしまっているのがわかる。

単発レイヤトランジションでも全体トランジションでもどちらでもおこる現象で、
おそらく動画再生処理側の更新バッファ処理のさしかわり判定のがおかしいのだろうと推定される。
描画先が狂ってるだけでメモリ破壊自体はしてないようなので、とりあえず更新時は常に新しい
描画内容を指定するようにしておけば致命的なことにはならないとは思われる


302:名前は開発中のものです。
10/07/03 13:23:29 cmVod1gA
>>300
そんな話誰もしてねーよ。
LAN内の名前解決を行うプロトコルが使うマルチキャストアドレスが
見張られててこのアドレス使ったらFWが過剰反応したって言ってんだろ。

303:名前は開発中のものです。
10/07/04 10:30:38 Bl0MmFqw
レイヤの指定に変数を使いたいのですが、エンティティ使うと
「(Void)からobjectへ型を変換できません。」というエラーが出ます。

[eval exp="tf.hoge=3"]
[emb exp="tf.hoge"]ほげげ
[image storage="フレーム.png" layer="&tf.hoge" page=fore visible=true top=0 left=0 opacity=255]

なにがマズイのでしょうか?

embタグでは、ちゃんと3が表示されます。
数値が必要なところに文字が渡ってるのかなとも思ったんだけど
storage属性のファイル名に変数使っても、同様に落ちるんです。

304:名前は開発中のものです。
10/07/04 10:34:50 pWMdUQfa
>>303
エンティティ使わずに直接 layer="3" でやってみる
それでエラーでるならエンティティ以外のところがまずいのでリファレンスとかもっかい読んでみ
laycount のあたりとか

305:名前は開発中のものです。
10/07/04 12:19:41 Bl0MmFqw
>>304
layer="3" と直接指定すると動きます。
なので、他の属性とかがまずいわけではないと思うのですが…
エンティティをdisableとかenableとかするフラグがあったりしないですよね??
なんでだろう…

306:名前は開発中のものです。
10/07/04 13:46:01 NPNr6aGl
検証してる暇がないので適当だけど
[eval exp="tf.hoge='3'"]とやってもだめ?

307:名前は開発中のものです。
10/07/04 19:34:09 Bl0MmFqw
>>306
ありがとうございます、シングルクォートつけたらエンティティでも動きました!

でもそのあとクォートはずしてみても、ちゃんと動きました。なんだったんだ…
なにか見落としてたのかもしれませんが、とりあえず動きました。

308:名前は開発中のものです。
10/07/05 02:46:33 Wwbywlow
KAGがレイヤ指定を解決する際に文字列であることを前提に組まれているから。
KAGWindow.getLayerFromElm(elm)とかだったかな。

KAG標準としては「必要以上にTJSは使わないで」ってことなのかな。
TJS使うならコンソール(特に逆アセ結果)とのにらめっこが必要ってことだと自分は思っている。

309:名前は開発中のものです。
10/07/05 02:49:34 s+61392X
いや、ふつうに数値で通るよ>レイヤ指定
どちらでも大丈夫なようなコードになってる。

単に >>303 がレイヤ数増やしたあと再起動してなかったとかそんなオチだろう。
レイヤ数オーバー時の典型的なエラーだし

310:名前は開発中のものです。
10/07/05 03:40:13 Wwbywlow
そういえば「(Void)から~」か。自分の意見では「(int)3 から~」になるはずだものな…。
しかも>>307の後半を見落としていた スマソ

ところで数値で指定できたっけ?
コンソール使ってkag.getLayerFromElm(%["layer", 0, "page", "fore"])を実行すると
レイヤがあるにもかかわらずエラーになるんだが(int0からObjectに変換できない)。
シナリオに記述してコンダクタ通すと違うのか?

311:名前は開発中のものです。
10/07/05 10:44:44 dVcS22zz
KAGのタグの処理の過程上、数値でもなんでも文字列で渡るので、処理する側は文字列前提のものが
多いけど、たいていは単純に整数化されるから、整数を与えても問題ないものばかり
可能ならば文字列で渡したほうが無難

レイヤ数オーバーで (void) から Object へ~ってやつは、2枚しかレイヤがないときに
kag.fore.layers[3] としたら void が返って、それにたいして void.loadImages とか
しようとしてるから、そういったエラーが返ってくる

>>310 のは、確かに KAGWindow.getLayerFromElm は文字列要求だから
メッセージレイヤかどうか調べるため1文字目が "m" かしらべるときに layer[0] としてて、
そこで 0[0] となって、 (int)0 から Object へ~ってエラーがでちゃってる

312:名前は開発中のものです。
10/07/06 10:05:21 Exhl2hqU
もうasキーワード導入して型明示できるようにしてくれ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch