モデル単位で影をコントロールするには
https://www.youtube.com/watch?v=HZBVte8cOug&hd=1
今回はモデル単位で影をコントロールする方法についてご紹介します。
現在、シーン上には床の上に立方体、球、円柱を表すモデルが用意されています。
デフォルトの状態では、この三つのモデルは床に対して影を落とす設定になっていますが、例えば球体だけは影を落とさないといった設定をするにはどうしたらよいでしょうか?
まずmodoにおいて影を落とすといったコントロールを行っているのは、シェーダツリーにおいてあるシェーダです。
[1] シェーダを選択し、テクスチャレイヤーの中にある影を落とすという設定をオフにしてみると、全てのモデルからの影が落とさない状態になりました。modoではデフォルトの状態で必ずシーン全体をコントロールするためのベースとなるシェーダが一つ用意されていますが、このシェーダはマテリアル単位、またはアイテム単位にそれぞれ増やしていくことが可能です。 [2] ここでは球体だけ影を落としたくないので、球体専用のシェーダを作成します。アイテムツリーから球体を選択し、右クリックからアイテムマスクの作成をクリックします。 [3] するとシェーダツリーにアイテムのマテリアルグループが作成されます。マテリアル自体を変更したいわけではないので、このマテリアルグループの中にあるマテリアルは削除し、代わりにレイヤー追加 > 特殊 > Shaderを追加します。これで球体用のシェーダが作成されました。しかしシェーダを選択し、テクスチャレイヤーから影を落とすをオフにしてみても、依然として影は落ちています。
これはシェーダツリーの中にあるBase Shaderが球体のマテリアルグループの上に来ているからです。modoのシェーダツリーでは、Photoshopのレイヤーと同様、このリストの上にあるものが後から効果を適用することになるため、Base Shaderの影響を受け、すべてのモデルから影が落ちる設定になっています。
[4] 球体用シェーダの設定を優先するために、シェーダツリーの中で球体のマテリアルグループを、Base Shaderの上へと持っていきます。これで球体だけが影を落とさないようになりました。テクスチャレイヤーの中では影を落とすという設定のほかにも、様々な設定があります。影を落とすをオンに、カメラに可視をオフにすると、カメラからはモデルはレンダリングされることなく、影だけが落ちるといった設定を行うことも可能になります。
今回、アイテムマスクを作成してシェーダツリーの中で優先順位を変える方法をご紹介しましたが、MODO 701ではさらにこの設定を簡単にする機能が追加されています。
いったんシェーダツリーから球体モデル用のマテリアルグループを削除し、元の状態へと戻します。
[5] アイテムツリーから球体のモデルを選択し、右クリックでアイテムシェーダの作成を選択します。すると、アイテムツリーのモデルの中にシェーダが作られるようになりました。このシェーダはシェーダツリーの中には表示されませんが、元々のBase Shaderよりも優先するよう設定されていますので、先ほどと同じ効果を上げることができます。