編集(管理者用) | 編集 | 差分 | 新規作成 | 一覧 | RSS | FrontPage | 検索 | 更新履歴
== o ==
ねこまたや web出張所
INDEX

トップページ
お知らせ
twitter
お道具箱
技術資料と雑談
ライブラリ
雑貨や(ダウンロード)
最近の更新
ねこまたやについて

twitter

ねこまたやのついった

企画モノ

psAxe情報ページ
自主制作アニメ
ぽこあぽこ られんたんど


あやかしあやし
エフェクトネタ帳



りまぴん
AE エクスプレッション
レンダー乙女とか
簡易版XPSリンカ
おまけギャラリ

BBS

ねこまたやBBS
開発室BBS

Language



開発室みたいなものでしたが
spamアクセスがはげしいのでページは凍結中です。
書き換えは管理人のみが可能です。
Nekomataya/2024

乙女プロクシ - [[レンダー乙女とか]]


目次

レンダー乙女とか

乙女ライブラリ プロクシメソッドの使用方法とプロクシコマンド

乙女ライブラリの次期サービスで、このような動作のオブジェクトを作成する予定です。

ご意見ありましたら遠慮なくこのwikiまたは開発室掲示板へ(グループメーリングリストもどうぞ)

 運用条件nasライブラリがインストールされている事

基本動作

外部プログラムからのコマンドをプロクシ実行して、リザルトを一時ファイルまたはネットワークの指定アドレスに対して送信します。 ネットワーク経由でリザルトを受信する場合は、外部プログラム側でソケットをサポートする必要があります。

ソケット通信部分のプロトコルはHTTP1.1に準拠してクライアント的な動作をするように設計されます。 従って、このリザルトを受信する外部プログラムはHTTP1.1の部分的なサーバ機能を装備する必要があります。 リザルトを受け取るプログラムがCGIスクリプトの場合は、通信機能を一般的なHTTPサーバに依存する事ができます。

*初期段階では、HTTP通信部分は設計のみで実際のコーディングは行ないません。…私のスキルがまだ不足です。

そのうち…HTTPお勉強中

書式
nas.otome.prox(クライアントID,プロクシコマンド[,引数]);

基本の操作は以下のようになります。

AEに対して以下のコマンドを発行してクライアントセッションIDを取得する。

書式
nas.otome.prox(YYMMDDhhmmss,getClilentId,"");
>AfterFx.exe -s "nas,otome,prox(20060606122021,getClientId)"
YYYYMMDDhhmmss にはセッション開始要求を発行した時間の、年月日時分秒を連結した14桁の10進数値を入れてください。

この状態で、乙女プロクシは ファイル ~/nas/prox/YYYYMMDDhhmmss に対してクライアントセッションIDを書きだします。 ファイルには、10進12桁のセッションクライアントIDが格納されます。

発行されたクライアントIDは、この時点では保留です。セッション要求を行なったプログラムは ID取得後にこのファイルを消去してください。 ファイルの消去をもってセッションが開始されます。10秒以内にファイルが消去されなかった場合はセッションは開始されません。 外部プログラムは以後、このセッションクライアントIDを使用して乙女プロクシと通信を行ないます。

ネットワーク経由の場合は、以下のコマンドでセッションクライアントIDを取得します

 nas.otome.prox("http://localhost:(port?)/(path)",getClilentId,"");

戻り値はファイル経由の場合と同じですが、通信先はセッション開始要求時に提示されたHTTPアドレスに対して行われます。 10秒のタイムアウトまでに提示されたアドレスからのレスポンスがない場合はクライアントセッションは成立しません。

エーっと 当然ですが「ネットワーク接続先はローカルホスト限定」です。

乙女プロクシは以下のプロクシコマンドを受け取り、リザルトを指定のファイルまたはアドレスに対して戻します。

必要に従って乙女プロクシ経由でコマンドを実行してください。

以下のコマンドが乙女プロクシの拡張コマンドとして実装されます。(予定)

拡張コマンドアイデア募集中!

コマンド引数戻り値
catchCompアイテムindexまたはコンポ名アイテムユニークID
releaseCompなしboolean
getProjectInfoキーワードプロジェクト内のアイテムリスト
getInfoキーワードキャッチしているコンポの情報

catchComp

コンポをプロクシ経由で操作する為にキャッチします。 コンポをキャッチすると、リリースされるまでの間AE側での操作が禁止されます。 以降のプロクシコマンドの操作対象はキャッチされたコンポ内に限定されます。

releaseComp

キャッチを解除します。

getInfo

コンポのレイヤ情報をcsvテキストで書きだします。

キーワードで書きだす情報を制御できます。引き数なしは"standerd"

プロパティは、AEのLayerオブジェクトのプロパティを直接書きます。
standerd標準状態index,name,source.id
proc,proc,…書きだすプロパティを直接指定する。

nas.otome.prox(myClientId,getInfo,"index,name,source.id,parent,time");

getProjectInfo

プロジェクトのアイテムリストをcsvテキストで書きだします。(タブ区切りの方がよいか?)

 index,name,label,form,size,duration,path,parent,uniqueID

キーワードで取得情報をフィルタする事ができます。 キーワードは以下のうちから選択。引数なしは all

all全て
compositionコンポジション
footageフッテージ
folderフォルダ
still静止画フッテージ
movieコンポジションとシーケンス・ムービーフッテージ
solid平面フッテージ
seqシーケンス・ムービーフッテージ

getSheetTiming

レイヤのキーフレームをJSONテキストで取りだします。 引数は キーワードで制御 今のところ一個だけ

カラセルは0 にして[フレーム,値] フレームは 0オリジン
timesheet/all全てのタイミング情報

 ({A:[[0, 0], [3, 1], [6, 2], [9, 3], [12, 4], [15, 5]]})

こんなフォーマットです。もうちょっときちんと書かねば…

そのうちJSONのページも作るか…

setSheetTiming

タイムシート情報をレイヤに適用します。

引数はgetフォーマットと同じJSONテキストで。

リザルトは 正常終了で「なし」 書き換え失敗が起きた場合は、失敗したレイヤとキーフレームのリストをgetと同じフォーマットで


これができると、同時に複数の外部プログラムからAEのコントロールが…できないこともない…

こんなサービス予定中(設計中)です ツッコミ歓迎…


JSON この辺参考に なります。

Javascript的には、実はオブジェクトのソースをとるだけで生成できるし、 代入するだけでオブジェクトができます。

 TimeSheet=new Object();
   TimeSheet.A=new Array();
     for(idx=0;idx<6;idx++)TimeSheet.A[idx]=[idx*3,idx];

      myJSONText=TimeSheet.toSource();

  newTimeSheet=myJSONText;
こんなものです。むちゃくちゃラク 他の言語で扱ったことはないけど結構ラクそう?