作るエフェクト紹介と準備
今回は今まで制作したシェーディングエフェクトやポストエフェクトとは違い、専用モデルを利用したエフェクト、「ラインエフェクト」を作ります。
ラインエフェクトとは
ゲームなど、主にリアルタイム3D映像で広く利用されているエフェクトで、3D空間に線を引いているように見えるエフェクトです。
それを実現するために、過去の連載で紹介したエフェクトとは違い、頂点シェーダを用いて専用モデルの頂点を個別に動かし、下の図のようにひも状に変形させます。
![完成図](http://cz-cdn.shoeisha.jp/static/images/article/6517/6517_01_s.gif)
エフェクト作成準備
まずサンプルデータをダウンロードし、「作業開始用」フォルダ」内の「Line.x」をMMDに読み込みます。
データの作成には3Dモデリングソフト「Metasequoia」の、「基本図形」機能を利用しました。
こちらの画面のみでは分かりづらいので、以下で構造を解説します。
モデルデータ構造
![](http://cz-cdn.shoeisha.jp/static/images/article/6517/6517_add_2.gif)
専用モデルデータ「Line.x」の頂点座標は上のような構造で、エフェクトを使用しない場合はポリゴンが分割された正方形の形をしています。
実際は100分割されており、各頂点のZ座標がちょうど0、0.1、0.2、...、0.99、1.0となるようにしています。
このZ座標はそのまま、頂点シェーダ上で頂点を動かす際に「現在どの位置の頂点を計算しているのか」を知るために利用できます。
![Line.xの構造(UV値)](http://cz-cdn.shoeisha.jp/static/images/article/6517/6517_add_1.gif)
モデリングツールから書き出したそのままではありますが、UV値はこのようになっています。なお、このUV値を利用したテクスチャの貼り付けについては後述します。
この頂点郡を「頂点シェーダ」を利用して動かすことでラインを描きます。
では、エフェクトファイル「Line.fx」を編集していきましょう。