3DCGツール「MikuMikuDance」のエフェクトを拡張する「MikuMikuEffect」 専用モデルを利用したエフェクト

CodeZine / 2012年11月12日 14時0分

またどこかで!

 本連載では、3DCG作成ツール「MikuMikuDance」にエフェクトを追加する「MikuMikuEffect」の使用方法と、エフェクトを構成するHLSLコードについて、6回に渡り解説していきます。最終回となる今回は、専用モデルデータを利用したエフェクトの作り方を解説していきます。

■作るエフェクト紹介と準備

 今回は今まで制作したシェーディングエフェクトやポストエフェクトとは違い、専用モデルを利用したエフェクト、「ラインエフェクト」を作ります。

●ラインエフェクトとは

 ゲームなど、主にリアルタイム3D映像で広く利用されているエフェクトで、3D空間に線を引いているように見えるエフェクトです。

 それを実現するために、過去の連載で紹介したエフェクトとは違い、頂点シェーダを用いて専用モデルの頂点を個別に動かし、下の図のようにひも状に変形させます。

完成図


●エフェクト作成準備

 まずサンプルデータをダウンロードし、「作業開始用」フォルダ」内の「Line.x」をMMDに読み込みます。

Line.xを読み込んだ所


 データの作成には3Dモデリングソフト「Metasequoia」の、「基本図形」機能を利用しました。

Line.xの構造(モデリングソフト画面)


 こちらの画面のみでは分かりづらいので、以下で構造を解説します。

●モデルデータ構造

Line.xの構造(頂点の配置)

 専用モデルデータ「Line.x」の頂点座標は上のような構造で、エフェクトを使用しない場合はポリゴンが分割された正方形の形をしています。

 実際は100分割されており、各頂点のZ座標がちょうど0、0.1、0.2、...、0.99、1.0となるようにしています。

 このZ座標はそのまま、頂点シェーダ上で頂点を動かす際に「現在どの位置の頂点を計算しているのか」を知るために利用できます。

Line.xの構造(UV値)


 モデリングツールから書き出したそのままではありますが、UV値はこのようになっています。なお、このUV値を利用したテクスチャの貼り付けについては後述します。

 この頂点郡を「頂点シェーダ」を利用して動かすことでラインを描きます。

 では、エフェクトファイル「Line.fx」を編集していきましょう。



■関連記事

■記事全文へ

CodeZine

トピックスRSS

ランキング