見出し画像

【Blender&Unity】浜辺で焚き火する

どうやって夜を迎えるのか問題

前回、勢いだけで浜辺を作ってスイカを割った。しかし、Skyboxというか空はデフォルトのままなのが気になる。そのままだと「THE Unity」って感じなので差し替えたいし、なんなら夜にもしてやりたい。しかし、当然ながらSkyboxを弄った経験なんて全くといっていいほど無い(ドヤァ

3Dは苦手意識あって全然触ってこなかったもんでさぁ・・・もう全力でグーグル先生に頼って、出てきたサイトを片っ端から真似するだけで精一杯っすわ。

画像1

今回、Skyboxはこちらのアセットを使う。もっと本格的に頑張りそうだったら、ドチャクソいっぱい入ってる有償版の奴を買いたい。つっても1500円程度だから実際安いしケチるようなもんでもないけれど。

Skyboxの変え方は、こちらを参考にさせて頂いた。どうやら、夜にするときはディレクショナルライトのIntensityを弄ってを弱くすると良さげらしい。

画像10

という訳で、さっそく組み込む事に。例によって例のごとくBoltで組んでるので、こんな感じでマテリアルのリストと、そいつのインデックスを変数としてオブジェクトに持たせといてやる。マテリアルは、昼の奴を1個目、夜の奴を2個目に置いておく。あと、DirectionalLightも参照しとく。

画像3

あとはRenderSettings.skyboxに対して、インデックスに応じたマテリアルを設定してやればおk。

画像4

昼の場合はDirectionalLightのIntensityを1、夜の場合はIntensityを0.1に設定。夜の場合はColorを青みがかった感じにしとくといい感じになるらしい。パッと切り替えても良いのだけれど、なんとなくDOTweenを使用。

画像5

これでとりあえず暗くできるようにはなった。しかし、こうも暗くなると逆に光が欲しくなるな…なんとなく海岸といったら、焚き火のイメージがある。そうだ、焚き火を作ろうぞ!

焚き火を作る

画像6

てなわけでBlender起動。焚き火ってなんとなく石で囲んでる感ある。木材風の立方体を乱雑に置いた後、頂点8個持った円にモディファイアでパーティクルくっつけて、頂点ごとにランダムな石(コレクションに入れといた奴)を置いてやる。

画像7

焚き火の炎は、Unity側のParticleSystemを使って演出する。ここらへんはググったらいくらでも作り方が出てくるのでここでは深堀りしない…というかうまく説明できる自信がない。未だにParticleSystemをうまく使いこなせてないので、他人の作った設定をパクってばかりである。

画像8

「焚き火の光どうすりゃいいのさ」って話なのだけれど、Blenderのライト関係ってUnityと互換あるんかね?というのがそもそもわからない。男は度胸!何でもためしてみるのさ。とりま焚き火の真上あたりに、テキトーなポイント光源を置いてみる。

画像9

おっ、エクスポート設定でちゃっかり「ランプ」も選べるじゃん?

画像10

Unityにインポートしたら、それっぽく認識されているようだぜ。大勝利!

成果物

他にも灯台とか、道路沿いの照明灯とか色々光らせられそうなところがあるので、同じようにライト入れまくって試してみようかねー。

この記事が気に入ったらサポートをしてみませんか?