カップセットを配置した床面(テーブル)と壁面のマテリアルにテクスチャと呼ばれる画像を設定します。又、テクスチャを貼るためのUV展開、アトリビュートのまとまりであるノードについて概要を学びます。
対応ソフト:MAYA2023
<テクスチャ画像の取得>
著作権フリーのテクスチャをインターネットから取得します。今回は「PBR」(物理ベースレンダリング)と呼ばれる手法に適用できるテクスチャを用意します。「PBR」は物理的な光の反射や屈折等を計算し、リアリティのある表現を可能にします。
「PBR free」等のワードで検索して、テクスチャの画像データを入手して下さい(ライセンス形態に注意。必ず各サイトの利用規約を確認した上でご利用下さい)。
テキストでは「Color」「Roughness」「Normal(GL)」の3種類のパラメータ用のテクスチャを使用します(PBRでは、その他に「Metalness」等を使用します)。
テキストでは「ambientCG」というWEBサイトから、木目の「Wood 050」(1K-JPG)と、壁紙の「Wallpaper 001 A」(1K-JPG)の素材を用いました。
「ambientCG」WEBサイト

<作業の準備>
・[ファイル] > [シーンを開く] で、8cの章で保存した「cupset4_render.mb」を選択して開く。
<テクスチャ設定の準備>
・ステータスライン [ハイパーシェードウィンドウ] の表示ボタンをクリックする。

・[ブラウザ] で [aiStandardSurface2] を選択。

・ハイパーシェードのメニュー [編集] > [複製] > [シェーディングネットワーク] を選択。
「aiStandardSurface2」が複製され「aiStandardSurface5」が作成されます。

・アウトライナ等で、壁面のオブジェクト pPlane2 を選択。
・ハイパーシェード [ブラウザ] の [aiStandardSurface5] 上で、右クリック長押し > [マテリアルを選択項目に割り当て] を選択。
【テーブルのUV展開/テクスチャ設定】
カップセットが置いてある床面をテーブルとし、木目のテクスチャを割り当てます。
<UV展開>
オブジェクトにテクスチャを貼るために、UVという座標を用います。2次元のUV座標の平面に3次元オブジェクトの展開図を作成し、テクスチャの貼り方を設定します。この工程をUV展開といいます。
・アウトライナ等で、テーブルのオブジェクト pPlane1 を選択。
・[UV] > [平面] 横の□(オプション)を選択。

「平面マッピングオプション」のウィンドウが開きます。
・[投影元] >[〇Y軸] を選択❶。
・[□イメージの幅/高さの比率を維持] を選択してチェック❷。
投影面の縦横の比率(正方形)が変わらず、テクスチャが歪みにくくなります。
・[投影]をクリック❸。

Y軸方向から四角の画像を投影して張り付ける方法になります。

・[UV] >[UVエディタ] を選択。
UV展開の操作を行う「UVエディタ」と「UVツールキット」のウィンドウが表示されます。

左側「UVエディタ」に、選択されたオブジェクトのUVの要素(オレンジ色)が表示されます。
左右がUの方向、上下がVの方向になります。基本的には0から1の間に収まるよう配置します。

ウィンドウの右側は、UV展開に役立つツールがレイアウトされた「UVツールキット」となります(本章では未使用)。
・確認出来たら「UVエディタ/UVツールキット」のウィンドウを閉じておく。
<Colorのテクスチャ設定>
木目のテクスチャをマテリアルのColorに貼り付けます。
・ハイパーシェード [ブラウザ] で [aiStandardSurface2] を選択。

・[プロパティエディタ] の [▼Base] > [Color] 横のチェッカーボタンをクリックする。

・[レンダーノードの作成] ウィンドウの [ファイル] をクリックする。

・[プロパティエディタ] の [▼File Attributes] > [イメージの名前] 横の、フォルダボタンをクリックする。

・[開く] ウィンドウで、ダウンロードした「Wood050_1K_Color.jpg」を選択し開く。
・perspビュー、テーブルの pPlane1 上で右クリック長押し、[オブジェクトモード] を選択。
・6キーを押して、ビューパネルにテクスチャの表示がされるようにする。
・選択を解除して(optionキー+dキー)、テクスチャが張られているか確認する。

<UVの操作>
・[ウィンドウ] > [ワークスペース] > [UV編集] を選択。
ワークスペースのレイアウトをUV編集用に変更することができます。

・左側のperspビューで、テーブルのオブジェクト pPlane1 を選択する。
右側のUVエディタにテクスチャとUVが表示されます。
・[UVエディタ]で右クリック長押し、[UVシェル]を選択。
UVの大きなまとまりとなるシェル単位で選択できます。

・シェルをクリックして選択、wキーを押して、緑の矢印をドラッグして上下に動かす(赤の矢印は動かさない)。
perspビューで、UVの位置と連動してテクスチャの表示が変わっていることを確認します。

・rキーを押し、中央の□をドラッグして小さくする。
UVの大きさに合わせて、テクスチャの範囲も変わります。
UVが小さくなりすぎると表示されるピクセル数も少なくなり、画像が荒れる可能性があります。
・横幅がUVの0~1の範囲より少し小さい程度にスケールを調整する。
UV0~1の端ぎりぎりの配置はトラブルの可能性もあるため、少し小さくしておく。

<Roughnessのテクスチャ設定>
テクスチャを「Specular」の「Roughness」に貼り付けます。
・ハイパーシェード [ブラウザ] で [aiStandardSurface2] を選択。

・[プロパティエディタ] の [▼Specular] > [Roughness] 横のチェッカーボタンをクリックする。
「Roughness」に白~黒のテクスチャを貼ることで、反射に強弱の違いを付けることができます(テクスチャが暗い場所はシャープな反射になり、明るい場所は反射がボケて拡散します)。

・[レンダーノードの作成] ウィンドウの [ファイル] をクリックする。

・[プロパティエディタ] の [▼File Attributes] > [イメージの名前] 横の、フォルダボタンをクリックする。

・[開く] ウィンドウで、ダウンロードした「Wood050_1K_Roughness.jpg」を選択し開く。

・[プロパティエディタ] の [Ignore CS Files Rules] をチェック❶。
・ [▼File Attributes] > [Color Space] > [sRGB] 横の▼をクリック❷、[Utility] > [Raw] を選択する❸。
補正(ガンマ)のかかっていない、素の状態のデータである「Raw」を使用します。
「sRGB」から「Raw」に変更する際は、 [Ignore CS Files Rules] のチェックを入れてエラーメッセージが出ないようにします。

・[プロパティエディタ] の [▼Color Balance] > [Alpha Is Luminance] 横はチェックをする。
画像の白~黒の値をテクスチャとして用いる際は、こちらにチェックが必要です。

<レンダリング>
レンダリングして現状のレンダリング画像を確認します。
・perspビューで、解像度ゲートのボタンを押す。

・カメラを動かし、カップを画面真中に配置する。
・Arnold RenderView [Refresh Render] ボタンをクリックし、レンダリングする。


・Arnold RenderView [Store a Snapshot] ボタンを押して仮保存する。

・perspビューで、解像度ゲートのボタンを押して解除する。

<normal mapのテクスチャ設定>
normal mapのテクスチャを設定することで、疑似的な凹凸を表現できます。
・ハイパーシェード [ブラウザ] で [aiStandardSurface2] を選択。

・[プロパティエディタ] の [▶Geometry] の ▶ をクリックして展開する。
・[Bump Mapping] 横のチェッカーボタンをクリックする。

・[レンダーノードの作成] ウィンドウの [ファイル] をクリックする。

・[プロパティエディタ] の [▶2d Bump Attributes] > [Use as] > [バンプ] 横の▼をクリック❶、[接線空間法線] を選択する❷。
normal mapを使用する際は「接線空間法線」を選択して下さい。
・[▶2d Bump Attributes] > [Bump Value] 横の ▶□ のボタンをクリックする❸。

・[プロパティエディタ] の [▼File Attributes] > [イメージの名前] 横の、フォルダボタンをクリックする。

・[開く] ウィンドウで、ダウンロードした「Wood050_1K_NormalGL.jpg」を選択し開く。
「_NormalGL」が付いているファイルを選びます。MAYAのArnoldでレンダリングする場合、normal mapは「OpenGL系」という形式を選択します。

・[プロパティエディタ] の [Ignore CS Files Rules] をチェック❶。
・ [▼File Attributes] > [Color Space] > [sRGB] 横の▼をクリック❷、[Utility] > [Raw] を選択する❸。

・[プロパティエディタ] の [▼Color Balance] > [Alpha Is Luminance] 横、チェックを外して□にしておく。
画像のカラーの値をテクスチャとして用いるため、チェックは外します。

<レンダリング>
レンダリングして現状のレンダリング画像を確認します。
・Arnold RenderView [Refresh Render] ボタンをクリックし、レンダリングする。


・Arnold RenderView [Store a Snapshot] ボタンを押して仮保存する。

前のレンダリング画像と比較すると、normal mapによる凹凸の表現がわかります。
・[ファイル] > [シーンを別名で保存] を選択して別名保存する。ファイル名を「cupset5_texture」とする。
【ノードの選択とアトリビュートの設定】
ノードは、複数のアトリビュート(パラメータ)がまとまったものです。マテリアルは幾つかのノードが接続されてできています。ハイパーシェードでノードを選択し、各アトリビュートを設定することができます。
・ハイパーシェード [ブラウザ] で [aiStandardSurface2] を選択。

・[入力と出力接続] ボタンをクリックする。

「作業領域」に「aiStandardSurface2」に接続されているノードが表示されます。
・[作業領域] の内容が確認できるよう、ハイパーシェードのウィンドウ右下をドラッグして、表示を大きくする。
・[作業領域] 内でoptionキー(win:Altキー)+マウスドラッグのカメラ操作により、各ノードのつながりを確認する。

「aiStandardSurface2」の「Base Color」を見ると、左側に画像の「wood050_1K_color.jpg」ノードが接続されています。そして、その左には画像配置等を設定する「place2dTexture2」ノードが接続されています。このように複数のノードが接続し、データを受け渡すことで一つのマテリアルができています。マテリアルだけでなく、オブジェクトも同様にノードが接続されてできています。

作業領域のノードをクリックすることで、各ノードのアトリビュートにアクセスできます。
・[作業領域] で [place2dTexture2] ノードをクリックする❶。
・[プロパティエディタ] で [Repeat UV] に (2, 2) を入力する❷。
テクスチャ画像をU方向、V方向に2回繰り返して貼り付けます。「wood 050」はシームレス(つなぎ目が目立たないように処理した)テクスチャのため、繰り返しの表現が可能です(ただし遠目では繰り返しのパターンが目立つこともあるため注意)。

・[place2dTexture3] 、[place2dTexture4] ( [Roughness] と [normal map] のテクスチャと接続分)も同様に選択し、[Repeat UV] に (2, 2) を入力する。
テクスチャが2×2の繰り返しとなったため、見た目の解像度が上がり、細かい模様になります。
<レンダリング>
レンダリングして現状のレンダリング画像を確認します。
・Arnold RenderView [Refresh Render] ボタンをクリックし、レンダリングする。


【壁面のUV展開/テクスチャ設定】
壁面もテーブルと同様にUV展開とテクスチャ設定を行います。
<UV展開>
・壁面のオブジェクト pPlane2 を選択。
・[UV] > [平面] 横の□(オプション)を選択。
・[平面マッピングオプション] の [投影元] >[〇Z軸] を選択。
テーブルとは投影軸が違うので注意します。
・[□イメージの幅/高さの比率を維持] がチェックされているのを確認。
・[投影]をクリック。

・UVエディタ でrキーを押し、中央の□をドラッグして、横幅がUVの0~1の範囲より少し小さくなるようスケールを調整する。

<Colorのテクスチャ設定>
・ハイパーシェード [ブラウザ] で [aiStandardSurface5] を選択。

・[プロパティエディタ] の [▼Base] > [Color] 横のチェッカーボタンをクリックする。

・[レンダーノードの作成] ウィンドウの [ファイル] をクリックする。

・[プロパティエディタ] の [▼File Attributes] > [イメージの名前] 横の、フォルダボタンをクリックする。

・[開く] ウィンドウで、ダウンロードした「Wallpaper001A_1K_Color.jpg」を選択し開く。

<Roughnessのテクスチャ設定>
・ハイパーシェード [ブラウザ] で [aiStandardSurface5] を選択。

・[プロパティエディタ] の [▼Specular] > [Roughness] 横のチェッカーボタンをクリックする。

・[レンダーノードの作成] ウィンドウの [ファイル] をクリックする。

・[プロパティエディタ] の [▼File Attributes] > [イメージの名前] 横の、フォルダボタンをクリックする。

・[開く] ウィンドウで、ダウンロードした「Wallpaper001A_1K_Roughness.jpg」を選択し開く。

・[プロパティエディタ] の [▼File Attributes] > [□ Ignore CS Files Rules] をチェック。
・[▼File Attributes] > [Color Space] で [Raw] を選択する。
・[▼Color Balance] > [Alpha Is Luminance □] をチェック。

<normal mapのテクスチャ設定>
・ハイパーシェード [ブラウザ] で [aiStandardSurface5] を選択。

・[プロパティエディタ] の [▶Geometry] の ▶ をクリックして展開する。
・[Bump Mapping] 横のチェッカーボタンをクリックする。

・[レンダーノードの作成] ウィンドウの [ファイル] をクリックする。

・[プロパティエディタ] の [▶2d Bump Attributes] > [Use as] で [接線空間法線] を選択。
・[▶2d Bump Attributes] > [Bump Value] 横の ▶□ のボタンをクリック。

・[プロパティエディタ] の [▼File Attributes] > [イメージの名前] 横の、フォルダボタンをクリックする。

・[開く] ウィンドウで、ダウンロードした「Wallpaper001A_1K_NormalGL.jpg」を選択し開く。

・[プロパティエディタ] の [▼File Attributes] > [□ Ignore CS Files Rules] をチェック。
・[▼File Attributes] > [Color Space] で [Raw] を選択する。
・[▼Color Balance] > [Alpha Is Luminance □] のチェックを外す。

<Repeat UVの修正>
・ハイパーシェード [ブラウザ] で [aiStandardSurface5] を選択。

・[入力と出力接続] ボタンをクリックする。

・ハイパーシェード [作業領域] で [place2dTexture5] ノードをクリックする。
・[プロパティエディタ] で [Repeat UV] に (2, 2) を入力する。

・[place2dTexture6] 、[place2dTexture7] も同様に選択し、[Repeat UV] に (2, 2) を入力する。
<レンダリング>
レンダリングして現状のレンダリング画像を確認します。
・Arnold RenderView [Refresh Render] ボタンをクリックし、レンダリングする。

<ワークスペースのレイアウトを元に戻す>
・[ウィンドウ] > [ワークスペース] > [一般] を選択。

<ヒストリの削除>
エラーの原因となる場合があるため、ヒストリを削除しておきます。
・perspビューで、右クリック長押し、[オブジェクトモード]を選択。
・テーブルと壁面の「pPlane1」と「pPlane2」のオブジェクトを選択。
・optionキー(win:Altキー)+shiftキー(⇧キー)+dキー を押してヒストリを消去する。
<シーンの保存>
・[ファイル] > [シーンを保存] を選択して保存する(ファイル名は「cupset5_texture」のまま。後の章で使用します)。
<テクスチャ設定まとめ>
「Roughness」にテクスチャを設定する場合、以下の項目を考慮します。
① [□ Ignore CS Files Rules] にチェック。
② [Color Space] を [Raw] にする。
③ [Alpha Is Luminance □] にチェック。
「normal map」のテクスチャを設定する場合、以下の項目を考慮します。
① Arnoldでのレンダリングの場合「OpenGL系」のファイルを選ぶ。
② [Use as] を [接線空間法線] にする。
③ [□ Ignore CS Files Rules] にチェック。
④ [Color Space] を [Raw] にする。
⑤ [Alpha Is Luminance □] はチェックを外す。

