Raspberlyのブログ

Raspberlyのブログ

Unityネタをメインとした技術系ブログです。にゃんこ大戦争や日常なども。そろそろブログタイトル決めたい

3Dモデルの影を別の影に差し替える

 

この記事はUnity #2 Advent Calendar 2018 2日目の記事です。
今回はオブジェクトの影を差し替える方法を紹介します。

影を差し替えることによって、怪物が人間に擬態しているとか、あるモノが別のモノに変身しているといった演出ができちゃいます。

 

 

1. そもそも影はどうやってできているのか

基本的に、光(Directional Light等)があれば影は自動でできます。

f:id:Raspberly:20181201182650g:plain




3Dモデルを表示(レンダリング)するには〇〇Rendererみたいなものが必要です。
そのため、Cubeやキャラクターの3Dモデルには必ず何らかのRendererがくっついています。

f:id:Raspberly:20181201165809p:plain

 

まずはCubeを見てみましょう。
Mesh rendererがくっついているのがわかります。

f:id:Raspberly:20181201172555p:plain

 

ではユニティちゃんはどうなっているのでしょうか。中を見てみましょう。
モデルの部分は「constume...」と「UTC_eye」と「UTC_hair」になります。

f:id:Raspberly:20181201165824p:plain

Inspectorを見てみると、Skinned Mesh Renderがあるのがわかります。

f:id:Raspberly:20181201171203p:plain

UnityChanの場合、メッシュが3つに分かれているのでRendererも3つあります。

 

 

2. 影のオンオフ

 Rendererが影を作ってくれていることがわかりました。
では影だけを消すことはできるんでしょうか?
実は簡単にできます。

 

各RendererにあるCast ShadowsをOffにするだけです。

f:id:Raspberly:20181201175405g:plain

 

 

3. ニセモノの影

影のオンオフまでできました、この時点で感づいている方もいるかもしれませんが。
本体の影を消し、影用のオブジェクトを用意することで影の差し替えを行います。

 

今回は影用として、このAssetを用いました。
ホラーちゃんと名付けます。

assetstore.unity.com

このAssetをユニティちゃんの子オブジェクトにします。位置や角度も合わせておきましょう。
当然、二つのモデルが重なった状態で表示されますね。

f:id:Raspberly:20181201202135p:plain

f:id:Raspberly:20181201202218p:plain


 次にユニティちゃんの影を消していきます。
ユニティちゃんの中にある3つのRendererのCastShadowsをOffにします。

f:id:Raspberly:20181201202743p:plain

f:id:Raspberly:20181201202755p:plain

 

するとUnityChanの影が消え、ホラーちゃんの影のみになります。

f:id:Raspberly:20181201203813p:plain

 

後はホラーちゃんの影のみ表示させれば完成です。
3Dモデルは表示させず、影のみ表示といったことができるのでしょうか?
実は簡単にできます。

Cast ShadowsをShadows Onlyにすることで、影のみレンダリングといったことができます。Unity便利すぎ

f:id:Raspberly:20181201205019p:plain

 

 

これで無事影の差し替え完了しました。

f:id:Raspberly:20181201235505p:plain



 

 

「やあユニティちゃん・・・・・いや、誰だお前はユニティちゃんじゃないな!」
???「グググ・・・ヨク気ヅイタナ・・・」

f:id:Raspberly:20181202000254g:plain

みたいな演出ができるかもしれませんね!

 

 

 

まとめ

・影は初期設定でRendererが勝手にやってくれている。

・Rendererの設定を変えることで影のオンオフを切り替えることができる。

・本体の影を消し、影用のモデルを用意することで簡単に影を差し替えることができる。

 

 

明日はUnity #2 Advent Calendar 2018 3日目、投稿者はKan_Kikuchiさんです。