【Quest対応】VRChatでアバターを金色にする

※一回くらいアバターをそのままアップロードしたことがあるくらいの人向けの記事です。テクスチャの色を改変出来る、したことがあるくらいだとなおよいかと。

 

環境:Unity2019.04.31f1

VRCSDK3-AVATAR-2021.11.24.16.20_Public

 

黄金楽園(おきんきんランド)観光大使の五堂です。

いやはや、最金……おっと、最近は私ちゃん日記やTwitterでの反響からか金曜日の21時以外にも黄金楽園(おきんきんランド)に遊びに来てくれている方が多く見受けられるようでうれしい限りです。園長もお喜びのことでしょう。

その影響からか、このほどアバターを金色にしたいという声を聞く機会も増えて参りました。
いや~ありがたい限りです……ドレスコードはないんですけどね?

 

しかし、しかしです。アバターを金にしたいなんてニッチ(これからメジャーになるかというとそうでもないと思うんですが)な需要に応えるブログなどの記事ってあんまり見かけませんよね。となればやはりここは作っておくことで何らかの形で楽しくなる人が増えるんじゃないかと思うようになりました。

詳しいシステムの説明は独自の見解とか偏見とかそういうので取り急ぎ書いているので、メチャクチャ適当です。詳しいところはちゃんとした人に聞いてください(頼みますよ、VRChatの有識者たち)。私もUnityとかいうの触って一年も経っていないので。
さて、ひとまずUnity上で出来る方法から参りましょう。

 

私の中でのド定番、Matcap litでの金になる方法です。standard shader(QuestだとStandard liteというものになります)でも金色にすることは出来ますが、調整がめんどくさくなってしまうのであまり使ってきませんでした。

ちなみに私自身がQuest単機なのでQuestベースで説明します。PCのシェーダーはわかりません。たぶん似たような機能がだいたいあると思います。うまいことやってください。Quest対応に活かしてもらえると私が喜びます。

このMatcap litとはいったい何者で、どこからきて、どこへゆくのか。
すごいざっくり言うと、オブジェクト(アバターに限りません、ワールドを作るときの設置物などにも使えます)の質感などを決めるシェーダーと呼ばれるシステムの一つです。Questの標準はtoon litもしくはstandard liteがよく設定されています。

シェーダーは様々な表現が出来る一方で描写によっては負荷が重くなりがちで、Questでは負荷軽減のため特にアバターに使用できるシェーダーは大きく制限されています。

しかし、このMatcap litはQuestでも使えるということもあり、とても軽量かつ手軽です。
おおまかな説明をすると、オブジェクトの色と配置を決めるテクスチャがあって、Matcap litではそのテクスチャの上から質感を追加するもう一枚の丸いテクスチャ(スフィアテクスチャと呼ばれます)を入れて使います。このスフィアテクスチャで金色にしたりクリスタルにしたりツルンとした感じにしたりラバーでテカテカ風にしたり模様を追加したりしています。
「スフィアテクスチャに描かれているように見せますよ」というシェーダーなのでパッと見ると色々なものが反射しているように見えますが、実際にはテクスチャにあるものしか映り込んでいません。事前に準備してあるものだけを映しているので処理は少なく、軽いです。

今回は以下のアバターを使わせて頂きます。

booth.pm

フレンドのうえきマンさんが作成・配布してらっしゃるアバターです。ファンタジーみがあっていいですよね。これがQuest対応していて、無料で、なおかつアバターランクがMediumで収まる……?神か……?(事前に許諾を頂きに相談したところ、快く許可をいただきました。他にもカッコいいアバターを作ってらっしゃるので見てみてね!)

uh-industries.booth.pm

 

さて、次に上記で説明している質感を決めるスフィアテクスチャを用意します。今回は下記を使います。

 

こちらをダウンロードしてください。Twitterからだと稀に拡張子が違うものになる場合がありますので、.pngとなっている状態にしてください。

スフィアテクスチャですが、Google画像検索でmatcapとかで検索すると色々なテクスチャが出てきますし、BOOTHなどでも販売あるいは配布されていますのでお気に入りのスフィアテクスチャを探してみましょう。

※ただし、権利関係には十分に気を付けて使いましょう。配布されているものなのか、販売されているものなのか、再配布や譲渡を行ってもいいものなのか、とても大事なことです。

 

実際のUnity画面を見ながらやっていきましょう。
通常通り、アバター設定の指示に従いSDK(このアバターはSDK3です)や必要なアバターを適切な順序でインポートします。

Assets>Castle_Dragonで▶マークのついているPrefabをHierarchyにドラッグ・アンド・ドロップします。

その後、アバターに設定されているマテリアル(丸いのに何か服とかのテクスチャが描き込まれているやつ)をクリックして、インスペクター(詳細情報の書いてあるタブ)を見てみましょう。

Assets>Castle_Dragon>Material>Mat_Castle_Dragon_Crystal

 

インスペクタータブ(デフォルトだとたぶん右側にある)に詳細が表示されますから、ここのShaderの▼をクリックし、プルダウンメニューからシェーダーを選ぶことになります。

f:id:VRskud:20220213182318p:plain

 

 

VRChat/Mobile/Matcap lit の順で選んでください。

f:id:VRskud:20220213193226p:plain

そうしますと、四角いテクスチャを入れる枠が二つに増えるはずです。一枚目に今まで通りのテクスチャを、二枚目に先ほどのスフィアテクスチャを挿入します。これで手順としては完了です。

f:id:VRskud:20220213193327p:plain

どうですか?金になりましたか?

f:id:VRskud:20220213193655p:plain

予定ではクリスタル部分が金っぽくなるはずですが、もしお城のほうが金になっている場合は、選択するMaterialがお城の方になっています。クリスタルの方で上記作業を行ってください。

うまく金にならないところがある?
そんな時は、アバター本体のテクスチャを調整しましょう。基本的に濃い色程スフィアテクスチャの影響を受けにくいです。故に黒や原色に近い部分のテクスチャを白やスフィアテクスチャに近い色に変更することです。金色にするのであれば白ないしは黄色系統にするとよいでしょう。

ちなみに私のテクスチャを含む色変更の例が下記になります。

f:id:VRskud:20220213193821p:plain

元も子もない話ですが、ちなみにアバターのテクスチャ(1枚目)を消して2枚目のスフィアテクスチャだけにしても色がキレイになる場合もあります。

f:id:VRskud:20220213194040p:plain

このアバターの場合はそれもアリなのかもしれませんね。

 

また、私は青みがかった金にしたいのよ!とかピンクゴールドの時代だわ!という方がいればそれはそれでアバターのテクスチャやスフィアテクスチャの色をそちらに寄せてみても面白いでしょう。

 

十人金色、十人いれば金色でも同じとは限らないということわざです。古事記にもそう書いてある。

これが面白いところでもあります。

あらやだ、同じスフィアテクスチャのはずだけど、あの殿方の金色、素敵……(ポッ♡)
ということもあるかもしれません。……ないか、ないな。
テクスチャで差をつけろ!(早口)

 

ところでですよ、シェーダーというのはマテリアル単位で設定するため、マテリアルがひとつしかないアバターの場合、問答無用であらゆる部分が金色になってしまいます。ひとつのマテリアルで全体をカバーしている場合というか。

f:id:VRskud:20220213194428j:plain大まかなイメージとして、マテリアルの割り当てられる部分があって、テクスチャがその中でここにこういう色をのせますよっていう地図みたいなものだと、勝手に思っています(なんかうまく説明できないですね)。

ただ、これが増えますとアバターを表示するテクスチャを読み込む個数が増えるので処理が増えます。したがって、アバターランクも重くなっていきます。

マテリアルがひとつしかなくて、全身が金色でも映えるアバター(ロボットとか無機物系)か、マテリアルが少なくとも2つ以上に分かれているアバターがいいと思います。

重くなっても構わないということであれば、個別につけた/ついているアクセサリーだけ金や銀にするということも出来ます。メガネや腕輪、指輪が金属っぽい雰囲気になる、これもまたイイ感じですよね。

 

それはそれとして、顔まで金になるのはちょっと……という気持ちもありますよね。次回は私の書く気が出たらそれをうまくする方法をやっていきたいと思います。
プロデューサーさん!いよいよblenderですよ、blender
といっても身構えないでください、私も今はそれくらいしかできませんし、VRChat始めるまでスマホと、Unityを開いたら固まるようなノートパソコンしか持ってないIT周回遅れみたいな人間でも出来るようになったので、なんとかなると思います。
Just do it!