Hope is a Dream. Dream is a Hope.

非公開ブログは再開しました。

After Effects スクリプト | JSON風に設定ファイルなどを保存するなら。history.log風な設定ファイルを作る。

f:id:hope_is_dream:20141119182641p:plain

After Effectsスクリプトでいじっていると、なにか設定データ等を外部の***.logなどのファイルに保存して置きたいことがあります。

僕の場合例えば、GUIを使って自動スライドショー作成アプリを作っているのですが、写真やコメントの位置を毎回選ばなくては行けません。

「覚えておいてくれたらいいのに。。」

という事で、

ファイルパスや動画の長さなどの設定データを連想配列で管理し、外部に保存しようというのが今回の狙いです。

例えばこう

setting = {
                 "proj_name" : "20141118_fifi_weding",
                 "photo_num": 32
}
setting("path_photo") = "./aeproject/img/";
setting("movie_len") = 3*30+15;

こんな具合に設定データを保管して置きます。

ただこのままだと、テキストデータとして保存するには悩みます。

そこでJSONという形式に変換します。

(厳密には違うらしいです。)

javascript連想配列JSON形式に変換.toSource() + eval()

AE jsonコーディング

このコードで

    var jsonString = obj.toSource();

というところで、連想配列JSON風に変換してます。

その後

    var objr = eval(jsonString);

変換した変数をeval()することで、JSON風のデータが得られます。

あとはこれを保存するだけです。

連想配列JSON形式で保存

   // 連想配列をJSONに変換
    jsonObj = setting.toSource()
    file = eval(jsonObj);

    // ファイルの書き込み
    var path = PATH_CURRENT+"/debug.log";
    var file =new File(path);
    var flg =file.open("w");
    if(flg){
        txt = file.writeln("書き込むテキスト");
    }
    file.close();

ファイル入出力に関してはこちらを参考にしてみてください。

その他

今回はGistをつかってブログが書きたかったのです。

実は最近お気に入りのエディタのSublime Text 3からGistへ投稿ができることを知って、しきりにコードを書きながらスニペットを投稿していました。

参考までに