composite,nuke前回の記事からだいぶ経ってしまいました、開発山口です。Passの作成方法を紹介したいと思います。使い古されたネタかもしれませんがお付き合いください。始めに記事内の説明で使用しているNukeのシーンファイルですが、コピペしてシーン内に再現できるようにテキストを用意しました。source”をクリックしていただければ出てきますので記事と合わせて見てください。※1度開いてしまうと閉じられないみたいなので、コピペが終わったらリロードしてください。Nuke7.0以上のバージョンでお試しください。Passとは、各PixelのRGBに対し、オブジェクトのXYZ値を格納したPassです。Passと組み合わせることで、影無しではありますが簡易的なライティングをすることも可能です。PositionToPointsノードを使用することで、各Pixelの位置を3D空間上でどこにあるか調べることもできます。このように様々な使用用途がある素材ですが、今回はこれを利用してNuke上でDepthを作成する方法を紹介したいと思います。Mayaからの出力まずこのPassを作成する所から始めたいと思います。Passはレンダラーで標準でサポートされているものも有りますが、今回は既存のノードを使用して出力してみたいと思います。Worldをつなぐだけです。Passが出力できます。floatで出力してください。この設定がなぜこれでなければいけないのかは、次回あたりにでも記事にしたいと思います。レンダリング結果をNukeで開き、各サーフェイスの値に1以上、0以下の値が入っていれば成功です。高さDepthでは早速Depthを作成していきます。これはとても簡単です。PassにはGチャンネルに高さ情報が入っているので、これのレンジを変えてあげるだけで簡単に作成できます。ShuffleノードでGチャンネルだけ取り出し、GradeノードのBlackPointとWhitePointに値を入れてあげるだけです。奥行きDepth01次はカメラからのDepth素材です。カメラからのDepth素材には円形のDepthと線形のDepthの2つがあります。簡単なほうの円形のDepthを紹介します。これも非常に簡単で各Pixelの位置情報からカメラの位置を引き算し、そのベクトルの距離を求めレンジを調節してあげることで求めることができます。任意のポジションからのDepthこれは奥行きDepth01の応用です。カメラのポジションを任意のポジションに変えてあげるだけです。Axisノードを使用して、それのポジション情報を使用すれば3D空間上で位置決めが楽になります。奥行きDepth02最後に線形のDepthです。数学の知識が無いとなかなか難しいですがチャレンジしてみてください。下図の緑のベクトルの長さで、これを求めるにはその他にカメラから各Pixelまでのベクトルとカメラからの視線ベクトルが必要です。この2つのベクトルを利用して、ベクトル間の角度を求め三角関数のcosineを使用すれば緑のベクトルを求めることが出来ます。実際にNukeでの操作を見て行きたいと思います2つのベクトルを作成まず2つのベクトルを作成します。1つめがカメラから各Pixelに向かうベクトルで、各Pixelの値からカメラのポジションを引き算することで求められます。2つめがカメラの視線ベクトルです。Matrixの部分から作成することができます。-1)とZがマイナスなので、視線ベクトルとしてはマイナスを掛けてあげる必要があります。難しく思うかも知れませんが、下図のMatrixの値に-1を乗算してあげることで作成できます。エクスプレッションにはこのように書きます。※ここではあえてカラー値にしていますが、そのまま計算式として入れてしまってもいいです。マイナスに変換したのは2つベクトルの方向を合わせるためです。1つ目のベクトルの計算を”カメラのポジション”から”各Pixelの値”を引くように計算式を変更しても最終結果は同じになります。2つのベクトルのなす角を求める2つのベクトルの間の角度は下記の計算式で求めることが出来ます。これをNukeのExpressionノード表現すると下図のようになります。ベクトルの長さを求める上の式から求められた角度と三角関数のcosine、カメラから各Pixelに向かうベクトルの長さの3つを使用して、最終的なDepth値を求めます。こんな書き方も実は下記のようにacosとcosは打ち消すことが出来ます。処理の流れとしては上の方がわかりやすいですが、わかってしまえば下の方のが計算処理が速くなるので状況に応じて使い分けてください。レンジ(Near,Far)の調整このままでは、単純に3D上での距離が入っているだけですのでgradeノードを使用して、レンジ(Near,Far設定)を設定します以上で完成です。Passは工夫すれば色んな使い方ができて、なかなか面白い素材です。カメラの情報等別途必要になる物も有りますが、頑張って素材のHeaderに埋め込むなどしてしまえば、カメラの情報が無くても何とかなったりします。公開している全ての手法・コードの有用性、安全性について、当方は一切の保証を与えるものではありません。これらのコードを使用したことによって引き起こる直接的、間接的な損害に対し、当方は一切責任を負うものではありません。自己責任でご使用ください。(※必須):Website:Comment:コメントは承認制ですので、即時に反映されません。上に表示された文字を入力してください。月別アーカイブ2018年5月2017年1月2月3月4月6月10月11月2016年1月2月3月4月5月6月7月8月10月11月12月2015年1月2月3月4月5月6月7月8月9月10月11月12月2014年1月2月3月4月5月6月7月8月9月10月11月12月2013年1月2月3月4月5月6月7月8月9月10月11月12月2012年2月3月4月5月6月7月8月9月10月11月12月2011年1月2月3月4月5月6月7月8月9月10月11月12月2010年12月Footer。