AE_Dialogs_due C#コントロール集 AEスクリプトのUIデザイン
このシリーズ気がついたら10回目です。という訳で記念としてその1と同じネタです。その1で、C#への導入として「AEScriptDialogExport」をでっち上げたのですが、自分自身でも驚くくらい使えるものだったので、その後「AE_Dialogs」として作り直し、それを更に直したものが今回発表する「AE_Dialogs_due」です。
どんなモノかというと、Vusual Studio C#のフォームデザイナでダイアログのUIを設計して、それをAEスクリプトで使えるJavaScriptのコードとして出力するものです。
AEScriptDialogExportではC#既存のコントロールを無理やり使ってましたが、JavaScriptのコントロールとほぼ同じ挙動をするカスタムコントロールを利用できます。
更に表示される文字のフォントサイズ等を変更することも出来ます。
ダウンロードはここから出来ます。旧バージョンのAE_Dialogsもダウンロードできます。
AE_Dialogs_due_v100.zip
AE_Dialogs_dueのインストール
AE_Dialogs_dueはクラスライブラリ(AE_Dialogs_due.dll)にしてありますので、Visual Studioへのインストールが必要です。アーカイブの中にはVCS2008用とVCS2010用の2つありますので、必要なものを適当な場所へコピーしておいてください。ここではVCS2010へのインストールを説明しますが、VCS2008でも基本的に同じです。
- ☆適当なWindowsフォームアプリケーションのプロジェクトを作成
-
まず、適当にプロジェクトを作って、Form1.cs[デザイン]をアクティブにしてツールボックスを表示させてください。
特にプロジェクトを作る必要はありませんが、この状態だと分かりやすくなるので。
- ☆ツールボックスにタブを作成。
-
ツールボックスパネルを右クリックして「タブの追加」を実行しタブを作成します。このタブ内にインストールします。
実行して名前を入力します。ここでは「AE_Dialogs_due」としています。
- ☆アイテムの選択
-
作成したタブのエリアを右クリックして「アイテムの選択」を実行、インストールを行います。
実行すると、「ツールボックスアイテムの選択」ダイアログが表示されます。
ちなみにこのダイアログの表示はかなり遅いです。最悪1分くらいは待たされますので注意してください。
右下にある「参照」ボタンを押すと選択ダイアログが表示されますので、適当な場所へ保存してあるAE_Dialogs_due.dllを選択します。
「ツールボックスアイテムの選択」ダイアログに新しいコントロールが追加されているはずです。この状態でOKボタンを押してください。
ツールボックスのタブにコントロールが表示されます。
右クリックして表示されるアイテムをアルファベット順にソートすると見やすくなります。
AE_Dialogs_dueの簡単な使い方
とりあえず簡単な使い方を説明します。- ☆Ae_windowコンポーネントの登録
-
テキトなフォームへドラッグ&ドロップでAe_windowを登録します。
フォームデザイナの下にae_window1が登録されます。
ae_window1をクリックしてアクティブ状態でプロパティを見ると以下のように表示されるはずです。
プロパティのAE_Formの値をフォーム(Form1)に設定します。
これで、Ae_windowコンポーネントの登録は終わりです。
- ☆他のコントロールの追加
-
あとは、適当に末尾に_AEがついたコントロールを追加していきます。フォームデザイナの使い方は、Visual Studioの説明書等を見てください。
ここでは適当にStatictext_AE/Edittext_AE/Button_AEを追加してみます。
とりあえずF5キーを押してデバッグを開始します。下図のようにダイアログが表示されるはずです。
ダイアログをマウスで右クリックするとメニューが表示されます。
ここでは「ダイアログに表示」を選びます。
「JavaScriptコード」ダイアログが表示され、スクリプトのコードが表示されます。
これをそのままUTF-8の文字コードでスクリプトとして保存して、AfterEffectsで実行すると、全く同じダイアログが表示されます。
- ☆フォントサイズを変える
-
更にちょっと修正を加えます。
デバッグを終了し、statictext_AE1をクリックしてアクティブにして、プロパティウィンドウを開きます。
そこでAE_Textを「テスト」AE_textObjNameを「stData01」に変更し、
プロパティの下の方にある「Font」の右のボタンをクリックしてサイズを「28」に設定します。
上と同じ手順でスクリプトにして実行すると以下のようになります。
以上が簡単な使い方です。
コントロールの説明
以下にAEスクリプト用に作ったカスタムコントロールの説明を行います。基本的にAE_で始まるプロパティが作成されるスクリプトに反映されます。
ただし、Font/Items/Imageはオリジナルのプロパティが反映されますので注意してください。
Ae_windowコンポーネント
Ae_winodwコンポーネントは以下のプロパティを操作出来ます。フォームの形状を決めるものと出力するスクリプトの状態を決めるものと2種類あります。
プロパティ名 | 値の型 | 内容 |
---|---|---|
AE_Form | Form | ターゲットとなるフォームを指定。 |
AE_funcName | string | windowをobjectにした時のfunctionの名称。 isInFuncがtrueの時のみ有効。 |
AE_isCenter | bool | windowを中央表示するかどうか |
AE_isExportPict | bool | 出力時に画像ファイルも書きだすか |
AE_isInFunc | bool | windowをObjectかするかどうか |
AE_isLocal | bool | windowをローカル変数にするかどうか。inInFuncがtrueの時のみ有効 |
AE_maximizeButton | bool | 最大化ボタンを表示するかどうか |
AE_minimizeButton | bool | 最小化ボタンを表示するかどうか |
AE_objName | string | winodw Objectの変数名 |
AE_resizeable | bool | trueならウィンドウのリサイズを許可 |
AE_size | Size | ウィンドウサイズ |
AE_title | string | ウィンドウに表示されるタイトル |
AE_windowType | windowType | ウィンドウの形状。dialog/palette/floatingPalette/winodwと指定可能 |
Ae_winodwコンポーネントは、一つのフォームに1個しか登録できません。
あと、タイトルのFontは変更できません。フォームのFontの設定を変えても反映されません。
プロパティはだいたいJavascriptのWindowオブジェクトのプロパティと同じ名前にしてあります。
プロパティの説明はJavaScript tools Guide.pdfを参照してください。
Button_AE/Checkbox_AE/Statictext_AE/Radiobutton_AEコントロール
Button_AE/Checkbox_AE/Statictext_AE/Radiobutton_AEコントロールは以下のプロパティを操作できます。
プロパティ名 | 値の型 | 内容 |
---|---|---|
AE_bounds | Rectangle | ボタンの位置・大きさ |
AE_defaultElement | defaultElement | buttonのnameをok/cancel/なしに設定。dialog時のみ有効 |
AE_isLocal | bool | buttonをローカル変数にするかどうか。inInFuncがtrueの時のみ有効 |
AE_objName | string | button objectの変数名 |
AE_text | string | buttonに表示される文字 |
AE_textObjName | string | AE_textのデータの変数名。指定されていないときは、変数を作らない。 |
AE_value | bool | Checkbox_AEとRadiobutton_AEのみ。チェックの値。 |
AE_multiline | bool | Statictext_AEのみ。trueで複数行表示 |
AE_scrolling | bool | Statictext_AEのみ。trueでスクロール可能 |
Font | FOnt | 文字のフォントを指定 |
AE_defaultElementは、windowTypeがdialogの時のみ有効で、ok/cancel/noneと選べます。
okならばenterkeyでこのボタンが押されたことになります。cancelならばエスケープキーでこのキーが押されたことになります。
AE_textObjNameは指定されると、AE_textの内容をAE_textObjNameの名称の変数に割り当てます。
AE_valueは、Checkbox_AEのチェックの値になります。
FontはデフォルトではTahomaフォントの8.25ptになっています。
Fontの指定について
フォントの指定には以下の注意点があるので注意してください。◎フォントサイズの補正
全てのコントロールのFontはデフォルトでTahomaフォントの8.25ptになっています。
これがAEスクリプトのUIフォントのデフォルト値に一番近いものですが、スクリプトからフォントサイズを調べると値は11になっています。ドキュメントでは同じPointサイズなのですが値が違います。仕方ないので、このコンポーネントではJavaScriptへ変換するときに1.333(11/8.25)で補正した数値にしています。
◎fontStyleの謎
fontStyleは、REGULAR(通常)/BOLD(太字)/ITALIC(斜体)/BOLDITALIC(太字斜体)の4種類が選べますが、実際に実行するとREGULAR以外の場合でかなりの確率で実行時エラーになります。
では、BOLD/ITALIC/BOLDITALICは使えないかと思うと、時と場合によっては使えたりしてかなり不可解な挙動になってます。
一応このコンポーネントでは全てのfontStyleが指定できますが注意してください。
◎フォントの指定
一応全てのフォントが設定できてしまいますが、windowsやMacやOSのバージョン違いによってFontの有無が違うので注意してください。AE_boundsをかなり余裕を持って指定しておかないと、文字が全部表示されない場合があります。
Dropdownlist_AEコントロール
Dropdownlist_AEコントロールは以下のプロパティを操作できます。
プロパティ名 | 値の型 | 内容 |
---|---|---|
AE_bounds | Rectangle | ボタンの位置・大きさ |
AE_index | int | Itemsで選択されているもの。0スタート。-1で何も無選択 |
AE_isLocal | bool | ローカル変数にするかどうか。inInFuncがtrueの時のみ有効 |
AE_itemsObjName | string | Itemsのデータの変数名。指定されていないときは、変数を作らない。 |
AE_objName | string | button objectの変数名 |
Items | string | Dropdownlistの文字データコレクション |
Font | FOnt | 文字のフォントを指定 |
AE_indexは選択されたアイテムのインデックス番号ですが、Visual studioのフォームデザイナには反映されません。
AE_itemsObjNameは、指定された場合、ItemsのデータをAE_itemsObjNameの名称の変数に割り当てます。
Group_AE/Panel_AEコントロール
Group_AE/Panel_AEコントロールは以下のプロパティを操作できます。
プロパティ名 | 値の型 | 内容 |
---|---|---|
AE_borderStyle | boderStyle | Panel_AEのみ。Panelの境界線の表示方法 |
AE_bounds | Rectangle | 位置・大きさ |
AE_isLocal | bool | ローカル変数にするかどうか。inInFuncがtrueの時のみ有効 |
AE_objName | string | objectの変数名 |
AE_text | string | 表示される文字。Panel_AEのみ |
AE_textObjName | windowType | AE_textのデータの変数名。指定されていないときは、変数を作らない。 |
Font | Font | 文字のフォントを指定 |
AE_borderStyleはblack(黒の矩形)/etched(通常)/gray(グレーの矩形)/raised(浮き上がった)/sunken(沈んだ)の4種類が設定できます。
Iconbutton_AE/Image_AEコントロール
Iconbutton_AE/Image_AEコントロールは以下のプロパティを操作できます。
プロパティ名 | 値の型 | 内容 |
---|---|---|
AE_bounds | Rectangle | 位置・大きさ |
AE_defaultExt | string | AE_imageFileで拡張子まで指定されなかった時に使われる |
AE_imageFileName | string | 画像ファイルの名前 |
AE_imageFilePath | string | 画像ファイルのパス |
AE_imageObjName | string | 画像を表す変数名。 |
AE_isLocal | bool | ローカル変数にするかどうか。inInFuncがtrueの時のみ有効 |
AE_objName | string | objectの変数名 |
Image | Image | 表示される画像 |
AE_imageFileNameは、実際の画像ファイルの名前。AE_imageFilePathは、そのパス。
readOnlyでそれを合わせたAE_imageFullPathもある。
imageプロパティに指定された画像をスクリプトの出力時に書き出します(AE_isExportPictがtrueの時)
imageプロパティに貼り付ける画像は必ず24bitあるいは32bitの画像にしてください。256色パレットカラー画像は出力できません。
Edittext_AEコントロール
Edittext_AEコントロールは以下のプロパティを操作できます。
プロパティ名 | 値の型 | 内容 |
---|---|---|
AE_borderless | bool | trueで境界線を非表示。デフォルトはfalse |
AE_bounds | Rectangle | 位置・大きさ |
AE_isLocal | bool | ローカル変数にするかどうか。inInFuncがtrueの時のみ有効 |
AE_multiline | bool | trueで複数行の編集が可能になる。デフォルトはfalse |
AE_noecho | bool | trueでパスワード表示。デフォルトはfalse |
AE_objName | string | objectの変数名 |
AE_readonly | bool | trueで書込み禁止。デフォルトはfalse |
AE_scrollable | bool | trueでスクロール可能にデフォルトはtrue。AE_multilineがtrueの時のみ有効 |
AE_text | string配列 | 表示される文字。複数行指定のため配列 |
AE_textObjName | windowType | AE_textのデータの変数名。指定されていないときは、変数を作らない。 |
Font | Font | 文字のフォントを指定 |
Listbox_AEコントロール
Listbox_AEコントロールは以下のプロパティを操作できます。
プロパティ名 | 値の型 | 内容 |
---|---|---|
AE_bounds | Rectangle | 位置・大きさ |
AE_columnTitles | string配列 | カラム表示時のタイトル文字列。AE_showHeadersがtrueの時に有効 |
AE_columnWidths | int配列 | カラム表示時のカラムの横幅 |
AE_isLocal | bool | buttonをローカル変数にするかどうか。inInFuncがtrueの時のみ有効 |
AE_itemsName | string | Itemsのデータの変数名。指定されていないときは、変数を作らない。 |
AE_multiselect | bool | trueで複数行の選択が可能になる。デフォルトはfalse |
AE_numberOfColumns | bool | カラム(列)の数 |
AE_objName | string | button objectの変数名 |
AE_showHeaders | bool | タイトル行の表示。デフォルトはfalse |
Items | string | Listbox_AEの文字データコレクション |
Font | FOnt | 文字のフォントを指定 |
AE_columnTitles/AE_columnWidths/AE_numberOfColumnsは本来デザイナ上で同期しなければいけませんが、現在のバージョンではしていないので注意してください。
Progress_AE/Slider_AE/ScrollbarH_AE/ScrollbarV_AEコントロール
Progress_AE/Slider_AE/ScrollbarH_AE/ScrollbarV_AEコントロールは以下のプロパティを操作できます。
プロパティ名 | 値の型 | 内容 |
---|---|---|
AE_bounds | Rectangle | 位置・大きさ |
AE_isLocal | bool | buttonをローカル変数にするかどうか。inInFuncがtrueの時のみ有効 |
AE_value | int | 現在の値 |
AE_minvalue | int | 最小値 |
AE_maxvalue | int | 最大値 |
AE_value | int | 最大値 |
AE_objName | string | objectの変数名 |
AEスクリプトのUIの作成。後編につづく!
ざっとコントロールの説明をしましたが、AEスクリプトのUIの作成の作成の詳細を知らないとちょっとわかりづらいです。CS3のaftereffects_scripting_guide.pdfからFileIO絡みとUI関係は別のドキュメント(javascript_tools_guide.pdf)にまとめられていています。
UIの作り方はjavascript_tools_guide.pdfを読まないと行けませんがadobe製品全般のマニュアルなので、After Effectsのスクリプトとして使える項目がよくわからなくて困ります。
その説明まで行う予定でしたが、あまりにも長いので後編に続きます。
ただ、仕事で暫く忙しくなるのでちょっと間があきますのでごめんなさいです。
To Be Continued!
新着記事 : After Effectsユーザーのための、プログラミング入門 その10 前編 AE_Dialogs_due C#コントロール集 AEスクリプトのUIデザイン http://t.co/TI6Uhaq7
新着記事 : After Effectsユーザーのための、プログラミング入門 その10 前編 AE_Dialogs_due C#コントロール集 AEスクリプトのUIデザイン http://t.co/TI6Uhaq7
新着記事 : After Effectsユーザーのための、プログラミング入門 その10 前編 AE_Dialogs_due C#コントロール集 AEスクリプトのUIデザイン http://t.co/TI6Uhaq7
新着記事 : After Effectsユーザーのための、プログラミング入門 その10 前編 AE_Dialogs_due C#コントロール集 AEスクリプトのUIデザイン http://t.co/TI6Uhaq7
新着記事 : After Effectsユーザーのための、プログラミング入門 その10 前編 AE_Dialogs_due C#コントロール集 AEスクリプトのUIデザイン http://t.co/TI6Uhaq7
新着記事 : After Effectsユーザーのための、プログラミング入門 その10 前編 AE_Dialogs_due C#コントロール集 AEスクリプトのUIデザイン http://t.co/TI6Uhaq7
新着記事 : After Effectsユーザーのための、プログラミング入門 その10 前編 AE_Dialogs_due C#コントロール集 AEスクリプトのUIデザイン http://t.co/TI6Uhaq7
新着記事 : After Effectsユーザーのための、プログラミング入門 その10 前編 AE_Dialogs_due C#コントロール集 AEスクリプトのUIデザイン http://t.co/TI6Uhaq7
新着記事 : After Effectsユーザーのための、プログラミング入門 その10 前編 AE_Dialogs_due C#コントロール集 AEスクリプトのUIデザイン http://t.co/TI6Uhaq7
After Effectsユーザーのための、プログラミング入門 その10 前編 AE_Dialogs_due C http://t.co/aIuwtxId
「After Effectsユーザーのための、プログラミング入門 その10 前編 AE_Dialogs_due C#コントロール集 AEスクリプトのUIデザイン」AEP Project http://t.co/TPqvfWEe #CS5_jp
スクリプトは経験があるけれど他の言語はさわったことがないユーザーを対象に、C#/AEのJavaScriptをメインにプログラム全般を解説する連載の第10回です。今回は「AE_Dialogs_due」を解説しています。http://t.co/TPqvfWEe
スクリプトは経験があるけれど他の言語はさわったことがないユーザーを対象に、C#/AEのJavaScriptをメインにプログラム全般を解説する連載の第10回です。今回は「AE_Dialogs_due」を解説しています。http://t.co/TPqvfWEe
After Effectsユーザーのための、プログラミング入門 その10 前編 AE_Dialogs_due C#コントロール集 AEスクリプトのUIデザイン http://t.co/zcoVDAYS