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

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

twitter

ねこまたやのついった

企画モノ

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


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



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

BBS

ねこまたやBBS
開発室BBS

Language



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

CamStandDX - [[AEexpression]] [[レンダー乙女とか]]


目次

AEexpression レンダー乙女とか

こちらは、CamStandDX (デラックス版) 「試作品」です。

http://www.nekomataya.info/cgi-bin/control.cgi?PAGE=85&ITEM=051101

CamStandDX ってナニよ?

まず前提、CamStandは、AdobeAfterEffects で線画台(アニメーション撮影台)風インターフェースを実現するノウハウです。

元ネタは http://www.beanjam.co.jp/ の「AfterEffects?ネタ」コーナーにある。 「撮影台的カメラワーク設定インターフェース」になります。

有用なノウハウを公開してくださったbeanjamさんに多大な感謝!

詳しい原理や自作の際のTipsなどは、以下のオリジナルのサイトを参照してください。

http://www.beanjam.co.jp/CG_data/AE/AE_top.html

で、CamStandDX ですが、この CamStand の機能拡張版です。

ねこまたやでは DX版と銘打って、あやしげな機能拡張を施してみました。 さてはて どうでしょう?

以下オリジナルとの相違点です。

以下説明です。

素材解像度対応

 comp(StageID).layer("StageBase").effect("解像度(dpi)").param("スライダ")
に、解像度の指定ができます。 セルや背景の解像度を設定してください。デフォルトは144dpiです。が、自由な値を設定できます。

この値をエクスプレッションで解釈して各種の拡張機能を提供します。

各種フレーム指定可能

ステージコンポに、カメラレイヤとは別に「ステージベースレイヤ」を設定してあります。 ステージベースレイヤにはフレームのサイズと比率が設定ができます。
TV(3:4)=1.3333
ビスタ(1:1.85)=1.85
シネスコ(1:2.4)=2.4
HD(9:16)=1.7777

計測原点設定

ステージベースレイヤの BasePoint?エフェクトに計測原点を設定できます。 カメラレイヤには、それを元にした各種情報が表示されますので「実寸指定」のカメラワークを確認しやすくなっています。

カメラコンポがフリーサイズ

原型の"CamStand?"では、カメラコンポ と ステージコンポ 間をシンプルなエクスプレッションで接続するため、受け取り側のコンポのサイズが限定されていました。 (特にそれが悪いわけではないです。)

DX版では、中間計算を折り込んで、受け取り側のコンポのサイズをフリーサイズにできるようにしました。

サンプルプロジェクトのカメラコンポを複製して、サイズを変えてみてください。そのようなカンジになります。

プレビュー用に小さなコンポでレンダリングしたり、ステージのカメラよりも大きなコンポで受けることもできます。素材構成が複雑な場合等に 何となく役にたつかもしれません。

同一プロジェクトに複数のステージを設定可能

カメラ側のエクスプレッションをレイヤソース参照にしてありますので、ひとつのプロジェクトに複数のステージを設定できます。兼用カットなどの場合に便利?

カメラフレームに「おまけ表示」が盛り沢山

	**「上マーク」
ありそでなかった「上マーク」どちらがカメラの上か見失うことが減ります。

	**カメラ位置の座標(mm単位)
カメラ(フレーム)の現在位置をミリメートル単位で表示します。 基準位置は、初期状態でステージコンポジションの中心です。任意点を指定可能。

	**カメラの回転角(度数)
カメラ(フレーム)の回転角度を度数で表示できます。タイムラインが隠れていても安心。

	**カメラのフレームサイズ(従来タイプ)
タイムシートに指定のある「フレーム」を表示します。

スタンダードは、100f 200%の寄りサイズが 20f になる従来型です。

	**カメラのフレームサイズ(Retas!タイプ)
同上、ただし 某Retas!で採用されている 200%寄りサイズが 50f になるタイプです。

	**スケール(被写体の拡大率)
カメラフレームのスケールではなく、「フレーム内での被写体のスケール」です。 作画寸法を100%として 25%〜120% 等の指定がある場合の目安になります。

	**タイムコードもつけたりして。
タイムコードもあった方が良いような気がした。

「おまけ機能」結構ガッポリつけました。

付録エクスプレッション同梱

ついでに、CamStand?と一緒に使うと便利なおまけエクスプレッションをどうぞ。

詳しい使い方は、kacAE

詳しい使い方は、tSlave

説明はfSkip

カットの途中でコマうちが切り替わる場合は、tSlave をご使用ください。

詳しい使い方は、follow

ほかにもリクエストありましたらドゾお知らせください。 それぞれの表示は、消してしまっても動作には支障ありません。ご自分の必要なモノを残してあとは非表示なり削除なりしちゃってください。

注意点

使用条件はいつもの通りでゴザイマス。

http://www.nekomataya.info/contract.html

12/04 Nekomataya/kiyo 2005


あー、ひょっとして好評ならば、da-toolsさんの様なセッティングスクリプトを作成しようかと策謀中。

実はDX版は、先日(2005/11/26)思いついて…

現在やっている諸々の作業の派生物を使用したら、結構短時間でできるのではなかろうかと考えて、日曜日(/27)を使って作ってしまいました。お、もう夜半を回った。月曜だ。

即席といえば即席なので…なんだかミスなどもありそうな気がします。 興味のある方、使ってみて感想など聞かせていただくとうれしいです。 「こんな機能あっても使わないヨ」とか「あれ、できる?」とか、ドゾご気軽に BBS または メールなどでお知らせください。


==== エクスプレッションリスト ====
/*	カメラ情報表示エクスプレッション	*/

//X座標表示エクスプレッション
var Resolution=(this_comp.layer("StageBase").effect("解像度(dpi)").param("スライダ")==0)? 144:this_comp.layer("StageBase").effect("解像度(dpi)").param("スライダ");
var BasePoint=add(sub(this_comp.layer("StageBase").position,this_comp.layer("StageBase").anchor_point),this_comp.layer("StageBase").effect("BasePoint").param("ポイント"));
var cAspect=this_comp.pixel_aspect;
var fAspect=1;//平面に交換したためpxAspectなし
(fAspect*(anchor_point[0]-this_layer.width/2)+cAspect*(position[0]-BasePoint[0]))*25.40/Resolution;

//Y座標表示エクスプレッション
var Resolution=(this_comp.layer("StageBase").effect("解像度(dpi)").param("スライダ")==0)? 144:this_comp.layer("StageBase").effect("解像度(dpi)").param("スライダ");
var BasePoint=add(sub(this_comp.layer("StageBase").position,this_comp.layer("StageBase").anchor_point),this_comp.layer("StageBase").effect("BasePoint").param("ポイント"));

((anchor_point[1]-this_layer.height/2)+(position[1]-BasePoint[1]))*25.40/Resolution;

//回転角表示エクスプレッション
rotation-this_comp.layer("StageBase").rotation;

//フレームサイズ表示エクスプレッション(Trad)
var Resolution=(this_comp.layer("StageBase").effect("解像度(dpi)").param("スライダ")==0)? 144:this_comp.layer("StageBase").effect("解像度(dpi)").param("スライダ");
scale[0]*(144/Resolution*1.60)-60;

//フレームサイズ表示エクスプレッション(Retas!)
var Resolution=(this_comp.layer("StageBase").effect("解像度(dpi)").param("スライダ")==0)? 144:this_comp.layer("StageBase").effect("解像度(dpi)").param("スライダ");
scale[0]*(144/Resolution);

//スケール表示エクスプレッション
var Resolution=(this_comp.layer("StageBase").effect("解像度(dpi)").param("スライダ")==0)? 144:this_comp.layer("StageBase").effect("解像度(dpi)").param("スライダ");
(10000/scale[1])*(Resolution/144);

//スケール調整エクスプレッション
var Resolution=(this_comp.layer("StageBase").effect("解像度(dpi)").param("スライダ")==0)? 144:this_comp.layer("StageBase").effect("解像度(dpi)").param("スライダ");
var FrameAspect=(this_comp.layer("StageBase").effect("画面アスペクト").param("スライダ")==0)? 4/3:this_comp.layer("StageBase").effect("画面アスペクト").param("スライダ");
var BaseWidth=(this_comp.layer("StageBase").effect("基準幅(mm)").param("スライダ")==0)? 225:this_comp.layer("StageBase").effect("基準幅(mm)").param("スライダ");
var BaseHeight=(this_comp.layer("StageBase").effect("基準幅(mm)").param("スライダ")==0)? 168.75:this_comp.layer("StageBase").effect("基準幅(mm)").param("スライダ")/FrameAspect;
[100*(Resolution/144)*(BaseWidth/225),100*(Resolution/144)*(BaseHeight/168.75)];


/*	ステージベース用エクスプレッション	*/

//スケール調整エクスプレッション
var Resolution=(effect("解像度(dpi)").param("スライダ")==0)? 144:effect("解像度(dpi)").param("スライダ");
var FrameAspect=(effect("画面アスペクト").param("スライダ")==0)? 4/3:effect("画面アスペクト").param("スライダ");
var BaseWidth=(effect("基準幅(mm)").param("スライダ")==0)? 225:effect("基準幅(mm)").param("スライダ");
var BaseHeight=(effect("基準幅(mm)").param("スライダ")==0)? 168.75:effect("基準幅(mm)").param("スライダ")/FrameAspect;
[100*(Resolution/144)*(BaseWidth/225),100*(Resolution/144)*(BaseHeight/168.75)];

/*	カメラコンポジション用エクスプレッション	*/

//アンカーポイントエクスプレッション
var StageID=this_layer.source.name;
	comp(StageID).layer("CameraFrame").position;

//位置エクスプレッション(プロパティ用)
var StageID=this_layer.source.name;
var Resolution=(comp(StageID).layer("StageBase").effect("解像度(dpi)").param("スライダ")==0)? 144:comp(StageID).layer("StageBase").effect("解像度(dpi)").param("スライダ");
var FrameAspect=(comp(StageID).layer("StageBase").effect("画面アスペクト").param("スライダ")==0)? 4/3:comp(StageID).layer("StageBase").effect("画面アスペクト").param("スライダ");
var BaseWidth=(comp(StageID).layer("StageBase").effect("基準幅(mm)").param("スライダ")==0)? 225:comp(StageID).layer("StageBase").effect("基準幅(mm)").param("スライダ");
var BaseHeight=(comp(StageID).layer("StageBase").effect("基準幅(mm)").param("スライダ")==0)? 168.75:comp(StageID).layer("StageBase").effect("基準幅(mm)").param("スライダ")/FrameAspect;
var CameraWidth=(BaseWidth/25.40)*Resolution*comp(StageID).pixel_aspect;
var CameraHeight=(BaseHeight/25.40)*Resolution;

CameraAPOffset=sub(
	comp(StageID).layer("CameraFrame").anchor_point,
	[
		comp(StageID).layer("CameraFrame").width/2,
		comp(StageID).layer("CameraFrame").height/2
	]
);
add(	[
		CameraAPOffset[0]*this_comp.width*this_comp.pixel_aspect/CameraWidth,
		CameraAPOffset[1]*this_comp.height/CameraHeight
	],[
		this_comp.width/2,this_comp.height/2
	]
);

//位置エクスプレッション(エクスプレッション用)
var StageID=this_layer.source.name;
var Resolution=(comp(StageID).layer("StageBase").effect("解像度(dpi)").param("スライダ")==0)? 144:comp(StageID).layer("StageBase").effect("解像度(dpi)").param("スライダ");
var FrameAspect=(comp(StageID).layer("StageBase").effect("画面アスペクト").param("スライダ")==0)? 4/3:comp(StageID).layer("StageBase").effect("画面アスペクト").param("スライダ");
var BaseWidth=(comp(StageID).layer("StageBase").effect("基準幅(mm)").param("スライダ")==0)? 225:comp(StageID).layer("StageBase").effect("基準幅(mm)").param("スライダ");
var BaseHeight=(comp(StageID).layer("StageBase").effect("基準幅(mm)").param("スライダ")==0)? 168.75:comp(StageID).layer("StageBase").effect("基準幅(mm)").param("スライダ")/FrameAspect;
var CameraWidth=(BaseWidth/25.40)*Resolution*comp(StageID).pixel_aspect;
var CameraHeight=(BaseHeight/25.40)*Resolution;

CameraAPOffset=sub(
	comp(StageID).layer("CameraFrame").anchor_point,
	[
		comp(StageID).layer("CameraFrame").width/2,
		comp(StageID).layer("CameraFrame").height/2
	]
);
add(	[
		CameraAPOffset[0]*this_comp.width*this_comp.pixel_aspect/CameraWidth,
		CameraAPOffset[1]*this_comp.height/CameraHeight
	],[
		this_layer.width/2,this_layer.height/2
	]
);

//スケールエクスプレッション
var StageID=this_layer.source.name;
var Resolution=(comp(StageID).layer("StageBase").effect("解像度(dpi)").param("スライダ")==0)? 144:comp(StageID).layer("StageBase").effect("解像度(dpi)").param("スライダ");
var FrameAspect=(comp(StageID).layer("StageBase").effect("画面アスペクト").param("スライダ")==0)? 4/3:comp(StageID).layer("StageBase").effect("画面アスペクト").param("スライダ");
var BaseWidth=(comp(StageID).layer("StageBase").effect("基準幅(mm)").param("スライダ")==0)? 225:comp(StageID).layer("StageBase").effect("基準幅(mm)").param("スライダ");
var BaseHeight=(comp(StageID).layer("StageBase").effect("基準幅(mm)").param("スライダ")==0)? 168.75:comp(StageID).layer("StageBase").effect("基準幅(mm)").param("スライダ")/FrameAspect;
var CameraWidth=(
	(BaseWidth/25.40)*Resolution*comp(StageID).pixel_aspect
)*comp(StageID).layer("CameraFrame").scale[0]/100;
var CameraHeight=(
	(BaseHeight/25.40)*Resolution
)*comp(StageID).layer("CameraFrame").scale[1]/100;

//	100*this_comp.width*this_comp.pixel_aspect/CameraWidth;//X(width)
//	100*this_comp.height/CameraHeight;//Y(height)

//回転エクスプレッション
var StageID=this_layer.source.name;
	-comp(StageID).layer("CameraFrame").rotation;

突っ込みはBBSへどうぞ。 こちらの記事を直接書き換えていただいても「おっけー!」です。