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)かここからダウンロードできます。

まとめ

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

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

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



タグ : , [タグを追加する]


この記事の投稿者について:bryful

フィードバック

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

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


  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

  8. 8 mj 12月 15th, 2010 at 14:41

    クライアント様の方で動作しなかった原因がわかりました。すごく助かりました。ありがとう!

  9. 9 poobgqcjbv 3月 7th, 2011 at 16:48

    tmvVhf osxutwwkvbst, [url=http://lbrrpetceyko.com/]lbrrpetceyko[/url], [link=http://sdkybdsclrtu.com/]sdkybdsclrtu[/link], http://jtwyimdswmms.com/

  10. 10 nya cappuccino 5月 14th, 2011 at 08:45

    ジブン用メモ:adobeCSプラグイン作成方法。 http://bit.ly/iLrvaV

  11. 11 shoshinsha 8月 13th, 2011 at 22:23

    はじめまして
    64bit環境 + Visual C++ 2010 Express とCS4 SDKで試してみたのですが
    色々つまづいてしまって何がなんだか・・・。
    出来れば64bit版での開発などについても書いていただけると嬉しいです。。

  12. 12 bry-ful 8月 14th, 2011 at 21:01

    返事が遅れてすみません。

    僕自身の開発環境がまだ32bitなので64bit環境での詳しい解説はまだできません。ごめんなさい。

    CS4ということで多分32bitターゲットのプラグイン開と思いますが、特に手順は変わらないはずです。
    VC++2010 expressでも32bitターゲットなら特に問題なくビルドが出来るはずです。ただ、PiPL.exeが32bitアプリなのでCS5のSDkのものと差し替える必要があると思います。

    けん吾庵さんのWebが参考になると思います。
    http://kengolab.net/prog/AEPlugin/

  13. 13 refinity. 10月 28th, 2011 at 14:57

    ここははじまりか。ていうかプラグイン製作・・・・か興味がないこともないけど。http://t.co/IAdpLdUm

  14. 14 skkn 3月 17th, 2012 at 14:22

    参考にしたサイト http://t.co/JIQqMxFq 64bitでビルトする為の参考サイト http://t.co/As9b9ivs http://t.co/2GcfForS

  15. 15 うさえむ 10月 10th, 2012 at 14:25

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

  16. 16 多動明神卍 10月 13th, 2012 at 10:39

    @shime_nawa そうだよ。SDK落としてプログラミング、しよう!http://t.co/sZ4j3Tp6

  17. 17 Xeo 8月 27th, 2013 at 09:36

    インストール先についての補足。
    下記はCS5.5SDKで動作確認しています。

    rファイルのコンパイラであるPIPLtools(SDKのResourceフォルダ参照)はパスの中に「.」が含まれているとそこが拡張子と判断するようです。

    例「D:\Project.AE\Example\Effect\SDK_Noise」

    上記例のような場合、「D:\Project.AE」というファイルを変換対象として認識します。
    そのため、.を含まないフォルダを用意する必要があります。(かなり特殊な例ですが嵌まりました・・・・・・)
    SDKのインストール先はドライブ直下に「AESDK」等の特殊な文字を含まないシンプルなフォルダにした方が無難です。

    余談ですが、この手の外部ツールのエラーはビルドログにはcmdがエラーが返したこと、ファイルが参照できないことぐらいしか表示されずエラー原因がかなりわかりづらいです。
    最終的にはPIPLtoolsをコマンドライン上から実行してエラー内容を確認しました。

  18. 18 Xeo 8月 27th, 2013 at 11:06

    さらに補足。
    日本語環境(CP932)では下記のようなエラーがでる場合があります。

    ———————————————-
    1> AEGP_SuiteHandler.cpp
    1>D:\AEPlugins\Headers\PR_Public.h : error C2220: 警告をエラーとして扱いました。’object’ ファイルは生成されません。
    1>D:\AEPlugins\Headers\PR_Public.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
    1> SDK_Noise.cpp
    1>D:\AEPlugins\Headers\PR_Public.h : error C2220: 警告をエラーとして扱いました。’object’ ファイルは生成されません。
    1>D:\AEPlugins\Headers\PR_Public.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
    ————————————————


    これはPR_Public.hの中のコメントにCP932で表現できない特殊記号が含まれているため発生している警告のようです。
    これを解消するには、警告をエラー扱いにしないことか(プロジェクトプロパティ>全般>警告をエラーとして扱う=いいえ)、特定の警告を無視することか、ヘッダーファイルの該当コメントを削除する。もしくは別のエンコーディングで上書き保存してしまうことが必要です。

    ソースコードの改変がなく重篤な警告を見落とすことがない、特定の警告を無視する方法がお勧めだろうか?

  19. 19 Xeo 8月 27th, 2013 at 11:45

    連投で申し訳ないですが実行環境の記載をば。
    Windows7(64bit)+VS2010ProSP1+CS5.5SDKの環境で開発し、Windows7(64bit)+AfterEffectsCS5.5で動作を確認しています。
    私の環境ではVC++2008Express+CS5.5のサンプルだとプロジェクトプロパティが開けない等の不都合があり、VS2010を採用しています。
    CS5.5のSDK Guideにはサンプルでは「Windows7(64bit)」と「VisualStudio .net 2008」と名指しされているので問題ない環境のはずなのですが……

  1. 1 FrivolousLife Trackback on 5月 6th, 2010 at 16:05
  2. 2 アニメ制作者のためのAfterEffectsプラグイン作成入門(第1回)SDKをコンパイルしてみよう! | Tips - After Effects - 動画編集ソフト - アプリケーション | Jishuu.net Pingback on 4月 21st, 2012 at 04:59
  3. 3 アニメ制作者のためのAfter Effectsプラグイン作成入門(第1回)SDKをコンパイルしてみよう! | チュートリアル・Tips - After Effects - 動画編集ソフト - アプリケーション | Jishuu.net Pingback on 10月 3rd, 2012 at 20:43
  4. 4 AfterEffectsプラグイン開発 Pingback on 9月 5th, 2018 at 23:34

特集