BlenderやUnityを中心に、手を出して引っ込めたものをまとめます

【Unity】複数のDirection Lightが使えない

ブログは初投稿です。

 

BlenderとかUnityやっていて、いい加減煮詰まったときに、考えを整理する目的で始めてみました。

なので、基本的に解決案が見つかることはない。

ゆくゆくはBlender初心者向けのチュートリアルなんかも作ってみたいとは思う。

 

3点照明のためにDirection Lightを追加したい

f:id:honte:20170829155945j:plainこのシーン。

ちなみにこのチュートリアルを延長、拡張する形で作成。

developers.mobage.jp

で、3つ照明置くのが3点照明!くらいの雑な知識でライティングしようとして、詰んだ。

上記のシーン内で追加しているDirection Lightだけは、しっかり光源としての機能を果たしてくれる。でも、ここにDirection Lightくんをさらに追加したときに

f:id:honte:20170829161344j:plain

追加はできる。(地面Planeは非表示)

f:id:honte:20170829161405j:plainf:id:honte:20170829161410j:plain

※左は1つ、右は2つ

変わらん。

 

原因を探す

先に言っておくと、Unityちゃんのシェーダーが多分影響しているんじゃないかなっていう……。

だとしたら、いずれUnityちゃんとはおさらばしてオリジナルモデルを使う運命なのだから、個人的にはあまり関係がない。(ただ、スクリプトのクラス名を間違っていることに気づかず数時間悩むくらい頭が悪い初心者なのでこわい)

 

とりあえずDirection Lightの値を適当にいじってみる。

f:id:honte:20170829165413j:plain

BlenderにはTransformのような部分の値をまとめて選択、まとめて設定できる機能があってとても便利。

 

Soft shadowあるいはHard Shadowにして、Intensity(強さ?)を変えたとき、一定数(このシーンでは0.7)より強くしたときだけUnityちゃんが青白く光った。

ただ、その状態だと光が強すぎて3点照明っぽくない。

 

他のパラメータの意味は調べてないので良くわからないが、変更しても解決せず。

Biasは影の問題でつい最近引っかかった。何かがおかしくて悩んでいる初心者はたいていどこかのパラメータの値をいじってしまっているのが原因だが、おれの場合はここだった。

 

このあとLighting設定のPixelなんちゃら(シーンでレンダリングする光源の限度)を変えてみても無理だった。ここら辺で隣人の煙草の臭いが気になってきてマウスを置く。

 

平行して検索していたところ、以下のエントリを見つける。

gamesakuse.seesaa.net

 

言われてみればトゥーンレンダリングって無理やんけ。

プリミティブ追加してみると、ちゃんと複数のDirection Lightが機能していた。

f:id:honte:20170829170806j:plain

※手前の影がやや青っぽくなっているので成功。

 

結論

シェーダーの見方がよく分からない、というかほんの少し触ってみたがおれにはまだ早かった(都合の良い解釈)ので確信はないけど、まあおそらくトゥーンシェーダー。

頭わるわるだからこの程度のことで引っかかる。

 

Unityはじめて1週間程度で感じたことと

Unityでゲームを作るのはとてもおもしろいけど、飽き性の自分はゲーム制作のモチベーションを見栄とか、あるいは義務とかそういう風なもので補っている。(予定と目標を決めて達成できなければ午後のおやつはない)

不健全かもしれないが、頭の中にあるゲームを作りたい表現したい欲求だけで最初から最後まで没頭し続けられることのほうが自分はやべぇ……と思う。

そういう人たちは作りたいものが作れないことがわかったときに、挫折というリスクをどうやって回避しているのか。脈絡のない話かもしれないが、天才っていつもスランプになっているイメージがある。

天才でさえそうなのだから、つまづきやすい新人は足を骨折して二度と立ち上がれないことも多々ある。

だから、初心者は学習はもちろん、最初に自分の意思で作るゲームも、Unityをやる上での前提条件だと思って進めていくべき。理想が叶わずとも、これはまだ学習の途中なのだからと考えれば良い……

 

ということをここにこっそり書いたところでゲームは完成しないのが現実。