MMDモデルのセルルック化で残るアルファチャンネルの対処法
BlenderのMMD読み込みアドオン(MMD Tools)で読み込んだモデルのシェーダーをトゥーン調、セルルック調、セル画風に変換する時のアルファレイヤーを残す方法。
本記事は、
P様が公開されている こちらの記事(外部リンク)
(以下元記事)の中ではカバーされていない一部のモデルに対する処理方法について、補足・解説する内容となっています。
前提
・使用ソフト: Blender
・バージョン: 4.2.2
・レンダラー: Eevee
・MMDモデル: Sour式巡音ルカVer.1.01(外部リンク)
・使用アドオン: MMD Tools(外部リンク)
・その他: 元記事の作業工程を前提にしています。
問題
元記事では、MMD Toolsの特殊シェーダーを外し、画像テクスチャ(RGB)をシェーダーとして直接繋ぐことでセルルックにする、という流れでした。
(MMD ToolsにToon Shader設定はありますが、光源の影響をシンプルにするためにはこれらの方法が最適と思われます。)
しかし、私が使用したモデルでは、ディティール部分のメッシュを重ねがけして、アルファテクスチャを上乗せする方法を取っているものでした。
元々のやり方はRGBを直接シェーダーに繋ぐため、アルファチャンネルの情報は失われます。
これを私のモデルで実行すると、当然情報がないため、黒塗りになってしまいます。
一方、該当部分だけPrincipled BSDFのままでは、いくらRoughnessの値を上げても光源の影響を強く受けてしまいます。
(Materialの設定やオブジェクトの設定から影を取り除くと描画バグが多発したため、今回それらの方法は断念しました。)
そこで、以下のノードを噛ませることで回避しました。
方法
以下手順です。
準備
必要なものは3つ。
元記事で「マテリアルの編集」で追加したものに加えて、以下3つのノードを追加します。
- Color Ramp (Constant)
- Principled BSDF
- Mix Shader

実行
元のImage TextureのAlphaを、新しく追加したColor Rampに繋いで、Interpolation(補完)をLinearからConstantに変えます。
同様に、元のImage TextureのAlphaをPrincipled BSDFにも繋いで、元記事で追加したMix Colorも添えてMix Shaderに繋ぎます。
最後に、Mix Shaderを出力に繋いで、新しく追加したColor Rampを調整して終了です。
参考資料
- Note (P 様)
【Blender】配布MMDモデルをBlenderでアニメ調にする方法(外部リンク) - BowlRoll MMDモデル (Sour暄 様)
Sour式巡音ルカVer.1.01(外部リンク)
最後に
元記事のコンセプトに影響を与えない手法を施せたつもりです。
閲覧頂きありがとうございました。