前回のあらすじ
Blenderでキャラクターや建物、木など作った。
今回は街を構成する、ベンチ、街灯、歩道、道路、
そしてそれらを組み合わせて公園を作っていく。
Unityアセットを使う手もある
はじめに、
今回の記事では自分のBlender勉強も兼ねてBlenderでモデリングしているんですが、
「Unityを使うのであれば無料アセットを検討するのも良いですよ」という話を事前にしておこうと思います。
例えば、以下のアセットとか、色々入っているのに無料なので、凄く良いと思います。(URPとかは対応していないようですが…)
Low Poly Park Pack - Created with FastMesh Asset | 3D Urban | Unity Asset Store
以下に至っては街に必要なものが全部用意されているので、これ一つでよさそう。
Low poly European City Pack | 3D Urban | Unity Asset Store
City Building Kit - 100 Low Poly City assets | 3D Urban | Unity Asset Store
そう、当記事・当ブログはあくまでBlender勉強も兼ねた道楽みたいなものなので、
「Unityでゲームを作るにはまずモデリングしないといけないの!?」と初心者の方に誤解されないように気を付けていきたい所存です。
初めてゲームを作る方は、上記のような街アセットとかを使ってシステムを作ってから、
「ここのモデルは差し替えたいな…」と思ったオブジェクトを少しずつ、モデリングしたり、BOOTHや3DCGサイトとかから調達して差し替えていったほうが絶対よいと思います。
私はゲームこそ作ったことがないにしても、Unity実装を多少やったことがあるので、その工程をすっ飛ばしております。あしからず。
ベンチを作る
今回作りたいベンチとして、
公園や街中など色んな場所で汎用的に使えるデザインがいいなと思いました。
そこで、以下のような感じの、なだらかな形状のアンティークな木製ベンチに行きつきました。
こういったベンチは「パークベンチ」や「ガーデンベンチ」で検索すると、似たデザインの画像を検索出来たのでおすすめです。
参考のデザインを決めたところで、いざBlenderでモデリング。
今回参考にした動画はこちら。
まず、おおまかな形状を作る。

曲線にしたいところの辺を選択し、Ctrl+Bでベベルをかける。

端の頂点達を選択し、Shift+Dで複製→Pで分離→カーブに変換。

座る部分を構成する板となる長方形を作る

板にArrayとCurveを付けて、先ほど用意したカーブを設定する。

先ほど作ったカーブを流用して、板の裏の鉄フレーム?みたいな部分を作成。

鉄フレーム部分は、拘りは無いので只の黒いマテリアルとしました。
板のマテリアルはPolyHavenで以下のものを使いました。
脚とアームレスト(肘置き)を作成。
(アームレスト無しのベンチもよくあるので、メッシュは統合せず、Unity側でオンオフできるようにしました)

ベンチはこれで完成。
街灯を作る
街灯も色んなデザインがあるかと思います。
もし現代的なデザインの街灯を作りたい場合、
海川メノウさんの「Blender2.9ガイド」にも街灯の作り方が載っていたので、そちらもおすすめです。
今回私は、ガス灯ライクな六角形の街灯を作りたいので「ガス灯」で検索し、参考デザインを探しました。
Youtubeだと「Blender street light」「Blender street lamp」あたりで色々出てくるかと思います。
それではモデリング。
Shift+Aで頂点数6の円柱を用意し、面をIで個別に差し込みしてガラス面を作成。

台座というか、ポールの部分をモデリング。

実際のポールによくある、ストライプのような凹凸が欲しいと思いました。
基本的に、凹凸を付けたい場合は
以下の動画のようにチェッカー選択解除を使えばよさそうです。
ただ、今回はUnityに持っていく関係であまり頂点数を増やしたくないので、
PolyHavenでそれっぽいマテリアルを取得。

こんな感じになりました。
歩道を作る
歩道や道路については、
「Blender側で組み立てまで行った後、完成された一つのメッシュとしてUnityに持っていくべき…?」
「Blender側で部品だけ作って、Unity側で組み立てた方が良いのかな…?」
と最初悩みました。
Blenderで組み立てた方がレイアウトはしやすいけど、
Unity側でプレハブを使ってレイアウトした方がスクリプトとかコライダーとか反映しやすいんだよなぁ…
まぁ、今回は完全に一人きりで作っているから、Blenderでどう出力しようが自分にしか迷惑がかからないので…
(複数人で作る場合は事前に協議が必要な部分かもしれないですね)
というわけで決めた方針としては、歩道や道路のパーツは
・コーナー(角)
・直線
の二種類用意する。
そして、一旦はBlender上でレイアウトを決める。
そのレイアウトごとUnityに持っていって、プレハブにしたいところはUnity側で差し替えていくことにしました。
このやり方で後々困ったらまたその時考える、ということで。
以前の記事でもご紹介したこちらの動画にて、
歩道っぽいモデリング方法が紹介されていたので、こちらを参考に作ろうと思います。(動画の42分頃)
動画を参考に、こんな感じで、コーナー(角)と、まっすぐな部分とでメッシュを分離して作る。

PolyHavenでマテリアルを取得して貼り付け。
こんな感じで、角と直線を使ってUnity側で組み立てていこうと考えています。

道路を作る
道路も歩道みたいに、直線とか角とかでパーツを分けてUnity側で組み立てる予定です。
ちなみに、当ブログでは未だ紹介していなかったかと思うのですが、
Blenderで「辺の長さ」をオンにすると、この辺は何mっていうのがわかるようになります。(シーン設定で単位をm以外のcmとかにもできます)
道路の幅とか、ドアの高さとか、サイズ決めが大事なモデリングで便利だったので、この機会に紹介させて頂きました。

PolyHavenで道路っぽいマテリアルを取得。
最初、Blender側で横断歩道とか車線とかの柄をテクスチャペイントで描こうかと思ってたんですが、
UnityのURPにデカールという、オブジェクトに画像を貼りつける機能がありまして、
これで横断歩道や車線を作れるじゃん!となったので、Blender側では単なるアスファルトのみ作ることにしました。
こんな感じで歩道と組み合わせていく予定です。

公園を作る
公園を構成するためのパーツが出来てきたので、
ロンドンによくある公園、ガーデンスクエアを作ってみようと思います。
上記のWikiや、エクスナレッジの「英国の間取り」によると、元々は周辺の建物の住人のみ入ることができたそうな。そのため高い柵や鍵付きの扉があるそうです。
現代では一般向けに公開されている公園もあれば、今も住人のみ入れる公園も残っているそうな。
確かにソーホースクエアガーデンズのストリートビューなどを見ると、一般公開されている公園にも扉付きの柵が名残として残っているようですね。
https://maps.app.goo.gl/3tMF1Yr24sdDp14FA
というわけでソーホースクエアガーデンズを参考にモデリングやレイアウトすることにしました。
まず地面部分をモデリング。

芝部分はambientCGでそれっぽいものを取得しました。(植物系に関してはPolyHavenよりAmbientCGの方が多いかも)
舗道はPolyHavenで取得しました。
柵部分は以前バルコネット用に作ったものを流用しようと思います。
扉部分は別途モデリングが必要だなと思ったので、柵を作った時と同じ要領で作成することにしました。
こういった扉は「ガーデンゲート」で検索すると参考になるデザインが見つかりました。
今回は、バルコネットの時に作ったテクスチャをキメラのように混ぜこぜに張り付けて、こんな感じにしました。

前回の記事で作ったプラタナスも公園に置く。また、木に使った葉の塊を流用して茂みも作る。
植物は複製する時に角度やサイズが均一だと違和感があったので、角度やサイズはバラバラにしました。
こんな感じになりました。

今回はここまで。
終わりに
今回は今まで作ったものを組み合わせて公園を作りました。
建物単体、公園単体、だとあまりピンと来なかったんですが、
建物と公園を同じシーンに配置すると、一気に「街」感が出てきてよかったです。
街の部品が大分できてきたので、次回あたり、UnityにてNavMeshでNPCを歩かせられたら、と思います。
余談
「恋と深空」というスマホの3D恋愛ゲームがあるのですが、
つい数日前に、どうやらホーム機能というハウジング要素が実装されたようで。
恋と深空、リリース時からとてもやりたかったゲームなんですが、実は遊んだことが無いのです。スマホの容量が足りなくて…
X(Twitter)で実際にホーム機能で遊んでいる方々を見てみると、めちゃくちゃ楽しそう…
というか、彼氏(NPC)が自分(プレイヤー)の写真を撮って共有してくれるみたいで…!?
私が作りたいゲームは、恋と深空のホーム機能にあったのかもしれない…
何とかスマホ容量を減らすなどして、ホーム機能だけでもプレイしてみたいものです。






PolyHavenを調べていたらちょうど、「Sycamore(

















































