【個人ゲーム開発】マップを作りました。


この記事の内容はYouTubeに動画としてあげています。

とりあえず、マップの製作を完了しました。こんな感じです。

そして、こちらヒロインのメイドです。

髪型やメイク、服の色はカスタマイズできるので、このままではなく世界観にあったようにカスタマイズしようと思います。

メイドが仕掛けた仕掛けを突破していく脱出ゲームのようなものにしようかと思います。

ゲームは家の中のみで行われる(予定)ため、外装や他のマップはありません。

あまりでかいマップをつくっても、それほどの規模のゲームを完成させられるか自信がないからです。

セブンナイツゴーストからかなり影響を受けている内容のゲームとなると思います。

といってもホラー要素をつくるつもりはありません。

今回UnityのHDRPをつかって開発するつもりですが、HDRPは創造以上に難しかったです。

まずインポートしたアセットが全てピンク色になってしまいます。それを修正して新しいアセットをインポートしたら今までインポートしたアセットがまたピンク色になってしまうのです。

なんとかそこら辺は修正できました。本当に複雑なのはライティングの設定でした。

何故か床、壁、天井から光が伝ってかなりの量漏れてきます。

色々と調べても理由はよくわからなかったですが、ライティングをベイクしたら変わるかもしれないとのことで全てのライトをベイクしたら光漏れの問題はほぼ解決しました。

ライティングをベイクとは光の軌跡などを事前に計算して、光をテクスチャとして貼り付けておくことです。

ベイクの利点は事前にライティングを計算するため、ゲームの負荷が軽くなります。そのため、光漏れなどのバグが解決できるかと考えました。どうやらその考えは当たったらしく、光漏れはほぼなくなりました。

しかし、このベイクというのは静的オブジェクトにしかできません。静的オブジェクトと動的オブジェクトというのはオブジェクトが動くか動かないかです。

当然ながら動くオブジェクトは事前に計算できないため動的オブジェクトにはベイクできません。つまり、動的オブジェクトには光が当たらないので真っ黒になります。

これを解決するにはライトプローブという機能を使えば解決できます。難しいことはわかりませんがライトプローブとはオブジェクトの周辺の空間にもライティングの情報をもたせるということらしく、そうすることでその空間にいる動的オブジェクトにもライトが当たることが実現できるらしいです。

しかし、未だに解決できていない問題があります。それはベイクする時にノイズがのってしまう問題です。下の画像ようなものです。

このようなものが床や天井にあちこちあります。planeとplaneの間がずれてしまうような感じです。

このようにUnityのライティングの設定はとても難しいと理解できました。ライティングの設定は圧倒的にUnrealEngineの方が楽だと思います。

最後に使ったアセットの紹介です。

家具→https://assetstore.unity.com/packages/3d/props/house-furniture-pack-88646

壁、床、天井→https://assetstore.unity.com/packages/3d/environments/japanese-hotel-room-193482

メイド→https://assetstore.unity.com/packages/3d/characters/humanoids/fantasy/dress-up-maids-262306