電子書籍の厳選無料作品が豊富!

http://tail.s68.xrea.com/blog/2007/01/flash_2.html
上記FLASHの作り方についての質問です。

”まずこういうものを作ります。
丸いのがボコボコ出てくるようなFlashで~”
と書かれてありますがこの時点でつまずいてしまっています。
ムービークリップで○が大→小になるものをつくり、ムービークリップ自体をゆらゆらさせながら上昇させていく…という作成方法で間違いないでしょうか?また、大きさがランダムで出てくるのはなぜでしょうか?
もしもよろしければご教授いただければと思います。
(こちらのサイト様に置かれているBBSに質問をしたことがあるのですがまずかったようなので、こちらで。)


作成環境
Macromedia Flash8 Proffesional
Windows xp SP2(2002年ごろの出たてのXPです。)
ASは勉強中で未熟なためアニメーション・トゥイーンのみで製作しています。

A 回答 (1件)

> ムービークリップで○が大→小になるものをつくり、


> ムービークリップ自体をゆらゆらさせながら上昇させていく…
> という作成方法で間違いないでしょうか?

だいたいはそれで良いと思いますよ。
ただ,「ムービークリップ自体をゆらゆらさせながら」は別になくても良いと思います。

”まずこういうものを作ります。"
をしっかり見てみると,丸いの1つ1つは上に上がっているだけですね。
ゆらゆらしていませんね。
ゆらゆらさせても良いですが,書かれているサンプルの場合はゆらゆらさせていません。


しかし,
よくよく考えてみましたが,
アニメーションをモーショントゥイーンで作ってしまおうとすると繰り返しが難しいです。
つまりループ再生させるときが難しくなります。
延々とモコモコ出てくる丸いのをモーショントゥイーンで描き続けるのも困難ですし...。

それと,
ブラーをかけるのは炎全体でも良いのですが,
ブレンドモードの「加算」は,各丸いものにかけなければなりません。

そんなこんなを結局色々考えると,
ActionScript で動かさないと困難な気がします(気がするだけですが)。


しっぽさんは,
「こんな感じのことを書いているのではないだろうか?」
と,私なりに解釈して作ってみた物の作り方を書きます。
参考にしてみてください。


まず,
新規ドキュメントを作成して,
ステージの背景色を黒にします。
(ステージ下のプロパティインスペクタより 背景を黒にする。)

そして,
ステージの下の方にオレンジ色の塗りの丸を描きます
(真っ赤ではなく赤に近いオレンジです(#FF3300 くらい))。
大きさは 100px × 100px 前後ということにしておきます。
オレンジ色にアルファはかけないでください。

そして,
そのオレンジ色の丸をムービークリップに変換すます。
そのオレンジ色のムービークリップを選択して,
「編集」→「コピー」,「編集」→「同じ位置にペースト」で4つぐらい重ねます。

最後に重ねた(一番上の)オレンジ色のムービークリップを選択して,
そのムービークリップにインスタンス名を付けます。
この説明では,「fire_mc」 と付けておいたとします。

その「fire_mc」 を含む4つのムービークリップを全て選択して,
さらにムービークリップに変換します。

ムービークリップを2重構造にしたわけです。
階層構造を図示すると次のような感じです。

 _root
  └ ムービークリップ
     ├ オレンジ色ムービークリップ「fire_mc」
     ├ オレンジ色ムービークリップ
     ├ オレンジ色ムービークリップ
     └ オレンジ色ムービークリップ


そして,
その親のムービークリップをダブルクリックして,
ムービークリップ内の編集に入ります。


そのムービークリップ内には,
「fire_mc」 を含む4つのムービークリップがあるわけですが,
レイヤーを1つ増やして2レイヤーにします。

 レイヤー 筆・・|○| ←スクリプトを書く
 レイヤー 筆・・|●| ←4つのムービークリップがある

その上の新規で作成したレイヤーにスクリプトを書いて行きます。
こんな感じです(コピペ可能)↓。

-----------------------------------------
// BlurFilterクラスをパッケージパスつきで宣言
import flash.filters.BlurFilter;
// Arrayインスタンスの作成
var filterArr = new Array();
// BlurFilerインスタンスの作成
var myBlur = new BlurFilter(15, 15, 2);
// ArrayにBlurFilterインスタンスを追加
filterArr.push(myBlur);
// ArrayインスタンスをMovieClip.filtersプロパティに設定
this.filters = filterArr;
// 変数 num の初期化
var num = 0;
//
// fire_mc にブレンドモード「加算」
this.fire_mc.blendMode = "add";
//
// 1フレーム進む時間ごとに毎回実行
this.onEnterFrame = function() {
// num の値に 1 を加算
num++;
//
// fire_mc を fire_mc1~? の名前で複製
this.fire_mc.duplicateMovieClip("fire_mc"+num, num);
//
// 変数 ran1 に -30 ~ +30 の乱数を取得
ran1 = Math.random()*60-30;
// fire_mc1~? の初期座標を指定
this["fire_mc"+num]._x = this.fire_mc._x+ran1;
this["fire_mc"+num]._y = this.fire_mc._y+20;
//
// 変数 ran2 に 50 ~ 80 の乱数を取得
ran2 = Math.random()*30+50;
// fire_mc1~? の大きさを指定
this["fire_mc"+num]._xscale = ran2;
this["fire_mc"+num]._yscale = ran2;
//
// fire_mc1~? にブレンドモード「加算」
this["fire_mc"+num].blendMode = "add";
//
// 1フレーム進む時間ごとに実行(動かす)
this["fire_mc"+num].onEnterFrame = function() {
// 上方向に 10 px ずつ移動
this._y -= 10;
// 大きさを小さく
this._xscale -= 3;
this._yscale -= 3;
// 大きさが 5% 以下になったら
if (this._xscale<=5) {
// ムービークリップを削除
this.removeMovieClip();
//(念のため)
delete this.onEnterFrame;
}
};
};
---------------------------------------------

これでパブリッシュしてもらうと,
しっぽさんのものに近い物ができると思います。

ぼかしの量や,小さくなるスピードや,上に上がるスピードなどを調節してもらうと,
もっと炎らしくなると思います。

先頭に // の付いたコメント行をなるべく1行1行入れていますから,
どうなっているのかは,なんとか理解してみてください。
 
    • good
    • 0
この回答へのお礼

大変分かりやすい回答をありがとうございました!!
返信が遅くなり申し訳ありません。
スクリプトも書いてくださったものを参考にしながら勉強したいと思います。
ありがとうございました。

お礼日時:2007/04/17 19:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!