ノーマルマップの作成方法として、写真から自動で生成する方法や、ハイポリゴンとローポリゴンの差分を使って生成する方法など様々です。
このブログでも過去にMAYAの標準機能でノーマルマップを生成する方法を紹介しました。
![]() |
|
このノーマルマップ生成方法の記事では、生成したノーマルマップを適用して結果を確認するのにUnityを使用しています。
筆者本人が基本的にリアルタイムCG方面の人間なので自然とUnityを使ってしまいましたが、MAYAで生成したノーマルマップなのにMAYAでレンダリングしないのも不自然なので、この記事ではMAYAでノーマルマップを適用してArnoldでレンダリングする手順を紹介します。
レンダリング画像をテクスチャーとして使う手法もあるので、ゲーム等のリアルタイムCG制作の参考にもなるのでは?と思います。※筆者的にはその方法はあまり使った事はありませんが。
![]() |
|
bump2dを使用してレンダリング
MAYAでノーマルマップを適用する方法は「bump2d」と「aiNormalMap」の二通りがあります。
まずは「bump2d」を使う方法から説明します。
使用するノーマルマップです。
![ノーマルマップ](https://i0.wp.com/liquidjumper.com/Home/wp-content/uploads/2020/07/maya_arnold_normal_rend_00.jpg?resize=290%2C290&ssl=1)
マテリアルは社内謹製サーフェス等さまざま在るのでしょうがここでは標準の「Standard Surface」を選択します。
![Standard Surface](https://i0.wp.com/liquidjumper.com/Home/wp-content/uploads/2020/07/maya_arnold_normal_rend_09.jpg?resize=281%2C138&ssl=1)
Maya > Utilities > Bump 2d を選択します。
![Bump 2d を選択](https://i0.wp.com/liquidjumper.com/Home/wp-content/uploads/2020/07/maya_arnold_normal_rend_10.jpg?resize=273%2C251&ssl=1)
生成したBump 2dのAttributes にある Use as のドロップダウンリストから「Tangent Space Normals」を選択します。
![Tangent Space Normals](https://i0.wp.com/liquidjumper.com/Home/wp-content/uploads/2020/07/maya_arnold_normal_rend_11.jpg?resize=416%2C166&ssl=1)
ノーマルマップのイメージファイルの「Out Alpha」から bump 2d の「Bump Value」に。bump 2d の「Out Normal」から Standard Surface の「Normal Camera」に繋げます。
![Standard Surface の「Normal Camera」に繋げます](https://i0.wp.com/liquidjumper.com/Home/wp-content/uploads/2020/07/maya_arnold_normal_rend_12.jpg?resize=578%2C367&ssl=1)
ノーマルマップを「bump2d」で適用してArnoldでレンダリングしました。
![「bump2d」で適用してArnoldでレンダリング](https://i0.wp.com/liquidjumper.com/Home/wp-content/uploads/2020/07/maya_arnold_normal_rend_06.jpg?resize=450%2C378&ssl=1)
bump2dで凹凸の深さを調整
bump2dで凹凸の深さを調整するには
2d Bump Attributes の Bump Depth の値を変更します。
![2d Bump Attributes の Bump Depth の値](https://i0.wp.com/liquidjumper.com/Home/wp-content/uploads/2020/07/maya_arnold_normal_rend_13.jpg?resize=417%2C208&ssl=1)
Bump Depth の値が2.0 の場合 (正直あまり変化を確認出来ないですね)
![「bump2d」で適用してArnoldでレンダリングBump Depth の値が2.0](https://i0.wp.com/liquidjumper.com/Home/wp-content/uploads/2020/07/maya_arnold_normal_rend_07.jpg?resize=450%2C373&ssl=1)
bump2dの利点
bump2dの利点はビューポートでノーマルマップの適用が反映されて確認できる事でしょう。
aiNormalMap はレンダービューでレンダリングしないと適用が確認できないので、最終的にaiNormalMapでレンダリングするとしても、手順的にチョットした確認を目的としてbump2dを使うのはありかもしれせん。
レンダービューで凹凸が反映され確認できます。
![レンダービューで凹凸が反映され確認](https://i0.wp.com/liquidjumper.com/Home/wp-content/uploads/2020/07/maya_arnold_normal_rend_08.jpg?resize=450%2C352&ssl=1)
![]() |
|
aiNormalMapを使用してレンダリング
ノーマルマップを適用するもう一つの方法「aiNormalMap」を使用する場合の手順を紹介します。
Arnold > Utility > Shader > aiNormalMap を選択します。
![aiNormalMap を選択](https://i0.wp.com/liquidjumper.com/Home/wp-content/uploads/2020/07/maya_arnold_normal_rend_14.jpg?resize=372%2C229&ssl=1)
ノーマルマップのイメージファイルの「Out Color」から aiNormalMap の「input」に。aiNormalMap の「Out Value」から Standard Surface の「Normal Camera」に繋げます。
![aiNormalMap の「Out Value」から Standard Surface の「Normal Camera」に繋げます](https://i0.wp.com/liquidjumper.com/Home/wp-content/uploads/2020/07/maya_arnold_normal_rend_15.jpg?resize=596%2C368&ssl=1)
ノーマルマップを「aiNormalMap」で適用してArnoldでレンダリングしました。
![「aiNormalMap」で適用してArnoldでレンダリング](https://i0.wp.com/liquidjumper.com/Home/wp-content/uploads/2020/07/maya_arnold_normal_rend_02.jpg?resize=450%2C365&ssl=1)
試しにマテリアルを「Standard Surface」では無く「aiStandard Surface」を使ってみます。
![aiStandard Surface](https://i0.wp.com/liquidjumper.com/Home/wp-content/uploads/2020/07/maya_arnold_normal_rend_20.jpg?resize=355%2C176&ssl=1)
レンダリング結果は画像の様になりました。
![aiStandard Surfaceを使用してレンダリング](https://i0.wp.com/liquidjumper.com/Home/wp-content/uploads/2020/07/maya_arnold_normal_rend_19.jpg?resize=450%2C367&ssl=1)
aiNormalMapの強度の調整
aiNormalMapでノーマルマップの反映強度の調整をする場合は、
Strengthの値を変更します。
![Strengthの値](https://i0.wp.com/liquidjumper.com/Home/wp-content/uploads/2020/07/maya_arnold_normal_rend_16.jpg?resize=426%2C312&ssl=1)
Strengthの値を2.5に変更してレンダリングしました。
![Strengthの値を2.5に変更してレンダリング](https://i0.wp.com/liquidjumper.com/Home/wp-content/uploads/2020/07/maya_arnold_normal_rend_03.jpg?resize=450%2C389&ssl=1)
凹凸の反転
ノーマルマップを適用した結果、凹凸が望んだものと逆になってしまう事があります。その場合は引き継ぎ等を考慮すると、ノーマルマップ自体を修正するのが制作手順としては正しいと思いますが(※チームで制作していたり、データ自体の提出もある場合)aiNormalMapのAttributesでも変更可能です。
Order のプルダウンメニューやチェックボックで、ノーマルマップの方向を変更できます。
![Order のプルダウンメニューやチェックボックで、ノーマルマップの方向を変更できます](https://i0.wp.com/liquidjumper.com/Home/wp-content/uploads/2020/07/maya_arnold_normal_rend_17.jpg?resize=426%2C312&ssl=1)
invert X をチェク
![invert X](https://i0.wp.com/liquidjumper.com/Home/wp-content/uploads/2020/07/maya_arnold_normal_rend_04.jpg?resize=450%2C375&ssl=1)
Order : YXZ に変更
![Order : YXZ](https://i0.wp.com/liquidjumper.com/Home/wp-content/uploads/2020/07/maya_arnold_normal_rend_05.jpg?resize=450%2C373&ssl=1)
![]() |
|
Color Space は Raw
ノーマルマップのイメージファイルはColor Spaceが標準で”sRGB”になってると思いますが、この状態だと、せっかく綺麗なノーマルマップを用意しても望んだ結果にならないかも知れません。
その場合はノーマルマップを使用する場合はColor SpaceをRawにしてみてください。ザラザラしたレンダリング結果が改善されると思います。
![Color Space](https://i0.wp.com/liquidjumper.com/Home/wp-content/uploads/2020/07/maya_arnold_normal_rend_18.jpg?resize=367%2C358&ssl=1)
左:sRGBの場合 右:Rawの場合
![左:sRGBの場合 右:Rawの場合](https://i0.wp.com/liquidjumper.com/Home/wp-content/uploads/2020/07/maya_arnold_normal_rend_01.jpg?resize=600%2C235&ssl=1)
まとめ:bump2dとaiNormalMapどちらを使う
MAYA でノーマルマップを適用してArnoldでレンダリングする手順を紹介しました。
MAYAでノーマルマップを適用してレンダリングする場合に
「bump2dとaiNormalMapの違いは?」
「bump2dとaiNormalMapのどっちを使ったら良い?」
の様な問がよく出ます。
「どちらも結果に違いは見受けられません」
的な返答記事がほとんどですが、今回試してみた結果では、レンダリング結果に違いが現れました。
強度の調整や凸凹の反転などの設定ができる事を考慮すると、決まりごと等が無いのであれば「aiNormalMap」を使うのが良いのでは?と筆者的には考えます。
![]() |
|
Adobeのプラチナパートナーに認定されているデジタルハリウッドのオンラインCGスクール「デジハリONLINE」が提供する「Adobeマスター講座」。
基礎動画教材とAdobe creative cloudの一年版ライセンスがセットになった、コスパ最強のパッケージプランです。
学習ノルマは一切ありません。AdobeCCだけを目的に契約してもOK!
>> デジハリONLINE「Adobeマスター講座」
![]() |
|
![]() |
|
BTOパソコンの草分け的ブランドFRONTIER(フロンティア) 3DCG/動画編集/ゲーム用途に合わせてCPUやGPUなどパーツを自由に選べてコスパにもこだわる方にオススメ。 |
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|