- アニメ調の表現ができるトゥーンシェーダー
- 水面の動きを再現できる水面シェーダー
- 光源の位置に合わせて影を描画するシェーダー
などなど。これらのシェーダーを自由に書けるようになるためには、Unityの使い方とC#プログラミングを知ってるだけでは書けません。
それとは別にシェーダープログラムの書き方を学ぶ必要があります。そこで今回はUnityでシェーダープログラムを勉強する方法や役立つ参考書を紹介します。
シェーダーとは?
シェーダー(英: shader)とは、3次元コンピュータグラフィックスにおいて、シェーディング(陰影処理)を行うコンピュータプログラムのこと。「shade」とは「次第に変化させる」「陰影・グラデーションを付ける」という意味で、「shader」は頂点色やピクセル色などを次々に変化させるもの(より具体的に、狭義の意味で言えば関数)を意味する。
Wikipedia – シェーダー
要約すると、「画面描画のベースとなるプログラム」のことです。シェーダープログラムを記述することで、アニメ調の表現ができたり、特殊なライティング・水面などを再現できるため、ゲーム開発では必須ともいえます。
シェーダー技術は難易度が高い
シェーダーはゲームプログラミングの中では難易度が高く、自由自在にシェーダを記述できるプログラマーはUnityプログラマと比べると少ないです。
そもそも基礎的なシェーダーを書ける人すら多くないでしょう。
もちろん難易度が高いだけであって、コツコツと勉強すれば知識は身につきます。
UnityでもUnreal Engineのようなグラフィックスを再現できる
Unityのデフォルトのシェーダーと言うと、ごくシンプルなシェーダーであるため、Unreal Engine と比べると安っぽく見えてしまいがちです。
Unityのデフォルトシェーダー に対して Unreal Engine のデフォルトシェーダーは初めからしっかりしています。
これらはあくまでデフォルトのシェーダーてあり、Unityでもリアリティな影をシェーダーで再現したり、アニメ調のレンダリングをすることも可能です。
シェーダーの勉強なら書籍がオススメ
本来であれば凝ったシェーダーを書くためのプログラムをゼロから学ばないといけませんが、シェーダーを書ける人が少ないからかシェーダーに関する情報があまり多くありません。
ですが、Unityとなると話は別で、Unityでシェーダープログラムを扱う基礎が解説されている入門書が多数出版されています。
Unityで動作する前提で解説されているので、Unity用にシェーダーのサンプルコードを書き換える必要もなく、かなりとっつきやすいです。
さらに、Unityはゲームをビルドしなくてもリアルタイムでシェーダーによる描画を確認できるので、値を少し変えて描画を繰り返してどのように変化するかどうかも目で見て確認、学ぶことができます。
Unityの基本は理解しておくこと
Unityでシェーダーに手を出す場合、「Unityの基本的な使い方やプログラミングをある程度理解している」ということが前提条件です。
そのため、Unityの基礎知識すら曖昧という方は、まずUnityの基本から身につけましょう。そうしないとシェーダー以前にUnityの使い方やプログラミングの基礎でつまずくことになり挫折してしまいます。
おすすめのUnityシェーダー参考書
ゲームアプリの数学 Unityで学ぶ基礎からシェーダーまで
シェーダープログラムはあまりよく理解しないまま書いてしまうと、処理負荷が高くなってコマ落ちや処理落ちの原因になってしまいます。
この書籍ではパソコンと比べると圧倒的に性能が低いスマホでも実用できるシェーダーの書き方を学ぶことができます。
ただただ綺麗なグラフィックをシェーダーで再現するだけでなく、処理負荷のことも考えてプログラミングできるので、シェーダーの基礎がとても身につきます。
BASIC×SHADER: Unityで学ぶシェーダープログラミング
本格的なシェーダープログラミングを学びたいならこちらの一冊がオススメです。
- C#など何かしらのプログラミング言語使用経験
- 高校数学知識
最低でも上記2つの知識が必要であるため、プログラミング完全未経験者はお断りの内容になっています。
そのかわり、シェーダーの学習にページが多く割かれています。
Unity以外でも応用できる内容になっているので、Unity以外でも通じるシェーダープログラミングスキルが欲しいという方にも最適です。
実践! ユニティちゃん トゥーンシェーダー2.0 スーパー使いこなし術
トゥーンシェーダーに特化したUnityシェーダー参考書です。トゥーンシェーダーはVtuberモデルなど3Dモデルをアニメ調に表現する際に使われるものであり、汎用性がかなり高いです。
こちらの書籍はただただシェーダーの書き方を学ぶのではなく、シェーダーの基本から詳細まで理解していこうという構成になっているので、シェーダーをなんとなくかけるけど正直なところはあまり理解していないという問題が起きません。
自由にグラフィックを表現したいならシェーダー知識をつけよう
Unityエンジニア・プログラマとしてゲームのグラフィックの表現を自由自在に操りたいならシェーダーをマスターしましょう。
シェーダーを理解しているというだけでかなり貴重な人材にもなりますので、趣味ではなく仕事でUnityを使いたい場合はシェーダーの習得を頑張りましょう。