初めてblenderを触った結果、長時間なやんでしまったので備忘録として残しておきます。
VRChatに無事アバターアップロードすることを目的としています。
文中の値段表記については、18/09/19現在での情報です。
-
2019/8 更新
古いままだったいくつかの情報について更新しました。
Blender 2.8 対応はできてないです許して。Soft Version Blender 2.79b Cats Blender Plugin 0.13.3 Unity 2017.4.28f1 VRChat SDK 2019.07.31 Shaclo 1.2.2 (shoesモデル)
シャーロちゃんとは
まずはうちの改変(色とか絆創膏とか)済みシャーロちゃんを見てくれ。
かわいかろ~?
(Shaclo; © 2018 ⊿S.I.N
Two-handed Sword; © 2018 The garden of Ashen
UTS2.0; © 2017 Unity Technologies Japan/UCL)
このかわいい3Dモデルが ⊿S.I.N
さんのbooth でなんと3000円でお迎えできちゃうんだ!
注:装備してる両手剣は Ash
さんのbooth で購入したものなので付いてきません。オプション料金500円。
blenderでモデルデータをいじる
本題。
シャーロちゃんの .unitypackage
をインポートするのは何も問題ないですが、blenderで .fbx
ファイルからいじる際にはいくつかテクニックが必要のようです。
(初めてのblenderチャレンジだったので、もしかしたら常識なのかもしれませんが…)
以下、自分がつまった点についての説明と対策を書いてます。
Cats Blender Plugin
(追加)
簡単にモデルをインポートする機能やVRChat向けに最適化してくれる機能などを提供してくれる神ツール。
もっとはやく導入してればよかった。
インストール方法についてはこちらの READMEのインストール項目 通りです。
Material Combiner
(追加)
こちらのBlenderアドオンを導入することで Cats Blender Plugin
からマテリアルの統合ができるようになります。
インストール方法についてはこちらの VRChatフォーラムのスレッド にかかれています(Cats Blender Plugin
の導入と同様の手順)。
インストール後にBlenderを再起動。
CATS
タブの Optimization
項目の Atlas
から利用できます。
.fbxファイルのインポート時にボーンを揃える(更新)
Cats Blender Plugin
を導入していれば ツール
シェルフ -> CATS
タブ から
これだけできれいにインポートしてくれます。
神か。
シェイプキーが消えるのを防ぐ(更新)
シャーロちゃん v1.2.2 ではすでに対策されているようなので、以下の作業は必要ありません。
-
問題
blenderでは存在するのに.fbx
エクスポート後、Unityで読み込むと消えてしまう。
v_sil, blink_left/right, lowerlid_left/right
の5つが消えていました。 -
原因
Basis
キーと全く同じ(=メッシュを動かしていない)状態だと最適化の結果、削除されてしまうみたいです。 -
解決策
そのため次のような操作を行い、メッシュを肉眼では判別できないほどの微小値変化させます。
以上でUnityにインポートしてもシェイプキーが残っているはずです。
VRChatでシェイプキーが暴れる
-
問題
何もしてないのにお口やお目々がビクンビクンする。
まばたきアニメーションの設定ミスかと思いきや、どうも違う様子。 -
原因
アイトラッキング機能がシェイプキーの上から4つを使用するため、シェイプキーの並びが推奨順でない場合に暴発するみたいです……?(よくわかってない)
またUnityに取り込んだ際、ボーン設定が間違ってることも影響してそうです。 -
解決策
-
シェイプキーの並び順
とりあえずblender上でシェイプキーを次の推奨順に並べ直すと直ったので、試してみてください。
Basis
blink_left
blink_right
lowerlid_left
lowerlid_right
-
Humanoid
のボーン対応修正Unityにインポートしたさい、
Humanoid
のボーン対応で顎(Jaw
)に髪のボーンが設定されていたので外す(None)。
シェイプキーが爆発する(追加)
もしくはウニになる。
アバターを改造しようとしたときになるやつです。
シャーロちゃんでは発生しにくいと思われますが、Blenderでいじってるといつか遭遇するので念の為に書いておきます。
-
原因
シェイプキーが頂点の移動情報を記録しているためメッシュの頂点を削除したときにバグるせいみたいです。 -
対策
メッシュを直接編集するのではなく、編集するメッシュ部分を分離しておくといいようです。
アバターの多くはシェイプキーを表情表現のみに使っており、変形する頂点は顔部分のメッシュに集中しているので、
- オブジェクトを顔と身体に分離(
選択物を分離
) - 身体部分のオブジェクトからはシェイプキーを削除
- 作業終了後ないし出力前にオブジェクト統合
とすれば大丈夫だと思います。
とはいえ割とミスしやすく、費やした作業時間が無駄になるのを防ぐため、分離・削除したときはシェイプキーの動作を確認しておくことをおすすめします。
参考:https://twitter.com/nukomiya09/status/1101144929189867520
単位設定(追加)
Blenderで扱う長さの単位をメートル法にしておいたほうがいいみたいなので設定します。
プロパティウィンドウにおいて
オブジェクトモードと編集モードでボーン位置がずれる(追加)
ポーズモードがデフォルト値から変更されているのが原因だと思われます。
左 ツール
シェルフ -> CATS
タブ から
以上でボーンの変更値がリセットされTポーズに統一されます。
やはり神では。
髪・ヘアピンの位置がずれている(追加)
原因はわからないですけど、なんかずれてますね……。
正しい位置についてはちょっとわかりませんが、だいたいこのぐらいに合わせてみました。
残念ですが手動です。
-
髪部分を選択
オブジェクトモード
-
G
->Z
->0.02
(2cm上に移動) -
G
->Y
->-0.0152
(1.52cm前に移動) -
Ctrl + A
->位置
で適用
-
ヘアピンについても修正
オブジェクトモード
-
G
->Z
->0.015
(1.5cm上に移動) -
G
->Y
->-0.0185
(1.85cm前に移動) -
Ctrl + A
->位置
で適用
マテリアル統合(追加)
あまりに長くなったので別記事で書いてます。
FBX出力(追加)
Cats Blender Plugin
の Export Model
機能から出力できる。
左 ツール
シェルフ -> CATS
タブ から
メッシュオブジェクトやマテリアル数が多かった場合、ここで次のような警告が出ます。
Continue to Export
でそのまま出力もできますが、できれば結合を試してみてください。
Unityでのアップロード作業(追加)
本記事では説明せず、参考文献を挙げるにとどめます。
Unity開発環境(VRChat用)
アバターアップロード
アニメーションオーバーライド
以上、自分がつまづいてしまったポイントでした。
何かの役に立てば幸いです。
では、よきVRライフを。