Skip to main content
saorin23380911
Inspiring
December 4, 2021
Answered

3次元空間で、複数レイヤーを連動させる方法

  • December 4, 2021
  • 2 replies
  • 1287 views

添付写真のようなレイヤー配置と動きを想定したとき、出来ればエクスプレッションなどで一括管理出来るようにしたいのですが、どうにもうまくいきません。

 

試行錯誤した挙句、今のところヌルに一連の動きをキーフレームで打って、それをA〜Cのレイヤーに親子付するという方法を取っています。

実際は3レイヤー以上はあり、奥にあるレイヤーは、Cレイヤーの方向からInしてAレイヤーの方向にOUTする、という流れです。

 

動きとしては、Macのdockのような感じです。

カーソルを合わせるとアプリがスケールアップしますが、あれを3D空間でやっているような感じでしょうか。

 

先に記しましたやり方も一つかと思いますが、もっとキーフレームやレイヤー数を少なく出来る方法があるような気がして、でも自分では今の方法が再現出来る限界でした。。

どなたか、お知恵をお貸しいただけますと幸いです。また、YouTubeなどで近いやり方があったよ、などご存じでしたら、教えていただけますと助かります。

 

何卒、よろしくお願い致します!

 

※使用バージョン2020

This topic has been closed for replies.
Correct answer Mukaida
一例ですが、
レイヤー(1)でモーションを作成した後、下記のエクスプレッションを2番目以降のレイヤー(位置)に追加すると時間をズラして同じ動きにすることができます。
ただし、途中で動きを停止させる場合は、タイミングに試行錯誤すると思います。
let a = thisComp.layer(thisLayer.index - 1).transform.position; // 一つ上にあるレイヤーを参照する
a.valueAtTime(time -  1.8) // −1.8秒遅れて動作する
なお、エクスプレッションの三角関数を使えば、円や楕円状にレイヤーを動かすこともできます。

2 replies

MukaidaCommunity ExpertCorrect answer
Community Expert
December 5, 2021
一例ですが、
レイヤー(1)でモーションを作成した後、下記のエクスプレッションを2番目以降のレイヤー(位置)に追加すると時間をズラして同じ動きにすることができます。
ただし、途中で動きを停止させる場合は、タイミングに試行錯誤すると思います。
let a = thisComp.layer(thisLayer.index - 1).transform.position; // 一つ上にあるレイヤーを参照する
a.valueAtTime(time -  1.8) // −1.8秒遅れて動作する
なお、エクスプレッションの三角関数を使えば、円や楕円状にレイヤーを動かすこともできます。
saorin23380911
Inspiring
December 12, 2021

Mukaidaさん

 

返答が遅くなりすみません。ご助言ありがとうございます!

ご提示いただいた案を試してみたのですが、どうもうまくいかず。。

ヌル同士が良くないのかな? と思い、コンポジション同士などやってみるものの、

同様のエラーで「式が無効」と判断されてしまいました。

 

▼エクスプレッションエラー

 

 

 

▼ちなみに、実際にヌルでどうにかつないだものはこちらになります。

(レイヤー名をソースネームにし忘れて見づらくてすいません…)

 

▼動かしたいコンポジションの位置をピックウィップでヌルに繋ぎ、ヌルの位置にキーフレームを打っています。

 

実際に作った動きは位置をセパレートしていたので、

Mukaidaさんのご提案テストの際は新たにヌルを作り直してやり直したのですが…エクスプレッションもコピペしたので間違ってはないと思うんですが、何がエラーになっているのか分からず。。

 

しかも、できれば導線はリニアではなくゆるくカーブを描くように設定したのですが、

3Dになると導線を曲線にすることができなくて。。

初歩的なつまづきかもしれませんが、ご助言いただけると助かります。

 

======

 

また、別の視点の質問で恐れ入りますが、こちらもよろしければお知恵をお借りしたく。。

画像内のレイヤーの中で、実際に動いている以下のレイヤーの重なりがうまくいきません。

 

<レイヤー順>

1「Image 〇」レイヤー/描画「ノーマル」

2「Frame_〇」コンポジションレイヤー/描画「スクリーン」

3「CTRL」ヌルレイヤー

 

このひと固まりで、次々とレイヤーが手前から奥へ回るように動かしているのですが、

レイヤー順のせいか、重なりが汚くなり、Mukaidaさんがサンプルで見せてくださったようなきれいな重なりが実現できません。

 

出来れば2のコンポジションはスクリーンで透けた状態にし、1は画像そのままの状態で見せたいのですが、ご覧の通りの状態で。。

 

上手く説明できているかどうか段々自信がなくなってきたのですが、

現状をまとめますと、「透けているイメージをMacのDockのようにスムーズに動かしたいのにできない」というところでしょうか。。

 

 

======

 

以上です。

追加で質問もしてしまい大変恐れりますが、ご助言いただけますと幸いです。

何卒よろしくお願い致します!

saorin23380911
Inspiring
December 17, 2021

私のプロジェクトでは、左奥で止めないで、さらに奥に移動させて見えないようにしています。
最初の返信にあるスクリーンショットの右側にある「トップビュー」を確認してください。


Mukaidaさん

 

早速のお返事ありがとうございます!

先の投稿の後、レイヤー順やモーションを調整しているうちに、

今度はスタートからエンドまで自然には位置することが出来ました。

3Dの設定を一時的に変えてみたり、コンポジションの中身を調整したりと、

直接影響がないかもしれないがいじってみる、みたいなことを繰り返していたら、

急にこのような状態になりました。

 

レイヤーの配置は常にトップとアクティブ画面で確認はしており、

配置がおかしいということはありませんでした。

ですので、大きく位置を変更するなどは、この相談当初から行ってはいないので、

直接的な影響が何なのかは分からず終いなのですが…

 

実際は、カラーの平面が別の画像に置き換わるり、背面のレイヤーも複雑な作りなので、

そちらでもうまくいくかどうか検証しておきたいと思います。

 

ひとまず、ここまでお付き合いいただき、本当にありがとうございました!

saorin23380911
Inspiring
December 4, 2021

※追記※

すみません、大事なことが抜けておりました。

一括管理したい、というのは、例えばAレイヤーが①②の動きをした時に、BCレイヤーも同じように連動して動くようにしたい、ということです。

こうなるとエクスプレッションかなと思い調べたり試作してみたのですが、思うような動きにならず。。

①②のように、弧を描くような軌道にしたいのですが、そういうモーションパス(ということになるのでしょうか…)はエクスプレッションで制御するのは難しいのでしょうか…