Blenderを使用してのFallBackアバター対応について②ポリゴン削減

 

その2です。

今回はポリゴン削減の話

 

以前の記事を前提としているので見てね。

helcha.hatenablog.com

 

書き忘れていたこと

FallBack作ることによるメリットですが、まず集会などで軽いアバターの着用を推奨された際に、圧倒的な軽量化で善人を装えるいつもと同じアバターが使えることです。

 

また、Questのスタンドアローンモードは結構性能的に厳しく、たとえシェーダーを変えてQuest対応したアバターでもShowAvaterしていくと快適さが損なわれていきます。

なので、できる限りFallBackアバターは用意しておいた方がいいと、自分は考えています。

 

準備編

とりあえず、カメラとライトのオブジェクトを消し、BlenderからBlenderファイルを開く、またはFBXファイルをインポートさせます。

(Blenderファイルがあるならそっちを開いた方が間違えないと思う)

 

その後、マテリアルプレビューにし、アバターがちゃんと表示されていることを確認します。

マテリアルプレビューにするには以下のボタンを押します。

f:id:Helcha:20220218220757p:plain

アバターがちゃんとキレイに見えない場合、見えるように直します。

(胸の大きさなど、調整用のシェイプキーもここで設定しておきましょう)

読み込んだアバターによって結構違うので各自頑張ってください…。

 

自分が出会ったトラブルは以下の通り

 

真っ白けっけ

画像が読み込まれていない/リンクが外れていた→読み込みなおしましょう

アルファが0になっていた→1にしましょう

なんか変に透けてる

f:id:Helcha:20220218222056p:plain

裏面にも面が設定されていて表示されている

以下のボタンを押して解決

f:id:Helcha:20220218225533p:plain

なんか表情が気持ち悪い状態になっている

シェイプキーが全部1になっている/シェイプキーが0の時がデフォだった。

※画像がグロいのと、作者さんに悪いかなと思い割愛

→ちゃんといい感じに表示されるよう、値を変えてあげましょう。

 

 

大雑把に不要な面を消す

ここら辺は、特にあまり記述することはないかなと。

胸の増減等があればシェイプキーで値を変えてあげて、勘で消していきましょう!

現在の統計を表示しつつ行うのがおすすめです。

以下の記事参照

bluebirdofoz.hatenablog.com

 

おおよそは服で隠れている体の部分を消せばよく、肩や胸、腰あたりが衣服で隠れているなら消します。

ちなみに、特に動きのある場所は、その分頂点が集まりがちなので効果大です。

 

編集モードに入って、ビューを切り替えつつ範囲選択し、Dleteを押して「頂点」を選択で削除です。

あとは、スカートで隠れている部分や、面にしたい部分は右クリして頂点のマージを選択するといいです。

時々マテリアルプレビューに戻って、透けたりしていないか確認しましょう。

f:id:Helcha:20220219143735p:plain

f:id:Helcha:20220219143558p:plain

f:id:Helcha:20220219143833p:plain

ニーソも靴で隠れる部分は削除

 

ちなみに、破城を防ぐためにも面は基本3角形にするといいです。

ボーンとウェイトペイントによって形が崩れる場所だと描画が変になります…。

↓なんでかっていう話はこちら見たら分かるかなと。

tohawork.com

ここまできたら一度ファイルを保存しておきましょう。

自分はCollection自体を複製してバックアップにしています。

 

 

デシメート(ポリゴン削減)の使用

デシメートの使い方については以下の記事を参考に行ってみてください。

予め触れておきますが、デシメートを適用すると元に戻せませんので注意してください。

f:id:Helcha:20220219230007p:plain

bluebirdofoz.hatenablog.com

以下Tips的なこと

 

極力「束ねる」で削減する

「束ねる」を選択すると頂点がマージされたような感じに処理されるので、3角形に面が変わります。

が、「分割の復元」「平面」はそのような処理がなされず、多角形に変わります。

そうなってしまうと面(描画?)が意図せず裏面になったりで見た目がおかしくなったり、後述するベイクで色が変になったりしてしまいます。

頂点などの編集が分かり、後から3角形のポリゴンに修正できるのであれば、特徴崩さず削減できと思うので試してみてください。

f:id:Helcha:20220219234317p:plain

 

部品ごとに値を変更する

編集モードにしてからウィンドウ内を右クリして、分離の「構造的に分離したパーツで」を選択すると、いい感じに分割されます。

(いい感じにならなかったら自分で頑張って頂点を選択し、分離で「選択」を選択してください…。)

f:id:Helcha:20220219231528p:plain

 

分離したけどやっぱり一緒に値を変えたいのであれば、「オブジェクトモード」で一緒にしたいメッシュを選択し、結合を選択すれば1つにまとめられます。

f:id:Helcha:20220219232839p:plain

 

削減加減の限度

関節の動きは、頂点がボーンの動きに合わせて変わることで表現されています。

なので、関節がある部分に頂点が無いと、ボーンに追従した表現ができなくて見た目がおかしくなります。

関節に対応した頂点がなくならない程度に留めましょう。

(なので、手の部分はポリゴン数多くなりがち)

f:id:Helcha:20220220002344p:plain

 

最後に

自分がミルクちゃんで作業したときは、個人的に許容できる範囲で減らしても11000ポリゴンまでしか減らせず、

結局、顔のメッシュも減らしました。

涙や紅潮表現用に球体があるので、その半分を削除したり、 

f:id:Helcha:20220220004306p:plain

円を簡略化したりでなんとか10000ポリゴンまで減らしました。

f:id:Helcha:20220220004623p:plain

 

とりあえず、これで10000ポリゴンまで頑張って減らせれば、あとは以下の手順でFallBackアバター化の完了になります。

 

 UVマップの作成→テクスチャのベイク→デシメートの適用

 

ここらへんは次の記事に続けます。

Blenderを使用してのFallBackアバター対応について①はじめに

 

はじめに

軽いアバターが欲しい、Quest勢にも推しアバターを見せたい皆さんこんちには。

今回、FallBackシステムの要件のうち、満たすのが難しいであろうポリゴン数とマテリアル数をBlenderで削減する方法について紹介したいと思います。

 

前提

表情シェイプキー周りが入ったメッシュが6000ポリ程度以下であること!

今回、「デシメート」という機能を使ってポリゴンを削減させていきます。

ただ、この機能はシェイプキーの入ったメッシュには適用でません。

なので、今回は表情で6000ポリそれ以外で4000ポリ程度に抑えて行っています。

一応、シェイプキーを維持できる?「Cats Blender Plugin」というプラグインもあるそうなので、気になった方は調べてみてください。

 

FallBackアバターの要件

FallBackアバターにするための条件をご存じかも知れませんが、まとめておきます。

https://docs.vrchat.com/docs/avatar-fallback-system

https://docs.vrchat.com/docs/avatar-performance-ranking-system

Android / Questの要件に従って、パフォーマンスランクがGoodまたはExcellentである必要があります。

アバターの品質 優れた 良い
ポリゴン 7,500 10,000
境界サイズ* 2.5mx 2.5mx 2.5m 4m x 4m x 4m
スキンメッシュ 1 1
メッシュ 1 1
マテリアルスロット 1 1

 

所感

2つのアバターをFallbackに設定できるようにしました。

f:id:Helcha:20220216213903p:plain

常用してる改変メリノちゃん

f:id:Helcha:20220216213721p:plain

記事のために作ったミルクちゃん

 

2つ作ってみましたが、「長髪」「球体が多い」「凹凸が多い(リボンやフリル)」特徴を持つアバターは難易度高めかなと感じました。

(同じぐらいのポリゴン数なのに、ミルクちゃんの方が大変でした)

強いこだわりがなく、いくつかの服装パターンがあるならそういったアバターはやめておいた方が楽できます。

 


作業に取り掛かる前に

Blenderによるアバター改変ができる程度の知識が無いと厳しいです。

以下の記事が参考になりますので読んでみてください。

t.co

 

 

ポリゴンを減らしていきましょう!

[2022/02/21]本記事を一部修正し、続き書きました。

helcha.hatenablog.com

 

 

余談

そういえば、過去の記事の続き書いてないんですけど、有用な情報か?と疑問符めちゃくちゃ上がったので書く気ないですね。ハイ。

ジェスチャートラッカーを作ろうとした話(その①)

 VRChat向けのアバターの整備していたら1週間経ってしまいました…

最近やりたいことが多すぎて嬉しいのやら悲しいのやら!

だらだらとYouTubeTwitter眺めてる時間を減らせば良いんでしょうけど、うーん難しい。

 

  • 当初の考え

自己紹介で書いたように、VTuverで有名になりたかったので「なにか使えるものを作ろう!」ということで指のトラッキングを行うハードウェアを作ろうとしてました。

2020年5月頃、指のトラッキングをする方法がほとんどなく、作って提供すれば関係が生まれて有名に…なんて浅はかに考えてました。

 

結局のところ、去年の秋ごろにはVTuber向けのアプリが結構リリースされていたようですし、ここ1年VTuberさん配信を見てきて指のトラッキングを必要とする場面ってそもそも全然ないし、正直取り組まなくて良かったなぁと今では思います。

 

  • 今の考え

お盆休み暇なので、旧友がVRCにどっぷりだったのを思い出してVRCを始めました。

そしてプレイしていたところ、「表情の切り替えを手のジェスチャーで行えればな…」と思い、手のジェスチャーを検出するトラッカーを作ろう!ということにしました。

 

  • 機材の選定

ラッキングの手法としては、カメラを使って手の形を画像解析する方法と、ハード的に指の折り曲げを検出する方法の2つに大きく分けれます。

前者についてはその手の勉強をしてこなかったこと、そしてそれができるんだったら既にOculus Quest 2が既にやってるか、今後のアップデートで対応するはずなので不採用としました。

 

なので、「ハード的に指の折り曲げを検出して無線送信する装置」と「無線受信してキーボード出力するソフト」を作ります。

とりあえず今回は使ったセンサーとマイコン、アプリの開発ソフトの紹介までしたいと思います。

 

  • 使用するセンサー:曲げセンサー

採用理由は単純に設計が簡単だから。

他にもいろいろなセンサーで検出できるのですが、一般人が買えるものの中では最も今回の用途に適しているものかと思います。

その件はまた今度記事にまとめます。

 

akizukidenshi.com

本当は国産のマイコンボードを使いたかったのですが、「マイコン Bluetooth」で調べて接続が簡単そうだったので選びました。

しかも簡単なだけでなく、以下の強みもあります。

  • 予めBluetoothのモジュールが実装されている
  • 値段はAmazonで1000円前後
  • Audiuno IDEによってサンプルコードを簡単にダウンロードできる
  • ADCポートが16ポートもある

…なんとなくみんなESP32をなぜ選ぶか分かったような気がする…。

後から思い返すと、I2C通信やUART通信の勉強のためにBluetoothなしを選ぶ手もあったかなーと思いますが、それはまた今度気が向いたらやろうと思います。

 

知らなかったのですが、Visual Studioって個人の趣味で使う分には無償版があるんですね。知らなかった…。

昔から使ってみたいという思いがあったのと、Windowsの環境下でキーボードの出力を行わせる予定なので採用。

 

 

作るもの簡略的に図にすると以下のような感じです。

f:id:Helcha:20210823224114p:plain

(「手作りソフト」て書いたのはWPFUWFで一悶着あったので…ここでかなり悲しい目にあったので今後記事にしたいな…。)

 

今回は一旦ここまで。

次回はセンサーの種類や、電子工作するにあたってのマイコンの選び方などを書けたらなと思ってます。

身の上話

  • お仕事について

一般的にはサラリーマンで、具体的にはμITRONベースのRTOSで設計業務をしてます。

土日は予定がなければ全日、平日は21-24時あたりから趣味の時間です。

 

  • 性癖?

美少女からおっさんの声が出ても気にしないです。

VTuberだと伊東ライフ先生とかよく見るんで。

TSとかリョナ、同性愛とか話をする分には楽しいですけど、実際にしたいかは別なので本気にしないでね!

 

  • テレビ知識

ここ10年以上ほとんどテレビドラマとか見てなくて分からないです。

 

  • アニメ/特撮知識

結構見てたり見てなかったりまちまち…知らないアニメの話でも嫌いじゃないんでウェルカムです。

 ガンダムと特撮は最近の交友関係で浅く知りました。

 

  • YouTuber/VTuver/ゲームストリーマー知識

GUNMA17さん界隈とアイドル売りじゃない(?)VTuber、あとはスタヌさん/釈迦さんあたりを暇なときに見てます。

 

  • 家庭用ゲーム知識

スーパーファミコンゲームキューブぐらいまでのパーティゲームは一通り分かるかなと。

他はポケモンルビサファあたりまでとFF4、エスコンは1~7、モンハンはF除き一通り。

 

  • オンラインゲーム知識

FF14は再生零式4層の攻略中。

FPSゲームのストリーマーも好きですが見るだけです。

昔はBattleField3やガンダムオンラインをやっていました。(BattleField2042が楽しみ)

 

  • エロゲ知識

よく話題に上がるようなやつ(上がるか?)は分かります。

まともにプレイしたのはバルドスカイシリーズとリトバスぐらい。

 

  • 好きな音楽

幅広くクラシックから洋楽、アニソンまでいろんなジャンルで好きな曲はあるけど、どのジャンルとか歌手に特定して好きとかないです。

強いてあげるなら久石譲さんの曲は手放しで好き!

 

書いてて需要のある情報か不安ですが、どうかよろしくお願いします。

 

VRCとブログ始めました。(自己紹介/経緯/今後の予定)

2020年4月。世界はコロナの恐怖に包まれた。3密は避け、GWは帰省を控え、立てられた帰省計画は死滅した。だが、VTuber文化は繁栄の兆しを見せていた…。

 

  • 自己紹介

初めまして、へるちゃというものです。

C#やUnityなど、C言語とは異なるプログラミング技能を身に着けることを目的とし、持っている知識を用いていろいろなものを作ろうと、はてなブログを始めました。

初めはTwitterだけの予定でしたが、詳しい話になっていくとツイートも増えてしまうので、こちらに残すようにしたいと考えています。

 

  • 経緯

さて、なんでC#やUnityをやろうと考えたのか?についてですが、理由は2つです。

  1. YouTuberやVTuverになりたくなった。
  2. 業務でC言語しか使わず、将来に不安を覚えた。

初めに書いた怪文書ですが意味があって、昨年のGWはコロナの関係で地元に帰省できず*1、ずっと自室に引きこもってYouTubeを見てました。

その中で「Vのかま騒ぎ」なるものを見て、「自分もバ美肉ってVTuberになりたい…全身トラッキングしてる人少ないしお金もかかるから、自分でデバイス開発したら再生数稼げるんじゃない?」と思ったのがきっかけです。

【#Vのかま騒ぎ】バ美肉おじさんVtuber編 / 兎鞠まり/魔王マグロナ/伊東ライフ/日ノ森あんず/犬山たまき【因幡はねる / あにまーれ】 - YouTube

また、それによってUnityとC#への理解が深まり、将来への不安感も薄らぐだろうとも考えていました。

 

…ただ、結局仕事が忙しくてリソースを割けず、今に至ってしまいました。

(最近になって知りましたが、そのときすでにハリトラさんの開発が進んでて、自分がもしもそういうものを作れたとしてもそんなに再生数は稼げなかったと思われます。)

 今じゃ動画編集やボイチェンの大変さとかも分かってきたので、1. の気持ちはなくなって、2. の目的のためにVRCを初め、VRC関係で何か作れればなと思っています。

 

  • 今後の予定

 とりあえず、HTC ViveでVRCをやっていて、ハンドサインにやりにくさを感じたので、指の折り曲げからハンドサインを行うものを製作しようとしましたが失敗しました

ただ、作るうえでいろいろあったので、それの情報共有を目的とした記事を残したいと思っています。

 

それとVRCの方はいまいち軽いノリでJoinできる方がいないので、全然Welcomeな方がいましたら突っ込んで行くんで夜露死苦ぅ! 

 

*1:離島?なので必ず公共交通機関が必要になってしまうから