Skip to main content
Participant
June 17, 2019
Question

【スクリプト】選択したプロパティとグループのみを表示

  • June 17, 2019
  • 2 replies
  • 2444 views

初めまして、AEスクリプト制作初心者になります。

表題にもあります「選択したプロパティとグループのみを表示」に関しまして、

こちらスクリプトにて実行するにはどのようなコードを記載すればいいのかご教示いただけますと幸いです。

可能であればコマンドIDなどが望ましいと思っておりますが、キーボードショートカット(S,S)を入力するようなものでも問題ありません。

This topic has been closed for replies.

2 replies

Participant
June 22, 2019

こちら回答を募集しております。

「選択したプロパティとグループのみを表示」に関しまして、

メニュー一覧にある機能ではないのでコマンドIDは存在しない可能性が高いですが、

是非何かしらの代替案がありますと幸いです。。。

よろしくお願いいたします。

Community Expert
June 23, 2019

スクリプトを使わない方法のため参考ですが、

Mac用のキーボードやマウスのユーティリティソフト「Better Touch Tool」を使う方法です。

プロパティを選択するスクリプトをScriptフォルダーに保存して、ショートカットキーを割り当てます。

BTTの設定で、

[スクリプトショートカットキー → 1.2秒アクションを遅らせる → P(AE 位置プロパティのショートカット)]

この一連の動作をBTTのショートカットキーとして登録すると、位置のプロパティだけ選択した状態で開きます。

Windowsで、このような機能が使えるアプリがあるかは不明です。

<追記>

なお、After EffectsのコマンドIDは、下記サイトに掲載されています。

https://www.provideocoalition.com/after-effects-menu-command-ids/

app.executeCommand(2065)

の記述では、値の入力画面が出てくるだけでした。

Participant
June 24, 2019

携帯からうまく返答ができておりませんでした、申し訳ありません。

Mukaida様

いつもお世話になっております。

面白い方法でのご提案ありがとうございます。

スクリプト自体は個人のみでの利用というわけではないため、Mac、Win関係なく扱え、また、外部ツールなどに依存しない方法にて実現できればと思っております。

ですがこのような方法もご提示いただき、誠にありがとうございます。

また、追記もありがとうございます。

今回「位置」を例に出しただけで、具体的には

・レイヤーを選択(複数可能)

・そのレイヤーにレイヤースタイルがかかっているか判断(レイヤースタイル自体使用していないhiddenの状態も回避)

・レイヤースタイルのうち何がかかっているのか判断(ドロップシャドウなど)

・かかっているもののみを選択

・レイヤースタイルがかかっていないレイヤーは選択解除

    (選択したレイヤー全てにレイヤースタイル未使用の場合選択解除は実行せず)

ざっくりこういった流れのスクリプトになっており、ここまではできているのですが、選択したプロパティをタイムライン上に表示する術がなく。。。

(UI版も作っておりそちらではドロップシャドウのみ、Enable状態の判断など細かい制御可能に)

現状仕方なく「Sキーを2回押してください」といったアラートを出す、最低な対処法になっております。

作業を簡略化するためのスクリプトなのに肝心なところで簡略化が完成できず…

そもそも私が無知なだけで、上記スクリプトは標準のショートカット、アクションで実行できるよといった場合ご教示いただければ幸いです。

引き続き何卒よろしくお願いいたします。

Community Expert
June 18, 2019

くわしくないので、知りたい事とは異なるかもしれませんが、

表示というのは、タイムラインに選択したレイヤーだけを表示させるということですか?

選択していないレイヤーを消すのは、スイッチのシャイをスクリプトでオン・オフできます。

app.project.item(1).layer(1).shy = true

trueをfalseに書き換えるとレイヤーは表示されます。

参考リンク:http://docs.aenhancers.com/layers/layer/

シャイを使ってグループを切り替えれるスクリプトがあるので、参考になるかもしれません。

最大6種類のプリセットを登録できます。

Shyの項目だけ選択して、試してください。

redefinery.com: rd: Statesman

選択したプロパティの表示については、スクリプトで制御できないかもしれません。

下記リンクに記述がなければ、スクリプトでは作成できません。(バージョンアップで内容は更新されます)

http://docs.aenhancers.com/

ショートカットについては、Scriptsフォルダーにインストールしたスクリプトなら、標準機能でシュートカットキーに割り当てできます。

Participant
June 19, 2019

Mukaida 様

早速ご返答いただきありがとうございます!

現在私が求めている「表示」、というのはタイムライン上に並んでいるレイヤーの左にある三角ボタンをクリックし、

レイヤーの中のプロパティをタイムライン上に表示する、といった内容になります。

例えば何かしらのレイヤーを一つ選択した状態にて

var selLayers = app.project.activeItem.selectedLayers[0];

var Prop = selLayers.property("Position");

Prop.selected = true;

このようなスクリプトを実行した場合、トランスフォームの「位置」を選択された状態になるかと思います。

(ちなみにこちらのスクリプトも簡略化できるかと思うのですがいかがでしょうか…)

しかし、この状態ではただ選択をしているだけなので、今回はその選択しているプロパティを表示したい、という意図になります。

AEの標準ショートカットでは「S→S」に当たります。

(キーボードSキーの連続二回押し。最悪それを無理やり判定するようなコードでもあればと思いました)

やはりこちらはスクリプトでの制御は難しいのでしょうか…

頂きましたURLも参考にさせていただきます、ありがとうございます。

引き続き何卒よろしくお願いいたします。

Community Expert
June 19, 2019

キーボードSキーの連続二回押しについて、念のためJava Scriptでキーボードを操作できるか検索したところ、セキュリティの問題があるので実行できないようです。

JavaScript - Javascriptでキーボードショートカットを擬似的に発生させる|teratail