ラベル Function の投稿を表示しています。 すべての投稿を表示
ラベル Function の投稿を表示しています。 すべての投稿を表示

2016年4月25日月曜日

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

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

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

という時の方法です。


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

なんてこったい!


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


2014年9月29日月曜日

[Function]Contrastを設定

金属の塗装色の変更は設定できたので、
次はRoughnessの値を調整できるようにしたいと思います。

どうせやるならば経年変化のような表現がいいのですが、
さすがに色々なパラメーターをコントロールする必要があるので
今回はコントラストだけ調整できるようにしてみたいと思います。

正直これがなぜコントラストをコントロールすることになるのかはきちんと把握していません。

ただ、こう組むことでコントラストが調整できると
まずは覚える(メモしておく)のがよいかなと♪~(´ε` )


コントラストの設定

  1. まずは、FunctionのInput Parameterを作成します。

    IdentifierはContrastとします。
    Type/EditorはFloat 1にします。
    Minは-1まで入力できるようにしましょう。



    .
  2. コントラストを調整したいのは最後になるので、
    Outputの前につないでいるLevelに設定をしていきます。


    .
  3. Levelのパラメーターを見るとどこからFunctionをつないだらよいかわからないのですが、
    右上のValuesのところをクリックすることで作成することができるようになります。



    ここをクリックすると…



    見慣れたパラメーター画面に切り替わります。
    .
  4. 設定する必要のあるFunctionの数は4つあります。
    中身は似ていますが、すべて異なる設定を入れていく必要があります。
    ノードの組み方は以下のとおり。

    Level In Low


    Level In High




    Level Out Low




    Level In High



    Get FloatにはContrastを設定するのをお忘れなく!

    これは、カラーのコントラストでも同様に組むことで調整することができます。
    もしかしたらグレースケールのコントラスト調整だったら
    OutputはVector 4でなくてもよいのかもしれないですが、
    ノードの意味を理解していないので、そのまま組むしかありません(泣)

  5. このように組んだらあとは動作チェック
  6. Input ParameterのDefaultの値を動かしてみます。

    結果はこのような感じ。



  7. Roughnessテクスチャだけでみてもコントラストが調整できているように見えますね。



    以上で完成です。

Contrastは非常によく使うFunctionになると思うのですが、
もう少し簡単に設定できるようにならないかなと思うところ。




2014年9月28日日曜日

[Function]Colorを設定

グレネードのテクスチャを作成した時に使用した質感データを
他の場合でも使えるようにしたいなと思いFunction作成に挑戦です。

Instanceで使用するときにパラメーターを調整できるようにしておけば、
汎用がきくというものです。

作成した塗装された金属の質感はこのような感じ。





ノードもこれぐらいとあまり複雑ではありません。

今回調整できるようにしたいのは、
塗装されている色とRoughnessの値も調整できたらいいと考えています。



Colorの設定


  1. まずはInput Parametersを設定します。

    Input Parametersの+から追加します。
    Identifierは識別子でFunction作成するときの参照するパラメーターの名前になるので、
    わかりやすいのをつけておきます。

    今回はPaintColorと設定しました。

    次にType/Editorですが、ここでは色を設定したいのでFloat 3Color(RGB)を設定します。


    ここでColor(RGB)を設定しないとただの3つのパラメーターが出ているだけになり、
    調整はできるけど、非常に使いにくいものになってしまうので忘れないようにしましょう。
    .
  2. 金属の塗装色を設定しているUniform ColorからOutput ColorにEmpty Functionを作成します。
    .
  3. Functionは以下のようにノードを組みます。

    先ほど設定した塗装色の値を受け取りたいので、Get Float 3を置きます。
    そして、右側の値のところでVariables/Get Float 3にはPaintColorをセットします。


    次にFloatを配置し、Constant/Floatの値は1です。
    これはアルファチャンネルになるので1にしておくのがよいのだろうと思います。

    最後にVector Float 4に配置して、つなぎます。
    右クリックからSet as Output Nodeを設定します。


    これでひと通りのPaintColorのFunctionは完了です。
    .
  4. 最後にきちんと動くかを確認。

    新規のGraphを作成し、そこに作成したグラフをドラッグ&ドロップで
    Instanceとして読み込みます。



    パラメーターで自由に色を変えて反映されるかチェックします。
    こんな感じで問題なく色が変更できたのでOKですね。


    最後にInput ParametersのLabelやGroupなど使いやすいように設定したら終了です。



今回の工程で疑問がひとつ。

Vector Float 3ノードを配置してOutputにしてしまえば一番早いのでは?
と思うのですが、そのような接続はできないみたいなんですよね。

おそらくカラーはVectorで設定しないといけないというのと、
Vector Float系のノードにはInとLastというInputノードが付いているので、
必ず2つセットしないといけないんでしょうね。

そのためにVector Floatというのはなく、Vector Float 2,3,4の3種類になっています。

ここでVector Float 3を使うとするとGet Float 2とFloatを接続しなければならなく、
RGBではなくRGとBを別々に設定するというややこしいことになるので、
Vector Float 4を使うという風に自己解釈しています。

それでも、根本的なところでVector Floatが2つの値を受け取らなければならない理由はわからないので誰かご存知でしたら教えて下さい。