• ベストアンサー

FLASHのBMPを透過させるには?

FLASHムービーを作っているんですが、BMPを透過(透明に)するにはどうすればいいんでしょうか? よろしくお願いします。

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

  • ベストアンサー
noname#35109
noname#35109
回答No.2

#1です。 全体が半透明になって,徐々に消えていく方でしたか。 それだと手間はかかりません。すぐです。 シェイプトィーンを使ってアニメーションさせる場合は,動かしたいものをシンボルにしませんが, モーショントィーンやスクリプトでアニメーションさせる場合は,動かしたい物をシンボルにするのが普通です。 なので,とりあえず,画像をシンボルにします。 まず画像をクリックして選択し,右クリック→「シンボルに変換」で,シンボルに変換ダイアログが出てくるので, 「ムービークリップ」にチェックを入れて「OK」をクリックします。 グラフィックオブジェクトでも良いですが,後の汎用性を考えて,今回の場合はムービークリップにしておきます。 ここまでは共通の作業で,以下,「モーショントィーン」 の方法と 「ActionScript」 の方法を書いておきます。 === 1 モーショントィーンによる方法 ==================== もし,上記作業をレイヤー1の1フレーム目で行った場合, その時のタイムラインを見てみると              1  □レイヤー1 筆・・|●| こんな感じになっていると思います。 1フレーム目の●の右横の2フレーム目を選択。 横にドラッグして36フレーム目くらいまで選択してください。 選択されたタイムラインを右クリック→「フレームの挿入」で36フレームにします。 デフォルトのフレームレートは12fps(1秒間に12フレーム進む)です。 だから,3×12=36フレームにしました。 実際してみると速い遅いがあると思うので,これは後で適当に調節してください。 この状態でタイムラインは              1                   36  □レイヤー1 筆・・|●                   []| こんな感じになっていると思います。 次に36フレーム目をのタイムラインを選択→「右クリック」→「キーフレームの挿入」でキーフレームにします。 この              1                   36  □レイヤー1 筆・・|●                 []|●| 36フレーム目のステージ上の画像を選択し, 下に表示されている「プロパティ」パネルを見てみます。 「プロパティ」パネルの右の方を見ると,  カラー 「なし」 となっている部分があるので,「なし」を「アルファ」に変更してください。 すると,さらに右に%を入力する部分が出てくるので,この値を 0 にしてください。 ステージ上の画像を確認してみると,全く透明になっていると思います。 1フレーム目は全く見えている状態で,36フレーム目は透明の状態になっていればOKです。 次に,1フレームのタイムライン上の●を選択。  →「右クリック」→「モーショントゥイーンの挿入」でモーショントゥイーンを作成します。              1                  36  □レイヤー1 筆・・|●>--------------------->|●| タイムラインのフレーム数(数字)の書いてある部分を選択し,右や左にドラッグしてみてください。 徐々に透明にくなる画像のアニメーションができていると思います。 この状態で, 「ファイル」→「パブリッシュ」すると,このFLAファイルのあるフォルダにSWFファイルがパブリッシュされると思います。 動作確認をしてみてください。 このままではループすると思います。 ループしたくない場合は, 「レイヤー1」の部分を選択,→「レイヤーを挿入」でもう1つレイヤーを作り, 36フレームを空白キーフレームにして,その36フレームを選択。 下に表示されている,アクションパネルの白い部分に, stop(); と書けば,このアニメージョンは60フレームでストップし,ループしません。              1                 36                                 a  □レイヤー2 筆・・|○                |○|  □レイヤー1   ・・|●>-------------------->|●| この作業を,アニメーションさせたい部分ですればいいわけです。 文章ではゴチャゴチャ書いていますし,慣れないと時間がかかりますが, 慣れれば,画像をシンボルにした状態から10秒くらいでできる作業です。 === 2 ActionScriptによる方法 ================= もし,上記作業をレイヤー1の1フレーム目で行った場合, その時のタイムラインを見てみると              1  □レイヤー1 筆・・|●| モーショントィーンと同じく,こんな感じになっていると思います。 すぐにレイヤーを追加してください。 ActionScriptでする場合は,タイムラインは不要です。              1  □レイヤー2 筆・・|○|  □レイヤー1   ・・|●| まず,シンボルとなった画像にインスタンス名を付けます。 シンボル画像を選択→下のプロパティパネルの左の方に <インスタンス名> となっているテキストボックスがあるので, そこで,この画像のシンボル(ムービークリップ)にインスタンス名を付けます。 何でも良いのですがここの説明では 「gazou」 とでもしておきます。 次に1フレーム目の ○ を選択。下のアクションパネルの白いアクションを書く部分に, ---Script(コピペ可)-------------- gazou._alpha = 100; this.onEnterFrame = function() { gazou._alpha -= 100/36; }; ------------------------------ と書きます。 これで,「gazou」 は徐々に消えます。 ---上のScriptの説明------------ (全角空白文字がありエラーが出るのでコピペ不可) //画像のアルファを最初は100にセット gazou._alpha = 100; //EnterFrameで,1フレームレート枚に1 { } 内を計算 this.onEnterFrame = function() {      //画像のアルファを36分の100ずつ減算   gazou._alpha -= 100/36; }; ----------------------------- これをタイムラインのスクリプトではなく,「gazou」ムービークリップに書いても良いです。 と言うか,普通は,ムービークリップに書きます。 「gazou」を選択。下のアクションパネルのアクションを書く白い部分に, ---Script(コピペ可)-------------- onClipEvent (load) { this._alpha = 100; } onClipEvent (enterFrame) { this._alpha -= 100/36; } ----------------------------- でも良いです。 これくらいの場合,モーショントィーンでするのが普通です。 場合によってはActionScriptを使います。 両方とも慣れていらっしゃらない場合は,とりあえずは基本のモーショントィーンでしてみてください。 また,ActionScriptで,他の方(DPEさん)の回答ですが, もっと複雑になればさらに考えることが出てきます,こちら↓も参考にしてみてください。 (上も下も同じです。) 教えて!goo http://oshiete1.goo.ne.jp/kotaeru.php3?q=1297478 OKweb http://okweb.jp/kotaeru.php3?q=1297478

Caps_Lock
質問者

お礼

ありがとうございます。とりあえず最初に教えていただいた方で試してみたところ、無事作る事が出来ました。丁寧におしえていただいて本当にありがとうございました。

その他の回答 (1)

noname#35109
noname#35109
回答No.1

透明というのは半透明のことではなく, 透過GIFのように,キャラクターの背景が全くの透明というものですか? つまり, 下の絵(犬のつもり)の背景(白)の部分が透明で,犬(黒)の部分が透明でないような画像と言うことです。 ■■■ ■■■     ■   ■     ■  ■■■■■  ■■■■■ ■      ■  ■      ■ これは,結構大変です。 まず読み込んだ画像を「分解」します。 それで,上の犬で言うと黒と白の境界をなぞるように線を書いて行きます。 黒の部分が全部囲めて,閉じた線になったら,外側の白い部分だけが選択できます。 それで不要な部分を選択して消せば,閉じた中だけが残ります。 Flashは面と面が重なると下の面が消えますよね。 また面を線で区切ると,2つの面に分割されますよね。 この方法を使って面を線で2分して,残したい部分を残すのです。 消しゴムツールで透明にしたい部分を消していく方法もありますが, それだと境界がなめらかになりません。 消しゴムツールは最後の総仕上げくらいに使って,面を線で切っていく方法の方がきれいにできます。 切り抜いた画像は,グループ化しておくことをお薦めします。 間違ってこの画像の上に面でも描いたら,その部分が消えてしまいます。 もしくは, 上記とは逆の方法で, 画像の上に犬の形のマスクをかぶせて,マスクの部分だけを表示させる方法もあります。 でもその場合も結局,犬の形のマスクが必要なので,手間は変わりません。 この作業が大変で,絶対出来ないと思ったら, フォトショップ(エレメンツでも可)の,「自動選択ツール」や「消しゴムツール」で不要な部分を削除して, 透過GIF,もしくは透過PNGにして保存しておいて,そのGIFもしくはPNGをFlashに読み込ませるのが良いいと思います。 フォトショップ以外のビット画像処理ソフトもできるのかもしれませんが, 良く知らないので,フォトショップで説明しました。 最初の質問に戻りますが, 透明というのは背景などの透過画像ではなく, 画像全体を半透明にすると言うことでしょうか? それでしたら簡単です。 画像を何かのオブジェクトにして,そのオブジェクトのプロパティで,アルファを任意の%にすれば良いです。

Caps_Lock
質問者

お礼

わざわざありがとうございます。 これだけ丁寧にご説明いただいて申し訳ないんですが、画像全体を透明にしようと思っています。 最初は100%表示で3秒間で徐々に画像が消える(透明になる)ように設定したいのですが、どのようにすれば・・・。 よろしければもう1度教えていただきたいのですが・・・。説明不足で申し訳ございません。よろしくお願いします。 ちなみに使っているソフトはFLASH MX 2004です。

関連するQ&A