2014年4月27日日曜日

[Maya]ShaderFXでCustom Codeをつかってみる

カスタムコードを使用するにはshaderFXエディターを
アドバンスモードに変更する必要があります。

shaderFXエディターで右クリック、tools>toggle Advance Mode
選択してアドバンスモードに変更します。

アドバンスモードに切り替えると使用できるノードとグループの展開が
可能になります。グループに四角いアイコンが追加されるのでクリックすると
グループが展開できるようになります。

HwShaderNodes>various>Custom codeでノードを作成します。

customCodeNodeのアトリビュートのeditボタンでコードを編集する
ウィンドウが表示されます。

こちらからサンプルファイルがダウンロードできます。

◇ShaderFX

サンプルの様にテクスチャーをカラーとして扱うときはいいのですが、
テクスチャーをUniform変数として渡したい時があります。
下記はそのやり方です。











https://gist.github.com/hiko9lock/11342282

Uniform変数を使用にするにはCustomCodeノードの
Texture,Sampler Stateが必要となります。

HwShaderNodes>Texture>Texture Component
HwShaderNodes>Texture>Sampler Stateでノードを作成して
Custom CodeノードのTexture,SamplerStateに接続します。

また、カスタムコード関数の引数にfloat2 uvを指定しているので
HwShaderNodes>Inputs common>UV Setでノードを作成して
Custom Codeノードのuvに接続します。

14行目の
output+= tex2D( SFX_SAMPLER0, UV+float2(i*dist, j*dist)).xyz;
ですが、これはCGFX用の書き方となり、SFX_SAMPLER0は
指定されたuniform変数となります。
すべての環境をサポートするにはifステートメントを使用する必要
があります。詳しくはヘルプ参照で。

◇Maya2015オンラインヘルプ
shaderFXカスタムコードノード

今回作成したカスタムシェーダーをplaneに適用させたものになります。












customCodeでフィルター処理もできるので、シェーダー作成も
面白くなりそうですね。



2014年4月24日木曜日

[Maya]Maya2015 ShaderFXでフレネルを使ってみる

Maya2015でShaderFXが使えるようになったので、使ってみました。
今回はフレネルを作成したいと思います。

















□ShaderFXマテリアルの作成


  • hyperShadeからからShaderFX shaderを選択して、マテリアルを作成します。
  • マテリアルアトリビュートからOpenShaderFXを選択してエディタウィンドウを開きます。
  • 右クリックでメニューを開き、Hw Shader Node>Lighting>Fresnelを選択します。



















Fresnel multiplerをEmissiveへ接続したいのですが、型が違うためコネクションできません。
黄緑はfloat,水色はfloat3のため変換が必要になります。






















フレネルはカメラと法線からフォールオフ値を計算します。
このフォールオフ値をマスクと利用するためLinearInterpolateMixのmixに
マスクとしてコネクションします。

Hw Shader Node>math>LinearInterpolateMixで作成します。
Fresnel multiplermixにコネクションします。

LinearInterpolateMixのアウトプットはfloat4となっているので、さらに変換が必要になります。

Hw Shader Node>values>vectorComponentを選択してvectorComponentを作成します。
このノードはfloat4から任意の成分を抜き出すことができます。



















vectorComponentのインプットにLinearInterpolateMixResultを接続、
vectorComponentXYZRGBfloat3になっているので、これでやっと
Emissiveと接続できるようになりました。

しかし、輪郭だけが白くなっているためフレネルのプロパティの編集が必要です。



















グループを開くと、FresnelMinの値に0.8がはいっていたのが原因のようでした。
グループはTool>ToggleAdvanceModeでアドバンスモードに切り替えるとひらけるようになります。

Fresnelそれぞれの値も調整したいので
Hw Shader Node>values>floatでそれぞれのノードを作成してコネクションします。

これでフレネルっぽくなりました。

またNormalのアトリビュートにNormalMapノードを接続して、
テクスチャーを割り当てるとノーマルマップの法線情報もフレネルに反映されます。
















ノーマルに接続されているMultiplyUVをリピートするために作成しました。

今回ShaderFXを改めて使ってみましたが、実機環境と同じようなシェーダがリアルタイムに使えるのはやっぱりいいなぁと感じました。

2014年4月19日土曜日

[Maya]ModelingToolKitでシュリンクラップ

以前使ったことはあるのですが、使い方を忘れてのでメモしておきます。


















ZBrushでZRemesherでリトポを試みたものの思った通りに
ならなかったのでGoZでMayaにもってきました。


































cubeに2回ほどsmoothを適用させてtargetととなるメッシュを作成します。
EditMesh>show modeling toolkitでモデリングツールキットを表示します。





















TransformConstraintsからsourceとなるmeshを選択します。
targetとなるメッシュを選択します。
Edit>shringwrap Selectionを実行します。






















ターゲットに形状が投影されました!
MayaLTでも同様の操作でOKです。

2014年4月14日月曜日

[ZBrush]ZRemesherでリトポロジー

先日作ったスカルをZRemesherでリトポしてみました。
200万ポリから2万ポリの削減です。


















歯などはポリゴンの流れを考えて作ってないので
丸まってしまってますね、、、手動でリトポしたほうがよさそうです。

TargetPolygonCount以外の数値は変えてません。
部分的にポリゴンの密度を変えられるようなので
あとで調整してみます。

2014年4月13日日曜日

[UE4]UnrealEngine4がMacで起動しない

複数PCインストール可能ということでMacにインストールしましたが
起動できませんでした。
Windowsは問題ありませんでした。

起動するときLaunchボタンが表示されるのですが、
MacだとSubscribeボタンが表示されダッシュボードに
飛ばされてしまいます。

ANSWERHUBにも同様の症状があがっているようですね。

https://answers.unrealengine.com/questions/28728/epic-official-report-here-if-you-have-a-subscribe.html?page=1&pageSize=15&so

追記
4/13 15:30頃、確認したところ改善してました。よかった!

[ZBrush]頭蓋骨をつくってみた

ZBrushの2回目のスカルプトのテーマに頭蓋骨をつくってみました。






















ZBrushのBPRでコンポジットをしたかったのですが、やり方がわからず
Photoshopで加工してしまいました。

操作はBLESTAR先生のおかげで、だいぶ慣れてきましたが
チュートリアルは半分ほどしかできてません。

次回はトルソーとかに挑戦してみたいと思います。

2014年4月5日土曜日

[ZBrush]BrestarZBrushベーシックチュートリアル

先月からBresterのチュートリアルをやっているのですが、大体基本的なとこは理解できたのかなという感じです。
もともとモデラースペックを持ち合わせてないので、どこまでクオリティをだせるかわかりませんが、、、

















チュートリアルを参考にしながら作成。。。

2014年4月4日金曜日

[UE4]Unreal Engine4のサブスクリプションに登録しました

やっとUnrealEngine4のサブスクリプションに登録しました。
UnrealEngine3とインターフェイスがだいぶ違うので戸惑っています。

とりあえずwindowsのバイナリをインスールしました。

cascadeやMaterialを見た限りでは内容がUE3と同じような印象なので
インターフェイスに慣れれば、それなりに使えるのではないかと思っています。














PBRだと、マテリアルの見え方もぜんぜん違いますね。

2014年4月2日水曜日

[UDK]UDKにsubstanceファイルを読み込んでみる

少し前にsteamでsubstanceを購入したのですが、まったく触っていませんでした。
先日参加したsubstanceセミナーを機にこれからsubstanceについて使い方を覚えていきたいと思います。

セミナーではMayaでsubstanceの読み込み方をやっていたので、今回はUDKでのsubstanceの読み込み方を試してみました。

まず、読み込みsubstanceを用意します。
今回はsubstancePlayerに付属しているレンガのsubstanceを使用しました。

□Substance Player

UDKを起動して、コンテンツブラウザーで右クリック、importを実行します。

C:\Program Files\Allegorithmic\Substance\Player\4.x\samplesに入っている
bricks_008.sbsarを選択。
















substanceファイルが読み込まれます。
詳細はわかりませんがSubstance Instance Factoryが読み込んだsubstanceのファイルだと思います。
となりのSubstanceGraphInstanceがsubstanceで定義されているパラメータになります。






















パラメータを変更するとリアルタイムにコンテンツブラウザーのテクスチャーが更新されます。

しかしsubstanceを読み込んでもマテリアルが生成されるわけではないのでマテリアルを作成する必要があります。
コンテンツブラウザーで右クリック、New Materialを選択します。

Material Editorでsubstanceで作成されたテクスチャをマテリアルにコネクションします。
Material Editor上で右クリック、Texture>New TextureSampleを選択します。
Diffuse,Speculer,Normal分の3つのノードを作成し、マテリアルを保存。





















BSPにアサインしてみました。

















マテリアルをアサインしてもsubstanceのパラメータの変更はリアルタイムに更新されます。