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

式の中でAdobe After Effects 6

Dan Ebberts
チュートリアル :
式の中でAdobe After Effects 6
式の中でAdobe After Effects 6
Using Expressions in After Effects 6

Dan Ebberts Dan ebberts,
サクラメント, カリフォルニア, アメリカ合衆国

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



イントロ

〜とともにAfter Effects 6.0, Adobe表現の世界にいくつかの素晴らしい新機能を導入しています. この壮大な新機能のほとんどの結果に追加されているAfter Effectsは必ずしも式で、目的とされていないが、それでも劇的に表現力を高めるの作家にご利用いただけます. また、いくつかの変更とは、式の言語自体に強化されている.


新しい構文

最初のいくつかの表現に変更するのを見て実施させる. 複数の単語のオブジェクト, メソッドとプロパティがintercaps " "形式ではなく、 1アンダーの区切りを使って表現されている. あなた" "の代わりに" this_comp "と書くthiscomp例えば, または" seedrandom "の代わりに" seed_random ". まだ、古い構文で動作します AE 6.0が、その場合は、新しいスタイルに切り替えることをお勧め.


小刻みに動くの強化

小刻みに動く( )するseedrandomの影響を受けている( ), これなら、小刻みに動くから取得している値を満足していないしている( )を呼び出してseedrandom ( )と、それぞれの種とは異なる結果が表示されますが先行することができます. 例えば、 13の種子を使用するため,

Seedrandomで体を震わせる


seedRandom(13);
wiggle(3,35)

あなたseedrandomなく、 ( )式と同じ小刻みに動くとは異なる結果が得られます( ):


Seedrandomなく、小刻みに動く


wiggle(5,35)

しかしばがら, 小刻みに動く( ) seedrandomの"時代を超越した"パラメータを無視, もしこのようなものでしたが意味する:


seedRandom(13,true);
wiggle(7,15)

小刻みに動くにはすべてのフレームを継続する. しかしばがら, 小刻みに動くしたい場合は( )フレームの特定の番号の値を保持するために, ( )関数は、新しいposterizetime使用することができます.


Posterizetime

AE 6.0を定期的に金利を凍結することでアニメーションの指定に使用できる、新しいposterizetime ( )関数が含まれています. 例えば、, 私たちの体を震わせる表現の5回、 2番目のこのパターンを私たちは新しいランダムな位置を与えるだろう:

Posterizetimeで体を震わせる


posterizeTime(5);
wiggle(5,35)

キーフレームを音声に変換

[ OK ]を-のは本当に楽しいものになることを許す. AE 6.0 -キーフレームを音声に変換している、新しいキーフレーム助手. この補助層のための3つのスライダを左に新しい名前を作成すると、オーディオの振幅, 右, と組み合わせるオーディオチャンネル. スライダをキーフレームは、コンピュータのオーディオレベルを表すが. だから, 現在の表現を介してコンピュータのオーディオ情報を得ることができます. これはほとんど(完全ではない)を使用するようにする必要がなくなりますMotion数学.

audio to keyframes

キーフレームを音声に変換

上記の図で, 2つのオーディオファイルのインポートがある. " 16進こんにちは.Wavファイル"大きく左チャネルと" hexfloorにパンされている.Wavファイル"を右にパンされている. 次に、キーフレームアシスタント"キーフレームのオーディオ"に変換が実行された, は自動的に"のスライダコントロールを使用して新しいヌル層"オーディオ振幅"を作成左", "右" 、 "両方"チャンネル. "中間の黄色固体"スライダを左チャネルに、この表現とリンクさのスケールパラメータ:

キーフレームを音声に変換

ダウンロード映画オーディオ( )

s = thisComp.layer("Audio Amplitude").effect("Left Channel")("Slider");
scale + [s,s]

同様に, "中間のシアンの規模のパラメータは"スライダーを右チャネルに接続された固体. (注-私は、少し左のデモムービーの音声出力されるので、すぐには本当に迷惑なのは映画のループ. 場合は、耳を貸そうとしない, 上記のダウンロードリンクをクリックして). その結果, お分かりのように, 固形物は、 2つのオーディオチャネルは、それらにリンクしていると同期して、各スケールアップ.


本文!

は、新しい統合型のツールでAfter Effects 6.0単に素晴らしいです. セレクタは、アニメーターや範囲が内蔵されてすぐに信じられないほど強力なテキストアニメーションを作成する機能を提供. この問題の適切な範囲(または、おそらく本)と私は、他人に任せるつもりだチュートリアル全体を埋めること. 私に言わせては、この1つに加えてAfter Effects十分な理由は、アップグレードを取得する. 作家の表現のためにも、このエキサイティングな側面がある. セレクタは、テキストだけでなく、アニメーターや表現を制御することができます, だけでなく(最終的に!)は、式では、ソーステキスト自体を制御することができます. これは、フルパワーとJavaScriptの文字列処理の怒りのテキストアニメーションのコンテンツを操作するにはいない。. 前には完了している私たちは簡単な例をいくつかの非常に強力なものでタッチを開始します.

最初の, テキスト画層を作成する方法についての話をする必要がある. 非常に-あなただけのシンプルなテキストツールを選択してください, ウィンドウには、コンピュータをクリックして, と入力何か. After Effectsまた、レイヤーの名前になり、入力したテキストは、新しいレイヤーを作成します. 場合をクリックし、 "テキストを開いて" twirly "プロパティは、 "ソーステキストが表示されますは、タイムラインの新しいテキスト層のtwirlyオープン. Alt /ストップウォッチでこのプロパティには、式の作成をクリックして選ぶ. あなたの式の結果は、テキストが表示されるになるだろう. (フォントの属性があるだろう, 寸法, 等.)何層を作成する場合は、入力の最初の文字の. JavaScriptが覚えておくべきことは、文字列としての式の結果を治療しようとすることが重要です. 場合は、結果の数値です, JavaScriptの文字列に変換されます. これで、あなただけではこのように表現できることを意味:

position expression

表現: 位置[ 0 ]

ダウンロード映画

position[0]

and JavaScript would convert the x-coordinate of the layer's position to a string and display it. デモムービーに, 私は、テキスト層の画面に移動するには、位置keyframed. として期待, この層の動きとしては、テキストを変更.

今は, 我々話をする必要があるJavaScriptの文字列を処理する方法について少し. JavaScriptで, 文字列を単一または二重引用符で囲まれた文字のシーケンスとして表される. 例えば、, " After Effects "と' After Effects 'は、両方の有効な文字列. JavaScriptの文字列を配列として扱う, 各文字の配列の1つの場所を占めて. ゼロでJavaScriptを起動するには、配列のインデックスを記憶, この式の結果:


s = "After Effects";
s[4]

文字列は" r "のようになります.

JavaScriptで, 文字列を連結する場合は、 " + "演算子を使用することができます. 例えば、,


"abcd" + "efgh"

の結果を" AbcdはEfgh "

多くの便利なJavaScriptの文字列のプロパティとメソッドを提供. 我々はそのいくつかを見てよ. 例えば、, 結果の


s = 'After Effects';
s.length

と13の文字列(長さ)が, その結果の


s = 'After Effects';
s.toUpperCase

"のようになりますAfter Effects ".

そこではJavaScriptの文字列と呼ばれるオブジェクトに組み込まれている, 興味深いことに, "文字列". このオブジェクトの文字列の方法をいくつかの場合に便利です. 例えば、, 文字コードから、このような処理を行なう可能性のある文字列を作成する:


String.fromCharCode(48) + String.fromCharCode(49) + String.fromCharCode(50)

は" "に、文字コードを変換して、文字列" abcの作成", " b "の, と" C " ( 48,49, と50 )は、適切な文字列を文字に.

別の役に立つことは知っている場合は、文字列に" r "を配列を使用する, これは改行として解釈される. だから, 場合は、文字列のようだった



 "abcdrefgh"

のように表示される:

Abcdは
Efgh

[ OK ]を-今は十分には本当に危険なことを知っている. 我々 ( 16進16進文字のランダムな8x4のグリッドを作成する16の数字の桁を表現すると0の9と金から構成される文字を介して使用されている)と仮定. これを実行するのには、式を見て:

random hex grid

ランダムな16進数のグリッド

ダウンロード映画

numRows = 4;
numChars = 8;
holdFrames = 5;

seed = Math.floor(time/(holdFrames*thisComp.frameDuration));
seedRandom(seed,true);

s = "";
j = 0;
while(j < numRows){
  k = 0;
  while (k < numChars){
    c = Math.floor(random(48,64));
    if (c > 57) c += 7;
    s += String.fromCharCode(c);
    k += 1;
  }
  s += "r";
  j += 1;
}
s

この表現について少し話をしましょう. 最初の3行は、グリッドのサイズを定義どのくらいのランダムな数字の各設定を保持するために. 次の2行は5フレームの各設定のための新しいコードには、ランダムシードの設定. その後、文字列変数( "秒" )は、 null文字列に設定されている. ヌル文字列が長さゼロの文字を単なる文字列は(まだ). 式の残りの2つのネストされたループは、実際の文字列変数にランダムな配列を構築され. 外側のループ(一J "を別インデックス"は、グリッドの行の間のシーケンス, キャリッジリターン各行の終わりに( "研究" )を追加する. 内側のループ(一"韓国" )でインデックスの文字では、現在の行の文字のいずれかを通過し、 48 、 57 ( " 0 "の間に9 "まで開催される、ランダムな番号を生成" )または65と70の間に( "一" "を通じて金" )との文字が表示された文字コードを変換して、我々の出力文字列変数を連結 " S "は. 私はあなたのための練習として私はこの簡単な説明で左の詳細を把握したに任せるよ.


時間を分割する

前に私たちに何か他に移動する複数のテキストのことを見て. 分割( )は、私たちのテキストを表現する力の多くのJavaScriptの文字列を追加する別の方法です. 働き方が小さい文字列の配列に長い文字列を分割することです. それはどこの区切り文字は、指定した文字列を分割遭遇. この表現を検討する:


s = "honesty,integrity,loyalty,compassion,empathy";
s.split(",")[2]

この表現を"どこにコンマで検出された文字列"分割. それぞれの単語の間にカンマを配列のインデックス経由でアクセス可能です. この例では, インデックスはゼロ私たちと"誠実さ"を与えると私たちの表現(として)インデックス2で私たち"の忠誠心を与えるだろう". この私たちの表情でその場で私たちのソーステキストを変更するには、信じられないほど強力な方法を提供. ここには、それぞれの単語が開催するソーステキストの表現の別のバージョンを1秒間の:

split() method

分割のデモ( )メソッド

ダウンロード映画

holdTime = 1.0;
s = "honesty,integrity,loyalty,compassion,empathy";
j = Math.floor(time/holdTime);
s.split(",")[j]

注意して、この表現は"共感"の後に言葉を実行するときにエラーが生成されます。. 通常、私はいくつかのコードでは、チェックを入れると, しかし私はデモの目的できれいにしておくしたかった.

完全性について, 私はデモムービーを生成するために使用される他の2つの表現がありますよ. ここで規模の大きさで自分の:


hold = .5;
expand = .5;
t =time%(hold + expand);

if(t <  hold){
  [100,100]
}else{
  linear(t,hold,hold + expand,[100,100],[700,700])
}

不透明度とここは自分の:


fade = .25;
hold = .5;

t = time%(fade + hold + fade);
if(t < fade){
  linear(t,0,fade,0,100)
}else if (t < (fade + hold)){
  100
}else{
  linear(t,fade+hold,fade+hold+fade,100,0)
}

の塗料を!

paint

ペイントデモ

ダウンロード映画

別の素晴らしい新機能を導入After Effects 6.0統合ペイントエンジンです. 新しいテキストエンジンのように, このチュートリアルでは、独自に値する機能です. ここに私はあなたの表現には、さらに興味深いのはペイントツールを行うことがいくつかに触れるよ. この例では, 私は、ブラシツールを選択し、曲がりくねった脳卒中描いた一. 次に私は、ストロークの最後にパラメータを、この表現を適用:


freq = .5;
50*(1-Math.cos(freq*time*Math.PI*2))

それならば、そのストロークの色のパラメータに、この表現を適用:


if (index <=4){
  linear(index,1,4,[0,1,1,1],[1,0,1,1])
}else if (index <= 8){
  linear(index,5,8,[1,0,1,1],[1,1,0,1])
}else{
  linear(index,9,12,[1,1,0,1],[0,1,1,1])
}

ついに, 私は、脳卒中の自転にプロパティを、この表現を適用:


(index-1)*30

私は、ストロークが重複して11回. すべての結果は、風車は、ここを参照してくださいもの探し. 場合は、映画をダウンロード, そのことが成長の中心から外側にして再び中央に遠ざかる2秒ごとに表示されます。. 注意して位置を重複しても一度は、元のストロークのための式を設定して、重複を自動的にされている表現を介して自分の色. これは本当に簡単な例です。, しかしこのような手続き型塗料のアニメーションの可能性は無限大だ.


Liquify!

もう一つは非常にクールに追加After Effects 6.0 liquify効果/ツールセット. Liquifyパラメータの表現に適用されているのは興味深いしているカップル. この例では, 私はliquifyツールで、画像を歪曲して、 "歪みの割合には、次の式を適用"パラメータ.

liquify

Liquifyデモ

ダウンロード映画


freq = 2;
(1-Math.cos(freq*time*Math.PI*2))*50

結果は効果が0 %の間の振動の効果を適用完全に適用される. ちょっと注意して場合は、 "最後"のパラメータが楽しい"風に"の効果を振っを作成するための表現を使うことが歪みの作成に思う.


トラッカーのデータを用いて

ついに, 仕事はたくさんの改善に入ったのトラッカー AE 6.0. 1つは、特別な関心の表現の作家には、新しい機能のオプションを生の追跡データを生成することです, これは、トラッキングデータは別のレイヤーに適用しないことを意味する, それは画層のプロパティと呼ばれる追跡されて適用の" "ポイントを添付. することができますし、, もちろん, このデータにアクセスした際には、式. このデモで, 私は、グライダーは、 "生の"トラックのタイプオプションを使用してハング上の男の頭の追跡. それから色のドットの束にこの表現を適用:

tracker

トラッカーデモ

ダウンロード映画

L= thisComp.layer("Hang Glider.avi")
masterPos = L.motionTracker("Tracker 1")("Track Point 1").attachPoint
masterPos + wiggle(4,45) - position

この群れ"には"ハンググライダーの男の頭の周りのドットの原因. 愚かな例, しかし私はそれは、コンセプトを実証している可能性を考える.

上手に, は、新しい機能の我々のツアーの最後のAfter Effects 6.0は、作家の表現の世界を広げる. これは驚くほどのアップグレードも、より強力な表現を使用するための新たな可能性が作られる.

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


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

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

[頂上]

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