こんにちは、イマジカデジタルスケープの伊藤和博です。
今週は、AfterEffects CC 2014から、「プロパティリンクと一緒にコピー」(CC)と、「相対的なプロパティリンクと一緒にコピー」(CC2014)の機能についてご紹介します。
AfterEffectsでは、各レイヤー毎に持っているトランスフォームのそれぞれの値、例えば、アンカーポイント、スケール、位置の場合はX値とY値の2つ、回転の場合は回転角度、不透明度の場合は不透明度の値、がそれぞれありますが、これらに設定する値は、エクスプレッションを使って、他の値を参照することが可能です。例えば、不透明度に50%と入力している場合、その50という数値を、回転角度に適用することが可能です。
さらに、これらの数値は、他のコンポジションが持っているレイヤーから参照することも可能です。例えば、Aというコンポジションの中にあるA1というレイヤーが不透明度50%だった場合、その50という数値を、Bという別のコンポジションにあるB1というレイヤーの回転角度に適用する、ということが可能です。このように、エクスプレッションを使用すると、1つの値を他のどこかで流用し、1つを変更すると連動して他も変更できる、というような、動きそのものを構造的に作り上げることが可能になります。

この場合、コンポジションBのB1レイヤーの回転トランスフォームには、以下のようにエクスプレッションを作成します。

comp(“A”).layer(“A1”).transform.opacity

opacityとは、CSSでおなじみ不透明度のことですので、Webでのお仕事に従事されている方であれば、AfterEffectsを使用したことがなくても、JavaScriptのドットノーテーションや代入が理解できていれば、何をいっているのかはなんとなくわかるかと思います。

では、この時、Cというまったく別のコンポジションに、コンポジションBのB1レイヤーをコピーペーストした場合、何の属性を引き継いでコピーペーストするのか、その違いをご紹介します。


●プロパティリンクと一緒にコピー(CC)


コンポジションAにあるレイヤーを参照している、コンポジションBのレイヤーを、コンポジションCに対してただコピーペーストすると、以下のようになります。




現在設定しているエクスプレッションはそのまま維持され、コンポジションCでもAを参照したまま、コンポジションは引き継がれます。
コンポジションBのレイヤーをコピーする際、編集メニュー>プロパティリンクと一緒にコピー、を選択してペーストすると、以下のようになります。





すべてのトランスフォームにエクスプレッションが設定され、参照先が、コンポジションBのB1レイヤーに変更になります。と同時に、ペースト先のレイヤー名も変更になります。
すべての値を、コンポジションBのB1レイヤーを参照することになるため、コンポジションBのB1レイヤーを変更すると、すべての変更が自動的に適用されるようになります。
ただし、いずれにしてもコンポジションBのB1レイヤーは、コンポジションAのA1レイヤーの不透明度の値を参照しているため、結果的にコンポジションAの不透明度を変更すると、コンポジションCの回転も自動的に更新されることとイコールになります。

なお、この機能は、すべてのキーフレームを設定できるプロパティを対象としているため、トランスフォーム以外にも、キーフレームを設定可能なすべてのプロパティにエクスプレッションが適用されます。




親子付けやヌルオブジェクトの使い方と考え方は似ていますので、特定のトランスフォームのみを連携させる場合はヌルオブジェクトに親子付けし、ヌルオブジェクトのトランスフォームで親子付けした全体を調整するといいですが、すべてのトランスフォームを連携する場合は、このオペレーションの方がいいでしょう。
すでに存在するレイヤーや異なる形状のシェイプに、個別のエクスプレッションのみをコピーペーストする場合は、これは従来からの機能としてある、エクスプレッションを指定したプロパティを右クリックし、エクスプレッションをコピー、または編集メニュー>エクスプレッションをコピー、でペーストすればOKです。




●相対的なプロパティリンクと一緒にコピー(CC2014)


AfterEffects CC2014から新しく加わったコピーの仕方が、「相対的なプロパティリンクと一緒にコピー」の機能です。




この機能は、エクスプレッションの参照先を、もともと指定していた特定のコンポジションの特定のレイヤーから、「現在のコンポジションの、コピー元と同じ名前のレイヤー」に変更する機能です。
例えば、コンポジションBのB1レイヤーは、コンポジションAのA1レイヤーを参照していましたが、「相対的なプロパティリンクと一緒にコピー」を選択して、コンポジションCにペーストすると、参照先をコンポジションAのA1レイヤーではなく、ペースト先である「コンポジションCの中にあるレイヤーの中」の「コピー元と同じ名前のレイヤー」(つまり、コンポジションCの中にB1というレイヤーがある場合、そのレイヤー)を参照する(参照しようとする)ようになります。
当然ながら、ペースト先であるコンポジションCに、「B1」という名前のレイヤーが無かった場合は、ペーストした直後に以下のアラートを返します。




OKボタンをクリックし、ペーストされたレイヤーを展開すると、以下のようにエクスプレッションが設定されているのがわかります。




エクスプレッションを見てみると・・・

thisComp.layer("B1").transform.opacity

というように、冒頭がthisCompに変更になっており、JavaScriptのthisプロパティでそのまんまですが「このコンポジションの・・」に変更されているのがわかります。
つまり、「このコンポジションCの中に、B1のレイヤーを作成すれば、B1のすべてをエクスプレッションで参照するようになる」ということになるわけですが、この機能の使い方は、あらかじめ、コンポジションBからB1のレイヤーを「通常のコピーペースト」で先にペーストしておき、その後に、この「相対的なプロパティリンクと一緒にコピー」の機能で、もう一つ同じレイヤーをペーストすると、最初にペーストしておいたB1というレイヤーを親のようにエクスプレッションで参照するようになる、という機能になります。

もちろん、先に「相対的なプロパティリンクと一緒にコピー」ペーストした後に、新たにB1という新規レイヤーを作成して、そのレイヤーにひもづけて動かす、でもかまいませんが、この機能の意図としては、新たな参照元となるB1というレイヤーを「先に」作成しておくことに意味があり、「相対的なプロパティリンクと一緒にコピー」ペーストする「だけで」、このコンポジションの参照元と同じ挙動をするようエクスプレッション制御が可能になる、というオペレーションに意味があります。


●あとから参照元を作成した場合と、エクスプレッションエラー


先に「相対的なプロパティリンクと一緒にコピー」ペーストした後に、参照元となるレイヤーをコピーペーストで配置した、または新規で作成した場合、エクスプレッションエラーを解消する必要があります。エラーの内容を確認するには、エクスプレッションの行に表示されている!のマークをクリックすると確認可能ですが、エラーの解消は、一度エクスプレッションの文字列の上でクリックした後、enterキーで確定するか、タイムラインパネル内の余白でクリックすると、エラーは解消します。




ただし、大量のエクスプレッションエラーがある場合、エラーの解消は1つづつ手動で解決する必要があるため、この場合は、「相対的なプロパティリンクと一緒にコピー」ペーストしたレイヤーを一度削除してしまい、再度「相対的なプロパティリンクと一緒にコピー」ペーストした方が、エラーの修正をせずにすみます。

なお、エクスプレッションエラーが出ているかどうかを確認する場合は、レイヤー名を右クリックし、「エクスプレッションエラーを表示」を選択すると、エラーが発生しているエクスプレッションをタイムラインパネル内に一覧表示します。




この2つの機能は、参照元となるレイヤーに関連づけて、エクスプレッション制御で動かす場合に大変便利な機能になりますが、エクスプレッションを設定して いる数が多いレイヤーの場合には、これらの方法でコピーペーストしてしまい、不要なエクスプレッションのみ削除する、という使い方をすると、より効果的に データが作成できるかと思います。

なお、注意点としてですが、この機能は「他のレイヤーの、何らかのプロパティを参照しているエクスプレッション」に対して、その関連性を維持してコピーペーストする際に有効な機能ですが、「他のレイヤーを参照しないエクスプレッション」も使用している場合、そのソースも、元となるレイヤーを参照するエクスプレッションとして全て上書きされます。

例えば、time*100などを設定している場合、別のコンポジションに「プロパティリンクと一緒にコピー」ペーストした場合は、コピー元のデュレーションを参照し、エクスプレッションを手動で書き換えない限り、ペースト先のデュレーションの影響を受けないことになります。
また、相対的なプロパティリンクと一緒にコピーペーストした場合は、参照先は現在のコンポジション内にあるのが前提ですので、エクスプレッションを手動で書き換えない限り、現在のデュレーションを参照することになり、逆に、コピー元のデュレーションの影響を受けなくなります。
そのため、「他のレイヤーを参照するエクスプレッション」と、「他のレイヤーを参照しないエクスプレッション」が混在するレイヤーの場合には、そのエクスプレッション構造に注意してコピーペーストするようにしてください。




AfterEffects CC2014の使い方をもっと詳しく知りたい方は
AfterEffects CC 2014の使い方・実践トレーニングJavaScriptの基礎知識の受講がオススメです!
▼AfterEffects CC 2014の使い方・実践トレーニング

▼JavaScriptの基礎知識



イトウ先生が、Twitterを始めました!
みなさんもぜひ、フォローしてくださいね!

http://twitter.com/itoh_sensei




■■イトウ先生のTipsNote(実践・新機能コンテンツ)アーカイブ■■


基本トレーニングの受講後に、さらに学習しておきたい内容やTips、新機能を、隔週1回(月2回)で公開しています。


●Macintosh基本操作編(意外と知らない操作も多い!?)
○入力モードや変換のショートカット
○デスクトップで使えるショートカット
○階層やファイルパスの把握に便利な機能

●Illustrator(AI)
○アウトライン化と孤立点の削除について
○データを軽く作る方法について
○シンボルの親子関係について・その1
○編集モード
○シンボルの親子関係について・その2
○カラーパネルの「使えるショートカット」
○カラー一括変換のグローバルスウォッチとは
○配置した画像のすばやい編集方法
○CS5新機能01:すべてのアートボードにペースト
○CS5新機能02:内側描画と背面描画
○CS5新機能03:Web・インタラクション用のデザイン
○CS5新機能04:遠近描画
○CS5新機能05:線パネルと線幅ツール
○AIのテキストのアピアランス
○SVGインタラクティビティ
○CS6の新機能:線へのグラデーションと不透明マスク・矩形以外のパターン図柄登録
○Illustrator CS6のCreative Cloudメンバー限定機能
○Illustrator CCの新機能
○Illustrator CCの新機能:CSSプロパティ
○IllustratorCC_R1での便利な新機能
○AI、PS、IDなどで使える音声入力
○SVGのレスポンシブ機能
○Illustrator CC 2014:連結ツール

●Photoshop(PS)
○消しゴムツールの活用
○ななめの画像をまっすぐにする方法
○自然な合成テクニック・角版
○自然な合成テクニック・切り抜き画像
○画像合成後の便利なショートカット
○調整レイヤー
○レイヤーパネルの不透明度と塗りについて
○不透明度のショートカット
○CS5新機能01:「コンテンツに応じる」機能
○CS5新機能02:絵筆ブラシと混合ブラシ
○CS5新機能03:人の記憶に近い画像・HDRについて
○CS5新機能04:パペットワープ
○CS5新機能05:3Dオブジェクトとアニメーション
○美しいモノクロ画像の作り方
○境界部分をきれいにカラー変更する方法
○Photoshop CS6 特集・その1(全3回)
○Photoshop CS6 特集・その2(全3回)
○Photoshop CS6 特集・その3(全3回)
○2つの画像の違いを調べる、差の絶対値
○Photoshop CS6だけで作るビデオ・その1
○Photoshop CS6だけで作るビデオ・その2
○Photoshop CS6だけで作るビデオ・その3
○CSSの読み込み(スウォッチカラー)と、 CSS書き出し(CSSをコピー)について
○条件付きアクション
○Photoshop CCの新機能
○Photoshop CCの新機能:Generator(ジェネレーター)
○PhotoshopをJavaScriptで操作するAdobe Extendscript Toolkit CC
○新しいスクリプトパターンと、リンクを配置について
○変数
○Photoshop CC 2014:「配置」と「パッケージ化」
○Photoshop CC 2014:焦点選択と測定ガイド
○Photoshop CC 2014:3Dプリント

●FLASH(FL)
○Illustratorだけでできる、Flashアニメ
○CS5新機能01:IKボーンスプリングでバネアニメ
○CS5新機能02:コードスニペットパネルで簡単ActionScript3.0
○CS5新機能03:パターン描画ツール
○CS5.5新機能01
○CS6の新機能01:Toolkit for Create JS・その1
○CS6の新機能01:Toolkit for Create JS・その2
○Flash CC:Toolkit for CreateJSに代わる、新しいHTML5書き出し
○Flash CC:HTML5 Canvasでサポートされない機能
○Flash CC 2014:線幅ツールとSVG書き出し
○Flash CC 2014:アニメーションガイド

●InDesign(ID)
○CS5新機能01:マルチステートを使った、IDからFlashアニメの作り方
○CS5新機能02:アニメーションパネルとタイミングパネルを使った、IDのモーションプリセット
○CS5新機能03:キャプションの自動作成機能
○CS5新機能04:オブジェクトの間隔と配置
○CS5新機能05:画像一括貼り替え
○CS5.5新機能01:EPUB書き出し
○CS5.5新機能02:アンカー付きオブジェクト
○データ結合(メールマージ)
○CS6の新機能1:レイアウト・リキッドレイアウトと、ePub書き出し
○CS6の新機能2:コンテンツ収集ツール・コンテンツ配置ツール・リンクとして配置
○CS6の新機能3:「HTMLを挿入...」の機能からGoogleMapの読み込みについて
○InDesign CCの新機能:QRコードを生成
○InDesign CC :タグを割り当て
○InDesign CC :効率化されたハイパーリンク
○InDesign CC :スクリプト

●Dreamweaver(DW)
○CS5新機能01:新しいサイト定義と、CSSスターターレイアウト
○CS5新機能02:HTML5 Pack
○CS5新機能03:スマートフォン検証・CSS3のメディアクエリー
○CS5新機能04:ブラウザ検証便利ツール・Adobe BrowserLabについて
○CS6の新機能1:可変グリッドレイアウト
○CS6の新機能2:jQuery Mobile 1.0 と jQuery Mobile スウォッチ
○CS6の新機能3:CSSトランジション
○CS6の新機能4:HTML5ビデオ
○CS6の新機能5:Webfontsの使い方
○Dreamweaver CCの新機能:jQuery UI
○Dreamweaver CCとCS6での、CSSの作り方の違い
○Dreamweaver CC:新しいビヘイビア
○Dreamweaver CC 2014:新しいライブビューとエレメントクイックビュー

●Edge
○Adobe Edge(Preview版)
○Adobe Edge Code(プレビュー版)のご紹介
○Adobe Edge Reflow(プレビュー版)のご紹介

●AfterEffects(AE)
○CS5新機能01:ロトブラシ
○CS5新機能02:新しい便利なショートカット
○CS5 パペットアニメーションと、時間反転キーフレーム
○CS5 ビデオや画像の型抜きについて「トラックマットとステンシルアルファ」
○CS5 動画の動きを捕らえて、他のレイヤーに適用する「モーショントラック」
○CS5.5 ワープスタビライザー
○CS5.5 ブラー・互換・タイムコード
○CS5.5 「シャドウを落とす・受ける」機能
○CS5.5 エクスプレッション・その1
○CS5.5 エクスプレッション・その2
○CS5.5 エクスプレッション・その3
○CS6の新機能1:ベクトルレイヤーからシェイプを生成
○CS6の新機能2:3Dカメラトラック
○AfterEffects CCの新機能:ワープスタビライザーVFX
○AfterEffects CC・レンダリングの変更点
○AfterEffects CCの新機能:マスクをトラック
○AfterEffects CCの新機能:ピクセルモーションブラー
○AfterEffects CCエッジを調整ツール
○AfterEffects CC モーションスケッチ
○AfterEffects CC 2014:HTML5パネルSDK(その1)
○AfterEffects CC 2014:HTML5パネルSDK(その2)
○AfterEffects CC 2014:4KビデオのYouTubeへのアップロード
○AfterEffects CC 2014:相対的なプロパティリンクと一緒にコピー

●FireWorks(FW)
○CS5新機能01:Device Centralと連携した、スマートフォンのプロトタイプ
○CS5新機能02:divのタイル背景の強化
○レイヤーパネル
○CS6の新機能:CSSプロパティパネル・CSSスプライト書き出し・jQuery Mobile テーマ

●その他
○CS5.5:Adobe Audition「サウンドのカットとフェードイン、フェードアウトの設定」
○CS5.5:Adobe Audition「マルチトラックを使ったサウンド操作」