2013年1月13日日曜日

PhotoshopのタイムラインでAfter Effefctsのようにトラックマットを使う方法

Photoshop Extendedのタイムライン操作をしているときにAfter Effectsのようにトラックマットが欲しい!って思っていたんだけれども、このやり方がマニュアルにはのってない。やり方はすご~く簡単です。

Photoshopだと特定の範囲を隠すのに使う、グレースケールのレイヤーマスクってのがあるけれど、これがアニメーションができない。他にもパスで作るベクターマスクがあるけれど、これもAfter Effectsのパスのように形状変化はさせられないので、単純にパスの場所を動かしてキーフレームを打つしか無いので使いにくい。ただまあ、レイヤーマスクの場合は、例えばグループにレイヤーマスクをつけて、そのグループの親のグループを作りそのグループにも別の形状のレイヤーマスクをつけて、それぞれのレイヤーマスクの可視性にキーフレームを打てば何とか形状変化をさせることができるけれど、これも作れるレイヤーグループの階層に制限があるので実用的ではない。なのでこの2つのマスクは両方共アニメで使うのには心もとない。

なので別の方法を。適当なビデオレイヤーを用意して、コマごとにマスクしたい範囲を描いてやる。んでそのビデオレイヤーのレイヤースタイルの「高度な合成」欄で「塗りの不透明度」を0%にして、ノックアウトオプションを浅いか深いに設定してやればいい。これでこのビデオレイヤーは描画した範囲がマスクに使える。After Effectsでいう、トラックマットのような使い方ができるわけ。

例えば、特定のビデオレイヤーの特定の範囲だけを非表示にしたいならマスク用のビデオレイヤーとその特定のビデオレイヤーをグループ化してマスク用のビデオレイヤーを上述のように設定し、ノックアウトを浅いに設定してやれば、そのグループの中にあるレイヤーのみ非表示にしてくれるので、特定のレイヤーのみマスクができるようになる。

マスクの不透明度を変化させたいときは、ノックアウトの設定をしたレイヤーの不透明度を変更してやればいい!なんて便利なんだこの野郎!


これに気づくまでフツーにレイヤーグループにマスクを描いてそれをアニメーションさせてました。時間をかなり浪費したぜこの野郎。


追記
もしくは、クリッピングレイヤーでもいける。切り抜き元のビデオレイヤーの塗りを0%にして、レイヤースタイルの高度な合成で「クリップされたレイヤーをまとめて描画」のチェックを外す。こうすれば元のビデオレイヤーがクリッピングされたビデオレイヤーを切り抜いてくれる。

2012年7月18日水曜日

イラストスタジオで無変換キーを押してキャンパス回転させるAHKスクリプト

GroupAdd,IllustStudio,ahk_class CRibLayerPalette
GroupAdd,IllustStudio,ahk_class IS10FrameWnd
GroupAdd,IllustStudio,ahk_class CRibVariableToolsetPalette

#ifWinActive, ahk_group IllustStudio
vk1Dsc07B::
SendInput {Space down}{Shift down}
keywait, vk1Dsc07B
SendInput {Space up}{Shift up}
return
#IfWinActive



イラスタでキャンバス回転するのにshiftとスペースを一緒に押すのがだるい。これで無変換押すだけで回転できるようになる。そんなAHKスクリプト。

Photoshopで無変換キーを拡大縮小に使うAHKスクリプト

海外の人が公開していたスクリプトをそのままいじって使ってるだけ。


#ifWinActive, ahk_class Photoshop
vk1Dsc07B::
send {ctrl down}
send {Space down}
mouseclick, left,,, 1, 0, d
Loop
{
sleep, 15
GetKeyState, state, vk1Dsc07B , p

if state = u
break
}
mouseclick, left,,, 1, 0, U
send {ctrl up}
send {Space up}
return
#ifWinActive

これで無変換を押しているときにはズームイン・アウトができるようになる。いちいちCtrl+Space押しと2つボタンを押さなくて済むので便利。一個のボタン押しだけでズームイン・アウトができるってのはマジで便利です。



あとついてに書いておくと、このズームイン・アウトスクリプトと、この記事

Photoshopのスペースバー押しでのアニメーションプレビュー再生をさせなくするAHKスクリプト。
http://coollooc.dtiblog.com/blog-entry-223.html


の昔載せていたスクリプトを併用する場合問題が発生します。

前まで記事に載せていたプレビュー停止用のスクリプトは

#ifWinActive, ahk_class Photoshop
Space::
send,{space down}
send,{shift down}
KeyWait,space
send,{space up}
send,{shift up}
return
#IfWinActive

になってまして。この訂正前の再生停止用スクリプトと今回のズームインアウトスクリプトを併用すると、Spaceバーを押してすぐに無変換を押す、という動作をするとアニメーションプレビューが再生されてしまうのに最近気づきまして。原因は停止用スクリプトのsendのSpace downだけ実行されて、shift downの判定が来なくなっていて、そのまま無変換のSpace downが来てしまっているからだと思うけれど。
今は

#ifWinActive, ahk_class Photoshop
Space::
send {shift down}{space down}
KeyWait,space
send {shift up}{space up}
return
#IfWinActive

と順番を入れ替えて直しておいたので前のスクリプトをそのまんま使ってる人がいたら、今回のズームイン・アウトのスクリプトと併用するときは直しておいてください。これ解決するために何時間も費やしてしまった。。