見出し画像

植物園 #メイキング #cluster #clusterワールド制作部 #植物園 #温室 #ガーデニング

スマホでもVRでも遊べるバーチャルSNSのclusterの5月のclusterお題企画に応募した作品である植物園のメイキングです。

今回のお題

縦10m x 横10m x 高さ10mの範囲制限の中でワールドを作ることが今回のお題です。

自宅からいつでも行ける植物園のワールドが欲しいなーと思っていたので、今回は植物園のワールドを作ることにしました。

使用したソフト

Blender
Unity
Krita

使用した素材

無料効果音で遊ぼう!
CC0 Textures
HDRI Haven

ラフ

制限がヴィネットのように狭い空間だったため、騙し絵のエッシャーの階段みたいなものを想像しながらKritaで描いていました。上がっては下がり、下がっては上がる循環です。

初期案は空間の半分程度が階段でしたが、植物をゆっくり見る場所が少ないため別の案になりました。

画像1

部屋の隅っこに階段があればいいなと感じたため、以下のようなラフになりました。キノコも可愛いので配置したかったですが、植物にとってキノコは敵のようなものなのでリアリティを考えてやめました。

画像2

データ量との戦い

植物はよく見ると複雑な形をしており、さらに今回は大量の数が必要だったのでデータ量が多くなりすぎることを予想していました。

よくある手段だと軽量化のために、画像 (テクスチャ) に光の計算結果も書き込んでおくベイクをします。ベイクをするためには、テクスチャへ1対1対応するように3Dモデルの頂点データ (UV座標) を並べておく必要があります。ですが今回は数が多すぎるので、並べても1つの植物に割当てられるテクスチャの領域が小さすぎて、結果的に荒いテクスチャになってしまうと考えました。

そこで今回は、同じデータを使いまわして植物の数を稼ぎ光の計算は遊びに来たユーザーさん側で行うことにしました。具体的には、環境光で雰囲気を出して、ディレクショナルライト1つとノーマルマップを使用して陰影を付けました。

余談ですが、Blenderで植物の質感 (マテリアル) にサブサーフェイス・スキャッタタリング (SSS) を使用した場合は下図のようになります。

画像3

網の作成

周囲の網と階段として使える足場をBlenderで最初に作りました。

網を作る際は、サブディビジョンサーフェスモディファイアとワイヤーフレームモディファイアを使用しました。以下のような単純な箱の図形が網に変わります。

モディファイア使用前

画像4

モディファイア使用後

画像5

足場の作成

足場は当初木材かレンガの素材 (マテリアル) の予定でした。ですが下にある植物に光が当たらないことに気づいたため、網に変更しました。

画像6

画像7

Unity上で網の金属らしさを表現するために、リフレクションプルーブを使用して環境マップを作成して鏡面反射を出来るようにしました。

画像45

マテリアルは滑らかな金属の設定です。

画像46

バナナの木の作成

こちらの写真を参考にした結果、いくつかの節が積み重なっているのを再現するために配列複製モディファイアを使用しました。根本の1つの節で使用すると、それを複製してくれるモディファイアです。

画像8

画像9

植物の先細り形状 (テーパー) を再現するために、オブジェクトオフセットを使用して先へ行くほど細くなるようになっています。

画像10

バナナの木の葉も同様に配列複製モディファイアを使用しています。

画像11

画像12

マテリアルは以下のようにシェーダノードを使用しています。

画像13

画像14

アサガオの作成

アサガオを作る際はヘアーパーティクルを活用しました。元となるオブジェクトを1つを複製する機能です。

画像15

画像16

同様に、蔓や花も複製しています。

マテリアルはシェーダノードで色付けとバンプマップを使用して法線 (ノーマル) を設定しました。

画像17

画像18

画像19

ソテツの作成

ソテツは鱗のような幹だったため、ヘアーパーティクルで鱗のように生やしました。

画像20

下の方が密度が小さくなっているのは、ヘアーパーティクルで頂点グループを使用したためです。

画像24

下図のウェイトペイントモードの状態で赤い上部が密度が大きく、青い下部は密度が小さくなります。

画像25

鱗1つは単純な形です。

画像21

葉はオブジェクトオフセットを使用した配列複製モディファイアです。

画像22

画像23

マテリアルはシェーダノードを使用しています。

鱗の部分のマテリアルはノイズテクスチャノードをバンプマップノードに接続して、陰影がやや付くようにしています。これは仮出力した際に、陰影が足りなかったのを修正したためです。

画像26

葉はUV座標を揃えておいてグラデーションになるようにしました。

画像27

土の作成

板の形状のオブジェクトにベベルモディファイア・厚み付けモディファイア・ベベルモディファイアを使用して、角が丸いレンガと土を作りました。

画像28

マテリアルは配布されているレンガのテクスチャとシェーダノードで用意されているノイズテクスチャ数種類を使用しています。

画像29

画像30

土を覆う植物

土を覆う植物としてバナナの木の写真にあった星型の葉の植物とシダ植物を作成しました。複製にはヘアーパーティクルを使用しています。

画像31

画像32

画像33

マテリアルはシェーダノードで、外側に向かって色づくようにしています。

画像34

長い葉の植物

こちらの植物園の写真のように葉の長い植物を作りました。

オブジェクトオフセットを使用した配列複製モディファイアを使用しました。

画像35

マテリアルはグラデーションを基本として、筋の線が出るようにシェーダノードを使っています。

画像36

丸い葉の植物

幹のある植物が欲しかったため、標準アドオンのSapling Tree Genを使用しました。

画像37

マテリアルは葉の筋が出るようにシェーダノードでバンプマップノードを使用しています。

画像38

尖った葉の植物

ラフの時点では花を置く予定だったのですが、思ったよりも狭かったため丸い葉の植物の色違いのような植物に変更しました。植物園では花はどうやら花瓶に植えて飾るようなのですが、そこまでやれるほどデータ量が残っていないと思ったせいもあります。

画像39

藤の花のような植物

こちらの写真を参考に作りました。

ヘアーパーティクルで複製しています。

画像40

画像41

画像42

マテリアルはノイズテクスチャで色を混ぜた程度です。

画像43

生命の息吹

3DCGが止まっていると絵で良いよねとなってしまうので、動きの表現としてパーティクルを使用しました。植物が生きている雰囲気を作り出す目的もあります。

画像49

画像50

パーティクルに使用したマテリアルは加算合成するマテリアルです。

画像51

仮出力

仮出力した際に判明しましたが、画像を含まないデータだけで220MBありました。そのため、サブディビジョンサーフェスモディファイアの回数を減らして70MB程度に調整しました。

そしてスマートフォンで遊んだ場合だと動作負荷が重かったため、オブジェクト同士を統合する必要が分かりました。

オブジェクト同士の統合

最初はGrid Textureでテクスチャを統合していました。ですが仮出力した際に不手際が見つかって作業を巻き戻そうとした際に同じ作業を複数繰り返す必要がありました。そのためBake One Clickを使用することに変更しました。この場合だとあらかじめ統合したテクスチャを作成しておき、オブジェクトを統合する順番になります。

下図はBake One Clickで統合したテクスチャです。1マスが1つのオブジェクトに割当たります。

画像44

作業の簡略化のためにPythonスクリプトを使用しました。

じょうろの作成

このワールドには眺める場所しかないせいかすぐ帰ってしまう人が多かったため、遊べるおもちゃとしてじょうろを用意しました。

吹き出る水の表現でパーティクルシステムを使用しました。

画像47

軌跡 (トレイル) の設定になっています。

画像48


良いねと思った場合サポートして頂けると励みになります!!!