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

2016年6月30日木曜日

図書館のインタビュー(日本語原文)

ここ数ヶ月かけて作成した図書館のシーンをアップしたところ、たくさんのリツートやいいねを頂きました。
たくさんの反響をいただけて嬉しいです。ありがとうございます。

更にうれしいことに80lvというアーティストのインタビュー記事を載せている海外のサイトから
図書館についてインタビューをして頂きました!!!

How to Build Oxford Library in UE4?

すごい方々もインタビューの中でワークフローを紹介しているのですが、
その中に混じって良いのですかと…。
結構やってることしょぼいですよ… という感じですが、なかなかない機会なのでお受けすることにしました。

サイトには英語で記載されていますので、
こちらには編集さんに送った記事の日本語を掲載したいと思います。
(ちょっと日本語固めなのは翻訳しやすいような感じで書いたため…)

【追記2016/.9/01】
Gumroadにてオックスフォード図書館のプロジェクトデータを$1+で販売しております。
簡単な技術解説もついてますので、興味ある方はどうぞ。
【Gumroad】Oxford Library - UE4 Project




2014年12月27日土曜日

マスクの形状を複雑化する方法

Twitterで少し書いた内容をこちらにまとめておきます。


解像度の低いテクスチャのマスクや頂点数の少ないVertexColorなど、
ぼんやりボケたグラデーションのブレンドはクオリティが低く感じます。

そんな時に使える、複雑な形のマスクの形状を作成するノードの組み方テクニックです。



VertexColorのマスクを複雑にする

岩の地面の上に草が生えているような箇所をVertexColorBlendで表現したい場合、
VertexColorだけの表現では自然に草が生えているように見せません。


岩の亀裂にそって草が映えるようにすると、
自然に草が生えているように見せることが出来そうです。


2014年12月4日木曜日

PBRの種類

先日TwitterでPBRの話題が出ていましたので、
ちょっとまとめてみました。


PBRの基礎的な考え方は2012年のSQEXオープカンファレンスの内容が
個人的にはすごくわかりやすかったのでまだ見てない方は参考までにどうぞ。

insideGamesの記事



(補足)
この資料は物理ベースをわかりやすく解説している資料になるので、
厳密には金属もフレネル反射はしているのですが、ほぼ視認できないので、
フレネル”しない”という言い方になっています。

また、非金属も鏡面反射に色がつかないと書いてますが、
色がついてるものもあると考えられます。


今回はわかりやすく理解してもらいたいのでこの表の言い方で進めますが、
正確に言うと金属もフレネル反射はするし、非金属でも色付きの反射をするものもあります。


2014年10月15日水曜日

Object PositionとActor Position

ObjectPositionとActorPositionの違いについて調べました。

一見似たような機能になるのですが、異なるのは取得する座標位置が異なります。

ObjectPosition… アセットのバウンティングボックスの中心の座標位置を取得。
ActorPositon … アセットの基点の座標位置を取得。

マテリアルを使って違いを確認してみましょう。


2014年10月8日水曜日

WorldPosition(絶対ワールド位置)

AbsoluteWorldPositionノードについて勉強してみました。
日本語の名前にするとなんか… いや、いいんですけどね。


WorldPositionノードはその名前の通りワールドの位置を示してくれるノードです。
ワールドの位置とはどういうことなのかを確認してみます。


2014年10月5日日曜日

PixelNormalWSとVertexNormalWS

PixelNormalWSとVertexNormalWSについて少し調べてみました。

pixelのNormal情報まで計算するか、VertexだけのNormal情報を計算するかが大きな違いかなと。


WorldSpaceについて

まず、この2つのノードの最後にはWSの表記があります。
これはWorldSpaceの略です。

VertexNormalWSをEmissiveに接続してみます。


ビューでは以下のように、球体を8方向に分割し、それぞれに色が割り当てられています。
(ちょっとgifが汚いですが…)


これはメッシュに対して、ワールド空間の座標を示しています。
ワールドの座標はgifの左下に出ているものです。

2014年10月3日金曜日

sineについてお勉強

今回はSubstance Designerではなく、UE4のMaterialについてです。

UE4には様々なサンプルが付属されており、マーケットプレイスからダウンロードが可能です。


Materialの数学的なことに関するお勉強をしたい場合は、
Contents Exampleに入ってるMath_Hall.umapを使うと良いです。

このようにたくさんの数学処理のサンプルがあります。
また、ひとつずつノードの解説があるのと、
それを使ってMaterialでどのような表現ができるかのシンプルな例もあるのでわかりやすいです。



それで最近学んだ事を少し備忘録的に残しておきます。
(私はまだ半分ぐらいまでしかみてないですけども…)


sine

sine, cosine, tangentって昔この3つをセットで学んだ記憶がありますが、
このsineはMaterialでよく見かけます。


sineとは-1~1の間を反復している波形のグラフです。
Googleでsin(x)と入力して検索するとこのように波形グラフが表示されます。
(ありがたい機能!!)



このノードの組み方の場合、後ろにTimeノードがついてるので、一定速度で時間が進みます。
つまり、この波形グラフでいうと、x軸に動くということですね。



Time と Sine をつないで返される数値はYの値になるので、
これをそのままBaseColorやEmissiveにつなぐと白から黒に周期的に変わるようになります。



なぜ白黒に変わるのかというと、ここで得られるYの値というのは-1~1の間で動く数値になります。
ConstantノードをBaseColorにつないだ時に0は黒、白は1になりますよね。

-1~1の値が周期的に得ることができるため、
色でみた場合黒から白へ変化し続けるということです。



DebugScalarValues

余談ですが、これを数値的にもっとわかりやすくする事ができます。
MaterialFunctionに DebugScalarValue というのがあります。


このノードを接続し、プレビュー表示にする、
もしくはBaseColorにつなぐと現在取得できている値を確認することができます。


数値を見ていると -0.9~0.9ぐらい (それ以下の数値は早くて見えないです) 
で動いてるのがわかりますよね。

数値で確認したい場合はこのノードを使うと便利です。
Scalarだけではなく、2~4Vectorもあります。




abs

カラーで表示した時に黒の時間が長く感じると思います。
それは0より下の値はカラーの場合0(黒)とみなされてしまうからです。

ここでつないでいるabsノードについて解説します。

absの意味は絶対値。
-の値がついたものを+にします。

-0.9 は 0.9
-0.333333 は 0.33333 


0より下に動いてたものがすべて+の方向になるので波形グラフは以下のようになります。



カラーの表示見ると少し黒くなってすぐ白くなるような緩急のついた変化を見ることができます。



ConstantBiasScale


absの代わりにConstatBiasScaleをつないでみます。

ConstatBiasScaleは入力された値(sineからの値)に
バイアスの値を加算してそれにScaleの値を乗算してくれるとのこと。
Biasが1でScaleが0.5であれば、-1~1の値を0~1に変換してくれるそうです。


つまり、受け取る値は0の場合、
0+1)/0.5 = 0.5

受け取る値が-1の場合
-1+1)/0.5 = 0

という計算をしてくれているということですね。



なかなか感覚的にわかりにくいですが、
これを使った場合の結果はこのような感じ。



0~1の周期で動いてるのが確認できますね。



このように後ろにつなぐノードを変えることで異なる動きを表現することができます。
更に様々な要素をかけていけばより複雑な動きも可能です。




数学はもうほぼ忘れてしまっているので、
Materialの勉強をしながら感覚的に理解を深めていきたいところ。

ブログにアウトプットしてみると自分も更に理解することができるので、
時間はかかるけど継続していけば複雑なのも作れるようになるのかしらね。(遠い目)