経緯
AE作業中、ブレンドモードを手軽に上下キーで試したいのに、いちいちプルダウンメニューから選ぶのがめんどくさくて...
ツール動作
Photoshopでは当たり前にできる上下キーでのブレンドモード変更が、#aftereffects ではできない認識だったので作ってみた😊ChatGPTありがとう~!(すでに誰か作ってるのかな?)
— ですぽんた (@deathponta) 2024年11月8日
後でブログに上げよ pic.twitter.com/3IUlKMWn0R
コード
下記を「AEScript_applyBlendMode.jsx」などの名前で適当なフォルダに保存して、AfterEffectsで実行。
AE2024で確認済み。
(function applyBlendMode(thisObj) { function buildUI(thisObj) { var blendModes = [ { name: "通常", mode: BlendingMode.NORMAL }, { name: "ディザ合成", mode: BlendingMode.DISSOLVE }, { name: "暗く", mode: BlendingMode.DARKEN }, { name: "乗算", mode: BlendingMode.MULTIPLY }, { name: "カラー焼き込み", mode: BlendingMode.COLOR_BURN }, { name: "線形焼き込み", mode: BlendingMode.LINEAR_BURN }, { name: "明るく", mode: BlendingMode.LIGHTEN }, { name: "スクリーン", mode: BlendingMode.SCREEN }, { name: "覆い焼きカラー", mode: BlendingMode.COLOR_DODGE }, { name: "覆い焼き(リニア)", mode: BlendingMode.LINEAR_DODGE }, { name: "オーバーレイ", mode: BlendingMode.OVERLAY }, { name: "ソフトライト", mode: BlendingMode.SOFT_LIGHT }, { name: "ハードライト", mode: BlendingMode.HARD_LIGHT }, { name: "差の絶対値", mode: BlendingMode.DIFFERENCE }, { name: "排除", mode: BlendingMode.EXCLUSION }, { name: "色相", mode: BlendingMode.HUE }, { name: "彩度", mode: BlendingMode.SATURATION }, { name: "カラー", mode: BlendingMode.COLOR }, { name: "輝度", mode: BlendingMode.LUMINOSITY }, { name: "加算", mode: BlendingMode.ADD }, { name: "減算", mode: BlendingMode.SUBTRACT } ]; var blendModeNames = []; for (var i = 0; i < blendModes.length; i++) { blendModeNames.push(blendModes[i].name); } var windowTitle = "Blend Mode Changer"; var win = (thisObj instanceof Panel) ? thisObj : new Window("palette", windowTitle, undefined, { resizeable: true }); win.orientation = "column"; win.alignChildren = ["fill", "fill"]; var listBox = win.add("listbox", undefined, blendModeNames, { multiselect: false }); listBox.preferredSize = [200, 300]; // `onChange`イベントを使用してリアルタイムで反映 listBox.onChange = function() { if (listBox.selection) { applyBlendMode(blendModes[listBox.selection.index].mode); app.refresh(); // ビューポートを強制的に更新 } }; win.add("button", undefined, "Close").onClick = function() { win.close(); }; win.layout.layout(true); return win; } var w = buildUI(thisObj); if (w instanceof Window) { w.center(); w.show(); } function applyBlendMode(blendMode) { var activeComp = app.project.activeItem; if (activeComp && activeComp instanceof CompItem) { var selectedLayers = activeComp.selectedLayers; if (selectedLayers.length > 0) { app.beginUndoGroup("Change Blend Mode"); for (var i = 0; i < selectedLayers.length; i++) { selectedLayers[i].blendingMode = blendMode; } app.endUndoGroup(); app.refresh(); } else { alert("レイヤーが選択されていません。"); } } else { alert("アクティブなコンポジションがありません。"); } } })(this);
スクリプト管理のおすすめツール
たくさんのツールの管理ができて便利で、めちゃ使わせてもらってます!!
Terrible Junk Show様!感謝感謝!!
既出バグ
今のところはなし