Onoty3D

Unityに関するメモとか

Unityでプロ生ちゃん新モデルのスパッツ・靴下・靴の表示を切り替える

年末年始にかけて行われた、プロ生ちゃん3Dモデル強化プロジェクト、覚えていますでしょうか。
motion-gallery.net

現在着々とモデルが出来上がってきておりますが、通常頭身のMMDモデルは既に出資者に公開されており、先行利用が可能となっております。
f:id:onoty3d:20160425173928p:plain
f:id:onoty3d:20160425173944p:plain

今回からスパッツ、靴下、靴が材質モーフ表現へ変更となっており、これらパラメータを変更することで材質の表示・非表示が可能となっております。
MMD4MecanimでUnityに取り込んだ場合でもMMD4Mecanim標準のShaderを利用した場合はこれら材質モーフはきちんと表現可能です。
ただし、別のShaderを利用した場合は、下図の様にZファイティングしてしまいます。
(左がMMD4Mecanim標準のShader、右がToon/Lit Outline Shader)
f:id:onoty3d:20160425174017p:plain

このような場合でも、別途透明なマテリアルを用意して、非表示にしたい材質のマテリアルを手動でそれと置き換えればうまく表示はできます。
(材質モーフの様に靴下を50%表示・素足を50%表示…とかは出来ませんが、通常は0%か100%のいずれかしか使わないハズ)

手動でひとつひとつ置き換えるのも面倒なので、スクリプトを作成しました。ソースは最後。
透明なマテリアルだけ別途ご用意ください。
↓こんな感じで
f:id:onoty3d:20160425174101p:plain

スクリプトをプロ生ちゃんモデルに適用したら、TransprentMaterialに透明なマテリアル、SkinnedMeshにスパッツ等を含む方のSkinnedMeshRendererをセットしてください。
f:id:onoty3d:20160425175417p:plain
実行中にShow Spats/Socks/Shoesのチェックを切り替えることで表示が切り替えられます。
f:id:onoty3d:20160425174142g:plain

ソース