blog

ラベル maya の投稿を表示しています。 すべての投稿を表示
ラベル maya の投稿を表示しています。 すべての投稿を表示

2021/01/24

2DPAN

絶賛開発中…

 

Maya-出力

2DPAN今組み直して、下記URLでもう少しキレイに書き直せる気がするのでメモ。

http://forums.cgsociety.org/t/is-there-a-way-to-query-the-camera-view-as-a-matrix/1586546

 

 ひとまずmaya側で現状対応できないのが、

・1倍以下のズームアウト

・画面端で回転させたときにはみ出す分を考慮

 で、これらを解決できればmaya出力の2DPANフローはほぼ完成。

 

AfterEffects-入力(Maya)

手順

 ①mayaからカメラオフセット分の値をトランスフォームにベイクしたカメラをエクスポート。カメラならmaで持ってこれるのでお手軽。

②AEにて、nullのx,yにそれぞれ割り振る。rotZはマイナス掛ける。zにはズーム値。
nullの名前は仮に"mayaCam_bake"としておく

③別のnull作成、名前"pos"に

④mayaのフィルムアパチャーの基準が横幅36mm、レンダリング解像度が1920x1080の場合で、下記エクスプレッションをposのポジションx,yにそれぞれ割り当てる。

x軸、
(thisComp.layer("カメラからのベイク情報").transform.xPosition * -(1920/1.417322834645669) )


y軸
(thisComp.layer("カメラからのベイク情報").transform.yPosition * -(1080/0.7972341290615757) )

rotZ マイナス掛ける


ズーム値
temp = (thisComp.layer("カメラからのベイク情報").transform.zPosition * -100);
[temp, temp]


2020/09/22

カメラマップ、カメラ設定

カメラマップはアニメのお仕事だと特にどのソフトでも結構な頻度で使うけどその時使ってるソフト以外のことをすぐ忘れる。伴ってカメラの設定を合わせるためのメモも。

前提として、水平画角(Horizontal)で合わせてある。アンリアルだったかユニティだったかは対角とか聞いたことがあるけど今の所使う予定もないのでスルー。

houdiniとmayaに関しては標準カメラでApertureとFocal Lengthを合わせればOK。

フィルムオフセットも前回の記事で解決。

http://lazycg.blogspot.com/2020/09/mayahoudinifilm-offset.html

maxに関しては標準カメラだとApertureが操作できないので他ソフトとのカメラ合わせという点では使えない。たぶん。

PhysCameraのFilm/SensorがHoudini、mayaでのApertureになっているので、こちらであれば合わせられる。また、以下2点気をつける。

・露出がカメラの設定で変わらないように環境設定で露出のコントロールをオフにする。

・カメラの設定"Focus"で標準でレンズ補正が掛かってしまっているので、LensBreathingを0にする。

ただ、フィルムオフセットはパラメータが"%"になっているので、合わせるには計算が必要。Focal LengthとFocal Lengthからの逆算になると思うけど超面倒くさい。

 

さてカメラマップ比較。

maya 

マッピングを貼り付けてジオメトリに編集する場合、 ベイクするしか手段がない。

ベイクは一度レンダリングしてテクスチャ化しているが、ソフトウェアレンダに縛られてどう頑張っても画質低下する。シェーダー周りでもトラブルが起きやすいのでツールは必須。そもそものベイク処理が重いので大変非効率。ということで良い所無し。

 

max

通常のマッピング、オブジェクトベースのマッピングがモディファイヤで別れているので利便性が良い。レンダラでアンチ等のフィルタオフに出来るので張った画像を 無劣化で貼り込み→出力ができる。

通常のマッピング、オブジェクトベースどちらでもuvを開く必要もなく進められるので作業速度、リテイク対応や差し替えにも強い。

仕様でカメラのアスペクト比がレンダリング解像度に依存しているので厄介だが、通常のマッピングに関しては2020辺りからOSLシェーダーでアスペクト比変えられるようになったので、この先はなんとかなりそう。前述のカメラの特性上フィルムオフセットを他と共有するのが面倒なので、そこが課題。

 

houdini

自由度が非常に高いので出来ることの範囲は一番広い。但し通常のオペレーションに関しては難がある上にビューポートが重かったりするのでワークフローの整備は必須か。マントラでも無劣化では書き出せなかった。

あとオブジェクトスペースで貼り込んだとき、maxよりメッシュの割り不足による歪みが強めな印象。

 

現状、張った美術を無劣化で書き出せるのはmaxのスキャンラインのみ。ただarnoldでフィルタをシャープに出せば許容範囲にはなるので、利便性等を含めると暫くはarnoldベースで考えるのが良さそう。

 

とりあえず今はここまで。

2020/09/03

mayaからhoudiniにFilm Offset持ってくる

フィルムオフセット持ってくるメモ。

基本的にはこの記事の通り。

https://forums.odforce.net/topic/12187-maya-film-offset-vs-houdini-screen-window-xy/ 

houdiniのScreenWindow値 = mayaのオフセット値 / アパチャー値

ということでした。時と場合によるけど、小難しいことせずに自分的に分かりやすく。

カメラと一緒に出力する階層に"offset"ロケータを作る。その移動値x,yに、

offset.translateX = camAShape.horizontalFilmOffset / camAShape.horizontalFilmAperture

と 

offset.translateY = camAShape.verticalFilmOffset / camAShape.verticalFilmAperture

とそれぞれエクスプレッション作成しておく。 

 

んでfbxなり何なりでカメラとロケータ一緒に持ってく。

houdiniにて、ScreenWindow X/Yに

ch("../offset/tx")

ch("../offset/ty")

とエクスプレッション打ってあげればフィルムオフセットがピッタリ。 

※解像度は別途 合わせる必要あるけど、それはまた別のお話。

 

これで大判も怖くないし、mayaでなら自由にレイアウト切れる。

2DPANカメラと組み合わせればmaya、houdini、AE、nukeで大判カメラワークの共有できる。背景は1枚レンダリングして2Dカメラワーク、アニメーションとエフェクトは3D側のカメラでレンダリングすればレンダリングコストもいい具合。という妄想。


2018/10/25

リファレンスのデフォーム

mayaの話。

リファレンスしたオブジェクトにデフォーマかけると"~Deformed"て名前になって、alembic出力した時に名前がマッチしなくて困ったのでメモ。

単純な話だと、Deformedを名前から消してリネームすれば良い。

根本から解決するには元シーンのShapeノードのoutMeshから何かしらに接続しておけば回避できる。
polyUniteを使うとアウトライナも汚れず便利。
polyUniteノードのNodeStateをHasNoEffectにして計算を切っておけば動作が重くなることもないらしい。

どっちにしてもなんか不便だなぁ・・・。