レイヤーを等間隔に配置したい。
複数のレイヤーを手動で数値入力せずに等間隔で配置するため、基準となるレイヤーの位置情報を取得してオフセットするエクスプレッションを作成しました。

元のXYと参照先のZを分けて確認する練習
別名保存した練習コピーへ3Dレイヤーを2枚置き、親なし・位置の次元分離なし・キーなしで試します。
上の位置を[10,20,30]、下を[100,200,300]とし、下には参照する式を付けません。
上の位置全体へ最初の式を貼ると、計算上の結果は下のXYZを使った[100,200,3300]になります。
自身のXYを残す最後の式では、[10,20,3300]になります。
この2つの目的を分け、自身の元値はvalue、ほかのレイヤーはthisComp.layer(…)で参照します。
最下段や2Dの参照先では元値を返すため、動かない場合はレイヤー順と3Dの設定を確認します。
index+1の例は下のレイヤーを参照するので、下から上を参照する式を追加して循環させないようにします。
名前の例では、参照専用の3DレイヤーをBASEにして名前を重複させず、BASEへ追従式を貼らずに使います。
BASEがないと参照エラーになるため、レイヤー名を入力時に確認します。
親が異なるレイヤーでは座標の基準も異なるため、この親なしの例をそのまま使わず空間変換が必要です。
0・1・2秒と、下のZを400へ変えたときの上のZ=3400を確認します。
終了後は式をOFFにして元の[10,20,30]へ戻し、練習ZIPの記録欄へXYZと参照先を残します。
2026年10月3日にAdobeのレイヤー参照とプロパティの仕様を照合し、ローカルで数値と端の分岐を確認しましたが、AE実機の配置・循環・復元は未検証です。
| 確認すること | 期待する結果 | 違ったとき |
|---|---|---|
| XYZを追従 | 100・200・3300 | 参照先のXYZを確認 |
| 自身XYを保持 | 10・20・3300 | valueと参照先を分ける |
| 動かない | 最下段・2Dは元値 | 順番・3D・貼付先を確認 |
直下のレイヤーのXYZを参照してZへ加算する
次の式は1つ下の3DレイヤーのXYZを基準に、Zだけ3000px加えます。
var result = value;
if (value.length === 3 && index < thisComp.numLayers) {
var next = thisComp.layer(index + 1).transform.position.value;
if (next.length === 3) {
result = [next[0], next[1], next[2] + 3000];
}
}
result;
指定したレイヤーのXYZを参照してZへ加算する
参照専用のBASEレイヤーを作り、名前でXYZを参照する例です。
var result = value;
if (value.length === 3) {
var base = thisComp.layer("BASE");
if (base.index !== index) {
var position = base.transform.position.value;
if (position.length === 3) {
result = [position[0], position[1], position[2] + 3000];
}
}
}
result;
自身のXY座標を維持したまま直下のレイヤーのZ位置を参照してオフセットする
X座標とY座標は現在のレイヤー自体の数値を維持し、Z座標のみ1つ下のレイヤーを参照してオフセットする場合は以下の記述を使用します。
var result = value;
if (value.length === 3 && index < thisComp.numLayers) {
var next = thisComp.layer(index + 1).transform.position.value;
if (next.length === 3) {
result = [value[0], value[1], next[2] + 3000];
}
}
result;
After Effectsの基本的な操作や関連Tipsは、以下のまとめ記事で解説しています。

別レイヤーやカメラのプロパティ値を参照してアニメーションを連動させるエクスプレッションは、以下で紹介しています。




