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

乱数を生成するMotion 〜とともに AE 5.5の表情

Dan Ebberts
チュートリアル :
乱数を生成するMotion 〜とともに AE 5.5の表情
乱数を生成するMotion 〜とともに AE 5.5の表情


from CreativeCow.net's ''25 Cool Things about After Effects 5.5'' Series


Generating Random Motion with AE 5.5's Expressions
Dan Ebberts Dan ebberts,
サクラメント, カリフォルニア, アメリカ合衆国

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

記事焦点:
このチュートリアル, Dan ebbertsは、両方の時間と空間とすることができますがすぐに楽しく液組成を収集するとランダムに運動を生成する方法を示して, 無秩序な動き.


ダウンロード映画 プロジェクトファイル(ファイルが含まれています)愛 ダウンロードするにはStuffit Expander Windows

この問題:

このチュートリアルの背後にある概念は、オンラインの議論から出てきた. 仲間After Effects熱心な支持者だったが、時間と空間のランダムな運動を生成するためには、式に来てみたいと思っていた. つまり, ターゲットの位置をランダムにされるだろうと、それが取得するのにかかる時間. この問題は、このような表現を開発しようとするときに遭遇することが1つのフレームから進むのに時間の変数の値を運ぶために良い方法ではないかとされている次のページ. すべての変数の定義は、次のフレームで消えてしまいます. 不透明度を表現するための次の例を考える:

場合(時間= 0 ) (
のX = 10
}
他(
のX =のX + 1
}

これは、最初のフレームで正常に動作. 未定義であるため、 Xの2番目の場合は、エラーが表示されるフレーム. という表現は、 × 10 、前のフレームにいたことを覚えていない. これは深刻な限界を取る必要がありますので一度どのように長い時間を決める際にランダムな金額以上の何かをしようとしているとなる, すべてのフレームをチェックするにはまだ完了している場合に確認する必要のある. するのが困難な場合は1つのフレームに値を渡すことはできませんが、次の.


救助にseed_random:

それは、 (強化されたとこの問題を回避することになります AE 5.5 ) seed_random機能. この関数をランダムな数字の配列を確立するために反復して再生することができますが, だけは、以前の値にして、ランダムな種を復元することによって( )関数を呼び出す. ため、 1つのフレームにもかかわらず、我々からのランダムな値を渡すことができない私たちはこの問題への解決策を与えて次のページ, 我々 seed_randomを使って再現することができます. Seed_randomさせる方法を見ての作品.

をクリックし、 "基本的なコンピュータを開く"は、プロジェクトファイルを開く. これは50x50固体層では640 × 480のCOMPが追加されます. " 1固体"を選択して、位置を特性を明らかに. のAltをクリックします(オプションをクリックして)このプロパティの表現を有効にしてストップウォッチで. 次の式を入力してください:

[ランダム( 0,This_comp.幅),ランダム( 0,This_comp.高さ) ] ;

これは、コンピュータのランダムな位置にジャンプするには正方形の原因となります. プレビューのCOMP. あなたに気付くでしょうは、すべてのフレーム上の新しい位置にジャンプスクエア. 非常に役に立つていない. 表現するために新しい行を追加することを読み取る:

Seed_random ( 1,真の) ;
[ランダム( 0,This_comp.幅),ランダム( 0,This_comp.高さ) ] ;


通知は、ランダムな位置に再度ジャンプスクエアが、滞在したときのプレビューが. この新しい動作を変更することによるものですがAdobe機能するためには、 seed_randomために作ら AE 5.5. 彼らは2番目のパラメータが追加されました, そのときに" true "を設定されているので、ランダムな機能セットの時間に依存しない乱数を生成. ランダムな番号は、層数に依存, 財産番号, のseed_randomコール(以下、 "種" )の最初のパラメータの値, とは、ランダム関数と呼ばれてきた時代の番号. には、同じ表現を別の層やプロパティに(後はこれをすぐに我々のコンピュータに複雑さを追加する)を利用する別の乱数を生成することを意味. "シード"いくつかの他の数多くのパラメータを変えてみてください. あなたに気付くでしょうが、別の場所にある広場に移動し、滞在. " 2番目のパラメータを変更するにはfalse "と通知したときにプレビュー, 広場はあらゆる場所に再度ジャンプ.

あなたの表現にはもう少しのコードを追加しますので、それはこんな感じです。:

(時間 1 ) (
Seed_random ( 1,真)
}
他(
Seed_random ( 2,真)
}
[ランダム( 0,This_comp.幅),ランダム( 0,This_comp.高さ) ] ;


では、プレビューしたときに通知されます, に対して1つの場所にある広場滞在して、コンピュータの最初と2番目の残りの部分を別の場所にジャンプ.

どのように使用すればよいので、この新しい, より強力な機能seed_random? ここで重要な概念の: 2番目のパラメータが"真"に設定して, 特定の層に, プロパティ, とシード値, のみに依存するときは、ランダム( )関数を呼び出して取得する乱数シードの設定をどのように関数を呼び出して以来、何度も. つまり, 最初の時にランダム( )は、ランダムな番号を取得するparticlarシードの設定後に電話(のコールはX )をさせる. 2番目の呼び出し(この一イコール)のようにさせる2つ目の乱数が生成されます. しかし、もしあなたseed_random再び元の種子を呼び出す, シーケンスを開始します. つまり, ランダム次の( )の呼び出し( xはこの場合) 、元のランダムなコードを再生成する. は完全に別のシーケンスが発生しますが、異なるシード値を使用して生成される. 次の例を検討する:

Seed_random ( 1,真の) ; / /のシード値を設定
1 =ランダム( ) ;
B =ランダム( ) ;
ç =ランダム( ) ;

Seed_random ( 1,真の) ; /シードが同じ値にリセット/
私=ランダム( ) ;
はJ =ランダム( ) ;
韓国=ランダム( ) ;

Seed_random ( 2,真) / /新しい種子
問=ランダム( ) ;
研究=ランダム( ) ;
秒=ランダム( ) ;

Seed_random ( 1,真の) ; / /元の種子を回復する
のX =ランダム( ) ;
イ=ランダム( ) ;
Ž =ランダム( ) ;

このケースで, A,B, 、 cはすべて異なることにランダムな数字. しかしばがら, と私は同じになります, Bとjは同じになります, とcとkは同じですので、この場合はシードされ、リセット1 (ている)と、ランダムな順序で起動する. Q,これは、シードのRと2秒に変更されている乱数の新しい配列される. シーケンスのX,Y,Zは1と同じになります,B,Cと私,J,韓国これは、種子を1に再設定されている. ので、ランダムな数字の配列では、これらの数字を生成したシード値を返すことができますが再開.

どのように助けて? 我々のランダムな運動を生成するために, 私たちの動きは、現在のセグメントについては、いくつかのことを知る必要がある任意のフレームで: 開始時間, 開始位置, 終了時間, と終了位置. これらのすべてのランダムな数字は、運動の各セグメントには別のシード値を使用して生成されますされます. と私たちはシード値がベースにしている現在のセグメントに. やらなければならないので、すべてを我々はそれでのセグメント(これよりは、シード値を把握できるようになることができるが、式の図です), シードセット, 私たちの時間を開始することをランダムな数字の配列を再生成, 開始位置, 終了時間, とは、現在のセグメントの終了位置の値.

[ OK ]を-が私たちの目標は、この表現はどうなっていくの見直しをさせる. 私たちはスムーズに別の画面上に1つのランダムな位置から移動する広場したい. また、無作為に選ばれた(の間に言わせてこれを実行するのにかかる時間が欲しい .5と2秒). この式を行う予定は:

Seg_start_time = 0 ; / /初期条件
Seg_終わり_time = 0 ;
私= 1 ;
Tmin = .5 ; / /最小サイクルタイム(ゼロにすることはできません)
Tmax = 2 ; / /最大のサイクルタイム
(時間 中= seg_終わり_time ) (
私=私+1 ; seed_random (私,真の) ;
Seg_start_time = seg_終わり_time ;
Seg_終わり_time = seg_終わり_time + ( tminランダム,Tmax ) ;
}
% = (時間- seg_start_time ) / ( seg_終わり_time - seg_start_time ) ;
Target_x =ランダム( ) * This_comp.幅;
Target_y =ランダム( ) * This_comp.高さ;
Seed_random (私- 1,真の) ;
のX =ランダム( ) ; / /これは使い捨ての値です
Old_x =ランダム( ) * This_comp.幅;
Old_y =ランダム( ) * This_comp.高さ;
( %緩和,[ old_x,Old_y ],[ target_x,Target_y ] ) ;

この式をコピーして、位置表現に貼り付けます(または単に"表現の基本的なコンピュータを開い+ " ). プレビューのCOMP. 広場では、今では良いしていることに気づくでしょう, 流体, は時間との方向にランダムに運動.

この表現で, "私は"我々のセグメントのカウンターです, 我々はまた、セグメントのシード値として使用されます. " tmin "と" tmax "の各セグメントの期間中は、ランダムな時間の範囲を定義可能. このケースで, セグメント間の最後の予定 .5と2秒. "は、 "ループがあるという表現での数字には、セグメント. それに達するとされている種子インクリメント値は、現在の時刻よりも大きくなるまでのランダムなセグメントを蓄積することによって、この期間は. それは知っているこの時点で開始, 終わり, 現在のセグメントの現在の時間が完了するので、このセグメントの割合を計算することができます. それは、ランダム( )は、ターゲットを取得するXとYは、このセグメントの機能をさらに2回の最後の位置の座標を呼び出す. 次の部分は少しトリッキーです. 式でも、このセグメントの開始位置を計算することができますので、知っている(の割合に基づいて完成)は、現在の位置が必要. 以来、開始位置は、前のセグメントの終了位置と同じです, ただ、前のセグメントの種子に戻るには、種子デクリメント. 表現して、ランダム( ) xとyを終了する前のセグメントの座標関数を呼び出す. その1つ"は、距離を投げる"と呼ぶことに気づくでしょうランダム( )する前に、 xとyの値を前に決定されます. このため、それぞれの種です, 最初のランダム( )呼び出しは、常に終了時間(既に)を知っている-は、第2 、第3回の呼び出しXで使用され、 y座標が使用されます.

" "表現のCOMPオープン. このコンピュータは、不透明度、回転式のほか、同様のランダム化を除いて、前のコンピュータと同じです. の不透明な表現です:

Seg_start_time = 0 ; / /初期条件
Seg_終わり_time = 0 ;
私= 1 ;
Tmin = .5 ; / /最小サイクルタイム(ゼロにすることはできません)
Tmax = 2 ; / /最大のサイクルタイム
(時間 中= seg_終わり_time ) (
私=私+1 ; seed_random (私,真の) ;
Seg_start_time = seg_終わり_time ;
Seg_終わり_time = seg_終わり_time + ( tminランダム,Tmax ) ;
}
% = (時間- seg_start_time ) / ( seg_終わり_time - seg_start_time ) ;
Target_不透明度 =ランダム( ) * 100 ;
Seed_random (私- 1,真の) ;
のX =ランダム( ) ; / /これは使い捨ての値です
Old_不透明度 =ランダム( ) * 100 ;
( %緩和,Old_不透明度,Target_不透明度 ) ;

と、回転式なのです。:

Seg_start_time = 0 ; / /初期条件
Seg_終わり_time = 0 ;
私= 1 ;
Tmin = .5 ; / /最小サイクルタイム(ゼロにすることはできません)
Tmax = 2 ; / /最大のサイクルタイム
(時間 中= seg_終わり_time ) (
私=私+1 ; seed_random (私,真の) ;
Seg_start_time = seg_終わり_time ;
Seg_終わり_time = seg_終わり_time + ( tminランダム,Tmax ) ;
}
% = (時間- seg_start_time ) / ( seg_終わり_time - seg_start_time ) ;
Target_rotation =ランダム( ) * 360 ;
Seed_random (私- 1,真の) ;
のX =ランダム( ) ; / /これは使い捨ての値です
Old_rotation =ランダム( ) * 360 ;
( %緩和,Old_rotation,Target_rotation ) ;

これらの表現は、事実上の不透明度と回転の適切な値の範囲を生成するように修正されている位置の1つを除いて同じです. プレビューは、コンピュータとの注意点は、ランダムに回転している現在の広場と同様の動きフェード.

ここでは楽しみなんだ. " 1固体"時代の束(または単に"複数のコンピュータ" )を開いて、プレビューのCOMP重複. 覚えて-あなたは本当に、すぐにコントロールを使用してこれを行うことができます+ dのショートカット(コマンド+ Dを上 MAC ). プレビューするときには活動が飛び交うの. それぞれの層のためのランダムな数字の表現にもかかわらず、まったく同じですそれぞれ異なっている.


することをより面白くなっている


開いて"楽しいのCOMP "とプレビュー. このコンピュータを, 私は"強固な重複1 "を2回とし、 1つは、イラストレーターのファイルをそれぞれの固体の置き換え. それから、それぞれの層を何度もたくさんの重複. あなたは、一度設定している表情を見ることができます, レイヤーを複製すばやくコンピュータの複雑さが増す.


これらの表現では複雑だが、すぐにコンピュータを簡単に作成できます


をどのように作品を見るには、表現を分析することができます, かだけをコピーしてあなた自身の総合試験に貼り付けて. 私は(位置指定された3つの例, 不透明度, と回転)を、他のプロパティの表現方法を調整するのは非常に良いアイデアを与える必要があります. 私は、これらの周りを再生すると本当にクールなものを作成するいくつかのあなたの希望を鼓舞!

# # Dan ebberts

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




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


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


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

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

[頂上]

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