blog

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/11

max インポートしたジオメトリが重い時メモ

maxにて、インポートしたジオメトリが重い時の対処法。

http://cganimator.com/3dsmax-tips-3-how-to-make-tree-animation-15-times-faster/

翻訳ソフトで見たので細かいところはわからないけど、インポートしたジオメトリの問題は明示的な法線にあるっぽい。
明示的な法線を持っていると、3dsMaxは常に何かを計算しているようで、それのせいで重くなる。

ということでEditable PolyにはMesh Selectを適用、Editable MeshにはSmoothを適用して、レンダリング時にはoffにする。
こうすることでビューポートのみの明示的な法線を一掃して正常な状態にできる。

Normal modifierでは完全に法線を取り除けないので上記の方法が現状できるベストな解決策。ということらしい。


明示的な法線ってよく出てくるけどよく分かってない。単純にジオメトリに編集された法線情報がある状態って事かしら。。

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側のカメラでレンダリングすればレンダリングコストもいい具合。という妄想。