- ベストアンサー
SWFとHTML組み込み後の再生速度の違い
初心者的質問ですが、SWFの状態とHTMLに組み込んだ後のフレームアニメーションの速度の違いに悩んでいます。 ただの円を右から左に動かすだけでもHTML組み込み後は目に見えて遅くなりますが、これは皆さんそうなのでしょうか?? もしそうなら対策を教えていただきたいのですが。 具体的には、 音声(ナレーション)に合わせて文字が一文字ずつ現れるアニメーションを作る際に、書き出した状態では揃っていても、HTMLに組み込んだ後は音声におくれて文字が現れる状態です。 ちなみにフレームレートは30ですが、15でも遅れる割合は変わりませんでした。 仕事上のことなので、わかる方がいましたら是非教えてください。お願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#2です。 円のムービークリップをモーショントゥイーンで左から右に動かす・・・という、単純なムービーのパフォーマンスですが。 フレームレート 12 で試したところ、スタンドアロンプレイヤーでも HTML でも、アニメの速さは同じに見えました。 一応、処理の重いものということで、ムービークリップに虹色のグラデーションをかけ、HTML では背景を透過するようにして試してみましたが、HTML の方が目立って遅いようには見えませんでした。もしかしたら若干遅くなっているのかも知れませんが、それでも、ちょっと見たくらいでは分からないほど、本当に目立たない程度の遅れだと思われます。 しかし、同じ内容のムービーでもフレームレートを 30 にすると、HTML では目に見えて遅くなります。アニメが時折カクカクしているのがはっきり分かるので、処理落ちしているのは明白です。 Flash Player 5 からは、20 を超える大きなフレームレートを設定できるようになりました。 ですが、再生する側のスペックが恵まれてさえいれば大きなフレームレートを本当に実現できているかと言うと、実はそれも怪しいもので、可能な限り実現しようとするあまりリソースを多く消費し過ぎて、逆にパフォーマンスを落とすこともあるそうです。 Flash で推奨されるフレームレートは標準で 12 、ちょっとキメ細かい表現をしたい場合でも 15 ~ 18 くらいが限界で、それ以上にすると何が起こるか分からないというのが、正直なところだと思います。 大きなフレームレートにしたムービーが、swf だと問題ないのに HTML では遅くなるという現象は実際にあるようで、過去に同じような質問が出ていました。 ・SWF上だと50fpsで動くのにIEにはめると遅くなる理由は? http://okweb.jp/kotaeru.php3?q=708224 回答したのも私で、スッキリ解決に至らなかった質問を紹介するのは恐縮ですが、ご参考までに。 それから、パフォーマンスを向上させるポイントが Flash のテクニカルノートで紹介されていましたので、よろしければご参照ください。
その他の回答 (3)
- HapHands
- ベストアンサー率73% (19/26)
とりあえず、「SWF(スタンドアロンプレイヤー)とブラウザ(FlashPlayer)で再生レートが異なる」という問題と「アニメーションと音声がずれる」という問題は、別物として切り分けて考えた方がよいと思います。 いずれにしましても質問者さまの環境(OS、ブラウザ、FlashPlayerのバージョン等)を明記された方がより有効な回答が着く可能性が高くなると思います。 前者に関してはWin+IE6では再生レートが設定したレートよりも10%~20%程度遅くなる、という現象が発生するようです。 これを回避するにはwmode属性を明示的に設定し、なんらかの値を指定します。Flashではパブリッシュ設定でHTMLタブで「ウィンドウモード」の設定を「標準」以外(通常は「不透明表示」でしょう)にします。 後者に関してはDPEさまが#2でご指摘されている通り、サウンドの再生に「ストリーミング」を使用されるのがよろしいかと思います。
お礼
ありがとうございます。 >これを回避するにはwmode属性を明示的に設定し、 >なんらかの値を指定します。Flashではパブリッシュ >設定でHTMLタブで「ウィンドウモード」の設定を「標 >準」以外(通常は「不透明表示」でしょう)にしま >す。 の方法で解決しました。 ただ、今度はスタンドアロンプレーヤーよりブラウザ側のほうが早くなってしまったのは・・・なぜ・・?
- DPE
- ベストアンサー率85% (666/776)
通信回線や再生する側の描画能力等の関係で多少は遅くなることはあっても、それはファイルや処理が重いからということですので、フレームレートを半分にして容量や処理を軽くしても全く改善されないということは、ないと思うのですが。 サウンドの「同期」を確認してみてください。サウンドを挿入したフレームを選択して「プロパティ」パネルを見ると、「同期」という項目があるかと思います。 この項目が、「スタート」か「イベント」になっていませんでしょうか。「スタート」または「イベント」にしている場合は、絵と音の同期は保証されません。 絵と音を完全に同期させるには「ストリーミング」がオススメです。「ストリーミング」にすると、描画が間に合わない時は間のフレームを間引いてでも音との同期が最優先されますので、ナレーションやBGMに合わせて絵を動かしたい時などには最適です。 「ストリーミング」では、各フレームに再生するべきサウンドのデータが書き込まれます。従って、「ストリーミング」でサウンドをループさせると、その回数分だけサウンドのデータが書き出されることになります。(「スタート」や「イベント」にしてある場合は、何回ループさせても、書き出されるサウンドデータは1ループ分だけです)その分、ファイルが大きくなりますので、ご注意ください。 Flash は全てのフレームの読み込みが終わらなくても、読み込みの済んだフレームから順次再生しながら、ダウンロードを並行して続行する仕様になっています。 しかし、裏で通信しながら描画するとなると、どうしても処理は重くなり、絵の動きがカクカクになる現象(いわゆる”処理落ち”)が発生しやすくなります。 サウンドを扱うムービーはただでさえも処理が重いので、全フレームのロードの完了を待ってから、本編を再生するようにしてはいかがでしょう。
補足
ありがとうございます。 補足で質問させて頂きますが、ただ単に丸いオブジェクトが左から右へ動くムービークリップのみのswfファイル(モーショントゥイーンのみ)を実行した場合と、HTMLに挿入した後とやはり速度が違います。 皆さんの環境ではそういったことはありませんか?
- UNAHO
- ベストアンサー率57% (20/35)
原因の可能性としては ・ブラウザのプラグインのバージョンが古い ・通信速度の問題(アップロード前とアップロード後の伝達速度の違い) 等が考えられます。 後はswfをいくつか読み込んで使っている場合はもっとも遅いフレームレイトに設定されるというのもありますが、現状の質問内容からはこれ以上の推測はできません。
お礼
ありがとうございます。 自分のFLASHのバグではないかと思っていたので、少なくとも同じ事例があることに安心しました。 これからはフレームレートに頼らない設計をしていきたいものです。