きどレイの人間生活

コンピュータ寄りな人間生活をする大学生のブログ

SURIYUNモデルの輪郭線の太さを調整する

こんにちは。きどレイです。

SURIYUN氏の3DモデルをUnityで使うとき、デフォルトのカメラ設定だと輪郭線が異常に太くなります。
f:id:KidoLei:20180810031716p:plain:w600

今回は、その問題を解決していこうと思います。
解決の仕方は3つ見つけましたので、それぞれ紹介します。


カメラの設定を変更する

1つ目は、カメラの設定を変更するやり方です。
これは、SURIYUN氏の3Dモデルを買ったときに付いてくるSceneでやられていた方法です。
やり方は、カメラのInspectorのField of Viewを10にするのと、Clipping PlanesのNearを0.01にしてカメラを遠ざけるだけです。
ただ、この方法だと、被写体をものすごい遠い距離からものすごくズームして撮っていることになるので、途中に障害物があると映らないというデメリットがあります。また、デフォルトの設定と比べ、画角が違ったり、カメラを移動や回転させる際の動きが違ったりもします。
f:id:KidoLei:20180810032046p:plain:w600


Shaderの種類を変更する

2つ目は、Shaderの種類を変更する方法です。
やり方は、UnityChan/SkinのShaderが使われている部分を別のShaderに変更するだけです。
UnityChan/Skin-TransparentというShaderはUnityChan/Skinとほぼ一緒の雰囲気になるのでお勧めです。
ただ、この方法は被写体にも影が映るUnityChan/SkinのShaderと違い、被写体に影は映りません。
f:id:KidoLei:20180810032929p:plain:w600



このやり方については、こちらのブログの方が詳しく書かれていると思います。
takeda-san.hatenablog.com



Shaderのプログラムを書き換える

3つ目は、Shaderのプログラムを書き換えるやり方です。
これは、輪郭線のShaderプログラムを直接いじって輪郭線の太さを調整する方法です。
やり方は、Assets/Suriyun/UnityChanShader/Shader/CharaOutlineのファイルを開き、50行目にある

#define OUTLINE_NORMAL_SCALE_MIN (0.003)
#define OUTLINE_NORMAL_SCALE_MAX (0.030)

の数値を小さくすれば輪郭線の太さを調整できます。
私はいつも

#define OUTLINE_NORMAL_SCALE_MIN (0.0003)
#define OUTLINE_NORMAL_SCALE_MAX (0.0003)

に変更して使っています。
もちろん、もっと小さい数値にすれば輪郭線はさらに細くできます。
f:id:KidoLei:20180810032346p:plain:w600




以上が、SURIYUNモデルの輪郭線が異常に太くなる問題の解決方法でした。
よかったら参考にしてみてください。

ではでは。