2018年8月23日21:12シェーダーとは仮想の3D空間に存在するオブジェクトを2Dのモニターに表現するためのプログラムのことであり、フォトリアルやトゥーン調といったビジュアルのテイストをコントロールするためにも重要な要素だ。360といった前世代機の頃から、このシェーダーを自由にカスタマイズするプログラマブルシェーダーという技術が発展してきた。今では全体のグラフィックスのライティングやテイストを決定づけるだけではなく、さまざまなエフェクトやビジュアル表現にもシェーダーを利用することが一般的だ。カプコンの高木康行氏。アーティストによるシェーダー作成のノウハウ」という講演が行われた。シェーダーをプログラミングするのはプログラマーであったり、テクニカルアーティストだったりするが、本講演ではアーティストが自分でほしい絵を表現するためにシェーダーを利用するテクニックが解説された。高木氏はもともと『モンスターハンター』や『バイオハザード』シリーズのパッケージアート作成していたが、その経験を活かしてエンジン開発のサポートも行うようになり、『モンスターハンター:ワールド』ではモデルの作成だけではなく、シェーダの作成も行うことになったそうだ。前述のように、一般的にアーティストが自分の求める表現をシェーダーとして取り入れたい場合は、プログラマーやその間を取り持つテクニカルアーティストに相談して実装することになる。ビジュアルに関する知識やセンスを必ずしもプログラマーが持っているわけではないため、非常にもどかしい思いをすることがあるそうだ。そこでアーティストである高木氏自身がシェーダーを自身でプログラミングすることになった。本セッションでのシェーダーはゲーム全体のライティングやテイストを決めるものではなく、描画するモデルをその素材感などに合わせてカスタマイズする「マテリアルシェーダー」と呼ばれるものだ。具体的にはモデルが持っている色や法線、光沢といったパラメータをカスタマイズすることで独特の質感を表現する。ゲーム内ではそのあとにライティング等のシェーダーが適用されることで最終的なビジュアルが決定される。このマテリアルシェーダーの機能は簡単に説明するとフォトショップのレイヤー加工のような処理ができるという。2つのレイヤーの乗算、加算、レイヤーマスクといった表現がシェーダーでも可能。テクスチャを利用することでモデルに重ね合わせたり、覆い焼きをしたり、グラデーションをつけたりすることができる。ほかにもシェーダーで利用できる命令はあるが、今回紹介されたシェーダープログラムはほとんどこれらの3種を混ぜ合わせることで作っているそうだ。シワやたるみを表現するノーマルマップのブレンド最初に紹介されたのが「ノーマルマップ(法線マップ)」の合成だ。ノーマルマップは陰影でモデルに擬似的な凹凸をつける表現だが、ここではアンジャナフの脚の部分やキャラクターの表情のシワなどが紹介された。次に紹介されたのは同じモデルから複数のバージョンを作るシェーダー。ご存知の通り、本作では多様なモンスターが登場するが、何度も戦うモンスターもいれば、群れで登場するものもある。これらのモンスターの個体ごとの差がないと、どうしてもコピーアンドペーストで作ったようなチープな感じになるが、シェーダーで個体差を入れることで工夫しているそうだ。具体的には、上位のモンスターのなかでも一段強い「歴戦の個体」に関しては、そのモンスターを象徴するようなカラーをメタリックに強調することでグレード感を演出している。アプトノスのような群れを持つモンスターは、その縞模様を複数のテクスチャの合成によってバリエーションを作っている。川の水のような動きのある環境でもシェーダーは利用されている。「フローマップ」と呼ばれる手法では元のテクスチャをUV空間でアニメーションさせ、擬似的に波が発生しているように見せることが可能だ(Vavleが『Portal2』で発表したテクニックとして知られている)。本作では川だけではなく、ヴォルガノスの溶岩のような皮膚の表面でもこの手法を利用している。川と違ってヴォルガノスは動き回るため、そのまま適用すると溶岩の流れが上方向になってしまう。そこで「dot」という2つの向きの一致を判断する関数を利用することで、重力の方向とモデルの表面のUV座標を比較して常に下に流れるようにしている。ネルギガンテのトゲの飛び出しはテクスチャで描いてコスト減ほかにもモンスターの動きをシェーダーで表現している例として、ネルギガンテのトゲがあげられた。頂点シェーダーはモデルの頂点の位置を変更できる。頂点の移動位置はテクスチャのRGBの色空間を利用して指定できるため、テクスチャによってやや強引にネルギガンテのトゲが飛び出す動きを表現している。いった手法は実際のモデルにジョイントを入れて動かすよりコストが安くできるのが特徴だ。ノイズ&モーションブラーでアイルーのやわらかな短毛を表現コンパニオンキャラクターのアイルーにもシェーダーが活用されている。毛の表現は毛の断面を描いたポリゴンでモデルを覆い尽くすシェル法(『ワンダと巨像』で使用されていたことで知られている)や、短冊ポリゴンを毛として生やす方法が一般的だが、どちらも負荷が強いことで知られている。そこでアイルーの毛の表現では表面にノイズを乗せ、モーションブラーを入れるシェーダーで擬似的に表現している。この表現はハンターの髪の毛にも利用されているが、フサフサと思いきや実はブレブレであるかなりの荒業だ。自然の世界にはチョウやタマムシ、鉱物など光の角度によってシャボン玉の表面のように輝くものが存在する。このような油膜の色を表現するためにもシェーダーを利用している。実際の油膜の色は反射光と屈折光の干渉によって起こっているが、それらのRGBを分析するとそれぞれの要素がズレつつ、波を描き、減衰していることがわかる。これをサイン波によってシミュレーションすることで、甲冑や玉虫色のような表現を実現している。このシミュレーションは物理的には完全ではないが、アーティストの観察力によって十分な見た目を実現しているという。プログラマーも驚いた「お香シェーダー」さらに「お香シェーダー」という不思議な名前のシェーダーが登場した。これは本作で回復ミツムシを呼ぶための「お香」専用のもので、火がついて徐々に燃えて消えていく表現を実現している。なんとお香の中にはポリゴンがぎっしり詰まっており、中身ごと立体的なグラデーションを施し、ポリゴンを徐々に消すという力技を行っているという。透過して見せたいものをカメラに寄せて描画する最後の「疑似透過シェーダー」も大胆なもので、ラスボスなどで骨や血管の透過表現に利用されているそうだ。透けているように見えるが実は骨や血管の部分をカメラ側に寄せる一種の錯視で成り立っている。中身が透けているというよりも骨や血管がカメラに追随する形で手前に描画されているというわけだ。以上のように8つのテクニックは技術的にはそれほど難しいものではない。求める絵に応じて人間のものの見方をうまく利用したある種のトリックと言えるだろう。講演では高木氏はプログラマーに頼むと真面目に実装した結果、難解で高コストになりがちなところ、アーティストの観察力と直感力を活かせば、扱いやすい手法が生まれ、費用対効果がよいと話していた。今後はアーティストがシェーダーに関わることが増えてくるだろうがまだまだ敷居が高いと思われ、シェーダーアーティストの認知度が低いため、人材は不足しているそうだ。それでもシェーダーを作ることは楽しく、開発にメリットが多いことを強調して、講演が終了した。Comments『モンスターハンター:ワールド』の出荷本数が全世界で1300万本を突破!大記録を記念して攻撃珠を含むアイテムパックが7月26日から配信コメントコメントを見るためにはJavaScriptを有効にする必要があります。Japanはライセンスを受けて(株)産経デジタルが運営しています。