AfterEffects Auto Pixel Picker スクリプト

超便利なんです、、、
とは言い難いんですが、なんとなく面白いというか発想は悪くないような気がして
一応常時使用するスクリプト群に入れ続けている自作スクリプトです。

設計した当初の想定していた用途は、、、
アニメの撮影時に素材別にパーツ分けをすることがよくあり
特にOPやEDなどを担当する機会があると全てのカットがBG合わせの色変えで
前もってプリセットやテンプレを作ることができない。しかもセルの納品がギリだったりする。
そんな時にセルの全色を一気に自動処理でピックアップできたら楽なんじゃないか?
というものでした。

試行錯誤の末、画像を満遍なくピックアップするものを完成させたのですが
そのルーチンが恐ろしく重く、1600×900の画像1枚を1pixelごとに拾い上げると
確か1時間ぐらいかかったように記憶しています。
既存のAE Scriptの機能だけではむちゃくちゃ時間がかかるのです。
前述の用途で設計しているためそれでは意味がない訳です 汗
そこでfrequencyをつけたり、多少のランダマイズを持たせるためにseedをつけたりして
今の形になりました。

しかし、やはり髪のハイライト目の作画処理細かい部分は結構逃したりするんですよね。
というわけであまり出番はありませんでした。これからも多分そんなにないと思います 笑
でもなんとなくこの発想を忘れたくないので使える状態にはしておきたいんですよね。
cc2017で使ってみたところ、、、ダメでした。
最近までcs6をベースに使っていたので、もしかしたらもっと前のバージョンでダメだったのかもしれません。
力技系のコードは結構エラーが出て落ちます。GUI系のコードは拙いモノが多いので他にもありそうです。

そして、、、、なんとか使えるようにしました。

大きな問題もありました。

バージョンが上がってスクリプトの挙動は凄まじく早くなっていますが
それが根本的な原因になっていそうです。
expressionの戻り値を拾いあげて、カラー制御を介して色を取得してたりするんですが
画像がリロードされる前に処理が行われてしまって[0,0,0,0]が返ってきてしまうんですよ。
これってどうしたらいいんでしょうね?
結局力技で複数回同じ場所の色を拾う様にして対処しています。
誰か対策をご存知の方がいらっしゃったら教えていただきたいです。
多分自動キャッシュされる様になり、内部処理される部分とインターフェース上処理される部分が
切り離されていることに問題があるんじゃないかなーと理由は想像していますが
対処法はわかりません。ないのかもしれません。



コメントを書く