概要
- VRChat へアバターをアップロードする時に発生する問題点を解消する
- mixamo や Blender の Rigify でリギングしたモデルはそのままだと VRChat にアップロードできないため、その問題点を解消して VRChat にアップロードするまでの流れをスクリーンショット付きで説明します
全体的な流れ
- SculptrVR でモデリング FBX へエクスポート
- Blender で FBX を補正して更に FBX へエクスポート
- mixamo で FBX にリギングを適用して更に更に FBX へエクスポート
- Blender で FBX に適用されたリギングを補正して更に更に更に FBX へエクスポート
- Unity5.6.3p1 をダウンロードしてインストール(すでにインストール済なら省略)
- VRChat アカウントを取得してSDKをダウンロード
- VRChat 登録メールアドレスの Confirm
- Unity 上で新規プロジェクトを作成し、VRChat SDK のインポート
- Blender で最終出力された FBX を Unity へインポート
- VRChat アバターの設定を行い、アップロード
ちょっと長いですよ、上記のうち上から3つ(mixamo で FBX にリギングを適用して更に更に FBX へエクスポート)までは過去記事の「SculptrVRでモデリングしたモデルをmixamoでリギングし、UnityでIK」を参照してください。
Blender で FBX に適用されたリギングを補正して更に更に更に FBX へエクスポート
- Blender を起動する
- X を押下して初期画面のキューブを削除
- ファイル → インポート → FBX (.fbx)
- mixamo でエクスポートした FBX を選択し、FBXをインポート をクリック
- カメラとライトがダブってるので、アウトライナービューで Camera.001 と Lamp.001 を右クリックして削除
- アウトライナービューでモデルルートの Armature ノードを展開し、モデルメッシュの Sculpture_9 (人によって名称様々)をクリック
- テンキーのピリオド「.」と「1」を押下
- ドーン!
- mixamo で適用したモーションのポーズになってますね
- A を押下して選択解除
- ボーンを右クリックしてポーズモードへ移行
- ポーズ → トランスフォームをクリア → すべて をクリック
- シャキーン
- Tポーズに戻った!
- アウトライナービューでモデルメッシュをクリックし、3Dビュー内にカーソルを移動して Alt + P を押下
- 親子関係をクリア
- バーン!
- ボーンとメッシュが切り離され、メッシュの位置とサイズが元の姿に
- A を押下
- メッシュを右クリックして選択
- S を押下
- 0.01 とタイプして Enter
- 以上で 0.01 倍にメッシュをスケールしてボーンと同じサイズにまで縮小
- もしサイズが合わない場合は適宜数値を調整してください
- R を押下
- X を押下
- 90 とタイプして Enter
- 以上で寝っ転がりから起き上がり、ボーンと綺麗に重なります
- テンキーの 3 を押下して横から見ても原点からズレてない事を確認します
- 今回はズレてないのでなにもせず次へ進みます
- A を押下して選択解除
- テンキーの 1 を押下して正面図
- テンキーの 5 を押下して平行投影図
- プロパティービューのデータアイコンをクリック
- 表示のレントゲンをチェックし、ボーンを見やすくする
- ポーズモードから編集モードへ移行
- アウトライナービューの Armature ツリーを mixamorig:Spine2 まで展開する
- アウトライナービューの Spine2 ノード下のノードをクリック
- 3D ビューにマウスカーソルを移動し、Alt + P を押下して 親子関係をクリア
- 上記作業を、mixamorig:Neck、mixamorig:LeftShoulder、mixamorig:RightShoulder そして最後に mixamorig:Spine2 に対して実行する
- アウトライナービューの mixamorig:Spine2 ノードをクリック
- 3D ビューにマウスカーソルを移動し、 X を押下し、ボーンを削除
- A を押下
- Neck ノードを右クリック(子供)
- Spine1 ノードを Shift+右クリック(親)
- Ctrl + P を押下し、オフセットを保持をクリック
- 上記作業で、首ノード(Neck)を胸ノード(Spine1)に接続します
- 同様の作業を RightShoulder ノードに対しても実行します
- 同様の作業を RightShoulder ノードに対しても実行します
- アウトライナービューがこのようになっていれば OK です
- ボーン編集が終わったので、オブジェクトモードへ戻ります
- A を押下
- モデルを右クリックし、HTAB を押下して編集モードへ
- Ctrl + N を押下し、法線ベクトルを再計算させる
- 再度 HTAB を押してオブジェクトモードへ戻る
- A を押下
- モデルを右クリック
- ボーンを Shift + 右クリック
- Ctrl + P を押下して 自前のウェイトで をクリック
- 以上で、再構築したボーンへのメッシュの関連付けが完了
- ファイル → 名前をつけて保存...
- ファイル名を適宜設定して Blenderファイルを別名で保存
- ファイル → エクスポート → Fbx (.fbx)
- ファイル名を適宜指定して FBXをエクスポート
Unity5.6.3p1 をダウンロードしてインストール(すでにインストール済なら省略)
- まずはここへアクセスし、Getting Start に書かれている要件を確認します。バージョンアップに伴い内容が変化する可能性があるので、ご注意を。
- 現時点では Unity5.6.3p1 が必要となっており、そのままダウンロードページへのリンクになっているのでクリック
- 各環境に応じてダウンロード
- 自分は Windows なので ダウンロード (Win) をクリック
- ファイルを保存
- ダウンロードが完了した exe ファイルを実行
- Next
- I accept the terms of the Licence Agreement をチェック
- Next
- 環境に応じて 32bit か 64bit を選択
- 最近の PC は殆どが 64bit
- Next
- 不要なコンポーネントのチェックを外す
- VRChat のみでの利用を想定している場合、Android / iOS / Linux は外しても良いかも
- Next
- インストールパスを Unity のバージョンに合わせてカスタマイズする
- 自分の場合は C:\Program Files\Unity563p1 に設定
- Next
- インストール待ち
- インストール完了
- Launch Unity のチェックを外す
- Finish
VRChat アカウントを取得してSDKをダウンロード
- VRChat サイトへアクセスする
- REGISTER をクリック
- 必要事項を記入して REGISTER をクリック
- SDK をクリック
- ファイルを保存する を選択
- OK
VRChat 登録メールアドレスの Confirm
一旦SDKをダウンロードできたところで、メールで VRChat のメールアドレス確認のためのメールが来てるのでそれを確認しましょう。
- Click hear to confirm your e-mail address! をクリック
- ウェブブラウザへアクセスが始まり、上記画面が表示されれば確認完了
Unity 上で新規プロジェクトを作成し、VRChat SDK のインポート
- Unity 5.6.3p1 を起動する
- Unity Personal を選択して Next
- 人によってはこのウインドウ表示されず、この先のウインドウが表示されるかもしれないので注意
- 適宜選択して Next
- ちょっとしたアンケートに答えて OK
- Start Using Unity
- NEW
- プロジェクト名を適宜入力し、Create project
- 先ほどダウンロードした SDK を開く
- Import
Blender で最終出力された FBX を Unity へインポート
- 先ほどエクスポートした FBX を Project ビューにドロップする
- Project ビューのモデルをクリック
- Inspector ビューの Rig をクリック
- Animation Type を Humanoid に設定
- Configure...
- Apply
- Chest ノードの設定が None になっているので、Hierarchy ビューの mixamorig:Spine1 を Inspector ビューの Chest のノード部分にドロップする
- Done
- Apply
VRChat アバターの設定を行い、アップロード
- Project ビューのモデルを Hierarchy ビューへドロップし、シーン内にモデルを配置する
- ドーン!!
- 色がついてない
- 頂点カラーを有効にするために頂点カラーシェーダを適用する
- 頂点カラーシェーダー をダウンロードする
- ダウンロードしたファイルを Project ビューにドロップする
- Project ビューの VertexColor シェーダを VertexColor マテリアルにドロップする
- Project ビューの VertexColor マテリアルを Scene ビューのモデルにドロップする
- シャキーン!!!
- Hierarchy ビューのモデルをクリック
- Component → Scripts → VRCSDK2 → VRC_Avatar Descriptor をクリック
- Hierarchy ビューのモデルを選択
- Inspector ビューのモデルの Scale を調整し、丸いマークを顔の位置にくるように調整する
- この画面例では画面をズームアウトして丸いマークを見つけ、実際の位置を見ながら座標を手入力で調整している
- モデルのスケールのみで合わない場合は View Position の座標を微調整する
- モデルが女性キャラクターの場合、Default Animation Set を Female にする
- プロパティ設定完了
- VRChat SDK → Settings
- Username に登録したメールアドレスを入力
- パスワードを入力し、Sign In
- Sign In した状態
- VRChat SDK → Show Build Control Panel
- Build & Publish
- アップロード準備が始まり、Unity アプリが起動します
- Hierarchy ビューの VR CCam を選択し、Scene ビューでカメラ位置を調整し、キャラクターの外観がわかるようにします
- このカメラに映った映像がアバター選択サムネイルになります
- アバター名を入力(多分英語で入力が良いと思います(日本語試してない))
- アバターの説明を入力(多分英語でry)
- コンテンツの注意事項があればチェック
- Nudity/Sexuality ... 性的なの
- Realistic Violence ... リアルな暴力的なの
- Blood/Gore ... 流血的なの
- Other NSFW ... その他なんかヤバそうなの
- 最後のチェックボックスはチェックする
- Upload
Okay
アップロード完了
さぁ、VRChatしてみようか
以上で VRChat へのアバターのインストールは完了です。さぁ、アップロードしたアバターの様子はこんな感じです。
いやー、肌が服を貫通しちゃってますね。でもちゃんとモーションが適用されてアニメーションしてくれます。これでヒューマンメタリグを仕込んだモデルが SculptrVR smooth バージョンで作れる手順が確立できました。
SculptrVRでの注意点
- mixamo を使う場合レイヤーは便利だけどできるだけレイヤーを使わない方が良い
- 最終的に Blender での手間暇がかかるというのもありますが、後でボーンのウェイトをつける時にちょっと面倒です
- でもまだそんなにモデル作りの経験があるわけじゃないので上図な手順ノウハウを作っていきたいところです
- 空洞ができないようにする
- こんな風になってると内側にもポリゴンが出来てしまいますし、手動でウェイト調整が困難になります(今回のモデルではこれが起きていた)
- ボーンをぶっこぬく事になるのでそのあとの調整も面倒だし、ボーン設定をウェイト設定は全部 Blender で完結した方が多分楽ちん(でも単純な形状とかうまい作り方するなら mixamo を使って簡略化はできると思う
とりあえず、こんなところでしょうか。
今日は色々ハマってプログラムできませんでしたが、Blender の使い方にも色々慣れる事ができたので結果オーライです。Oculus で挙動制御は明日やります。
ではまた!