シナリオスクリプト風に画像を切り替えたい
下記のような感じで、ストーリーを再生するスクリプト風に対象の画像が明るくなり、前に描画され表情が変わるようにしてみました。

目次
コンポに使用する素材を並べる
- いらすと屋から男性と女性のイラストを3枚の連番で用意
- 下記のように並べておきます。コンポ名は「master」
連番画像の設定
5体のキャラを想定しています。あとでマーカーにエクスプレッションを記述して、そこから記述を参照できるように仕込みます。

- 画像名は1、2、3、4、5とそれぞれ番号にしておきます
- エフェクト「色相/彩度」を設定、不透明度にエクスプレッションを挿入
//1つ目のコメント
eval(comp("master").marker.key(1).comment)- 「Z位置」にエクスプレッションを挿入
//2つ目のコメント
eval(comp("master").marker.key(2).comment)- 表情指定用にタイムリマップにもエクスプレッションを挿入しておきます(※アニメーションはクランプに)
var str = thisComp.layer("controll").effect("キャラ1")("スライダー")
framesToTime(str);キャラ1と書いてあるところはキャラ2、キャラ3と画像に合わせて数字を変えておきます。
コントローラーの作成
- 一番上にヌル「controll」を作成します
- 状態変化用のスライダー1つとキャラ表情用のスライダー5つを名前を設定して設置

- コンポにマーカーを2つ挿入

マーカー1つ目「明るさ・暗さ」用エクスプレッション
//暗さ
var value = thisComp.layer(index)
str =" "+ thisComp.layer(index).name;
if (comp("master").layer("controll").effect("状態制御")("スライダー")== str) 0 else 100
if (comp("master").layer("controll").effect("状態制御")("スライダー")== 6) 0※画像名を条件にして、状態を変化させています。値6の時は全員、明るく表示されます。
マーカー2つ目「描画順」用エクスプレッション
//Z値
var value = thisComp.layer(index)
str =" "+ thisComp.layer(index).name;
if (comp("master").layer("controll").effect("状態制御")("スライダー")== str) -1 else 0
if (comp("master").layer("controll").effect("状態制御")("スライダー")== 6) -1※画像名を条件にして、状態を変化させています。値6の時は全員Z値-1になります。
以上で2つのマーカーのエクスプレッションをそれぞれの画像が参照しますし、画像名で条件変化もします。
アニメーションの設定
状態とそれぞれの表情のアニメーションキーを好きなように打ちます。
ちゃんと設定すればヌル「controll」の中で作業が完結します。
【おまけ】自分自身のレイヤーにあるマーカーから値を取得する
今回は使わなかったのですが、メモです。
//1つ目のマーカー
eval(thisComp.layer(thisLayer,0).marker.key(1).comment)例:マーカー側に下記を記述しておくと、タイムリマップに先のエクスプレッションを入れておくと3フレーム目に固定されます。
framesToTime(3);レイヤースタイルの描画順の問題
エフェクト「色相・彩度」で画像を暗くしていますが、レイヤースタイルを使うと描画順がおかしくなります。要注意です。
