Pages

2015年1月24日土曜日

2015 今年もよろしくお願い致します



前後してしまいましたが、本年も宜しくお願い致します。

<2014-2015>
昨年はお仕事的にはアニメ撮影の定期案件が終了し、イベント系ばかりになるのかな、
と思いきやありがたいことに幾つかお声掛けも頂き、
アニメ撮影やったりプロジェクションマッピングやったりとなかなか多彩な一年でした。

今年もスタートしてはや3週間立ちますが、1月にしてはまれに見る仕事の詰まり具合で正月ボケしている暇もありません。
来月からはまたお呼ばれしてのアニメ撮影3回戦突入となりそうです。


気がつけばお仕事始めて丸十年が経ち、とりあえずコレ一本でご飯が食べられているので、
「職業:プロの映像制作」とそろそろ名乗ってもいい頃合いなのでしょうか。

普段の仕事にプラスして、年末にVRayforC4D,NAVIE Effexを購入したのでそちらのお勉強も進めていきたいところです。
そう言えばFusionもいつのまにかBlackmagic製品にラインナップされていたり、近年のCG業界はますます加速してますね。
トレンドを追いかけるのが目的ではありませんが、本格化しつつある4K規格など含め、
「何でどうやって作るか」がその時々でベストなのかも見失わないようにしつつ、やっていきたいと思います。


<リマインダーと単語帳>
最近とみにモノを憶えることが苦手になってきたので(忙しいのと憶えることが増えたからでしょうきっと)、
記憶に関しては外部装置に頼るテストをしています。

日常のTodoやらは、iPhoneのリマインダーに思いつくそばからメモっては時々チェックし、
仕事のチェック項目は(アナログの)付箋に書き込んでモニタ横にぺたぺたと。
CGや語学で調べ物をしたら、小振りなノート単語帳にメモってすぐにソートできるようにしてみてます。
(そこまできっちり記録先を分けているわけではないですが…)

以前はEvernoteなどデジタルなメモ帳にまとめていたのですが、どうやらチェック後にすぐ忘れて良いものとは違って
出来れば憶えておきたいことはアナログなツールにまとめた方が、僕の場合は都合が良いようです。

こんな記事もあるので、書き留めれば記憶に残ってくれるというほど簡単なものでもないのでしょうが、
この歳になって、受験生みたいな筆記用具に囲まれているのは何だか不思議な気もしますね。
願わくば、少しでも血肉になってくれていますように。


それでは、改めまして2015年も宜しくお願い致します。

2015年1月20日火曜日

2015 スクリプト第一弾 も一つおまけのAEスクリプト ”projectOpenerPlus”

年末にちょっと時間が出来たので復習がてら社内で欲しいツールを募集してみたところ、
「Aftereffectsで既存のプロジェクトを開く際に、いちいちファイラーで深い階層まで潜らなくても済むツール」
というオーダーがありました。

そもそも深い階層にファイルを置かざるをえない仕様がどうなのよ、てのはありますが、 自分一人だと普段思いつかない機能だったのでこれ幸いとひとつ作ってみました。
とりあえず、動作に問題は無さそうだったのでこちらでも公開してみようと思います。

 ”projectOpenerPlus” 

何気に初めてのUI付スクリプトだったりします。
基本的にはAdobeデフォルトのpromptで十分だと思っているのですが、今回はドロップダウンリストを使ったほうが便利かな、というのもありましたし、
そろそろUI周りの作法もひと通り抑えておいたほうが良いかと思ったので、半分勉強も兼ねて…という感じです。

UI周りの参考資料は信頼のAEP PROJECT,ほぼこちらのページの引き写しです。

以下簡単に機能を説明します。

・LaunchPadから起動して、データベース内のフォルダを列挙、直接ファイルを開けるようにします  (ファイルメニューから起動しても問題無いとは思いますが…ひとまず、LaunchPad用アイコンも用意しました)
  データベース(要は普通のテキストデータです)への読み書きを行うので、Afterefects環境設定での「スクリプトによるファイルの読み書き」は必須です。

・指定場所に置かれた、特定書式で記述されたテキストファイルを読み込み、確認できたフォルダをリスト表示。
  そこからドロップダウンリストで選択されたフォルダを開き、AEPファイルのオープンダイアログを起動します。
  スクリプトUIからデータファイルを開くこともできるので、ファイラーに戻らなくても、良く使うプロジェクトのリストを整理することができるかと思います。

・検証はAftereffectsCS6で行っています。
  ファイルの削除などは行わないので危険性は相当低いかと思いますが、念の為使用は自己責任ということでお願いします。
  バグなどございましたらお気軽にご連絡下さい。

さて、以下に毎度恒例のスクリプト本文直貼り。
今回は目新しいところではUI周りくらいでしょうか。
お気づきの方はすぐに分かるかと思いますが、ほとんど上記参考ページのままです。
(古橋様、いつもお世話になっております) 

データベーステキストファイルのパスは、スクリプト自身のパスを基準に取得しようとしたのですが、 LaunchPadからの起動だと上手く取得できなかったためアプリのセッティングパラメータから引っ張ってきました。
 (”app.settings.getSetting("Adobe", "launchPad_scriptsFolder")”) 
その他、リロードの際にドロップダウンリストを一度削除してからもう一度配置するなど、あまりクレバーではない気もするのですが、 どなたか解決策などお持ちではないでしょうか。


(function(){
    /*Main Function---------------------------------------------------------------------------------*/
    function showDialog(){
        
        //1:データベースファイルを読み込む
        var dbFileName="projectOpenerPlus_db.txt";
        var dbFilePass=app.settings.getSetting("Adobe", "launchPad_scriptsFolder")+"/"+dbFileName;
        var dbFileObj=new File(dbFilePass);
        if(dbFileObj.exists){            
            var selectedIndex=-1;
            var db=readDb(dbFileObj);
            //2:フォルダの存在が確認できたデータからだけ、リストを作成する
            var dList=checkFolderExistence(db);
            if(dList.length<1 10="" 240="" 250-10="" 250-b1w="" 250="" 40="" 50="" alert="" amp="" b1h="" b1t="" b1w="" b2h="" b2t="" b2w="" btncancel="w.add(" btndbedit.onclick="function(){" btndbedit="w.add(" btnok="w.add(" btnreload.onclick="function(){" btnreload="w.add(" button="" cancel="" dbfileobj.execute="" dbfileobj.open="" ddl.items="" ddl.onchange="function(){" ddl.selection.tostring="" ddl="w.add(" dialog="" dlist="" dropdownlist="" e="" edit="" else="" g="" if="" name:="" ok="" projectopenerplus="" rdb="readDb(dbFileObj);" rdlist="" reload="" replace="" return="" s="" selected="true;" selectedindex="" split="" this.result="function(){return" this.show="function(){return" var="" w.center="" w.remove="" w.show="" w="new" window="">=0));}

        }else{
            alert("スクリプトと同階層にデータベースファイルを確認して下さい(`・ω・´)ゞ");
            return;
        }        
    }

 /*Sub Functions--------------------------------------------------------------------------------------*/
    function readDb(fileObj){
        if (fileObj.open("r")){
            var dbText=new Array();
            while(!fileObj.eof){
                var tText=fileObj.readln();
                if(tText.charAt(0)=="*"){
                    dbText.push(tText);
                }
            }
            fileObj.close();
            return dbText;
        }else{
            alert("データベースファイルが開けませんでした(´・ω・`)");
            return;
        }
    }
 /*---------*/
 function checkFolderExistence(list){
        var checkedList=new Array();
        for(var i=0; i>> Entry Point
    /*---------------------------------------------------------------------------------------------------------*/
    var dlg=new showDialog;
    if(dlg.show!=undefined){
        if (dlg.show()==true){
            var parentFileObj=new Folder(dlg.result());
            if(parentFileObj.exists){
                var result=parentFileObj.openDlg("Select the aep file", "*.aep");
                if(result!=null){
                    var openFileObj=new File(result);
                    app.open(openFileObj);
                }
            }else{
                alert("選択したプロジェクトのファイルパスが合致しません(´・ω・`)");
            }
        }
    }
})();
こんな感じです。
僕は現状仕事では3案件同時並行中だったりしますが、チェックしたり作業したり、ローカルだったりネットワーク上だったりと作業データ代わりと散らかっているので何気にこのスクリプトを重宝しています。
やればそこそこ出来るじゃないか。 

ちなみに、オーダーをくれた子がその後このスクリプトを使ってくれているかどうか…あまり現場を見た記憶がありません(´・ω・`)
宜しくば、一度お手にとってみて下さい。

それでは、今年も思いついた頃にまたスクリプトネタを上げていくかと思いますので、お付き合い頂ければ幸いです。
そろそろ、CINEMA4DやFusionのスクリプトも書けるようになりたいですね。

ではまた、いつかの次回に。


恒例のダウンロードはこちらからどうぞ。
いつの間にかBox.netのUIも洗練されてきてますね。
(15/01/24 肝心のダウンロードリンク先間違ってたので修正(´・ω・`))