Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

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

MikuMikuEffectで学ぶHLSL入門(6)

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2012/11/12 14:00

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

目次

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

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

ラインエフェクトとは

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

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

完成図
完成図

エフェクト作成準備

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

Line.xを読み込んだ所
Line.xを読み込んだ所

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

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

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

モデルデータ構造

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

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

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

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

Line.xの構造(UV値)
 Line.xの構造(UV値)

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

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

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


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

修正履歴

  • 2012/11/13 10:49 Lerp関数の利用 画像のurlを修正

  • 2012/10/18 02:31 記事完成

  • 2012/10/15 23:44 アドバイスに従い間違い修正および文章、画像追加

著者プロフィール

  • ビームマンP(ビームマンピー)

    ニコニコ動画等でMikuMikuEffect用シェーダプログラム開発者として活動。 開発を始めた理由はカッコいいビームやミサイルが作りたかった為。 エフェクト配布用サイト http://www43.atwiki.jp/beamman/

バックナンバー

連載:MikuMikuEffectで学ぶHLSL入門
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5