はじめまして、この記事は
- エクスプレッションを普段使わない人に少しでも興味を持ってもらう
- ある程度エクスプレッションを使う人にシェイプレイヤー上でのエクスプレッションに便利な関数を紹介
したがって、シェイプレイヤーとエクスプレッションを使えばこんな映像が作れるようになる!
といった事をメインとして紹介する記事ではありません。
エクスプレッションをバリバリ(死語)使うという人は
propertyGroup関数を知らない人意外はあまり読む意味が無いかとは思います。
propertyGroup関数を知らない人意外はあまり読む意味が無いかとは思います。
この記事における最終目標
長くなってしまいましたので記事を分割して説明してあります。
1:左揃えで動くバー
まずは左揃えで動くバーを作ります。
- 新規->シェイプレイヤー
- まずは空のグループ作ります。
- そしてグループ名を『G_01』とします。
- グループ名は何でも良いのですが、グループを複製した際に数字が02もしくは002となるようにつけます。
- グループ内に長方形パス、グループの外に塗りを追加します。
- 長方形パスの位置にエクスプレッションを設定します。
と元からあるのでそれに追記して
content(“G_01″).content(“長方形パス 1″).position + [content("G_01").content("長方形パス 1").size[0]/2, 0]
とします。追記する際はエクスプレッションピックウイップを使用すると便利です。
- 左揃えになってることを確認します。
- この状態で長方形パスのサイズのXパラメータをいじると左端の位置が変わらずに横幅だけが動くことが確認出来ます。
2:グループの複製(問題提起)
先ほどのグループを複製して数をバーの数を増やしていこうと思います。
- 『G_01』を選択した状態でCtrl+D(複製)
- 『G_02』が出来上がると思いますが、何かおかしい状態になっています。
- 『G_02』のトランスフォームの位置をずらして観察してみるとこのようになっています。
このように位置がずれています。
今回欲しい絵はこのように左端がそろっている絵です。
この状態で『G_01』と『G_02』の長方形パスのサイズのXパラメータをそれぞれいじるとさらに変な動作をします。
3:エクスプレッションにおける、絶対パス(問題解説)
何故上記のような問題が起きたのかというと、答えは先ほどのエクスプレッションにあります。
G_01->長方形パス 1->位置
content(“G_01″).content(“長方形パス 1″).position + [content("G_01").content("長方形パス 1").size[0]/2, 0]
G_02->長方形パス 1->位置
content(“G_01″).content(“長方形パス 1″).position + [content("G_01").content("長方形パス 1").size[0]/2, 0]
G_01->長方形パス 1->位置
content(“G_01″).content(“長方形パス 1″).position + [content("G_01").content("長方形パス 1").size[0]/2, 0]
G_02->長方形パス 1->位置
content(“G_01″).content(“長方形パス 1″).position + [content("G_01").content("長方形パス 1").size[0]/2, 0]
複製元のエクスプレッションと複製後を見比べてみるとわかるのですが
G_01とG_02の両方ともcontent(“G_01″)となっております。
なのでG_02を左揃えにしたくても、計算に必要な値をG_01の方から参照しようとしているのでおかしな事になってしまいます。
G_01とG_02の両方ともcontent(“G_01″)となっております。
なのでG_02を左揃えにしたくても、計算に必要な値をG_01の方から参照しようとしているのでおかしな事になってしまいます。
それではG_02のエクスプレッションを書き換えれば問題解決するのか?
と言うとそういうわけではありません。
正直な所、複製の数が2~3個ほどであればそれでも良いのですが、
複製するたびに書き換えると言う事を10個、100個単位でやるとなると大変です。
と言うとそういうわけではありません。
正直な所、複製の数が2~3個ほどであればそれでも良いのですが、
複製するたびに書き換えると言う事を10個、100個単位でやるとなると大変です。
なのでエクスプレッションにおいて参照するパラメータを現在のような絶対パスではなく
このような相対パスで指定してしまうことにより複製した際に書き換える必要性が無くなります。
4:エクスプレッションにおける、相対パス(問題解決)
まずG_02を消してG_01のエクスプレッションを書き換えて行きます。
G_01->長方形パス 1->位置
content(“G_01″).content(“長方形パス 1″).position + [content("G_01").content("長方形パス 1").size[0]/2, 0]
まずは前半部分の
content(“G_01″).content(“長方形パス 1″).position
を
thisProperty
と書き換えます。ずいぶんとすっきりしました。
『thisProperty』とはそのエクスプレッションが記述されているパラメータを参照する変数です。
G_01->長方形パス 1->位置
content(“G_01″).content(“長方形パス 1″).position + [content("G_01").content("長方形パス 1").size[0]/2, 0]
まずは前半部分の
content(“G_01″).content(“長方形パス 1″).position
を
thisProperty
と書き換えます。ずいぶんとすっきりしました。
『thisProperty』とはそのエクスプレッションが記述されているパラメータを参照する変数です。
そして後半部分の
+ [content("G_01").content("長方形パス 1").size[0]/2, 0]
を
+ [propertyGroup(1).size[0]/2, 0]
と書き換えます。
『propertyGroup』とはそのエクスプレッションが記述されているパラメータから相対値でいくつ前のパラメータの値を参照するかを指定する関数になります。
+ [content("G_01").content("長方形パス 1").size[0]/2, 0]
を
+ [propertyGroup(1).size[0]/2, 0]
と書き換えます。
『propertyGroup』とはそのエクスプレッションが記述されているパラメータから相対値でいくつ前のパラメータの値を参照するかを指定する関数になります。
変更前
content(“G_01″).content(“長方形パス 1″).position + [content("G_01").content("長方形パス 1").size[0]/2, 0]
変更後
thisProperty + [propertyGroup(1).size[0]/2, 0]
このようにすっきりしました。これでこのエクスプレッションは絶対パスでの参照ではなく相対パスでの参照に変わりました。
これでG_01を複製してもG_02はG_02のパラメータを参照して左揃えになっています。
新着記事 : シェイプレイヤーとエクスプレッション オーディオと連動するバーpart1 http://t.co/2oUlgSz5
シェイプレイヤーとエクスプレッション オーディオと連動するバーpart1 | AEP Project http://t.co/aD44yD2i
【AEチュートリアル】 シェイプレイヤーとエクスプレッション オーディオと連動するバーpart1 http://t.co/eOJE5GKv
新着記事 : シェイプレイヤーとエクスプレッション オーディオと連動するバーpart1 http://t.co/2oUlgSz5
新着記事 : シェイプレイヤーとエクスプレッション オーディオと連動するバーpart1 http://t.co/2oUlgSz5
シェイプレイヤーとエクスプレッション オーディオと連動するバーpart1 http://t.co/f4iYl6ZJ #aejp via @AEUSERS
http://t.co/M4JJd8x3 memo
NowBrowsing: シェイプレイヤーとエクスプレッション オーディオと連動するバーpart1 | AEP Project – http://t.co/izfNK9DT
AEP ProjectのAE事例紹介で、「シェイプレイヤーとエクスプレッション オーディオと連動するバーpart1」が紹介されています。エクスプレッションに少しでも興味を持ってもらうこと、便利な関数を紹介することを目的としています。
http://t.co/jztyWyvg
AEP ProjectのAE事例紹介で、「シェイプレイヤーとエクスプレッション オーディオと連動するバーpart1」が紹介されています。エクスプレッションに少しでも興味を持ってもらうこと、便利な関数を紹介することを目的としています。
http://t.co/jztyWyvg
I told my greamdothnr how you helped. She said, “bake them a cake!”