MoGraphのマテリアルについて

CINEMA 4DおよびBodyPaint 3Dに関する一般的な議論や情報交換をするフォーラムです。
BUTTON_POST_REPLY
tofuji
記事COLON 828
登録日時COLON 2011年3月10日(木) 10:41
お住まいCOLON 東京都渋谷区

MoGraphのマテリアルについて

投稿記事 by tofuji » 2011年11月01日(火) 17:56

 先週の講習会で、MoGraphのマテリアルについて質問があったので、サンプルをいくつか出します。

 基本的に、MoGraphではオブジェクトの「カラー」しか扱えません。
つまり、それ以外のマテリアルの性質である「発光」や「透過」、「鏡面反射」等を
直接MoGraphオブジェクトやMoGraphイフェクタで変更することはできません。

 そこで、「MoGraph -> カラー」シェーダを使って、間接的に表現することになります。
ところが、このカラーシェーダの使い方がそれほど簡単ではありません。
 MoGraphカラーシェーダは、イフェクタ等によって変更されたMoGraphオブジェクトの色を取り出し、マテリアルに伝えるシェーダです。
この処理はクローン一個一個ごとに行われるので、マテリアルの値をクローンごとに変えることができます。


1. まず、クローナー等のMoGraphオブジェクトにマテリアルが適用されていない場合、
クローンはイフェクタ等で指定された「カラー」のみで表現されます。「発光」や「透過」、「鏡面反射」等のチャンネルは使えません。


2. 次に、クローナー等のMoGraphオブジェクトにマテリアルを適用した場合、全てのクローンがそのマテリアルで表現されます。
もちろん、「カラー」だけでなく「発光」や「透過」、「鏡面反射」等のチャンネルも使えますが、クローン一個一個ごとに値を変えることはできません。


3. 次に、クローナー等のMoGraphオブジェクトにマテリアルを適用した場合でも、MoGraphカラーシェーダを使うと、
クローン一個一個ごとに値を変えることができます。

 例えば、透過チャンネルを働かせ、MoGraphカラーシェーダをテクスチャに読み込むと次のような絵を作れます。

http://www2.11moon.com/sample_files/201 ... _color.mp4
http://www2.11moon.com/sample_files/201 ... _color.zip


4. この調子で他の表現に応用できれば、まあそんなに面倒ではないのですが、取り出せるのがカラーだけなので、
グレースケールの値がほしい場合は「カラー変換」シェーダを使ってわざわざグレースケールに変換する必要があります。

http://www2.11moon.com/sample_files/201 ... y_grey.mp4
http://www2.11moon.com/sample_files/201 ... y_grey.zip


5. さらに、MoGraphカラーシェーダを適用したマテリアルにはいろいろな制約が生じるようで、
例えば「発光」チャンネルにこれを適用すると、なぜかカラーチャンネルにも影響が及びます。
 つまり、カラーチャンネルを一定の値に固定することができません。
もう一つのマテリアルを乗算モードで重ねてみましたが、これも正常に働きません。

 というわけで、こういう場合にはオブジェクトそのものを重ねるしかありません。
「面倒」というより、「できない」と思いますよね、普通の人は。

http://www2.11moon.com/sample_files/201 ... nation.mp4
http://www2.11moon.com/sample_files/201 ... inance.zip
---

Toshio Fuji<gtofuji@gmail.com>

掲示板に書いたサンプルのまとめサイト
http://www2.11moon.com/index_as.html

tofuji
記事COLON 828
登録日時COLON 2011年3月10日(木) 10:41
お住まいCOLON 東京都渋谷区

Re: MoGraphのマテリアルについて

投稿記事 by tofuji » 2011年11月02日(水) 00:14

 次に、ビットマップテクスチャやシェーダを使ってクローンの上に生成したパターンを動かす方法について説明します。
実はこの機能もMoGraphの中には含まれていません。

 普通のオブジェクトは、テクスチャ軸を移動させることで、簡単にパターンを動かすことができます。
しかし、MoGraphにはテクスチャ軸に相当するものがないのです。シェーダイフェクタなんかには
「イフェクタをテクスチャ軸とみなす」といったオプションがあってもいいと思うのですが。

 そこで、わざわざマテリアルを作成し、それをシェーダイフェクタに適用し、それを読み込ませる、
という面倒な手順を取る必要があります。
こうすると、シェーダイフェクタに適用されたテクスチャタグの情報(つまりテクスチャ軸の情報)
がシェーダイフェクタの内部に伝わり、それを使ってクローン上のパターンを自由に動かせるようになります。

http://www2.11moon.com/sample_files/201 ... _flow2.mp4
http://www2.11moon.com/sample_files/201 ... _flow4.zip


 他にも、「ノイズシェーダ内部の風速機能を使う」とか、「ノイズをUV(2D平面)で貼付けて、
シェーダイフェクタ内部のマッピング機能を使う」といった方法でテクスチャを動かすことができます。
しかし、加減速のコントロールや曲線的な動きをつけるのが難しくなります。
---

Toshio Fuji<gtofuji@gmail.com>

掲示板に書いたサンプルのまとめサイト
http://www2.11moon.com/index_as.html

tofuji
記事COLON 828
登録日時COLON 2011年3月10日(木) 10:41
お住まいCOLON 東京都渋谷区

Re: MoGraphのマテリアルについて

投稿記事 by tofuji » 2011年11月03日(木) 18:33

 次に、屈折率の値をMoGraphで制御したサンプルを出します。

 マテリアルの「屈折率」の値をMoGraphの機能で直接変える方法は存在しないので、
「屈折率の違うマテリアルを16個作成し、それを16個のオブジェクトに適用し、クローンにするオブジェクトを変える」
という力技で実現しています。

http://www2.11moon.com/sample_files/201 ... _index.mp4
http://www2.11moon.com/sample_files/201 ... _index.zip

 
 なお現実世界でも、圧電性の物質(例えばKTN)は、印加する電圧によって屈折率が変ります。
---

Toshio Fuji<gtofuji@gmail.com>

掲示板に書いたサンプルのまとめサイト
http://www2.11moon.com/index_as.html

BUTTON_POST_REPLY