ログイン
注記: これは、自動翻訳され、明確な言語を使用してください俗語なし.

独自の3次元粒子発生器を構築

Dan Ebberts
チュートリアル :
独自の3次元粒子発生器を構築
独自の3次元粒子発生器を構築
from CreativeCow.net's ''25 Cool Things about After Effects 5.5'' Series


Building Your Own 3D Particle Generator
Dan Ebberts Dan ebberts,
サクラメント, カリフォルニア, アメリカ合衆国

© 2003年までに Dan ebbertsとCreativecow.net. 全ての権利を確保されています.

記事焦点:
このチュートリアル, Dan ebbertsどのように表現を使用することができます探究After Effects 5.5は、かなり高度な3次元粒子発生器を構築する. 我々の粒子の初期速度に応じて対応する, 重力, 風, ドラッグ, など多くの. この粒子発生器を使用して, 私たちはどのように作成したり爆発を見てよ, 煙, 火災爆発, 雪の落下, 液体のような流れとも. それぞれの粒子を作る方法を説明します再利用可能な, 私たちは、噴水をシミュレートすることができるストリームのような粒子. これはかなり進んでいる.


ダウンロード映画 プロジェクトファイル: .座る プロジェクトファイル: .郵便番号

--の基本--



基本的な考え方は、我々は1つの粒子のグラフィック表現をインポートされます. 我々のコンピュータにドラッグし、それを3次元. 我々の粒子にして我々の物理的なシミュレーション表現を適用させていただきますが層十分納得できる結果を得るために、重複回. 我々は、各粒子(層)が異なる振る舞いをする表現を設定します. 我々は粒子の性質の多くを表現適用されます, 位置を含む, 規模, 不透明度, と回転.

我々は単純な爆発から始めるだろうし、そこからより複雑な表現を開発. それは(残念いくつかの非常に怒って、数学や物理学を含むいくつかの予定!)が、良いニュースは、必ずしも正確にどのように表現仕事-あなたはどのように知ってもらうように頼むにはしたいことを理解して変更する必要がないということだ. チュートリアルの最初の部分で, 私は何をするか試してみます, できるだけ, どのように表現や動作を変更するとどのようにそれらの基本をカバーすることです. それから, 最後の方, 気丈なのは、毛むくじゃらの数学と物理学から私に従ってください.


--の戦略--


我々は一定の範囲内にランダムにされる寿命が定義され、それぞれの粒子を. 我々は粒子の複数のプロパティに式を適用されますので, 我々はそれに必要なすべての表現には、粒子の寿命についての情報を通信するいくつかの手段が必要. (発現を制御する場合の詳細については、私たちは表現したいコントロールの寿命の計算を実行することでこれを行うよ, 私のチュートリアルを参照してください カメラマンは、世界最大の建物). 我々としては、式を読むだけのコントロールを使用します グローバル変数 我々の粒子は、すべての他の表現に用いることによってアクセスすることができます.


-- 'を開始した!--

先に行くと、プロジェクトファイルをオープンしてから、 "爆発オープン- "コンピュータの基本的な. あなたのグラフィック層"スターと呼ばれることに気づくでしょうフレア"とは、 null層, 3Dの両方になっているが. 私たちは爆発の中心の位置を設定するにはnullを使用します. 我々は粒子"エミッタとしてnullに"と呼びます後、私たちの周りの粒子を"エミッタ速度"を伝えるにはnullを移動します. "星を選択してください" "その表現に適用されているすべてのプロパティを表示する層とタイプ" ūフレア. また、入力するCTRL + SHIFT +トン( )のPCまたはCMD +シフト+ Tキー( MAC )は、効果は、層の適用を表示する. あなたは、 "ポイント"コントロールが適用されており、 "生活"の名前を変更が表示されます。. なぜ私たちの代わりに、 "生活を保持するためには、スライダコントロールポイントコントロールを使用する"の値wonderingされることがあります. その理由は、後に(ときには再利用可能な粒子) "と"誕生"回2つの値を渡すことができますので、我々は両方の制御が必要"に合格する必要がある生活をして、取得され. 私たちは2つのスライダコントロールを使用できる? いいえ, これは、 "誕生"と"生活"のための計算をしたときと同じ表現でも動作させるために行う必要が. タイムラインで, Twirlyをクリックして"ポイント"という表現は、 "生活に"ポイント制御適用を明らかにする次のページ:

Lmin = 1.5 ; / /最小粒子生活
Lmax = 2.5 ; / /最大粒子生活

見るd_random ( 1,真の) ;
寿命= ( lminランダム,Lmax ) ;
出産= 0 ;
[誕生,生活]

この表現は、 1間の我々の粒子のため"の値をランダムに"生活が生成されます.5と2.5秒. この値は我々の点を制御変数の2番目の要素に接続される. 最初の要素( "誕生" )だけから、すべての粒子が生まれる時間がゼロになるのCOMPこの最初の爆発をゼロに設定されている. " seed_random "を呼び出すだけに指示After Effectsは、 "生活" (それ以外のすべてのフレームの"値とホップの"生活の表現を実行するたびに-をしないで同じ乱数値を取得したい 私どもの仕方 ここ). 場合は" seed_random "についてもっと勉強したい, 私のチュートリアルを参照してください 乱数を生成するMotion. 場合は、粒子の寿命を変更したい, あなただけ"と" " lmax値は、 " lminを変更する.

Twirlyをクリックして、この表現を明らかにする位置に次のページ:

Vmin = 500 ; / /最小初期速度
Vmax = 700 ; / /最大初期速度

出生=効果( "生命" ).パラメータ( "ポイント" ) [ 0 ] ;
人生=効果( "生命" ).パラメータ( "ポイント" ) [ 1 ] ;
原点= this_comp.層( "ヌル1 " ).位置.Value_at_time (誕生) ;
年齢=時間の誕生;
見るd_random ( 1,真の) ;
秒= ( vminランダム,Vmax ) ; / /初期速度
一= degrees_to_radians (ランダム( 180 ) ) ;垂直から/ /角度
Y軸の周り研究= degrees_to_radians (ランダム( 360 ) ) / /回転
のX = *数学秒.罪( 1 ) *数学.Cosを(共和党) ;
イ=-秒*数学.Cosを( 1 ) ;
Ž = *数学秒.罪( 1 ) *数学.罪(共和党) ;
五= [ Xの,y,Ž ] ;
原点+五*時間

これは"ゼロのための基本的立場を表現グラム"爆発だ. 我々の粒子の3次元空間でのランダムな方向にある"原点から" (これだけはnull層の位置) 500と700の間で最初の速さでユニットが起動している(これは約1秒あたりのピクセル)相当. 粒子の速度と方向を継続することを死ぬまで. 風はまだ織り込んでいない, 重力, ドラッグ. 私はあなたの3行を計算するためには、 JavaScriptの関数を使用するトリガに気づいたのxと確信している, y, 粒子の速度ベクトルの成分とz. このベクトル速度のランダムな値から生成されます( "秒" ), 垂直方向から発射角度( " " )と、回転、コンピュータのy軸(は" r " )からの相対. この時点ではあまりこのベクトルのことについて心配しないでください-のように私の前にいる, をどのようにそれを使用するようにしてより詳細に保存されますがカバーできるように作品を理解する必要はありません. 位置表現の場合は、このバージョンを知るために必要な主なものは、 "および" " vmaxは、粒子の初期速度を変更する値は、 "編集vminことである. 後、私たちは、私たちは、噴水型の噴霧を生成することができる垂直からの角度のための制約を追加します.

をクリックしてtwirlyの発現を明らかにするスケールの横に小さな:

Max_規模 = 50 ; / /最大規模
秒=.2 ; / /スケールのランプアップ時間

人生=効果( "生命" ).パラメータ( "ポイント" ) [ 1 ] ;
年齢=時間の効果( "生命" ).パラメータ( "ポイント" ) [ 0 ] ; / /年齢=時間誕生
(年齢 場合) (
のX = (年齢/秒) * Max_規模 ;
[ Xの,x,100 ]
)他(
[ Max_規模,Max_規模,100 ]
}

この表現はすべて0の値が" Max_規模 " ( 50 %でこのような場合に指定するからスケールランプまで)の期間"で定義されて終わったんだ"です(.この場合は2秒). 場合は、粒子の最大サイズより高速または低速に到達する, あなたのための" S "の値を編集する. 注記は、この値は、 "人生の" lmin "よりも"表現する必要があります少ない場合は、粒子が死ぬ前に、フルサイズに達することを確認します.

今すぐクリックしてtwirly Z回転の横にして、この表現が表示されます。:

Rmax = 1080 ; / /最大回転
Rmin =- 1080 ; / /最小回転

出生=効果( "生命" ).パラメータ( "ポイント" ) [ 0 ] ;
見るd_random ( 1,真の) ;
研究= ( rminランダム,Rmax ) ;
人生=効果( "生命" ).パラメータ( "ポイント" ) [ 1 ] ;
年齢=時間の誕生;
(ライフ== 0 ) (
0
)他(
研究/生活*年齢
}

この表現は、ランダムな値を選ぶの粒子の生活の上にZ軸周りの回転を-1080度、 1080度) (間. 注意点は、この発現制御の点からは、 "誕生"と"生活"の値を使用します. また、 "機能を確認して、ランダムな回転値を選択したすべての時間を表現するために、これまでと同じだ"の使用を注意seed_random計算されます。. 場合にどの程度の粒子を回転させることができます変更したい, "と" rmin "の値は、 "編集とrmax.

ついに, Twirly不透明度をクリックすると、この表現を明らかにする次のページ:

減衰=.75 ; / /粒子フェードアウト時間
Max_不透明度 = 100 ; / /最大の不透明度

人生=効果( "生命" ).パラメータ( "ポイント" ) [ 1 ] ;
年齢=時間の効果( "生命" ).パラメータ( "ポイント" ) [ 0 ] ;
(年齢 生命) (
0
)他(
場合(年齢 生活崩壊) (
( (生活年齢) /崩壊) * Max_不透明度 ;
)他(
Max_不透明度
}
}

この表現は、フェードの粒子のうち、その人生の最後での処理. "崩壊"の時だ, 秒単位で, フェードが続きます. 場合は、フェードアウト時間を変更したい場合、この値を編集する. この値は、 " lmin "は、 "人生の価値"を制御する必要があります未満. " Max_不透明度 "です, ご推察, 不透明度の最大値に達するとの粒子を.

最初の爆発は、このための表現はこれだけです. "星を選択してください"と何度も層フレア束重複. 私は通常は、 Ctrlを押しながらヒット+ dの( PC用)またはCMD +エ( MAC ) 、 4 〜 5回, は、すべての重複やオリジナルをヒットするCtrl + Dを選択/コマンド+ダバンチ回、少なくとも50の粒子を生成するために. プレビューのCOMP. 自然, は、多くの層で, それぞれ5つの表現には適用さ, それは、プレビューのレンダリングには少し時間がかかる場合があります. ときにこの手法を適用, あなたが納得の効果を作成するのに十分な粒子を使用してレンダリングに時間のバランスをとる必要があります. すてきな三次元の爆発では、全方向に任意の力だけでそれらの初期速度を除いて演技を爆発粒子なしで終わる必要があります.

-ゼロの粒子で65グラムの爆発


--せさんの身体を得る--


現在のプールの深最後に飛び込むと風の物理的な効果を追加できるように, 重力, ドラッグ, 我々の立場を表現し、エミッタ速度. 今、すべてのコードを追加します, が、必ずしもすべての例のすべての新しいパラメータを使用しません. 我々の例の多くからは行くよ, まで、すべてを紹介してきた. 先に行くと物理学では、 "爆発オープン"のCOMP. "星の1つを選択してください"は" P "の位置プロパティを表示するには画層とタイプフレア. Twirlyをクリックして"位置"の隣には、すべての物理学が含まれています私たちの新しい表現を明らかにする. これは、新しいコードです:

グラム= 100 ; / /重力
ワット= 0 ; / /風
Wdir = 0 ; / /風の方向( 0 =左から)
Vmin = 700 ; / /最小初期速度
Vmax = 1000 ; / /最大初期速度
垂直からアミン= 0 ; / /最小発射角度
垂直からamax = 110 ; / /最大発射角度
エ= 4 ; / / coeffecientドラッグ

出生=効果( "生命" ).パラメータ( "ポイント" ) [ 0 ] ;
人生=効果( "生命" ).パラメータ( "ポイント" ) [ 1 ] ;
原点= this_comp.層( "ヌル1 " ).位置.Value_at_time (誕生) ;
年齢=時間の誕生;
見るd_random ( 1,真の) ;
秒= ( vminランダム,Vmax ) ; / /初期速度
V_e = this_comp.層( "ヌル1 " ).位置.Velocity_at_time (誕生) ; / /エミッタ速度
一= degrees_to_radians (ランダム(アミン,Amax ) ) ;垂直から/ /角度
Y軸の周り研究= degrees_to_radians (ランダム( 360 ) ) / /回転
のX = *数学秒.罪( 1 ) *数学.Cosを(共和党) ;
イ=-秒*数学.Cosを( 1 ) ;
Ž = *数学秒.罪( 1 ) *数学.罪(共和党) ;
五= [ Xの,y,Ž ] + v_e ;
New_speed =長さ( 5 ) ;
( v )を正常化= unit_v ;

場合(エ 0 ) (
Delta_p = * ( 1 -数学new_speed.経験( -エ*年齢) ) /エ;
)他(
Delta_p =年齢* new_speed ;
}
年齢delta_w =ワット* ;
Delta_g =グラム*年齢*歳/ 2 ;

和= degrees_to_radians ( wdir ) ;

原点+ delta_p * unit_v + [ delta_w *数学.Cosを(和),0,Delta_w *数学.罪(和) ] + [ 0,Delta_g,0 ]

お分かりのように, 私たちは重力のためにコードを追加した, 風(この例では)を使用していないしている, 発射角, ドラッグ, とエミッタ速度. まだすべての作品については心配しないでください。. あなただけが知っている場合は、粒子の挙動を変更するには、最初の7つのパラメータを変更する必要がある. 他のすべての表現としても、彼らは"爆発していた同じです- "コンピュータの基本的な.

前のCOMP行くとプレビュー. 今では我々の粒子と空気抵抗(ドラッグ)に遭遇する重力の影響を受けていることに気づくでしょう. また、 0から110の間に垂直方向から度の粒子の発射角度を制限した.

重力( 65粒子) -爆発


ミスが起こる-- --


を開いて、プレビューは、 "キラキラ輝く爆発"のCOMP. この物理学では、 "爆発の以前のバージョンの"コンピュータでエラーが発生していることだが. それは、私seed_randomへのポイント管理のための表現での呼び出しを残していったが分かった. その結果は、不透明度をランダムに粒子の生活の後にオフになると、エラーが期限切れにしている. 以降、この効果が実際にはかなりクールだ, 私の周りに維持することを決定. これは"誤り"を"機能"になる. ここでポイントを制御するため、誤ったコードの:

Lmin = 1.5 ; / /最小粒子生活
Lmax = 2.5 ; / /最大粒子生活

寿命= ( lminランダム,Lmax ) ;
出産= 0 ;
[誕生,生活]


ここでは煙の.....


今の私たちの爆発を行っていくつかの煙を作ることで私たちの手を使ってみよう. ここから, 物事にはかなり容易になる. 別の粒子の効果を得るに, 現在は、主にだけは、様々な表現の初めに設立され、パラメータを変更する必要があります. 先に行くと"煙オープン"のCOMP. すべての私はこのコンピュータを作成して"コンピュータ物理学では、 "爆発が重複すると"星を置き換えるフレア"の画像は、 "煙"のイメージとなった. それならば、その表現では、パラメータに、これらの変更が行わ:

位置:

グラム= 10 ; / /重力
ワット= 80 ; / /風

規模:

Max_規模 = 150 ; / /最大規模

Ž回転:

Rmax = 10 ; / /最大回転
Rmin =- 10 ; / /最小回転

不透明度:

減衰= 1.25 ; / /粒子フェードアウト時間
Max_不透明度 = 50 ; / /最大の不透明度

私も" " "スクリーン"に、通常からの層の混合モードを変更.

パラメータの変更では、たばこを吸うことは異なる別の物理的な力に反応して動作を反映する. 重力の影響を大幅に軽減されている. 風の影響を大幅に向上されている. それほど回転はzです. それぞれの粒子の不透明度は50 %に達すると. これらの値でどのように反応するはずの粒子を推測して到着, 右に見えるまで調整して. 前のCOMP行くとプレビュー. 期待をどのようにパラメータの変更は、粒子の挙動には大きな違いがあることに気づくでしょう.

- 40の粒子と煙

なぜ我々だけスライダコントロール上のすべてのこれらのパラメータを置かないでくださいwonderingかもしれないこの時点で. 私たちは、確かにこれは、パラメータの微調整を行うことが容易になる. この問題は、それを行う場合, あなたはかなり多額のヒットをレンダリングする. のことはあるかもしれない, やせたけど、できる限りのことを意味するように, 感じがする場合は自分で試しに無料.


-- 'せ、ミックスするための小さな破片を追加秒--


を開いて、プレビューは、 "破片"のCOMP. この物理学の"コンピュータとは、 "爆発の変動は、私だけの仕様"には、粒子が変更されました"とされ、 80の重力を変え、 80への風. Max_規模 75に設定していることは、 Z - 180 、 -180度回転式の間のランダムな方向を選択するように修正されている. の不透明度を表現して無効になっています, 100 %での不透明性を残す.


--の部分を一緒に入れ--


を開いて、プレビューは、 "コンボの爆発のCOMP ". このコンピュータ"は"爆発が含まれてキラキラ輝く, "煙", "破片"総合一緒に一緒にどのように異なる粒子の種類を作成する作業は、複雑な効果を発揮することができます. 通知は、 "崩壊の変換"スイッチがオンになっている. このように3つの総合3D空間での粒子を適切に混ぜるだ.


-複数の総合試験を組み合わせた複雑な効果を作成する


生まれ変わった粒子-- --


今我々の粒子を再利用可能なことに注目していく. つまり, 粒子後死ぬ, 私たちはさまざまな属性と生まれ変わるしたい, 同じように、新しい粒子が. 我々の粒子の連続ストリームを生成できるようになります. 私たちは"生活"ポイント管理のための表現を変更する必要があります. ここでは新しいコードの:

Lmin = 1.5 ; / /最小粒子生活
Lmax = 2.5 ; / /最大粒子生活

私= 1 ;
見るd_random (私,真の) ;
遅延=ランダム( lmax ) ;
出生=遅延;
死=遅延;
(時間 遅延) (
[ 0,0 ]
)他(
(時間 中=死) (
私+ = 1 ;
見るd_random (私,真の) ;
出産=死;
寿命= ( lminランダム,Lmax ) ;
死+ =生活;
}
[誕生,生活]
}

この式の表現に私の"乱数を生成するために開発の変化を含むように修正されているMotion "チュートリアル. そこは、初期, の粒子の最初の化身の発生前に、ランダムな遅延. この遅延が0で、最大粒子の生活の間にされる. そうでなければ, すべての"第1世代"の粒子が同時に生成されると(爆発のように), これは噴水ではない私たちが望んでいるタイプの効果. 一般的に, この表現は、 " lmin "と継続時間" lmax "としている乱数の長さの"セグメント"には、タイムラインを分割することで機能する. 各セグメントに新しい粒子の寿命を表す. 粒子の生成とは異なる属性を持つように、元の, のseed_random ( )の位置で通話Žこの回転式に変更されました:

見るd_random (出生,真);

これは、種子として使用される粒子の出生時の原因, 別の中の粒子のそれぞれの"生活"の結果が異なるため、出産回常にされる. このコンピュータになりましたが、他の変更"垂直から(最大発射角度)の位置を表現するためのパラメータ30は、すべての粒子は上昇方向に打ち上げられる予定の" amaxを変更することです. 先に行くと"噴水オープン"のCOMPとプレビュー. 現在の粒子を連続スプレーが表示されます. 注記は、このコンピュータ100粒子の層が含まれて. もしあなたのプロセッサチョーク, いくつかのレイヤーを削除してから、もう一度試してください.

100粒子-噴水スプレー


--なお、物理学に--


我々の立場を表現するためのコードを追加物理的な効果を含むように, 私たちは、私たちはまだ目にしたことのない追加. その効果は、速度の粒子は、 "エミッタ"を与えている. この点は固定されているすべての排出(ヌル層). は理にかなっている場合は3次元空間を移動する我々のエミッタ, 傾向は、ドラッグの影響をエミッタ従うことが必要になるまでに放出される粒子, 重力, と他の方向に風を送る. 以来、今、私たちは、アーセナルでの噴水噴霧粒子が, これは、エミッタ速度のプロパティを見るにはいい時期だ. プレビューを開き、 "移動エミッタ1 "のCOMP. エミッタは、エミッタの3次元空間の速度で移動するkeyframedていますが、このコンピュータでは、粒子を与えている. ですので、ここでは、エミッタを見ることができます私はヌル( "スパイクの塊" )に新たな層parentedした. 対照的に, プレビューを開き、 "移動エミッタ2 "のCOMP. このコンピュータと全く同じです, が、速度のエミッタを追加するコードは無効になっている. の違いに気付くはず.

速度-エミッタ粒子の移動を与え



速度-エミッタ粒子の移動を与えていない


--もっと楽しい粒子--


[ OK ]をする私たちの周りになるだろうしているgoofing. 最後の4つの総合試験をしている私たちを見に行くだけのパターンをテーマにしている. 私は、これらについての詳細の多くに入るつもりはない, しかし私はお会いできて、各コンピュータの表現を調べるには、どのようにパラメータを招待する(そして時々 、コード)は、さまざまな効果を達成するために変更されています.

を開いて、プレビューの"雪"のCOMP. このコンピュータについての注記には、いくつかのことです. 場合は、位置表現を見て, あなたは、エミッタ幅のために新しいパラメータを持っていることに気づくでしょう. この本質的には"線"エミッタにエミッタ有効であると我々のポイントに何が. 我々はエミッタの幅を600に( "気持ち悪い" )を設定して、この場合には. 粒子が生まれている。, その最初の位置プラスマイナス半分のエミッタ幅内のx方向( )は、ヌルの位置からです. このことで私たちは、どこの行に沿って新しい粒子を生成することができます. ともう一つのは、このコンピュータについての異なる複数の粒子画像の使用は. 私は、式はすべて1つの粒子のために設定した, 重複は3回、それぞれ別の雪の結晶のイメージと重複の置き換え. 次に私の4つの層の雪片を選択して何度もたくさんの重複.

複数の粒子画像を-雪

を開いて、プレビューは、 "火災爆発"のCOMP. このコンピュータ風に, 重力, ドラッグをゼロに設定されている. すべての粒子は負のZ方向に開始されているビューア( )方面. これは、まだ作業が必要, している可能性が.

-火災爆発

これを開いて、プレビューは、 "無神経な人"のCOMP. この試みは、液体タイプのフローを生成している. このコンピュータの各粒子をわずかに異なる色にするために使用されます"の効果は、 "行エミッタ"の"雪のコンセプトは"コンピュータとは、 "色合いを使用して. これはまた、進行中の作品です.

-液体の流れをシミュレーション

ついに, プレビューを開いて、私たちの最後の例, "リング"のCOMP. このコンピュータは、負のZ方向で、すべての粒子が発射の"火災爆発"に似ています. このコンピュータ上でも表示がやや一面図からは、より前に移動するkeyframedされているカメラをしている. 私だけでもないと思うかもしれないが、通常のオブジェクトの動きを発電機としてこれらの表現を使用することができます詳細に含まれ、このコンピュータ"粒子"という。.

-発電機リング


--を使用してカメラ--


これはおそらく、この粒子系とカメラの使用について少し話をするには良い場所です. 粒子で生成される AE ' 3D空間秒, ので、粒子の周りは本当にあなたのアニメーションに奥行き感を追加することができますが、カメラを移動. 移動する場合は、カメラを使用するように決定, に便利なオプションがある. エミッタの周りの場合は、カメラを回転させる以外は何もしない, 最終的には2次元の粒子自体が明らかになるだろう. これは後にしている影響されることがあります, 特に、他の要素を配置している場合は2次元の要素を明確にしている3次元空間に. 他の選択肢があることですが、常にカメラを向け粒子. これを行う場合は、レイヤメニューから: レイヤー 変換 自動車オリエント "の位置をカメラに向け". 粒子に応じて, これは、粒子を3次元にいるような錯覚を与える説得することができます. 実験. 楽しむ!


--の粒子についての言葉--


これらのシミュレーションの有効性を左右, 大部分の, お使いの粒子の質に. 私はあなたのものは、私はこれらの例で使用したことを検討するために、独自の手で試して、もう1つは総合試験の代わりに奨励する. 例えば、, 秋の紅葉と雪を交換してください. または、いくつかの奇妙な半透明の塊を発明し、噴水のようにコンピュータを参照してください. 実験. 楽しむ! また、さまざまなブレンドモードで遊び回る. をしたときは、 1つの混合モードを変更するすべての粒子を選択することができますを覚えて, すべての他のユーザーにも変更されます.


ボンネットの下、最終的にのぞく-- --


上手に, あなたの中でおとなしくするのままに無料ですが、. と約束, 今まで私たちをこのラップは、粒子運動の表現は少しの物理学になるからね. の位置を表現する私たちを使用してきたもう一つの典型的な例を見てみましょう(私たちは"動くエミッタ1 "のCOMP )から1つを使用します:

グラム= 100 ; / /重力
ワット= 0 ; / /風
Wdir = 0 ; / /風の方向( 0 =左から)
Vmin = 500 ; / /最小初期速度
Vmax = 700 ; / /最大初期速度
垂直からアミン= 0 ; / /最小発射角度
垂直からamax = 110 ; / /最大発射角度
エ= 4 ; / /係数をドラッグ

出生=効果( "生命" ).パラメータ( "ポイント" ) [ 0 ] ;
人生=効果( "生命" ).パラメータ( "ポイント" ) [ 1 ] ;
原点= this_comp.層( "ヌル1 " ).位置.Value_at_time (誕生) ;
年齢=時間の誕生;
見るd_random (出生,真の) ;
秒= ( vminランダム,Vmax ) ; / /初期速度
V_e = this_comp.層( "ヌル1 " ).位置.Velocity_at_time (誕生) ; / /エミッタ速度
一= degrees_to_radians (ランダム(アミン,Amax ) ) ;垂直から/ /角度
Y軸の周り研究= degrees_to_radians (ランダム( 360 ) ) / /回転

のX = *数学秒.罪( 1 ) *数学.Cosを(共和党) ;
イ=-秒*数学.Cosを( 1 ) ;
Ž = *数学秒.罪( 1 ) *数学.罪(共和党) ;

五= [ Xの,y,Ž ] + v_e ;
New_speed =長さ( 5 ) ;
( v )を正常化= unit_v ;

場合(エ 0 ) (
Delta_p = * ( 1 -数学new_speed.経験( -エ*年齢) ) /エ;
)他(
Delta_p =年齢* new_speed ;
}
年齢delta_w =ワット* ;
Delta_g =グラム*年齢*歳/ 2 ;

和= degrees_to_radians ( wdir ) ;

原点+ delta_p * unit_v + [ delta_w *数学.Cosを(和),0,Delta_w *数学.罪(和) ] + [ 0,Delta_g,0 ]


私は粒子のシステムでは専門家だ, しかし私は、コードを生成するために使用されるいくつかの事例を見ている. 私は、通常、増分計算をどれだけのことは最後のサイクル以降に変更がある計算に基づいて行うと見てきたもの. 多くの情報を各粒子格納されていると、計算の各サイクルを更新. 簡単な例で, 現在の位置, 方向, 速度, 色, 年齢, 粒子の寿命は保存されるかもしれない. これらの値を見ている計算, だけでなく、現在の勢力は、粒子に作用すると、次の計算は、各一時間に加算する必要があります.

私たちのことは少し違ったアプローチをする必要がありますAfter Effects. ご存じかもしれませんが, (特に私の場合は"乱数を生成する文書を読んでMotion "チュートリアル)は、 1つのサイクルを計算(フレーム)からの情報を渡すことが容易ではない、次の. 変数を1つのフレームに生きていけないから、次の. このため、以前のフレームでの粒子の状態については、いろいろと情報を格納する方法が無い. 私たちはさまざまな計画が必要. 我々は, しかしばがら, 有用な情報を私たちに利用可能な数の作品がある. ポイントコントロールから, 我々は粒子の誕生と生命の値を持つ. 以来、我々は現在の時刻にアクセスすることが, 我々は粒子の年齢を計算することができます. 声明は、以下を使用して, 我々は、 3D空間で生まれた粒子を決定することができます:

原点= this_comp.層( "ヌル1 " ).位置.Value_at_time (誕生) ;

同様に, エミッタの初期速度は、このステートメントを使って入手することができます:

V_e = this_comp.層( "ヌル1 " ).位置.Velocity_at_time (誕生) ; / /エミッタ速度

注意点は、 " " v_eベクトルである. それは大きさと方向は、エミッタの速度を表現している.

最初の速度と粒子の発射角度がランダムに機能するためにこれらの3つの呼び出しによって決定されます:

秒= ( vminランダム,Vmax ) ; / /初期速度
一= degrees_to_radians (ランダム(アミン,Amax ) ) ;垂直から/ /角度
Y軸の周り研究= degrees_to_radians (ランダム( 360 ) ) / /回転



は、我々は常に粒子の生活を通して、同じランダムな値を取得することを確認します, ランダム機能するためにこれらの呼び出しは、 " seed_randomに次の呼び出しによって"機能を先行している:

見るd_random (出生,真の) ;

我々は粒子の誕生時間にするための乱数の種を設定する" seed_random "を使用. その数は、粒子の生活の上にこれまでと変わりありません, ので、われわれは常に、最初の速度を再現し、角度の値を開始することができます.

この情報で武装, 小さな三角, とは少しベクトル演算, このことに対処する準備が整いました. 我々の計画と現在の条件を初期条件に基づいて計算するためにどれくらいの時間が経過しているから生まれている粒子, 私どもの結果は許容しなければならない.

[ OK ]を我々の最初の計算速度ベクトルの速度とは粒子の発射角度を変換することが. 私たちは、個々の計算することによりXこの操作を行う, y, ベクトルのコンポーネントは、小さな三角法を使用するとz. これらを計算するためには、ステートメントのXです, y, とz:

のX = *数学秒.罪( 1 ) *数学.Cosを(共和党) ;
イ=-秒*数学.Cosを( 1 ) ;
Ž = *数学秒.罪( 1 ) *数学.罪(共和党) ;

これは私の言葉を取る必要があるでしょう. 私は、ニフティの図で詳細に来てどのように派生している試み, が、 3D空間でのことは本当に急いで雑然と表示される必要がある. 知っている場合にトリガ, それまですることができます筋肉、何が起こっているのを把握. とにかく, 今はエミッタの初期速度ベクトルで、最初の速度ベクトルを結合するための合成速度ベクトルを取得する準備が整いました. ここではコードの:

五= [ Xの,y,Ž ] + v_e ;

見る, ベクトル数学も(特に怖いからではないAdobe 5のものに変更.5は、通常の数学演算子の使用を許可する, " + "今回の場合).

今はマグニチュード(速度)の値と単位ベクトルに変換して、新たな速度ベクトル(単位ベクトルの長さは1だけのベクトル):

New_speed =長さ( 5 ) ;
( v )を正常化= unit_v ;

次にやろうとしているしている影響は、このポイントにドラッグ粒子の生活上の粒子にしている計算だ. おそらく、このプロジェクト全体の計算ですtrickiest. これを行うには、展開は、現在のフレームでの粒子の位置の計算にドラッグの効果は何てきたことが分かった. 我々は粒子の大きさと粒子の初期速度のための方向性とは、エミッタの初期速度を持つ. 私たちは、空気抵抗は、粒子を遅くするために行動を知る, どちらかの方法は、粒子を移動さ. 私たちがしなければならないので、統合することです(結石のように-申し訳なく!)は、ドラッグの影響力の時間をかけて. この結果は、以下の式で:

場合(エ 0 ) (
Delta_p = * ( 1 -数学new_speed.経験( -エ*年齢) ) /エ;
)他(
Delta_p =年齢* new_speed ;
}

この計算( " delta_p " )の結果は、粒子の現在の位置は, アカウントには、最初の粒子の速度を, エミッタ速度, とドラッグの影響. 幾何級数的には、ドラッグの粒子の速度を低下させる行為に.

次の私たちは、風の影響を計算する必要がある. この1つの簡単. 私たちを覚えてからは、物理学

距離=速度*時間

これを計算するためにどの程度の風の誕生以来、粒子を移動している, 我々はこれを実行する必要がある:

年齢delta_w =ワット* ;

重力の効果を得るためには、式は少し複雑なことに, ではなく、過剰な. 私たちの物理学に帰る, このステートメントによって与えられる我々の粒子の重力の影響のための距離を移動することを覚えて:

Delta_g =グラム*年齢*歳/ 2 ;


今すべきことはすべて我々は、これらの要素の組み合わせ. 我々の距離のすべての等級は、粒子の様々な軍のために感動がある. 今だけのベクトル変換するための適切な方向にベクトルを取得し、最終的な位置にそれらを追加する必要がある. 私たちは知っているが、垂直方向に重力行為. パラメータの方向に風行為" wdir ". コンポーネントの初期の粒子の速度のために, エミッタ速度, と我々は以前、計算の単位ベクトルの方向にドラッグする行為. ので、ここでは、適切な方向にすべてのコンポーネントを組み合わせて、最終段階の:

原点+ delta_p * unit_v + [ delta_w *数学.Cosを(和),0,Delta_w *数学.罪(和) ] + [ 0,Delta_g,0 ]

ここでは、粒子の開始ベクトル( "起源" )は、距離と速度に合わせて見ることができるため、初期の移動/単位ベクトルの方向( )にドラッグ, 上の風の影響は、 " x "と" Z "を座標, と"イの重力の効果"の方向.

上手に, それまでだ! これらすべての式が本当に正しいです? わかんない. にも有用なシミュレーションを生成するのに十分な仕事に思える. 私が彼らとの演奏をお楽しみください.


# # Dan ebberts

この手法は、気軽に話し合う After Effectsフォーラム ここでCreativecow.



下記のフォーラムにアクセスし、他の記事を表示 Creativecow.net 場合は、直接リンクから、このページを発見.


フォーラムチュートリアルマガジンサービスビデオニュースブログ


© CreativeCOW.net 全ての権利を確保されています.

クリエイティブコミュニティの世界

[頂上]

Englishالعربية中文FrançaisDeutschעבריתहिन्दीItaliano日本語PortuguêsРусскийEspañol