株式会社デジタル・フロンティア-Digital Frontier

Header

Main

  • TOP
  • DF TALK
  • RampShaderで簡単なトゥーンシェーディング

RampShaderで簡単なトゥーンシェーディング

2013/4/8

Tag: ,,

はじめに

はじめまして、DFの武山です。

道を歩いていると、桜もだいぶ散ってしまったように感じます。
また、気候もたまに寒くなったりしてちょっと体の調子が…。
それでも、がんばっていきたいと思います。

今回は、トゥーンシェーディングについて簡単に紹介したい思います。
その前に、RampShaderのColor Inputについて説明したいと思います。

Color Inputについて

RampShaderのカラーは以下のように設定されているとします。

また、ライトとカメラの位置は以下のような配置になっています。

・Light Angleの場合

Color Inputに「Light Angle」を指定すると上図のようなイメージになります。
「LightAngle」ですが、この場合サーフェス法線とライトの角度によってランプの色が決定されます。
サーフェス法線をN、ライトをLとすると、

dot(L、N)

つまりLとNの内積で求めることができます。
ランプの一番右側の色は、サーフェス法線が、ライトにまっすぐに向いたときの色を表します。
また、一番左側の色は、サーフェス法線がライトに対して正反対に向いたときの色です。

・Facing Angleの場合

Color Inputに「Facing Angle」を指定すると上図のようなイメージになります。
「Facing Angle」ですが、この場合サーフェス法線と視線の角度によってランプの色が決定されます。
サーフェス法線をN、視線をVとすると、

dot(V、N)

つまりVとNの内積で求めることができます。
ランプの一番右側の色は、サーフェス法線が、カメラにまっすぐに向いたときの色を表します。
また、一番左側の色は、サーフェス法線がカメラに対して垂直に向いたときの色です。

・Brightnessの場合

Color Inputに「BrightNess」を指定すると上図のようなイメージになります。
この場合、拡散ライティングの明るさが1.0以上の場合、一番右側の色が使用されます。
0.0の場合、一番左側の色が使用されます。

この状態で以下のにように、Ramp ShaderのInterpolationを「None」にします。

このようにすることで、シェーディングの色が段階的に変化するようになり、
トゥーンシェーディングに向いたシェーディングになります。

トゥーンシェーディング

RampShaderでトゥーンシェーディングを行います。

まず、HypershadeでRamp Shaderを作成します。

Interpolationを、「Linear」から「None」に変更します。
Color Inputを、「Light Angle」から「Brightness」に変更します。

「Specularity」を「0.0」、「Eccentricity」を「0.0」に変更します。

あとは、以下のようにColorで好きな色を設定します。

この状態でレンダリングすると以下のようになります。

ここから、mentalrayのContourを使用してアウトラインを作成します。
RenderSettingを以下のように設定します。

「Custom Shaders」の「ContrastShader」と「StoreShader」を
以下のように設定します。

「contour_contrast_function_levels1」を以下のように設定します。

ここまで設定したら、Hypershadeで「contour_shader_simple」を作成します。
あとは、以下のようにShadingGroupにcontour_shader_simpleを接続します。
(繋げるのは、contour_shader.outValue → miContourShaderです)

Contour_shader_simpleの設定を適当に設定してレンダリング。
(ここでは、色を青に設定しました)

この状態でレンダリングすると以下のようになります。

これでトゥーンシェーディングについてはおしまいです。

トゥーンシェーダといえば、アニメによく使われますよね。
ここからは、アニメつながりでアニメについて書いていきます。

BlackJackついて

BlackJackは、漫画家の手塚治虫さんの作品の一つです。
OVAや、TVシリーズなどアニメ化もされています。

内容は、医師免許を持たない天才外科医のBlackJack(本名:間 黒男)が、難病や奇病を
治すというのが大まかな流れです。

おもしろいのは、必ずしも治せるというわけではないところです。
失敗も結構してます。

また、多額の手術代を請求したりして、悪徳医師のように描かれたりもしています。
その辺が、一般的な主人公とはちょっと違うのではないかなと思います。

OVAについて

BlackJackのアニメ化は、自分が知る限りこのOVAが最初じゃないかと思います。
第一話の製作は、1993年に行われています。
今から、なんと20年前です。

当たり前ですが、メディアもDVDとかレーザーディスクとかではなくVHSです。
(現在では、DVDでの販売になっています)

自分が見た時点では、全10話でした。
現在では、全12話になっています。
(2011年に2話追加されています)

OVAですが、基本的には原作のストーリーを踏襲しつつ、OVAオリジナルの要素が加えられています。
また、OVAオリジナルストーリーも2話ほどあります。

このOVAなんですが、作画のクオリティが非常に高いです。
現在では若干古い印象を受けますが、まだまだ通用するレベルだと思います。

個人的に好きな話は、第5話の「サンメリーダの梟」です。

少年の身体を診察したBlackJackが、少年がかなり昔に手術をされていることに気づきます。
そして、手術の技術力の高さから、執刀した医師に会いたいと思いサンメリーダという場所に向かうという
話です。

この話は、全体的に不思議でちょっと切ない感じがします。
サンメリーダという場所を知らないはずの少年が、なぜか村の地形を知っていたり、
体験したことのない過去がフラッシュバックされたりし、徐々にサンメリーダという場所でなにが
起こったのかということが解き明かされていきます。

ちょっと気になった人はレンタルビデオ屋さんにもあると思うので、借りてみてください。

かなり昔のOVAなので、公式のホームページはもうないようです。

リンクは貼れませんが、googleなどで検索すると個人の方の紹介記事など結構ヒットすると思います。

それではノシ

これでトゥーンシェーディングについてはおしまいです。
トゥーンシェーダといえば、アニメによく使われるのでここからは、
アニメについて書いていきます。

コメント

コメントはありません

コメントフォーム

コメントは承認制ですので、即時に反映されません。ご了承ください。

CAPTCHA


 

*