MMDで「アニメ風」画像を作って
みようという事で比較的簡単な
方法<<ステップ1>>からスタ
ートし3段階に分けて<<ステッ
プ2>>まで紹介してきました。
-・-MMDモデルを「アニメ風」に見せる
・材質や影は(原則)単一色
・影と輪郭線(エッジ)をつける
2つのポイントクリアでOK-・--・-
<<ステップ1>>
・MMDエフェクト/シェーダーで作成
先ほど書いた
・材質や影は(原則)単一色
・影と輪郭線(エッジ)をつける
こういった事はMMDエフェクト
でだいたい出来るので以前
紹介した<<ステップ1>>で
使用するエフェクトについて
おさらいしておきましょう。
モデルの色を好きな色で塗
れる[[単色Color_Shader]]
の使い方の具体例を載せて
みました。
([単色Color_Shader]配布ページ)
製作者:mo様/そぼろ様
https://bowlroll.net/file/45044
([単色Color_Shader]FXファイル)
[単色Color_Shader]の使い
方はMMD画面右上MMEffect
エフェクト割当でMainタブの
モデルPMXファイル名をクリッ
クして編集のサブセット展開で
モデル材質名を表示させて
その材質名を選びWhite
ShadowOff.fxなどをファイル
選択で開くと材質が指定した
色で塗りつぶされます。
(M4LayerやExcludeとの
併用も可能です。)
[単色Color_Shader]では
すでに16色用意されてますが
それ以外の色を使いたい場合
モデルを画像出力しペイント
ソフトのスポイトツールで色数
値を出して電卓で計算します。
(スポイトツールで色計測)
R:G:B:に表示された数値は
[単色Color_Shader]でそ
のまま使えないので少し計
算が必要です。
([単色Color_Shader]の
Rを0.5にする時はペイント
ソフトで出した色数値のほう
はG÷R×0.5で出します。)
[単色Color_Shader]の
FXファイルはメモ帳など
で開いて書き換えれば
色が変えられます。
(例えば下記の記述コー
ドをコピーして拡張子.fx
で保存すれば使えます。 )
([単色Color_Shader]用
ヘタリア・アメリカモデルの
髪の毛の色数値)
////////////////////////////////////////////////////////////////////////////////////////////////
// パラメータ宣言
float4 DrawColor = float4(1, 0.746, 0.416, 1);
// 座法変換行列
float4x4 WorldViewProjMatrix : WORLDVIEWPROJECTION;
///////////////////////////////////////////////////////////////////////////////////////////////
// オブジェクト描画
struct VS_OUTPUT
{
float4 Pos : POSITION; // 射影変換座標
};
// 頂点シェーダ
VS_OUTPUT Basic_VS(float4 Pos : POSITION)
{
VS_OUTPUT Out;
Out.Pos = mul( Pos, WorldViewProjMatrix );
return Out;
}
// ピクセルシェーダ
float4 Basic_PS() : COLOR0
{
return DrawColor;
}
// オブジェクト描画用テクニック
technique MainTec < string MMDPass = "object"; > {
pass DrawObject {
VertexShader = compile vs_2_0 Basic_VS();
PixelShader = compile ps_2_0 Basic_PS();
}
}
// オブジェクト描画用テクニック
technique MainTecSS < string MMDPass = "object_ss"; > {
pass DrawObject {
VertexShader = compile vs_2_0 Basic_VS();
PixelShader = compile ps_2_0 Basic_PS();
}
}
////////////////////////////////////////////////////////////////////////////////////////////////
// 輪郭描画
// 頂点シェーダ
float4 ColorRender_VS(float4 Pos : POSITION) : POSITION
{
// カメラ視点のワールドビュー射影変換
return mul( Pos, WorldViewProjMatrix );
}
// ピクセルシェーダ
float4 ColorRender_PS() : COLOR
{
// 輪郭色で塗りつぶし
return DrawColor;
}
// 輪郭描画用テクニック
technique EdgeTec < string MMDPass = "edge"; > {
pass DrawEdge {
AlphaBlendEnable = FALSE;
AlphaTestEnable = FALSE;
VertexShader = compile vs_2_0 ColorRender_VS();
PixelShader = compile ps_2_0 ColorRender_PS();
}
}
///////////////////////////////////////////////////////////////////////////////////////////////
// 影(非セルフシャドウ)描画
// 影なし
technique ShadowTec < string MMDPass = "shadow"; > {
}
///////////////////////////////////////////////////////////////////////////////////////////////
// セルフシャドウ用Z値プロット
// セルフシャドウなし
technique ZplotTec < string MMDPass = "zplot"; > {
}
///////////////////////////////////////////////////////////////////////////////////////////////
[単色Color_Shader]で
好きに色が作れるとPMX
エディタのテクスチャ変更
でモデル改変する手間が
なくて時間短縮にもつな
がります。
<<ステップ1>>で[単色
Color_Shader]を使いこ
なせるようになったら今度
は<<ステップ3>>で画像
合成やモデル改変など
表現の幅を広げる方法に
ついて見ていきたいと思い
ます。
_1___2___3___4___5___
<おまけ>
3DCGモデリング用に目の
テクスチャを作りました。
前にmeri用に作ったのが
コチラです。
(モデリング用テクスチャ)
今回は目の虹彩をきちんと
描きたかったので前とは
異なる方法で描画しました。
(今回作ったテクスチャ)
少しリアル系よりですが
Photoshopのフィルター
機能で思い通りの虹彩
が出来たので自分とし
てはわりと気に入ってます。
実際に装着して似合うと
いいなあ。