【アートワーク】Unityでオリジナルのシェーダを作ってみた

タイトルのまんまなんだけれども、そういうことだ。

そういえば、Unityのシェーダを自作するのって実は初めてだったりする。

Unityのシェーダは、ShaderLabという独自のスクリプトで作るんだけれども、これは実際には一般的なシェーダーであるCgだかHLSLだかに変換されて使用される。

なので、いくつかお決まりの記述箇所を除けば、Cgという言語で書くのとほぼ変わらない。

ちなみにCg言語とはウィキペディアによると。

CgはNVIDIAが開発したプログラミング言語である。GPUプログラミングのために特化・最適化されており、CG描画に向いている。この言語名の由来は「グラフィックスのためのC言語」(C for Graphics)であり、C言語をベースとした文法を持つ。また、C++言語の類似機能も一部取り入れている。 ~ウィキペディア「Cg (プログラミング言語)」から引用

また、新しい言語を覚えないといけない。わはは。

言語自体はC言語に近いものらしいけれど、結局APIの使い方次第なので一から学ぶようなもんだ。

とはいえ、シェーダはいつか書かなければと思っていたので、これを機に少しずつ勉強して行こうと思う。

ところで、今回作った自作のシェーダだけれども、冒頭の画像にあるように、擬似ハッチングのような効果を出してみた。

やっていることは簡単で、通常のテクスチャに加えて、かけ網のテクスチャを追加する。

カメラから頂点までのベクトルと、法線がなす角度が90度に近づくにつれて、かけ網テクスチャの色情報がブレンドされる、というものだ。

もちろん、このままではぜんぜん使い物にならなくて、カメラの方向ではなくて、ライトの方向を基準にしなければならないと思う。

あと、かけ網のかかり具合も、今は単純に線形に増しているけど、このへんも調整が必要だろうなあ。

勉強しながら、おいおい改良を加えていこうと思う。

そういえば、ゲームグラフィクス 2014読了した。終盤のモバイル系の話題は退屈だったけれども、全体的にとても面白かった。

特に『GUILTY GEAR Xrd -SIGN-』の内容は非常に興味深かった。

PS4版は、12月4日に発売される。もちろん、購入予定だ。

4年前

2 コメント

  1. GUILTY GEAR Xrdすごいですよね.
    4gamerの記事しか読んでませんが,よく思いつくよなってことばっかで憂鬱になっちゃいます.

    1. そうですよね。

      ある程度の技術なら勉強でカバーできる部分はあるけれども、結局、表現したいものの具体的なイメージとこだわり、これらのほうが先なんですよね。

      技術はそれを実現するために副次的に生まれるものなのかもしれないなあと感じました。

      あと、よりアニメらしい動きに見せるために、フレーム補間は使わずにステップ補完を手作業で調整してるところとか、なかなか、個人では真似できない(手間がかかる)やり方だなあと思いました。

コメントを残す

メールアドレスが公開されることはありません。