roopは、無限に続く3Dランダム空間を1クリックで自動構築するAEスクリプトです。シームレスなループ生成だけでなく、3D空間の編集に役立つカメラの視点移動機能など、40を超える強力な機能を搭載。さらに、20以上のアニメーション設定と40近くのスクリプト設定によって動作を柔軟にカスタマイズでき、3Dワークフローの強力な効率化を実現します。
セットアップ
aescripts + aeplugins manager を使用する場合
aescripts + aeplugins manager を使用すると、インストールとライセンス管理を簡単に行えます。
試用版をインストールするには、’Account’ メニューから ‘Add Trial’ を選択します。
aescripts + aeplugins manager : https://aescripts.com/learn/aescripts-aeplugins-manager-app/
aescripts + aeplugins manager を使用しない場合
- ダウンロードした、roop_v[バージョン番号].zip を展開します
- 展開してできた roop_v[バージョン番号] フォルダを開きます
- 以下の2つ(jsxbin、txt)を、全てScriptUIフォルダに移動します。
- roop.jsxbin
- roop_README.txt
Windows:Program Files\Adobe\Adobe After Effects <version>\Support Files\Scripts\ScriptUI Panels
macOS:Applications/Adobe After Effects <version>/Scripts/ScriptUI Panels
起動
- “ウィンドウ”メニューから、”roop.jsxbin”を選択して起動します
- スクリプトアラートが表示された場合は、指示に従い以下の設定を変更します
環境設定 – スクリプトとエクスプレッション – スクリプトによるファイルへの書き込みとネットワークへのアクセスを許可 にチェックを入れるとLOOPRANを起動できるようになります
- ライセンスキーの入力画面が表示された場合は、ライセンスキーを入力して、OKを押します
- トライアル版の場合は、trialのままOKを押します。
- ウィンドウメニューに”roop.jsxbin”が表示されない場合は、ScriptUI Panelsフォルダの中に、roop.jsxbin があるかどうかを確認してください。
クイックスタート: 3D空間を生成しよう!
ここでは、プレースホルダーレイヤーを利用して、3D空間を生成します。
- コンポジションを作成します
- 「レイヤー」機能グループの左から2番目にある [プレースホルダーレイヤー 作成 (16:9)] ボタンを押します
- 2で作成したレイヤーを選択して、「ループ」機能グループの一番左にある [空間ループ 適用] ボタンを押します
- 3が適用された「Space_…」という名前のレイヤーを選択し、10回程度複製します
- 再生します
これで完成です。カメラアニメーションも自動適用されるので、再生するだけで無限に続く3D空間がアニメーションします。
クイックスタートでは、プレースホルダーレイヤーを使用しましたが、画像やテキストレイヤー、シェイプレイヤー、プリコンポーズレイヤーなど様々なレイヤーに対応しています。
プレースホルダーの場合は、プリコンポーズ内のプレースホルダーを差し替えることで、後から容易に画像の変更が可能です。
メイン機能


roopは、全ての機能を1クリックで実行できるようになっています。
また、ウィンドウサイズに応じてレイアウトが自動的に変わるようになっています。
起動画面の上から順番に機能を説明します。
オプション(ヘッダー)
各種オプションウィンドウを開きます。
設定ウィンドウを表示します。スクリプトに関する様々な設定を変更できます。
実行結果のログを表示します。実行できなかった場合は、実行できなかった理由が表示されます。
ヘルプ画面を表示します。
レイヤー
各種レイヤーを作成します。
カメラレイヤーを作成します。
プレースホルダーレイヤー (アスペクト比:16:9) を作成します。
プレースホルダーレイヤー (アスペクト比:1:1) を作成します。
プレースホルダーレイヤー (アスペクト比:4:3) を作成します。
3D空間の背景となるレイヤーを作成します。
ビネット効果を加えるオーバーレイレイヤーを作成します。
カメラの回転状況を示すガイドレイヤーを作成します。
ループ表示の初期範囲を示すガイドレイヤーを作成します。
- 方向ガイドレイヤー / 初期範囲ガイドレイヤー / 表示ガイドレイヤー は、通常はレンダリングに含まれません。ガイドレイヤーを解除することでレンダリングに含めることも可能です。
カメラ操作
カメラにアニメーションを追加したり、視点移動をします。
カメラがZ+方向に移動するキーフレームを追加します。
カメラがY+方向に移動するキーフレームを追加します。
カメラがX+方向に移動するキーフレームを追加します。
方向プロパティにwiggleを追加することで手振れを追加します。
カメラ位置を地面視点(Y位置)に移動します。
カメラ位置を天井視点(Y位置)に移動します。
カメラ位置を左壁視点(X位置)に移動します。
カメラ位置を右壁視点(X位置)に移動します。
- 視点移動機能を実行すると、カメラの位置および目標点の値を指定した視点に書き換えます(例:地面視点移動の場合はY値のみを書き換えます)。
- 位置プロパティのキーフレームが選択されている状態で視点移動機能を実行すると、選択中のキーフレームのみを書き換えます。この場合、目標点プロパティの値は書き換えません。
表面レイヤー
地面などの表面レイヤーを作成します。なお、初期設定ではワンスやループ機能を実行した場合も自動で作成されます。
地面レイヤー(疑似3D)を作成します。
天井レイヤー(疑似3D)を作成します。
左壁レイヤー(疑似3D)を作成します。
右壁レイヤー(疑似3D)を作成します。
ワンス
レイヤーを1度だけ表示するワンス機能を適用します。この機能を適用すると、ループ機能と同じフェード動作が適用されると共に、roopの様々な機能が適用可能となります。本機能は最終目標点など、1度だけ表示したいレイヤーに使用します。
選択レイヤーに空間ワンス機能を適用します。
選択レイヤーに地面ワンス機能を適用します。
選択レイヤーに天井ワンス機能を適用します。
選択レイヤーに左壁ワンス機能を適用します。
選択レイヤーに右壁ワンス機能を適用します。
ループ
レイヤーを無限に表示するループ機能を適用します。この機能を適用すると、表示ガイドレイヤーの範囲(ControlレイヤーのDisplayRangeの範囲)にレイヤーをループ表示できるようになります。Controlレイヤーの設定に関わらずランダム機能をOFFにしたい場合は、長押しにより強制ランダムOFFにすることができます。
選択レイヤーに空間ループ機能を適用します。
選択レイヤーに地面ループ機能を適用します。
選択レイヤーに天井ループ機能を適用します。
選択レイヤーに左壁ループ機能を適用します。
選択レイヤーに右壁ループ機能を適用します。
- レイヤーを選択し、ワンスやループ機能を実行すると、プリコンポーズされます。種類が地面、天井、左壁、右壁の場合は、プリコンポーズ先で反射エフェクトが追加され、プリコンポーズ先の中央が表面位置となります。
- レイヤーの接地面は、地面の場合は下端、天井の場合は上端、左壁の場合は左端、右壁の場合は右端となります。その為、トリミング画像などを使用する場合は、事前に接地面側の余白を無くしておくと調整が不要になります。
- カメラレイヤーがない状態でワンスやループ機能を実行すると、カメラ位置と目標点の両方が自動的に地面などの表面位置に設定されます。作成後のカメラ位置は、カメラ視点移動機能を使って後から自由に変更できます
- ループ/ワンス機能は、シェイプ、テキスト、平面、コンポジション、フッテージ(静止画・動画)レイヤーに対して実行可能です。
- 生成された「プリコンポーズ済みのコンポジション」は、プロジェクト内で自由に再利用可能です。再利用時には二重にプリコンポーズされない仕様になっているため、プロジェクトリソースの最適化が可能です。
動作設定
ワンスやループ機能を適用すると、「Control_Roop」という名前のコントロールレイヤーが自動作成されます。
このControlレイヤーに適用されたエクスプレッション制御エフェクトの値を変更することで、roopの動作設定を変更できます。また、Controlレイヤーの全体設定だけでなく、ワンス/ループ適用済みレイヤー側で個別に位置指定や調整なども可能となっています。
Controlレイヤー


レイヤーを表示する範囲を、カメラを起点とするワールド座標範囲で指定します。例えば、[4000, 2000, 30000]の場合は、X方向に4000、Y方向に2000、Z方向に30000の範囲にレイヤーが表示されます。レイヤーがこの範囲の外に出ると逆側から再表示されるようになります。
通過フェードの距離を指定します。レイヤーがカメラを通過する際、この距離の期間フェード処理が実行されます。
通過フェードのモードを指定します。(不透明度とスケール / 不透明度 / スケール)
背面フェードの距離を指定します。レイヤーがカメラ奥から表示される際、この距離の期間フェード処理が実行されます。
背面フェードのモードを指定します。(不透明度とスケール / 不透明度 / スケール)
パンフェードの開始距離を指定します。カメラが上下左右に移動してレイヤーが表示範囲の境界をまたぐ際、この距離の期間フェード処理が実行されます。
パンフェードの方式を指定します。(不透明度とスケール / 不透明度 / スケール)
表示範囲切り替わり時のフェード角度を指定します。カメラ方向の大きな変化により表示範囲が切り替わる際、この角度の期間フェード処理が実行されます。
表示範囲切り替わり時のフェードの方式を指定します。(不透明度とスケール / 不透明度 / スケール)
ループする軸方向を指定します。指定した軸方向にカメラが移動すると、レイヤーがループ表示されます。「複数軸」を選択すると、ループ可能な全ての方向(例:地面ループの場合はY軸以外の方向)にループします。また、X軸などの単方向軸を選択すると指定した軸方向のみループします。
ランダム方向を指定します。指定した軸方向にカメラが進み、レイヤーが再表示される度に指定軸以外の位置(例:「Z軸」を設定した場合はXとY位置)がDisplayRangeの範囲内でランダムに変化します。「オフ」を選択すると、ランダム化は行われません。
レイヤーが自動で常にカメラの方向を向くかどうかを設定します。(ON / OFF)
ループ/ワンスレイヤーのスケールを設定します。この値を変更すると、全てのループ/ワンスレイヤーのスケールが一括で変更されます。デフォルトの100%は元の大きさです。
スケールのランダム変動範囲を設定します。例えば、10%では、スケールが90%〜110%の範囲でランダムに変化します。
シード値を変更します。値を変えると位置やスケールなどのランダムパターンが変わります。
指定したレイヤーの周りにトンネル状の空間を空けます。ワンスかループ機能を適用したレイヤーのみが影響を受けます。
空ける空間の直径サイズを指定します。数値を大きくするほど、周囲のレイヤーが大きく押し出されます。
空ける空間の方向を指定します。Z軸を指定すると、Z軸方向にトンネル状の空間が空きます。
地面位置のオフセットを指定します。DisplayRangeの下面から、指定したオフセット分だけ下方向に地面が作成されるため、DisplayRangeの範囲内に表示される空間ループ/空間ワンスレイヤーとの距離を調整できます。
天井位置のオフセットを指定します。DisplayRangeの上面から、指定したオフセット分だけ上方向に天井が作成されるため、DisplayRangeの範囲内に表示される空間ループ/空間ワンスレイヤーとの距離を調整できます。
左壁位置のオフセットを指定します。DisplayRangeの左端から、指定したオフセット分だけ左方向に壁が作成されるため、DisplayRangeの範囲内に表示される空間ループ/空間ワンスレイヤーとの距離を調整できます。
右壁位置のオフセットを指定します。DisplayRangeの右端から、指定したオフセット分だけ右方向に壁が作成されるため、DisplayRangeの範囲内に表示される空間ループ/空間ワンスレイヤーとの距離を調整できます。
ワンス/ループ適用済みレイヤー
ローカルレイヤー固有の加算シード値。レイヤー毎にランダムパターンを変更したい場合に利用します。
ランダム位置にオフセット値を加算して調整を行います。
RandomMode が OFF の場合の位置を設定します。
レイヤーの位置を設定します。
レイヤー個別のスケールを設定します。Controlレイヤーの全体設定とは別にサイズを調整する場合に使用します。
レイヤー個別の不透明度を設定します。各種フェード動作とは別に不透明度を調整する場合に使用します。
Avoid機能(トンネル状に空間を空ける機能)の影響を受けるかどうかを切り換えます。動かしたくないレイヤーの場合はOFFにします。
カメラ通過時のフェード動作の有効無効を切り替えます。レイヤーがカメラ付近にある状態からカメラを動かす場合など、カメラ付近でフェードによる不透明度変化を無効化したい場合はOFFにします。
反射設定
ワンスやループ機能の地面、天井、左壁、右壁を実行すると、プリコンポーズ先で自動的に反射エフェクトが追加されます。
標準エフェクトによる反射エフェクトは以下のカスタマイズ可能となっています。
反射部分のブラー量を設定します。
反射部分の不透明度(0~100)を設定します。
反射部分の明度(-100~0)を設定します。
X方向の画像シフト量を設定します。
Y方向の画像シフト量を設定します。
その他レイヤー設定
以下のレイヤーは、エクスプレッション制御エフェクトの値を変更することで、簡単に色などの変更が可能です。
背景レイヤー
背景色を変更します。
方向ガイドレイヤー
スケールを変更します。
線幅を変更します。
Xベクトルの線色を変更します。
Yベクトルの線色を変更します。
Zベクトルの線色を変更します。
初期範囲ガイドレイヤー
線の色を変更します。
表示ガイドレイヤー
線の色を変更します。
表面レイヤー
表面色を変更します。
スクリプト設定
設定画面からカスタマイズ可能な設定は以下です。
一般 タブ

表示設定
表示と作成アイテムの言語を切り替えます。
アイコンの種類を切り替えます。ダークテーマ用の場合は白いアイコン、ライトテーマ用の場合は黒いアイコンになります。
レイアウトを自動または固定に切り替えます。自動に設定すると、ウィンドウサイズに応じてレイアウトが自動的に切り替わります。
ヘッダーの表示位置を先頭または末尾に切り替えます。
ヘッダーにロゴを表示するかどうかを切り替えます。
各種機能グループを表示するかどうかを切り替えます。
操作設定
長押し対応機能のボタン長押し時間を設定します。時間は100msから1000msの範囲で設定可能です。
レイヤー タブ

プレースホルダーレイヤー設定
プレースホルダーレイヤーの長辺サイズ (px) を設定します。この値に応じて短辺サイズも自動計算されます。
プレースホルダーレイヤーのスケールを設定します。プレースホルダーのサイズよりも高解像度のアセットを読み込んだ際に、サイズの変化を最小限に抑えたい場合に利用します。例えば、スケールを 50% に設定すると、長辺サイズで指定したサイズの半分のサイズで表示できます。
プレースホルダーを格納するプロジェクトパネル内のフォルダ名を設定します。このフォルダはアクティブコンポジションと同じ階層に作成されます。
背景レイヤー設定
背景レイヤーの色をRGBで設定します。
ビネットレイヤー設定
ビネットレイヤーの不透明度を設定します。このレイヤーは下にあるレイヤーに光源・ビネット効果を与えます。
カメラ操作 タブ

動作設定
カメラレイヤーが未選択の場合に、アクティブカメラに対して機能実行するかを切り替えます。
カメラ操作設定
カメラの Z 軸方向への移動アニメーションの速度(px/s)を設定します。この値は Z+ 移動と Z- 移動の両方で使用されます。
カメラの Y 軸方向への移動アニメーションの速度(px/s)を設定します。この値は Y+ 移動と Y- 移動の両方で使用されます。
カメラの X 軸方向への移動アニメーションの速度(px/s)を設定します。この値は X+ 移動と X- 移動の両方で使用されます。
カメラの方向プロパティに適用される手振れの最大振幅を角度で設定します。この値が大きいほど、手振れによるカメラの揺れが大きくなります。
カメラの手振れの変動頻度(1秒あたりの変動数)を設定します。この値が大きいほど、手振れの動きが速くなります。
自動追加設定
カメラが自動生成される際に各種機能を適用するかを設定します。なお、「カメラレイヤー作成」ボタンによる作成には適用されません。
表面レイヤー タブ

表面レイヤー設定
表面レイヤーの色をRGBで設定します。
表面レイヤーの不透明度を設定します。
ワンス / ループ タブ

自動作成設定
ワンス又はループ機能実行時に、各種レイヤーを自動作成します。
反射設定
反射種類を選択します。反射を無効にする場合は「なし」を、有効にする場合は「roopカスタム反射(標準エフェクト使用)」を選択してください。
反射のブラー量を設定します。0にするとブラーが適用されずに鮮明な反射になります。
反射の不透明度を設定します。0~100の範囲で指定できます。
反射の明度を設定します。-100~0の範囲で指定でき、反射部分を暗くするために利用します。
プリコンポーズ設定
ワンスやループ機能実行時に生成される、プリコンポーズコンポジションを格納するフォルダ名を設定します。このフォルダはアクティブコンポジションと同じ階層に作成されます。
【重要】AfterEffects の制約 について
AfterEffects の制約に対する、解決のヒントについては以下をご覧ください。
3D空間の同一判定
タイムラインパネルで、3Dレイヤー群(カメラレイヤー、ライトレイヤー含む)の間に2Dレイヤーが存在すると、同一の3D空間として処理されません。これは AfterEffects の仕様です。その為、roop の各種機能実行時に本ケースを自動検出した場合は、自動修正することで同一の3D空間として処理されるようにしています。
※ 上記自動移動に加え、疑似3D表面レイヤーについても、重なり順を正しく維持する為に3Dレイヤー群の下部に配置されるように自動調整されます
3Dレイヤーの表示順序が入れ替わる現象
After Effectsでは3Dレイヤー同士が一部でも交差すると、3D空間上の重なり順に関わらず、カメラからの距離に応じて表示順序が逆転してしまう現象が発生する場合があります。
レイヤーを回転させる場合は、3D空間上で他のレイヤーと交差しないようご注意ください。
roopでは、表面レイヤー(地面・天井・左壁・右壁)を疑似3Dにすることで本現象が再現しないよう対策しています。
ただし、非常に稀ではありますが、roopに搭載されている「LookAtCamera」機能を使用すると、レイヤーが回転することで交差する可能性があります。
もし表示順序が入れ替わる現象が発生した場合は、以下をお試しください。
- 「LookAtCamera」をオフにする(設定箇所:Control_Roopレイヤー)
- 回転させた3Dレイヤーがある場合、他のレイヤーと交差しないよう調整する
3-3. 過負荷によるレンダリングエラー
大量の3Dレイヤーに対して、モーションブラーを有効にし、高速なカメラワークを行うと、高負荷により一時的なエクスプレッションエラーが表示されたり、レンダリングが正常に行えない(特定のフレームだけ映像に乱れがある)場合があります。
その場合は、以下の対策をすることで、レンダリング負荷を軽減し、正常にレンダリング出来るようになる場合があります。
- エクスプレッションエンジンを「JavaScript」に変更する(設定箇所:ファイル > プロジェクト設定 > エクスプレッション)
- モーションブラーの「サンプル数(フレーム)」、「最大適応サンプル数」の値を小さくする(設定箇所:コンポジション設定 > 高度)
- 3Dレイヤー数を減らす
- 高速な移動や回転するカメラワークを避ける
- モーションブラーをOFFにする

