Hope is a Dream. Dream is a Hope.

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

スライドショーに使う画像を読み込む

結婚式用のスライドショーをAfterEffectsスクリプトを使って、自動でつくる方法を紹介しています。 今日は、スライドショーをつくる上で必ず必要な、写真・画像ファイルを読み込む方法の紹介です。

前提条件

  • 画像ファイルは、/img/フォルダに格納(変更できます)
  • /img/フォルダは、スクリプトを走らすプロジェクトと同じフォルダに配置します(変更できます)
  • スライドショーで使う画像の拡張子はすべて統一しておく
  • 画像のファイル名は三桁の連番としておく001.jpg011.jpg

まずは、ファイルのパスや、格納先を宣言して起きます。

var PATH_CURRENT = File.decode(app.project.file.parent);
var PATH_PHTO = "/img/"; // 相対パスではない。プロジェクト直下のフォルダのみ対応
var TYPE_PHOT = ".jpg"; // 拡張子は自由に変更可能

画像を読み込む手順を書きます。 (ここでPageCompList[i]と言うのは、各スライドショーページ用のコンポジションです。 たとえば、スライドショーのページが30枚であればこのコンポジションは30個の配列になります。) これは別記事で説明します。

// 写真の読み込み
// /img/に000.jpgで入れておく。
//***********************************************//
var PhotoList=[];
for (var i = 1; i <= PAGE_NUM ; i++) {
    // ファイルの指定
    var pNUM = ("00"+i).slice(-3);    // ゼロ埋め

    var loadFile = PATH_CURRENT+PATH_PHTO+pNUM+TYPE_PHOT;
    // // ファイルのインポート
    PhotoList[i] = importFootage(loadFile);

    //コンポジションに追加
    var myLay = PageCompList[i].layers.add( PhotoList[i] );
}

上のコードであるimportFootage()という関数は、自分で作った関数です。 特になにをしているわけではないのですが、フッテージを読み込む際には、フッテージタイプの指定をしなければならないので、その処理を書いています。 あと、ファイルパスが間違っているエラーが良くでるので、その処理を書いてます。 (ファイルの拡張子が違ったり、連番になってなかったり。。。頻発するので、ここで書いていると後で幸せになる。。)

// フッテージファイルのインポート用関数
//***********************************************//
var importFootage = function(PATH){

    // ファイルのインポート (おまじない)
    try{
        var io = new ImportOptions( File( PATH ));
        // フッテージタイプの判定
        if ( io.canImportAs( ImportAsType.COMP)){
            io.ImportAs = ImportAsType.COMP;
        }else{
            io.ImportAs = ImportAsType.FOOTAGE;
        }
        // フッテージをプロジェクトに読み込む
        var footage = app.project.importFile(io);
    }catch(e){
        // ファイルが読み込めなかったときの処理
        alert(e); 
    }
    return footage;
}

一応これで、各スライドショーページ用の画像を読み込む事ができました。 次回はこれらの画像を、コメント用のテキストと合わせて配置して行く方法を紹介します。