見出し画像

クラゲアクセサリーの仕組み

はじめに


クラゲのアクセサリーを作ったのでどんな感じで作ったのか手順を書いていこうと思います。

作り方ってあまり情報がない気がするのでアクセサリーを作ったごとにこうして記事を書いて情報を多くしようという考えです。
わからない用語とかは調べれば簡単に出てくるものばかりなので取り掛かりやすいと思います。

ただし、詳しく書いてあるわけではないのでこれを読んだからといってモデリングの基本操作ができるようになる!とかそういった内容ではないです。
そして素人なので書いてあることがすべて正しいわけではないです。

モデリング

blenderを使用。

blenderでやることは以下のことです。
・モデリング
・テクスチャ系作成
・ボーン、ウエイト作成
・テクスチャ確認

モデリング
「アクセサリー1つに多くのポリゴンを使いたくない」という考えを持っているのでなるべく少なくなるようにモデリング。
3000~4000に抑えることができました。

画像1

透明なガラス製品みたいにする予定なのでちゃんと立体的にしました。頭をただの半球にすればポリゴンを削減できますがそれはせずにちゃんと立体にしました。

逆に触手はペラペラにしました。ヒラヒラした感じにしたかったので立体的にする必要がないので。
だたしUnityではポリゴンの裏面は透明になってしまって不可視状態になるので全く同じポリゴンを複製して配置、面を裏返してメッシュが二重になってるようにしました。こうすればソリッド化などして厚みを持たせないで両面可視できるようになります。(詳しくはUntiyの方で解説してます。)
(青が表、赤が裏、ピンクは裏表が重なってる)

画像2

アバターに取り付けるときにはスケールが小さくなるはずなのでチェーンはカクカクです。
あまり目立たないところや隠れそうなところはポリゴンをゴッソリ落とす作戦です。

画像3

テクスチャ系
少ないポリゴンでもなめらかに見えるようにノーマルマップを使用しました。
lowポリクラゲとhighポリクラゲ、と2つ作ってノーマルマップを作製。

画像4

画像6

透明なものに影を付けるのは不安だったのでテクスチャはすべて単色の構成です。
頭以外のUVは後から改変しやすいようにTexToolsを使って短冊状に変形しました。

画像7


ボーン、ウエイト
ボーン、ウエイトはチェーンのリング1つ1つがゆらゆらするように設定、また触手も別で揺れるように設定。

画像8

テクスチャ確認
blender上で完成形がどんな感じになるのか確認のためにノードを作製。
ノード作成は全く理解してないのでとりあえず一番簡単に半透明にできるノードを作製しました。最終的にはUntiyでどうにかするのでやらなくてもいい工程ですが一応確認のためです。

画像9

Unity

Unityでやることは以下のことです。
・マテリアル設定
・Dynamic Bone設定

マテリアル設定
シェーダーは単純で使いやすいArktoonを使用しました。
そして不透明にするためにFadeを使用。

調整した場所を上から順番に説明します。(調整してないところはカット)
Common
Main Textureーーメインとなるテクスチャを入れます。
Normal Mapーーblenderで作成したノーマルマップを入れます。

Is Double Sidedにチェックを入れると通常Unityではメッシュの裏が表示されないのを表示できるようになりますが使用しません。

~理由~
触手をペラペラのメッシュで構成してIs Double Sidedを使って両面表示する予定でしたがこれを使うとクラゲの頭に変な模様が入るので止めました。なのでblender上でポリゴンを複製して面を反転させて対処してます。

画像10

Shadow
Borderーー影の境目を作る値ですが、透明感を出すためにガッツリカットします。
Strength & Maskーー影の強さですが上記を同じような理由でガッツリカットします。
Blur & Maskーー影のグラデーションにかかわるところです。影の境目を作りたくないのでグラデーション全開の1に設定します。

画像11

Gloss
Smoothness & Maskーー反射するかどうかの設定項目です。程よく反射して欲しかったので半分ぐらいに設定。
Metallicーーメタリック感を出せます。これも半分ぐらいに調整
Colorーー反射したときの色です。初期は白ですが光に当たったらうっすらとピンクに反射して欲しかったのでピンクに設定しました。

Smoothness やMetallicはピンクの反射がポワーとうっすらグラデーションが効いた感じになるように時間をかけて設定しました。
つまりいい感じにスライダーを動かしたってことです。

画像12

Dynamic Bone設定
激しい動きをしてもブンブン揺れないような構成にしました。ゆったりと揺れる感じです。

Bone.001にDynamic Bone(以下DB)を入れます。Bone.001以下に入っている全部のボーンがDBの影響を受けるようになります。(たぶん)

マテリアル設定と同じように調整したところだけ書きます。

Root
Bone.001を入れます。DB入れただけじゃ動かないのでRootにDB入れた場所と同じボーンを入れます。

Damping
揺れた時にボーンがどれぐらい元のままでいるか?というパラメータです。ゆったりさせたいので0.5に設定。

Elasticity
ボーンのもとに戻ろうとする力?です。これもゆったりしてほしいので半分ぐらいです。

Stiffness
硬さ?です。柔らかくしたいので0.1です。

画像13

触手はチェーンとは別の動きをするので触手1つ1つにDBを入れます。
パラメータは上記通りゆったりとした動きになるようにしてます。

このままだとアクセサリーをY軸で上下させると頭と触手が勢いに負けてさかさまになってしまうので防止します。つまりボーンの動きに制限を付けるということです

Bone直下に空のGame Objectを追加、そこにDBコライダーを追加します。

画像15


CenterとRadiusをいい感じに設定して触手のボーン全体を覆うように配置します。

画像17


BoundをInsideに設定します。こうするとボーンが揺れた時に紫の球体の中から飛び出なくなります。

画像16


ただし今まで設定したDBのColidersのSizeを1にしてElement 0に先ほど作成した空のGame Objectを割り当てる必要があります。

画像18


おわりに

完璧な作り方とはいきませんがVRCのために何かアクセサリをつくってみようと思っている人のためになればいいです。

これからも何かアクセサリを作ったら毎回このように記事にしようと考えております。



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