2016年4月25日月曜日

【SD】色調整をRGBのみのパラメータで調整できるようにする

Colorをパラメータ化するとfloat4が自動的に割り当てられます。

『アルファチャンネルは調整しないから消したい。』

という時の方法です。


Input Parametersのところからfloat3を選べばできるんじゃないかと思うかもしれませんが、
float3にしてしまうとアルファチャンネルに黒が入った状態になり、
色が表示されなくなります。

なんてこったい!


そこでグラフをすこしカスタマイズしてfloat3で編集しても色が表示されるようにしていきます。



■Input Parameterをfloat3にする


まずは、Input parameterの値を[float3]に切り替えておきましょう。


ここで[float3]にしたことでノードの色が見えなくなってしまったことも確認します。


これでfloat3にそのまま切り替えるだけじゃだめだ、というのがわかるかと思います。
(あまりこの参考としてる錆がわかりやすいものではないのですが…)


■RGBのみ調整できるように処理を組む



今回やりたいこととしてはRGBのみ(つまりfloat3)で値を調整できるようにしたいわけですから、
自動的に0が入ってしまうアルファチャンネルに1の値をファンクショングラフ内で入れてあげればよい。
ということになります。

では組み方は以下のとおり。

  1. 錆の色を設定しているノードを選択し、ファンクショングラフボタンをクリックします。
    ファンクショングラフには[Get Float4]のノードが一つ配置してあります。
    ファンクショングラフはエクスポーズされたパラメータの内部的な計算処理を
    ノードで組むことができる場所と思って頂ければよいかと。

    .
  2. 右クリックからAdd Node > Variables > [Get Float3]を配置します。
    これはInputParameterから値を受け取るノードになります。
    『!』 が表示されてますが、これはVariablesがまだ設定されてないことを表してます。
    .
  3. [Get Float3]をダブルクリックしてVariablesのところから指定してある識別子(Idenifier)を選択します。
    何も表示されないという場合は同じ名前を入力してもOK

    .
  4. 次に右クリックからAdd Node > Constant > [Float]を配置します。
    これはアルファチャンネルの値として利用するので1を入力します。

    .
  5. 次に右クリックからAdd Node > Vector > [Vector Float4]を配置します。
    右側のInputのInに [Get Float3]、Lastに [Float]を接続します。

    このノードは感覚的にはUE4のマテリアルのApendノードに似てるのかな。
    SDの場合出力するベクターの数が指定されてはいますけども…。
    .
  6. 最後に [Vector Float4]を選択し、右クリックからSet as Output Nodeをクリックします。
    するとノードが黄色くなります。
    これでこのノードで行われた処理の値を出力すると設定することが出来ます。
    要らなくなった[Get Float4]ノードは削除しましょう。

これでファンクションは組み終わったので、
Input Parametersのところから処理が正しくできてるか確認。
色を編集してちゃんと反映されるのを確認したら完了です。



ちなみにこの技SDだとそれほど気にならないのですが、SPにマテリアルを持って行くと
このように表示されるので直したいと思ったのでありました。ちゃんちゃん。


実は、このエントリーを書いた後に昔同じ内容のものを書いていたことに気づいたのは内緒であります…。
ただ、あの頃とは違ってエクスポーズにたいしての理解が深まったのでもう少しスマートなやり方や、理解が深まってるのでいいかなと…(´・ω・`)


0 コメント:

コメントを投稿