Vertexi2で疑似3Dパスを作る

とある条件でパスを扱うと、3D風の見た目にすることができます。
拙作スクリプトVertexi2を使いますが、実はAEに標準搭載されているスクリプト『create nulls from paths』やそれを拡張したCrunchy氏の『create nulls from paths extended』でも実現可能です。

*インアウトハンドルも使用する場合は、正確な3D曲線にはならず、あくまで疑似3Dであることに注意してください。
パス点のみの場合は正確な3D位置です。

STEP
準備。

まずは最終的な形を想像しながら、画面上にシェイプレイヤーのパスを作ります。
作ったシェイプレイヤーは3Dレイヤーにしておいてください。

STEP
パス点をヌル化する。

Vertexi2、NタブのAddボタンを押してパス点をヌル化します。
Vertexi2はシェイプレイヤー自体を選ぶことで、全ての点をヌル化できます。
作成したらシェイプレイヤーを2Dに戻してください。

STEP
位置を調整する。

カメラとヌルを作成し、ヌルを3D化してください。
カメラをヌルの子にすれば、疑似的なカメラレールの完成です。ヌルの回転を使えば360度方向からパスを見ることができます。
(3D的にどうなっているか見るためだけのものなので、単純にカメラツールを使ってもかまいません)
いい塩梅に斜めから見て、各ヌルのZ位置等を調整します。
目的の形になったら完成です!

一応、実際の作成工程を動画にしました。

『create nulls from paths』や『create nulls from paths extended』 を使用した場合の概要を書いておきます。
『Vertexi2』だと「シェイプレイヤーを3Dにしておけばヌルも勝手に3Dになる」仕様なので上記のような手順となりましたが、『create nulls from paths』等で作られるヌルは2Dになる仕様なので、以下の手順になります。

  • シェイプレイヤーでパスを描く。シェイプレイヤーは2Dのまま。
  • スクリプトで各ヌルを作成。そのヌルを全て、単純に3Dスイッチで3Dにする。
  • 後は上記手順STEP3と同じ。

『create nulls from paths』だとインアウトハンドルは扱えないので、作るパスは直線パスにしてください。もしも曲線パスで作ると、インアウトハンドル部分がヌルに追従しないので変な感じの曲がり方になります。
『create nulls from paths extended』であればインアウトハンドルも含む曲線が扱えますね。

使いどころ

3D風の線がほしいけどparticularがない、CC particle worldをヌルで操作するエクスプレッションを組むのもめんどうだな…といったときに使えます。
また、シェイプレイヤーの各機能(パスのトリミング等)が使えるので、色々な表現が可能ですね!

解説

なぜ3D風の線ができるのか?ですが、以下の条件下で可能となります。

  • 3DヌルがfromComp(ヌル.toComp(ヌル.anchorPoint))というエクスプレッションによってシェイプレイヤーのパスに変換されている。
  • シェイプレイヤー自体は2D。

1つ目ですが、まずは『ヌル.toComp(ヌル.anchorPoint)』によって3Dヌルのワールド座標がコンポ座標(カメラから見た2Dの見た目位置)に変換されています。それをさらにfromComp()でパス座標に変換しています。つまり「3Dヌルの、カメラから見た2D位置をパス座標にしている」ということですね。
(実際にはfromCompToSurfaceが使われていますが、この場合はどちらでも問題ないです。 fromCompToSurfaceだとシェイプレイヤーが3Dだった場合でも位置が合うのですが、シェイプレイヤーは2Dにする必要があるので関係ない、ということです)
そして2つ目です。 fromCompToSurfaceを使っていれば、シェイプレイヤーを3Dにしてしまってもある程度は追従します。が、カメラアングルやシェイプレイヤー自体の回転によってシェイプレイヤーがちょうど見えなくなった場合に描写できなくなります。また、 fromCompToSurfaceの計算結果はシェイプレイヤー表面の座標となるので、 シェイプ レイヤーが斜めに奥まっているとヌル位置によっては計算結果がめちゃめちゃ遠い座標になる場合があります。そのときはエラーが出ます。
なので、シェイプレイヤーは2Dにしておく、ということです。

イメージ的には、 particularや CC particle world、CC Cylinderなどの「カメラに対応しているけどレイヤー自体は2Dにしておく」エフェクトと一緒だと考えればわかりやすいやもです!

1つ注意点ですが、 冒頭にも書いた通りパス点のみの場合は正確な3D位置となります。が、インアウトハンドルも使用すると正確な3D曲線になりません(多分)。
点に関しては見た目の位置で問題ないです。が、ベジェ曲線の計算は点2つとアウトハンドル、インハンドルの4点で決まり、それを2D計算してしまっているので、厳密には3Dベジェ曲線が作る線とは違うところに線ができてしまうんですね…。まあしかし「カメラが動けばインアウトハンドルも滑らかに動く」ので自然な3Dに見えます。

以上です !
疑似3Dなので用途は限定されますが、シェイプレイヤーの各種機能と合わせれば新しい表現が可能かもしれません。ぜひともお試しください!

よかったらシェアしてね!
  • URLをコピーしました!