2010-05-05

アニメ制作者のためのAfterEffectsプラグイン作成入門(第1回) SDKをコンパイルしてみよう!

開発環境 Cコンパイラ

今回はVisual C++ 2008 Express Edition SP1を使ってプラグイン作成を行います。僕は通常VisualStudio 2005を使用してますが、入門という事で無料の VC++2008です。ちなみに最新版はVisual Studio 2010になります。実はコンパイラはプラグイン開発では特に何でもいいです。作成されるバイナリコードのターゲットが変わるだけでBCCでもGNU-Cでも作成は可能です(makefile作るのが非常に面倒ですが)

Visual C++ 2008 Express Edition SP1のダウンロードはここから出来ます。Visual Studio 2008 SP1でかなり大きなファイルになります。

Visual C++の使い方は必要なものしか説明しません。
インストールは特に問題はないと思いますが、C++は当然としてC#もインストールしておけば、後々楽になります。これら以外はインストールする必要はありません。

AfterEffects SDKの入手

SDKはAdobeのサイトから入手可能です。
できれば可能な限りのすべてのバージョンのSDKを入手しておきましょう。最新になればなるほど基本機能の解説が省かれているので古いバージョンのドキュメントが結構役に立ちます。3.1付属のSDKが一番分かりやすかったですが、6.5のSDKからがあれば十分です。

AE CS5 sdk
AE CS4 sdk
AE CS3 sdk
AE7 sdk
AE6.5 sdk

今回はSDK CS3をターゲットにします。
SDK CS4へはソース変更なしで対応可能ですので、必要な人はCS4でもOKです。CS5はまだ未確認ですが、かなり問題が発生すると思います(64bitアプリ対応のため)

SDKのインストール


インストールはデフォルトでかまいません。CドライブのProgram Filesへインストールされるのが嫌な人は、違うパスを指定してください。特に問題はありません。


Documentaionフォルダには唯一の資料であるSDK_Guide.pdfがExamplesフォルダにはプログラムに必要なヘッダー・ソースコードがあります。


Examplesフォルダは、インストール直後のものをバックアップしておきましょう。
プラグイン作成に必要な情報はすべてこの中にあります。特にHeadersフォルダ内のファイルにはコメントとして必要な情報があります。SDK_Guide.pdfには載っていないので注意です。

さあ!コンパイルだ!!

今回のターゲットはEffectフォルダ内にあるSDK_Noiseをコンパイルしてみます。Effectsプラグインの勉強するならまずこのプラグインを攻略するのが近道です。というかほかのプラグインサンプルは必要があれば見る程度でOKです。

よくSDKのサンプルがコンパイルできないと相談受けますが、安心してください。僕もすべてのソースをコンパイルできません(まぁ原因がはっきりしてるので無視してるだけです。原因はSDKにはありませんのでAdobeのせいにしないように)

以下のリストがSDK_Noiseの全ソースファイルです。
SDK_Noise.h ヘッダーファイル。
SDK_Noise.cpp C++のソースコード。プラグインのメイン。
SDK_NoisePiPL.r リソースファイル。PiPLリソースを作成する為の定義ファイル。
win/SDK_Noise.vcproj VC++のプロジェクトファイル
win/SDK_Noise.sln VC++のソリューションファイル。
win/SDK_NoisePiPL.rc rファイルをコンパイルして作成された中間ファイル。
winフォルダにはプラットフォーム依存のソースが入ってます。SDKでは機種依存のコードをフォルダ分けして区別してます。ファイルの説明は次回以降にします。

ソリューションファイルをVC++で開くとVisual Studio変換ウィザードが表示されますので、変換してください。


途中バックアップをとるか聞かれますが、どちらでもかまいません。完了ボタンでウィザードを終了します。

次にプロジェクトのプロパティを修正します。

リンカ・全般の出力ファイルを”..¥SDK_Noise.aex”に書き換えます。
デフォルトでは環境変数で指定されたパスへ作成されたバイナリを保存してますが、ここでは、SDK_Noiseフォルダへ保存するように相対パスで指定します。


これで準備は完了です。


リビルドを実行しエラーが無ければコンパイルは成功です。といいたいのですが、実はこの段階でよく分からないエラーでコンパイル後のリンクが失敗する事があります。

win/Debug/BuildLog.htmを見ると分かるのですが、リソースのコンパイル時に使用するPiPLtool.exeが実行時にエラーを起こしてるはずです。出力logには表示されないのではまりがちですが、PiPLtool.exeがVC++ 2003のランタイムライブラリ(msvcr71.dll)を呼び出す為です。msvcr71.dllは、”Program Files/Adobe”の中を検索するといっぱいあるのSYSTEM32フォルダか”Examples\Resources”へコピーしてください。

これで、SDK_Noiseは無事にコンパイルできるはずです。


出力パネルが上記の通りになっていれば、フォルダの中にSDK_Noise.aexが作成されています。


失敗する場合は、出力パネルのエラー表示とwin/Debug/BuildLog.htmを確認してください。

プラグインの動作確認

作成されたSDK_Noise.aexをAfterEffectsのPlug-insフォルダへコピーして動作確認をします。



上記の様に表示されれば成功です。

ここまで出来れば、プラグイン開発の準備はほとんど終了です。
画像処理プログラムの経験があれば、もうソースをどんどん弄ってプラグインを作りましょう。

注意!

SDKのサンプルではプロジェクトの構成(ターゲット)がDebugになっています。Debugでコンパイルされたプラグインバイナリは、VC++がインストールされているPCでしか実行できません。公開配布は絶対にしないように(過去間違えて配布してしまって偉い目にあった)

また、VC++ 2008で作られたプログラムバイナリは実行時にMicrosoft Visual C++2008 再頒布可能パッケージが必要になります。それはVC++がインストールされたフォルダ(C:\Program Files\Microsoft Visual Studio 9.0\VC\redist)かここからダウンロードできます。

まとめ

今回はプログラム経験者なら無視してもいいレベルの内容ですね。まぁ僕のところにくる問い合わせメールの内容がほとんどコンパイルの仕方なので。

この記事を読んでコンパイルが出来なかったらメールかコメントください。僕自身が見逃している部分があるかもしれませんので。

次回は、超簡単なプラグインを実際に作ってみます。



この記事の投稿者について:bry-ful

フィードバック

1 Star2 Stars3 Stars4 Stars5 Stars
(評価回数:3 , 平均:5.00)
Loading ... Loading ...

この記事に対する 8 の反応があります


  1. 1 AEUSERS(AEP Project) 5月 4th, 2010 at 19:38

    新着記事 : アニメ制作者のためのAfterEffectsプラグイン作成入門(第1回) SDKをコンパイルしてみよう! http://bit.ly/aRyBLr

  2. 2 Yanagida Takashi 5月 6th, 2010 at 04:21

    RT @aeusers: 新着記事 : アニメ制作者のためのAfterEffectsプラグイン作成入門(第1回) SDKをコンパイルしてみよう! http://bit.ly/aRyBLr

  3. 3 Koki Ibukuro 5月 8th, 2010 at 05:27

    アニメ制作者のためのAfterEffectsプラグイン作成入門(第1回) SDKをコンパイルしてみよう! | AEP Project http://bit.ly/bdJpPQ

  4. 4 てつ 5月 8th, 2010 at 09:09

    へーーーーーーーーーーー。AFのプラグインをVSで作ったりもできるんだ。(・∀・) それは面白そう。 http://bit.ly/dizgLe

  5. 5 uzura 5月 10th, 2010 at 02:46

    アニメ制作者のためのAfterEffectsプラグイン作成入門(第1回) SDKをコンパイルしてみよう! | AEP Project: 開発環境 Cコンパイラ今回はVisual C++ 2008 Express Edition … http://bit.ly/dp1xfs

  6. 6 じぇふ[例大祭 あ04b] 5月 13th, 2010 at 03:01

    暇見つけて挑戦してみよう RT @AEUSERS: アニメ制作者のためのAfterEffectsプラグイン作成入門(第1回) SDKをコンパイルしてみよう! http://bit.ly/buu0QG

  7. 7 シャオ 6月 4th, 2010 at 07:50

    こういう始めの一歩的な記事は大変助かる! RT @AEUSERS アニメ制作者のためのAfterEffectsプラグイン作成入門(第1回) SDKをコンパイルしてみよう! http://bit.ly/cK3KtZ #aejp

  1. 1 FrivolousLife Trackback on 5月 6th, 2010 at 16:05

特集