http://polytoys.boo.jp/
本サイト内に掲載されているのイメージ、ムービー
文書の無断使用、複製、改変はしないでね。
Please do not carry out alteration of the data of this site, and reproduction.


mmv用シェーダを使う。(1)

デスクトップフィギュアの可能性を広げてくれたmmviewerですが、GLSLというシェーダ言語を使用してさまざまなシェーディングが可能です。

そんなシェーディング言語を簡単に使うためにtakaにゃん氏と共同で誰でも使えるようなシェーダを作りました。

デスクトップフィギュアの可能性の一助となれば之幸いです。

ファイル構造概念図

シェーダの記述式はmmsでコントロールされています。

mmsファイルについて、

mmsファイルにはメタセコで定義した材質名をもとに、シェーダを関連づけするファイルです。

内部構造は

#ConfigFile Ver1.00設定文章(変更不可)

@VertexShader,cel_paint.vert(使用するシェーダファイル名)

@FragmentShader,fo-shader.frag(使用するシェーダファイル名)

@ExTexture,XXX.bmp(シェーダ上で使用するテクスチャtex2)

@ExTexture,XXX.bmp(シェーダ上で使用するテクスチャtex3)


foシェーダではhheaven氏の制作したcel_paint.vertを使用します。(内容は全く一緒)

tex0はメタセコ上の「模様マップ」

tex1はメタセコ上で設定した「透明マップ」なので注意が必要です。

また、メタセコ上のファイルネームの大文字小文字も、zip圧縮時に起こられる可能性があるので、
手打ちする場合は注意してください。


fo_shaderについて、
maxやlightwave等で使われるフォールオフ効果と透明、バンプマップ、スペキュラレベルの調整が可能なシェーダです。
以後に使用方法を記述します。

まずサンプルをmmviewerにてご覧ください。
zipのまま、mmviewerに放り込むと見ることが出来ます。
サンプル(toonつき)

サンプル

OpenGLシェーダーに対応していれば見られると思います。
第9世代ビデオカードといわれているものなら問題なく見られるはずです。

コントロールキーを押しつつ、右マウスドラッグをすると、ライトの位置が変わります。
くるくる回すと全体のテクスチャがfo_01.bmpに、影の部分がfo_02.bmpに変化しているのがわかると思います。


全体の説明をしていきます。


fig.0
事前の準備


UVWアンラップします。アンラップしない場合はテクスチャのど真ん中に全体のポリゴンが入るようにしておくと良いです。
このフォールオフシェーダではピクセルの上下2ピクセルずつをフォールオフマップ用に使用します。
なので、UVWアンラップされた上下の2ピクセル分はポリゴンが乗っかっていない状態にしてください。
テクスチャは512pixで制作することを想定してあります。(変更の方法は後述)

材質の名称はmmsの名称と同じにして関連付を行うので、わかりやすい名前をつけましょう。

まずメタセコの材質設定で「コンスタントシェーダ」にして、明部のマップを「模様」に適用しておきましょう。
シェーダが適切に動けばコンスタントシェーダ自体は利きませんが、ビデオカードがGLSLに対応していなかった場合を想定して、
そのようにしておいたほうが無難でしょう。



fig.01



暗部に適用するテクスチャを用意します。(fo-02.bmp)

明部に使用するテクスチャの上端と下端にグレースケールのグラデーションを書き込みます。
最初は下図のfo_01.bmpのように左から右へのグラデーションにしておくと無難でしょう。




fig.02





上部はフォールオフレベルのグラデーション値です。
段階階調だとセルシェードのように、
グラデーションがカラーだと
マジョーラ塗装のような効果が生まれます。



fig.03




下部は光沢サイズをあらわしています。
真っ黒だと光沢なし、
真っ白だと広く光る感じ、

カラーを適用すると光沢部に色が付きます。

一番左端を真っ黒にしておかないと全体に加算がかかったような効果になるので注意してください。

また、後述するテクスチャ0aの光沢が真っ白の部分にのみ適用されます。




fig.04

fo-0aテクスチャについて、

fo-0aテクスチャはフォールオフ効果に
3種類の効果を与えます。

R,G,Bの各チャンネルにグレースケールで描画することによって、効果を得ることが出来ます。

Rは透明度設定、

Gはバンプ設定

Bは光沢レベル設定です。

Rは透明部分の設定が可能です。

白い部分は不透明で、黒い部分が透明になります。

Gはバンプです。

白い部分が飛び出して見える効果です。一般的なバンプ同様、オブジェクトを変形させるものではないです。

最大バンプレベルはfoshader.vert上で設定を行います。

(14行目の「BPP = 5.0」の5の値を増減させる)

Bは光沢レベルをあらわします。

白いところは光沢が強く、黒いところには光沢は生まれません。読み込みを使います。

現段階では何の効果も使わない場合もこのファイルは必要になります。






fig.05


foshader.vertについて、

デフォルトではテクスチャサイズが512pixで制作することを想定してありますが、

fo-shader.frag内13行目の「MAPs = 512.0;」の512を変えてやると他のサイズにも対応可能です。

0aが無いと、勝手に01を元に効果を適用してしまうので、

何も効果をかけないときは真っ黒のファイルでいいので、ファイルを置いておく必要があります。


このシェーダを使ったいろいろな効果


UVWアンラップしてあることを前提としているので、部分に応じて効果の強度や色を調整可能です。


以上、更新があったり、質問等があれば追加していきます。








http://polytoys.boo.jp/
本サイト内に掲載されているのイメージ、ムービー
文書の無断使用、複製、改変はしないでね。
Please do not carry out alteration of the data of this site, and reproduction.