AfterEffects:ブログタイトル画像をテンプレからジェネレートする#1

AfterEffects:ブログタイトル画像をテンプレからジェネレートする#1

AfterEffectsのテンプレに素材画像とjsonデータを流し込んで、バッチ処理で画像を生成する試みをしている。この投稿のヘッダ画像もその仕組みで作られた。時期が遅れたがハロウィン画像を作ってみた。

ツールがPhotoShopでない理由

動画ではなく画像のジェネレートであるが、PhotoShopではなくAfterEffectsを使った。自動化、バッチ処理、エクスプレッションなど、手が込んだものはPhotoShopでは書きずらいから。できなくはないが、AfterEffectsのほうがずっと楽。また手軽にかっこよさげな画像を作るのもプラグインがそろっているAfterEffectsのほうがやりやすい。まあここは人によるかもしれない。

またこの手法を掘り下げて、動画作成にも効果的に使うための練習という意味もある。動画もいずれやる。というかすぐやる。

テンプレプロジェクトとファイルの構成

AfterEffectsの編集中の画面。

編集画面

タイトル文字、カテゴリ文字、テーマカラー2色は外部jsonファイルから流し込んでいる。背景画像もリンクしているので、外部で置き換えが可能。あとはエッセンシャルプロパティというのを使ってみている。プリコンプレイヤーのプロパティとして公開パラメータがある感じ。

ファイル構成

読み込んでいるjsonファイルは以下。

{
	"title": "Happy\nhelloween",
	"category": "Trick or Treat",
	"theme_color1":[177,228,228],
	"theme_color2":[55,32,9]
}

タイトル指定のexpression。

footage("title_info.json").sourceData.title;

カラー指定のエクスプレッション。ややこしい事になっている理由は前の投稿に。ダミーのレイヤーのエクスプレッションエフェクトに設定したこの値を、ピッグウィップで文字の色味と全体グラデーションの色味につないでいる。

var c1 = effect("カラー制御")("カラー");
var c2 = footage("title_info.json").sourceData.theme_color1;
[
    c1[0]*c2[0]/255,
    c1[1]*c2[1]/255,
    c1[2]*c2[2]/255,
    c1[3]
];

素材画像の上にはjson指定の色味でグラデーションがオーバーレイで乗っている。

バッチ実行処理の詳細

このままAfterEffectsからレンダリングしてももちろん良いのだが、今回はさらに素材画像とjsonを用意したら、コマンドプロンプトからバッチ実行して、画像を書き出すという事をやって切る。長くなるので、ここは別記事にまとめる。

プロジェクトファイルの配布

zipファイルでプロジェクトファイル一式を上げておく。

https://github.com/logicalmodelin/LGMLtools/tree/4af62bac56fbed12d42dc5725df59e7b9924addb/blog20221118_header_template_test_halloween

なお、通常素材画像は、Unsplash でを調達するが、今回は pixabay というサイトの画像を使ってみた。理由は再配布の条件が緩いから。(プロジェクトとともに配布したい。)以下からお借りしている。

https://pixabay.com/ja/illustrations/%e3%83%8f%e3%83%ad%e3%82%a6%e3%82%a3%e3%83%bc%e3%83%b3-%e9%ad%94%e5%a5%b3%e3%81%ae%e5%ae%b6-%e9%ad%94%e5%a5%b3-2893710/

この記事を参照している記事

Previous post AfterEffects:カラー値を外部jsonデータとエフェクト設定両方で指定する
Next post AfterEffects:ブログタイトル画像をテンプレからジェネレートする#2