F’s Plugins その1 コンパイル手順
どうも!久しぶりのbry-fulです。今回のテーマは、After Effectsプラグイン(F’s Plugins)の解説です。以下のように3回に分けて投稿していくつもりです。
- その1 コンパイル手順。(今回の投稿)
- その2 改造のすすめ
- その3 各プラグインの簡単な説明
今回の記事は長いので適当に読み飛ばしてもらって構いませんし、最初にコンパイルに挑戦して成功したらこの記事を読む必要はありません。失敗した時だけ読んで貰えればいいです。
F’s Pluginsとは
F’s Pluginsとは、僕(bryf-ful)が趣味で作っているAdobe After Effects用のエフェクトプラグイン集です。今回新しいバージョンをリリースすることになったのでここで紹介したいと思います。
ただ、この記事は「プログラム入門」なので、プログラム開発をメインにしていきます。
F’s Pluginsのソースのコンパイル手順の説明からAfter Effectsエフェクトプラグイン作成の基本をメインに解説していきます。
できるなら、僕の過去の投稿「アニメ制作者のためのaftereffectsプラグイン作成入門」を読んでからの方がいいでしょう。
ダウンロード
プラグイン本体は以下のものになります。Windows/Mac CS4/CS5/CS5.5/CS6対応版プラグイン
http://bry-ful.ddo.jp/BRY/software/FsPlugins/FsPlugins20121231.zip
アーカイブの中にはWindows/Mac CS4/CS6用のプラグインが入っています。
!注意点ですが、デバッグをWindowsCS4版でしかしていないので動作保証はWindows版CS4のみです。
CS6及びMac版はオマケ扱いですが、基本的にクリティカルな不具合はないと思います。
今回のメインのソース・プロジェクトはここからダウンロードできます。
http://bry-ful.ddo.jp/BRY/software/FsPlugins/FsPlugins20121231_src.zip
今バージョンから基本システムを心機一転に作り直し、一つのコードからMac/WindowsとSDKはCS4/CS5/CS5.5/CS6とコンパイル出来るようになっています。
CS6のSDKでコンパイルしたプラグインは、CS6オリジナルの機能を使っていなければCS5/CS5,5でも動作可能だったのでアーカイブのプロジェクトはCS4/CS6対応にしています。
コンパイルまでの準備
全く0の状態からコンパイル(ソースコードから、プラグイン(プログラムバイナリ)を作成する事)をするには以下の準備が必要になります。Windows版なら MicrosiftのVisual studio 、Mac版ならAppleのXcodeです。どちらも無料版があります。
Windows版の開発環境(コンパイラ)について
MicrosoftのVisual studio(Visual c++)を使用するのですがターゲットによって使うバージョンを変える必要があります。AdobeのSDK自体ではVisual Studio 2008 Professionalの使用をを推奨していますが、今現在入手することはかなり難しいです。
現在手に入るVisual studioのバージョンで作成できるプラグインは以下の表になります。
After Effectsのバージョン | Visual C++ 2010 Expres(無料) | Visual Studio 2010 Professional(有料) | Visual Studio Express 2012 for Windows Desktop(無料) |
---|---|---|---|
CS4(32bit) | 作成可能 | 作成可能 | 制限付きで作成可能(XPでは実行できない) |
CS6(64bit) | 基本的に不可(64bitコンパイラを別にインストール必要あり) | 作成可能 | 作成可能 |
ややこしいですが、最新版のVS Express2012ではWindowsXPでの実行が動作環境外になるので、事実上CS4向けのプラグイン作成は出来ないと考えたほうがいいです。
理想的にはVIsual Studio 2010 Professional(有料)を購入することですが、かなり高額なので、CS4向けにはVIsual C++ 2010 Expressで、CS6はVisual Studio Express 2012 と使い分けるのが妥当かなと思います。
実はVisual C++ 2010 Expressに64bitコンパイラをインストールすればCS6向けにもコンパイル可能です。興味のある方は「Visual C++ 2010 Express 64bit コンパイル」で検索してみてください。
VIsual Studio Expressのダウンロードは以下からできます。Visual C++ 2010 ExpressもVisual Studio Express 2012 for Windows Desktopも同じページからダウンロード可能です。
http://www.microsoft.com/visualstudio/jpn/downloads
ダウンロードには無料の会員登録が必要になり、30日以上使い続けるためにはプロダクトキーを入手する必要があります。
インストール後必ずアップデートしておいてください。
僕は気分的に無料版を使うのに抵抗があったのでVisual Studio 2010 Professionalを使っています(まぁ昔ワゴンセールで買ったVC++6を安い値段のアップデートキャンペーンでバージョンアップし続けています)
Mac版の開発環境(コンパイラ)について
Appleが提供しているXcodeを使うのですが、SDKが推奨しているバージョンはXcode3になります。最新はXcode4になるのですがほとんど別物になっているので、Xcode4ではプラグイン開発は今のところできません。その為かなり困った状態になっています。とりあえず、Xcode4でコンパイルの方法を現在模索中です(結構簡単に対処できそうです)
!!重要
Mountain LionではXcode3をインストールするとカーネルパニックを起こしてMacが起動できなくなります。
ここの記事を参照してください!
上のリンクの方法では僕の場合成功しませんでした。復旧用のスシェルクリプトがうまく動いてくれなかったので、USBのリカバリーディスクが作成してあったのでそれで復帰させました。一応Xcode3でコンパイル可能に出来ますが詳細はまだ検証していません。
Mountain LionではXcode4でコンパイルしたほうがよさそうです。現在検証中です。
◎困った状況1(Xcode3のダウンロード)
Xcode3自体はサポートが停止されているので、Appleのデベロッパーのページからは通常の手段ではダウンロード出来ません。とりあえず、デベロッパー登録(無料)を行い、Xcode3.2.6をページ検索で見つけるしかありません。
今現在は以下のLink先でダウンロードが可能ですが、何時消されるかわからないので、なるべく早めに落としておいたほうがいいでしょう。
◎Xcode 3.2.6 and iOS SDK 4.3 Download
◎困った状況2(lion以降のMacにはXcode3がインストール出来ない)
更に問題があります。Xcode3はOSがlion以降のMacには標準状態ではインストールが出来ないのです。
googleで「xcode3 lion インストール」で検索すると無理やりインストールする方法が調べられるのですが、かなり敷居が高いです。
◎困った状況3(Mountain LionにXcode3をインストールするとMacが起動不可能になる)
lionなら無理やりインストールすれば大丈夫でしたがMountain LionではMacOS自体が起動しなくなります。詳しいことはここを参照してください。
一応無理やりインストルした後にMacOSX自体を復旧すればXcode3は使えるようになりますが、とても精神に来ます。
簡単に説明すると以下の手順になります。
- Step 00 Mountain Lionの場合はインストールディスクをUSBメモリに作成しておく
-
Moutain LionではXcode3をインストールするとOS自体が起動しなくなります。ここの記事のように復活用のシェルスクリプトを用意しておけば復旧は簡単ですが、手順が少しでも狂うともうどうにもなりませんので、インストールディスクをあらかじめ用意しておくと安心です。
ここの記事を参考に作成しておくといいです。Mountain Lion自体はAppStoreでダウンロード出来ます。
- Step 01 ディスクイメージをマウント
- ダウンロードしたXcode3イメージファイルをダブルクリックしてマウント(これは簡単)しかし、表示されるインストラーをそのままダブルクリックして実行してもエラーダイアログがでてインストールは不可です。
- Step 02 ターミナルからインストラーを起動
-
以下のコマンドをターミナルから実行してインストラーを実行させます。
ターミナルとは、WindowsでいうとDOS窓みたいなものです。アプリケーションフォルダのユーティリティの中に入っています
export COMMAND_LINE_INSTALL=1<リターン>
open “/Volumes/Xcode and iOS SDK/Xcode and iOS SDK.mpkg”<リターン>
!<リターン>とあるところでリターンキーを打ち込みます。
これでインストラーは起動できます
インストール時の設定で、念のためXCode3のインストール先を”Developer”から”Xcode3″に変更しておきます(ただしインストール後には”Developer”フォルダが作成されてしまいますが気にしない用に)
あとiOS SDKは入れないようにします。使わないし使えないからです。これでインストールを開始出来ます。
実はこのままでは“Installation Alert“ってエラーダイアログが表示されインストールが完了しません。
僕の場合はiTunesが起動してるから終了しろって意味のダイアログでしたが、当然iTunesは起動していないのでどうすることもできません。
インストラー起動前にシステムの日付を2012/1/1に設定しておけばアラートが表示されなかった場合もあるそうですが、かなりの確率でインストールが止まってしまいます。
しょうが無いので次の手順で無理やり”Installation Alert“を消していまします。
- Step 03 エラーダイアログのプロセスをkillする
-
またターミナルを使用します。
表示されっぱなしで消えないダイアログのプロセスIDを獲得して無理やり消してしまいます。
Windowsで言えばタスクマネージャーに表示されているプロセスを無理やり停止させることと同じ事ですが、便利なUIはありません。
念の為に余計なウィンドウ・アプリは全て閉じた状態で、以下のコマンドを打ち込みます。
sudo ps ax | grep AlertAll<リターン>
もしpasswordと表示されたたログイン時のパスワードかターミナルで設定したパスワードを入力します(2回入力をもとめられます)その際エコー(**とかの表示)されないので慌てないように。
成功すればずらずらと文字が表示されるはずです。その中にプロセスID(適当の長さの数字文字)が表示されているのでそれをメモります。
慣れていないとどれがプロセスIDかわからないと思うので、それらしい数字はすべてメモっておいたほうがいいです。
上記の例ではプロセル番号は677になります。プロセス番号は実行ごとに変わるので注意してください。
プロセス番号がわかったら以下のコマンドを打ち込みます。
sudo kill プロセス番号<リターン>
これでLionの場合、”Installation Alert“は消えてインストールが正常に終了すると思います。
Moutain Lionの場合はインストールが完了する寸前にいきなりMacが落ちます。そしてカーネルパニックが発生して起動不可の状態になります。
- Step 04 Moutain Lion時 MacOSXを復旧させる
-
ここの記事とおりに復旧用のシェルスクリプトを予め作成してあったならば、シングルユーザーモードでブートで起動させてそのスクリプトで復旧が可能らしいです。
ただ、僕の場合はそのシェルスクリプトでは普及できなかったので、予め作成してあったUSBメモリのMountain Lionのインストールディスクで復旧(としうかインストール)しました。
この場合、復旧には1時間くらいかかります。USBインストールディスクがない場合とネット経由でのインストール可能ですがかなりの時間がかかります(ちなみに僕の場合は5時間かかりました)
SDKのダウンロード
SDKは以下のURLからダウンロードできます。CS4 http://www.adobe.com/jp/devnet/aftereffects/sdk/cs4_eula.html
CS6 http://www.adobe.com/devnet/aftereffects/sdk/cs6.html
使用条件があるのでよく読むことを進めます。通常の使い方なら特に問題が出ないと思いますが。
ダウンロードしたファイルはZIPでアーカイブされているので、適当なところに展開します。僕は面倒だったのでドキュメントフォルダにそのまま展開してします。
上の図はWindowsですがMacでも同じ感じに任意の場所に展開しても構いません。
F’s Pluginsのソースフォルダの配置
F’s Pluginsのソースのアーカイブを展開すると「F’s PluginsProjects_2013」フォルダができます。それをターゲットの SDKフォルダ内にあるExamplesフォルダに移動させます。上の図ではCS4のSDKの中に入れていますが、すべてのバージョンのSDKは同じフォルダ構成になっていますので、他のSDKでも同じ位置に配置してください。
コンパイルに使用するheader file等の読み込みは相対パスで指定されているので、このフォルファの位置はかなり重要なので注意してください。
F’s PluginsProjects_2013はターゲットのSDKのExamplesフォルダに移動させて、そこでコンパイルを行えばソースは無変更で対応プラットホームを変更できます。
Windows CS4版のコンパイル
まずCS4版のコンパイルです。「F’s PluginsProjects_2013」フォルダを開くとずらっと各プラグインのソース・プロジェクトを収納したフォルダと各プロジェクトファイルをまとめたソリュージョンファイルがあります。
基本的に1個のプラグインにそれを管理するプロジェクトファイルが一つあり、Visual studionの場合複数のプロジェクトファイルを管理する為のソリュージョンファイルがあります。
WIndows用にはターゲットに合わせて以下の3つのソリュージョンファイルを用意してあります。
- F’s Plugins_CS4_vs2010.sln SDKがCS4でVisualstudio 2010用のソリューションファイル
- F’s Plugins_CS6_vs2010.sln SDKがCS6でVisualstudio 2010用のソリューションファイル
- F’s Plugins_CS6_vs2012.sln SDKがCS6でVisualstudio 2012用のソリューションファイル
CS4とCS6しか用意していませんがCS5/CS5.5のSDKで作成したい場合はCS6のソリューションファイルが無変更でそのまま使えます。
CS5/CS5.5でコンパイルができることは確認済みです(プラグイン自体が動作するかまでは未確認ですが大丈夫でしょう)
VS2012でCS4をコンパイルすることは可能ですが、無意味と判断してソリューションファイルは用意していません。
F’s Plugins_CS4_vs2010.slnをVS2012で開けば自動的にコンバートしてくれますが、プロジェクトファイルすべてがVS2012用に変換されてしまうので、以後VS2010では開けなくなるので注意してください。
Xcodeではソリュージョンファイルではなくプロジェクトファイルでプロジェクトファイルを管理しています。XcodeのプロジェクトファイルはWindowsでみると通常のフォルダに見えますが、Macでは一つのファイルとして表示されます。
- F’s Plugins_CS4_xcode3.xcodeproj CS4用のプロジェクトファイル
- F’s Plugins_CS6_xcode3.xcodeproj CS6用のプロジェクトファイル
ではCS4のコンパイルです。
Visual studio 2010でF’s Plugins_CS4_vs2010.slnを開きます。
ソリューションエクスプローラーに登録されているプロジェクトが表示されるはずです。
メニューに表示されている構成がRelease、プラットフォームがWin32になっているのを確認してください。多分初期状態では Debug Win32になっていると思います。
構成・ププラットホームは、メニュー「ビルド」「構成マネージャー」から構成マネージャーダイアログを表示させて確認変更することもできます。構成・ププラットホームが正しくないとコンパイル・ビルドが失敗するので注意のことです。
確認が終わったらメニュー「ビルド」「ソリューションのリビルド」を実行すれば登録されているプロジェクトすべてがコンパイル・リンクされていきます。
かなり時間がかかりますが、全て正常に終わると「出力」ウィンドウに以下の表示がでます。
正常終了が44ならば成功です。
「すべてリビルド」を実行するとたまによくわからないエラーが出て1・2個ビルドに失敗することがありますが、このプロジェクトは確実にコンパイルできるはずなので「すべてビルド」を実行すれば正常に終了するはずです。
ちなみに「リビルド」は、強制的にすべてのコンパイル・リンクを行う命令で、「ビルド」は必要なところだけコンパイル・リンクを行う命令です。リソースのコンパイルはマクロ命令で行なっているので「ビルド」 ではリソースのコンパイルをしないことがあるのでまず最初は「リビルド」を行ったほうが安全です。
CS4の場合「outAEX」フォルダにプラグインファイルが出力されます。
これでWindows CS4用のコンパイルは成功したことになります。
この段階でコンパイルが失敗する原因で考えられるのは以下の2点だけです。
- フォルダの位置が間違っている
- PiPLtool.exeが正常に動作していない
SDKのResourcesフォルダ内にあるPiPLtool.exeは標準でPiPLリソースのコンパイルが出来ないWindowsのためにAdobeが提供しているリソースコンパラですが、WindowsXP等では標準状態ではVisual studio2005のランタイムライブラリがインストールされていないと動かないので、それが原因でプラグインのコンパイルが失敗することがあります。
CS4のSDKはVS2005が推奨コンパイラなので今回のようにそれを使わない場合、トラブルが起きることがあります。その時はMicrosoft Visual C++ 2005 再頒布可能パッケージ (x86)をインストールすることで対処できます。
逆にWindows7等の64birOSでCS4の開発を行う場合、CS4のSDKに付属しているPiPLtool.exeだと何故かエラーを起こす時があります。その場合はCS6のSDKに付属しているPiPLtool.exeで上書きしてしまえば大丈夫になります。
Windows CS6版のコンパイル
CS6用のコンパイルも上記と同じ手順で実行します。ここでは違う点だけ説明します。CS6のSDKのExamplesフォルダにF’s PluginsProjects_2013フォルダを移動します。コピーでもいいですが、同一ソースからコンパイルしたほうがメンテナンスが楽です。
VS2010の場合はF’s Plugins_CS6_vs2010.slnをVS2012の場合はF’s Plugins_CS6_vs2012.slnを開きます。
ここではVS2012でF’s Plugins_CS6_vs2012.slnを使用します。最初の起動時にインクルードファイルの解析を行うのでオープンにかなり時間がかかります。
ここでも同様に構成とプラットホームを確認します。今回は構成がRelease、プラットホームがx64になります。デフォルトではWin32になっているので注意してください。
ここまで来ればCS4の時と同様に「リビルド」でコンパイルができますが、以下の2点のエラーが出て失敗する筈です。
★エラー1
これはSDKのヘッダーファイルPR_Public.hの文字コードがUTF-8とご認識されているからです。中身を見ると冒頭に記号文字が使われているせいだとわかります(2005の右横の文字)
対処は単純にPR_Public.hの冒頭の記号(2005の前)を削除して保存し直すだけです。ただ書き込み禁止になっているので保存時にダイアログが出ますが上書きを選んでください。
ソリューションエクスプローラーからPR_Public.hを探してクリックして中身を表示させてその対処を行います。
★エラー2
ごくたまに”PF_ParamsValue“から”PF_Boolean“への変換というエラーが出ることがあります。
これはParams_Utils.hのPF_ADD_CHECKBOXマクロ定義で起きているエラーです。
対処は簡単で
def.u.bd.dephault = def.u.bd.value; \
となっているところを
def.u.bd.dephault = (PF_Boolean)def.u.bd.value; \
とキャストすればエラーは出なくなります。
dephaultのタイプがPF_Booleanで、valueのタイプがPF_ParamsValueで変数の型が違うのでエラーになっています。ですが、調べるとどちらもA_longをtypedefして再定義していて実際は同じ物のはずです。VS2008までのエラー基準では警告れべるだったのが、VS2010以後ではエラーとなったようです。
対処としては他に、warning命令でエラー自体を抑制してしまっても大丈夫です。
この2つのSDKのヘッダーを修正を行えばコンパイルは成功するはずです。
コンパイルが成功すれば”outAEX64″フォルダにプラグインができているはずです。
Mac Xcodeでのコンパイル
Xcodeでのコンパイルも手順は全く同じです。CS4または、CS6のSDKのExamplesフォルダにF’s PluginsProjectsフォルダを移動します。
CS4の場合はF’s Plugins_CS4_xcode3.xcodeproj、CS6の場合はF’s Plugins_CS6_xcode3.xcodeprojをXcode3で開きます。
Windowsではフォルダに見えてた物がMacではファイルになってます。なれないとちょっとびっくりします。
後はメニューから「ビルド」を選べは、「ビルド結果」ウィンドウが開きすべてのプロジェクトのコンパイル・リンクが始まります。
コンパイル時に多量のワーニングが出ますが気にしないように(僕の手抜きです)
かなりの時間がかかりますが無事に終了するはずです。
Xcodeのインストールはかなり面倒ですが、コンパイル自体はなんの問題もなく出来るはずです。
プラグイン自体はCS4用は”outPlugin“にCS6用は”outPlugin64“フォルダにできているはずです。
同じフォルダに”**.sSYM“というファイルができていますが、捨ててしまってください。
僕の個人的な感想ですがプラグイン開発自体はMac環境(Xcode)のほうがかなり楽です。Windowsはここまで来るのにかなり苦労がありましたが、Macではさほど苦労した記憶がないです。
事実Windowsでデバッグしただけのソースをほぼそのままコンパイルしても特に問題出ていないようです。
最後に
すげぇ長い記事になりましたが、ただコンパイルする手順だけなので内容はかなり薄いです。でも、プラグインに関する質問のNo.1がコンパイルが出来ないなので、この機会にしっかり説明してみました。
本当は次の投稿のテーマ「改造」から始めたかったのですが、コンパイルが出来ないとかなり話しにならないので^^;
次の投稿では、今回のバージョンから採用したライブラリの解説を行いつつ、F’s Pluginsの改造を行う手順を説明していきます。
コンパイルさえ出来れば改造して遊ぶのはかなり楽しいので。
では!
新着記事 : After Effectsユーザーのための、プログラミング入門 その14 F’s Plugins その1 コンパイル手順 http://t.co/IikyfHzR
新着記事 : After Effectsユーザーのための、プログラミング入門 その14 F’s Plugins その1 コンパイル手順 http://t.co/IikyfHzR
この人尊敬してます。C++まで個人で勉強出来んわ…After Effectsユーザーのための、プログラミング入門 その14 F’s Plugins その1 コンパイル手順 http://t.co/4WbcdNvc
後でじっくり読む
RT @AEUSERS: After Effectsユーザーのための、プログラミング入門 その14 F's Plugins その1 コンパイル手順 http://t.co/vuyASfBd
必要になったら読む。
>After Effectsユーザーのための、プログラミング入門 その14 F’s Plugins その1 コンパイル手順
http://t.co/oS10fIYY