カメラの「下絵」で設定した画像の設定を元に
カメラマップ投影をするノードを作成するアドオンの解説です。
Gumroadで公開しています。
https://yukimituki11.gumroad.com/l/tdscvy
カメラから見た状態で画像を張り付けたようなマテリアルを作成できます。
カメラの透視投影と平行投影の設定に対応しています。
下絵の設定
まずは下絵機能について説明しておきます。
Blenderはカメラオブジェクトのカメラビュー表示で画像を重ねて表示できる下絵機能があります
カメラオブジェクトを選択してオブジェクトデータプロパティの「下絵」のチェックボックスをオンにして
「画像を追加」のボタンで追加できます
不透明度は画像表示の透明具合
深度は下絵画像を3Dビュー上にあるオブジェクトの手前に表示するか奥に表示するかの設定です
これらは画像の位置合わせで場合によって変更するものですので アドオンでは利用しません
フレーム方式はカメラのフレームに対して画像をどういう範囲で重ね合わせるかの設定です。
カメラの縦横比はレンダリング解像度で決まっています。
ストレッチはカメラの4隅に画像を合わせます レンダリングと下絵の縦横比が異なると画像歪むことになります
フィットは画像の縦横比を保ったまま画像を全部収めます 比率が違う場合には画面に隙間が空きます
トリムは画像の縦横比を保って画面内を全て埋めるようにします 比率が違う場合は はみ出す部分が出ます
カメラマップ用に設定する場合にはトリムの設定が扱いやすいようです
オフセットはカメラに対して画像の位置をずらす設定で、フレームの幅を1.0とした割合です
スケールは画像の拡大縮小です
回転で画像の回転を指定できますが、アドオンでは対応していません。
下絵はカメラオブジェクト個々に設定できるので
ローカルビューの指定等でカメラを切り替えることで別の方向からの画像も指定して調整できます
また、下絵もカメラに対して複数指定できるので 違った画像や設定を指定することもできます
アドオンの基本操作
アドオンのパネルはシェーダーエディタ上のサイドバーのノードタブに表示されます
カメラのプルダウンで投影に利用したいカメラを選択します
指定したカメラに下絵が設定されていない場合には「下絵」以下の項目は表示されません
下絵の設定されたカメラを指定した後 下絵のプルダウンから利用したい画像を指定して
Make CameraProjection Nodesのボタンを押すと
[カメラ名]_[画像名]_Projection といった名前でノードグループが作成されます
シェーダーエディタでマテリアルを表示している場合には マテリアルに作成したノードグループを追加します
マテリアルを表示していなかった場合や 別のマテリアルで利用したい場合には
追加メニューのグループの項目から選択します。
ノードの使い方
作成したノードのカラーの出力をシェーダーのカラー入力に繋ぐことで
下絵で指定した通りにカメラから画像を投影した状態になります。
下絵にアルファで透過した画像を利用していた場合には
カラーの入力で指定した色や画像と合成した色が出力されます
また、カメラと投影した面との角度が 制限角度で指定したよりも大きい場合にカラー入力の値を使う機能もあります
ぼかしの設定で角度制限の境目をグラデーションにするように設定できます
キャプチャではカメラからの角度が60度以上の部分にはレンガテクスチャが表示されるようにしてみました
90度に設定すると投影したオブジェクトのカメラから見た裏側に投影しないようになります
ノードの出力のUVは画像をカメラプロジェクションするための情報をそのまま出力しています
同じ設定で別の画像を投影するのに使用できます。
内積は角度制限の項目で使っているデータでカメラと面との角度のデータを出力しています
使用例
私はこのアドオンでは
・テクスチャを投影しながらモデリング
・面の方向に応じて複数のテクスチャを合成
・レンダリングした画像を元に部分的にレタッチ
といったことに利用しています。
最終的にデータをエクスポートする場合にはベイク操作が必要ですが、
レンダリングまでBlender内で済ませる場合には 使い方によってはUV展開せずに作業を進めることが可能となっています。
何かの一助になれば幸いです。