原カバンは鞄のお店ではありません。

Unityを使ったゲーム制作のあれこれを綴っていきます。

【Unity】CastShadowとReceiveShadow

半休業状態

未だコロナ禍の脅威が収まらない為、全都道府県で外出自粛せざるを得ない日々が続いております。私の会社でも多分に漏れず、出勤率の低減を実現するために2,3日単位の交代勤務体制となりました。そのため、週の半分ぐらい自宅に閉じこもっているのですが、そんな中、朝昼のテレビ番組を拝見すると、殆ど毎日同じ顔触れが同じ話題を同じように話しているので、だったらマスコミも交代で休止すればいいのに、と思っている皆さんこんにちは。あんなの毎日楽しみにしている人っているのだろうか?

 

自宅待機中に

プロジェクトのセキュリティ上、自宅でのテレワークができないので自宅待機中は完全な休みとなっています。

よって自宅で暇を持て余してしまい、以前ブログの記事の為にちょっとだけ作っていたものをアレコレ改造していました。

 

www.karvan1230.com

上の記事の中でRigidbodyを使った公転運動に挑戦し、ボールが螺旋階段を登るような処理を作っていたのですが、それをちょっと改良して・・・

f:id:Karvan:20200421204546g:plain

キャラクターがぴょんぴょん跳ねて登るようにしました。
画面をクリックすると力を蓄えて高く遠くへジャンプします。

 

ここから色々加えてゲーム化出来そうかなー、と思っているのですが、試作段階なので画面がちょっと味気ないです。
なので手始めにキャラクタ-の影を地面に表示してみることにしました。

 

影を表示する

Unityで3Dモデルに影を投影するには二段階の手順が必要です。


まず、影を落とす側のMeshRendererの設定で「Cast Shadows」の設定をONにします。

f:id:Karvan:20200421205907p:plain

 

次に影が投影される側のMeshRendererの設定で「Receive Shadows」の設定をONにします。

f:id:Karvan:20200421210002p:plain

 

これでキャラクタ-の影が地面に投影されることになります。
早速動かしてみると・・・

f:id:Karvan:20200421210137g:plain

 

・・・お気づきいただけだろうか・・・

 

透過する影

キャラクターが移動している地面は螺旋階段状になっているのですが、キャラクターの落とした影が二段目の地面と、一段目の地面で二重に投影されています。

f:id:Karvan:20200421210336p:plain

 

どうやらUnityではCastShadowで作られた影はその投影範囲にあるReceiveShadowsが設定されたMesh(3Dモデル)に全て投影されるらしい。

つまりキャラクターと地面の間に他のMeshがあってもその影響は考慮されていない。

なので、地面側もキャラクターと同様に影を落とすよう、「Cast Shadows」をONに設定する必要があると言う事で・・・

 

f:id:Karvan:20200421210709g:plain

上の動画は地面側にも「Cast Shadows」を設定したパターンです。

不自然な影は消えましたが、今度は影ばっかりで画面が暗い、加えてキャラクターのエミッション設定でこっちが不自然に見えるという結果に・・・ん~、一体どうしたものか・・・

 

◇プライバシーポリシー

●個人情報の利用目的

当ブログでは、メールでのお問い合わせ、メールマガジンへの登録などの際に、名前(ハンドルネーム)、メールアドレス等の個人情報をご登録いただく場合がございます。

これらの個人情報は質問に対する回答や必要な情報を電子メールなどをでご連絡する場合に利用させていただくものであり、個人情報をご提供いただく際の目的以外では利用いたしません。

●個人情報の第三者への開示

当サイトでは、個人情報は適切に管理し、以下に該当する場合を除いて第三者に開示することはありません。

・本人のご了解がある場合
・法令等への協力のため、開示が必要となる場合

個人情報の開示、訂正、追加、削除、利用停止
ご本人からの個人データの開示、訂正、追加、削除、利用停止のご希望の場合には、ご本人であることを確認させていただいた上、速やかに対応させていただきます。

アクセス解析ツールについて

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。

このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。

●免責事項

当サイトからリンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤情報が入り込んだり、情報が古くなっていることもございます。

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

●プライバシーポリシーの変更について

当サイトは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

修正された最新のプライバシーポリシーは常に本ページにて開示されます。