• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:スクリプト制御しているが、数が増えるにつれて動きが遅くなる)

スクリプト制御でナイアガラの滝の動きをスムーズにする方法

このQ&Aのポイント
  • スクリプト制御しているが、ナイアガラの滝の動きが遅くなっている
  • トゥイーンで作成している場合は、少ないフレーム数で制御することができるが、ASで制御したいためにそうはいかない
  • ASでグラフィックを動かしている場合にもっとスムーズに動かす方法はあるか

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

> ナイアガラのみをswfで再生させている時は、あまり気にならなかったのですが、 そうですか。 CPUは色々なのでその辺は色々だと思います。 私は最初から,気になって気になって... という状態でした。 特に#1の方は, 「一応ロースペックなPCでも動作確認済み」とは書いていますが, CPU500MHzくらいではほぼ限界です。 すでにカクカクになっているのを,耐えられる限界までのスクリプトにしています。 CPU200MHz以下だと1コマ(1フレーム)1秒くらいになるかもしれません。 > ASでグラフィックを動かしている場合に > もう少しスムーズに動かす方法はないでしょうか? 無駄(PC的に大きな処理)を省くことです。 それも 「描画処理の無駄」 です。 いちばんの無駄は拡大です。 あと,ランダムのゆらぎも省略させた方が良いかもしれません。 本当はアルファやブラーや加算を使うともっと面白いことはできるのですが, その辺は使わないようにかなり気を使ってはいるのです。 つまりアルファやブラーや加算という無駄は書いている状態ですでに省略しているのです。 その辺(拡大させないくらい)が AS で動きを軽くする限界でしょう。 すごい AS を使えば使うほど,良い物はできるのですが, 理想と現実は違うのでいかに誤魔化すかという部分ですね。 というか,AS 以前に根本をどうするかを考える部分が大切です。 AS以外になると, ベクトルデータはモニタ上に描画するだけでかなりなCPUを使いますから, アルファ抜きビットマップ画像を用意して, それをムービークリップに変換して attachMovie する方が良いです。 質問者さんが再度質問(補足)されているように, ActionScriptでベクタデータを描画するより,attachMovie した方が良いのです。 しかし AS のみで至急ということなので, 色々説明するのは時間がかかると思い, #1 では苦肉の策で全てASで回答しているだけです。 attachMovie するのでしたら, ベクタよりもビットマップの方が良いです。 つまりだんだん AS などというものから離れて行くのです。 (結局 AS は1つの手段であって,  肝心なのは工夫と発想と地道な作業です。  ASなんてどうでもいいものだと私は思います。  ASより良いものがあれば当然そちらを選ぶべきです。) 上で書いたように, ◎拡大をさせない ◎ビットマップ画像を使う というのでしたら,最初から方向は変わります。 ランダムな位置に火の粉が描いてある大きな画像を上下に連結して, 無限ループさせればものすごくCPUの負担は軽減されます(1/100~1/1000くらいになる)。 つまり,次のような火の粉(あ~と)の画像を用意します。  あ   い う     え    お    か き   く   け  こ  さ し   す   せ      そ      た ち つ    て と これを縦に二重連結します。  あ   い う     え    お    か き   く   け  こ  さ し   す   せ      そ      た ち つ    て と  あ   い う     え    お    か き   く   け  こ  さ し   す   せ      そ      た ち つ    て と これを折り返すように ActionScript で動かすと無限ループな火の粉ができます。 わかりにくいかもしれませんがこんな感じです↓。 Green Village http://acchan.s55.xrea.com/flash.html →スクロールメニュー (FLASH4)   http://acchan.s55.xrea.com/flash/scroll_menu/scroll_menu.html これだと, onEnterFrame で動かす画像は1つで済みます。 火の粉が見える上下の限界でマスクをかけても良いですし, 四角くくり抜いたシェイプの下レイヤーに火の粉を置いても良いです。 (マスクは使わない方がCPCの負担は少なくなります。) 上に書いたことはモーショントゥイーンは使っていません。 基本的にASで動かしています。 しかし,ぜんぜん違う発想のものです。 実は,私は最初こちらの方法を考えていたのですが, これは決して「至急」な方法ではない(ASだけでちゃらちゃらと誤魔化せるものではない)。 全てASでするのならいっそのこと, 火の粉の動きはバラバラの方が良いかもしれないので,バラバラのMCにしよう。 バラバラだったら大きさも変えられるなあ。 もっと色々したいけどCPUを考えるとこの辺が限界かなぁ。 などと考えて前回の回答を書いたのです。 「何を優先するか」 によって方法は変わります。 またASもぜんぜん違う物に変わります。 色々考えてやってみるのが一番だと思います。

関連するQ&A