Pikali’s diary

Unity素人,Blenderできない非IT系サラリーマンがVRChatを始めました。

パソコンを購入しました。(3週間経過したので超ニッチなレビュー)

パソコンを購入して3週間経ちましたので、感想を書いてみます。

長期の出張がある仕事だったのでここ数年はノートパソコンです。

(ここ5年間で自分の家に住んだのは1年半くらいです・・・)

今まで使っていたPCは2年ちょい前に購入したCPU:Corei7-6700HQ メモリ:16G グラボ:GeforceGTX970mと2年前のノートPCにしては性能がよかったのですが、VRChatを始めてからはさすがに厳しい状態でした。

HTCVIVEは使用可能ですが、Oclus RIftは動作せず。

VRChatでは少人数(20人くらい)では大丈夫ですがイベントなど大人数の時は常時FPS10くらいまで下がり、画面がしょっちゅう固まるのでまともに話もできない状態になります。それでも使えていただけ良かったと思いますが。

今年に入ってGeForceRTX搭載ノートが出てきたので購入することにしました。

条件として、

15.4インチモニター(17インチだと対応しているカバンが少ない)

電源アダプタもいれて3kgくらいにしたい(重いと運ぶのがしんどいという上、最近の飛行機は手荷物7㎏までのところが多いので会社のPCも持たされる長期出張の時とか厳しい)

RTX2070以上(SteamVRはGTX1060でもよいらしいがノート用は能力低いので…)

メモリ:16G HDD:1T SSD:500GBくらいほしい。

そんなわけで2月頃から各社出始めたところでDellのm15シリーズに決めました。

www.dell.com大きなポイントは2070RTXが選べて比較的軽いのと値段も高くないと思ったからです。(当時2070RTXを選べるMSIはかなり高かった)本体が2.16kgと比較的軽いのもポイントです。(てかゲーミングPCの重さじゃないでしょ)

構成は

CPU:Core i7 8750H(6コア、9MBキャッシュ、最大4.1GHzまで可能 ターボブースト付き)

モリー:16GB,2x8GB,DDR4,2666MHz

HDD:1TB

SSD:PCIe M.2 512MB

グラボ:GeForceRTX2070 8GB Max-Q

以上で税込み275000円くらいです。(今思い出してもよく買った・・・)

注文して3週間くらいかかりました。

f:id:Pikali:20190331191009j:plain

箱をあけるとこんな感じです。

f:id:Pikali:20190331191044j:plain

箱から出したところ、ACアダプタがでかいです。

20cm x 10cm x 2.5cmくらいあります(コード除く)。

ただ薄いので持ち運びしやすいかもです。(PCの厚さとほぼ同じ)

f:id:Pikali:20190331191111j:plain

ACアダプタが1kgあります。

f:id:Pikali:20190331191920j:plain

電源のコードだけで200gあります。(海外の200vでも使用できるようにしてあるからかと)持ち歩くときは短いものか、プラグだけのを別途買ったほうがいいです。(前のPC用に買ったのがある)合わせて3㎏くらいで済みます。

f:id:Pikali:20190331191923j:plain

というわけでSteamVR パフォーマンスうテストをしてみました。

f:id:Pikali:20190331192443j:plain

このPCどこににもマークはありませんがVRレディです。

その後3週間使ってみましたが、VケットやVRCイベントでもかなり快適になりました。(人数多いときはFPS20くらいに下がることはありますが、周りの人も「重い~」とか叫んでるのでそんなものかと)

だいぶつよつよ(当社比)になったのでBeat Saber + LIV + バーチャルモーションキャプチャー + OBSという組み合わせでも動かせます。

 

ノートPC縛りのあるVRC民は検討してもいいと思います。(最近デスクトップCPU+無印RTX2070搭載がマウスから出たらしいのでそっちが気になりますが・・・)

 

追記:発熱がすごいのでノートPCクーラーは必需品と思われます。

 

 

 

 

 

VRCでアバターのサムネイルに好きな絵を入れてみる。

 


VRChatでアバターサムネイル(でいいのか?)に好きな絵を入れる方法です。

要約するとQuadに好きな絵を貼り付けたマテリアルを添付してアップロードの時出現するVRCカメラに映せばOKです。

 

f:id:Pikali:20190224215748p:plain

アバターをアップロードする手前までにProjectのビューに映したい画像をD&Dしておきます。

f:id:Pikali:20190224223822p:plain

Quadを作ります。

Hierarchyウィンドウ->Create->3D Object ->Quad

f:id:Pikali:20190224224340p:plain

RotationのYを180度にして裏返します。

読み込む図に合わせて縦横のScaleを調整します。

f:id:Pikali:20190224224616p:plain


Materialを作成します・(ProjectウィンドウCreate->Material)

f:id:Pikali:20190224223841p:plain

作成したMaterialのShaderをUnlit/Textureに変更し、画像をProjectウィンドウからD&Dします。

f:id:Pikali:20190224224915p:plain

四角形に図が付きました

f:id:Pikali:20190224225223p:plain

ここで1画面で作業している場合は2画面(Scene画面とGame画面が同時に表示する)にレイアウトを変更します。

画面のタブをD&DしてもOKですし以下の用意レイアウトを変更してもOKです。

元からあるレイアウトを使ってみますが、レイアウトで2by3を選んでみます。

f:id:Pikali:20190224230007p:plain

ここでVRChat SDK-> Show Build Control Panel -> Build & Publishを押してアップロード画面を出します。

Scene画面にVRCCamというカメラが出現しますのこれを動かして図を貼り付けたQuadが映るように調節します。(Scene画面の隅にプレビューが出てます)

Upload Imageをクリックすると映りが反映されるのでそれからアップロードすればOKです。

 f:id:Pikali:20190309133157p:plain

Dynamic Boneで揺らした髪が顔や体にめり込む対策(Dynamic Bone Colider使ってみた)

前回の記事でDynamic Boneで髪の毛を揺らすとこまで行ったのですが髪が体や顔にめり込むのでいちおう対策してみました。

今回はDynamic  Bone Coliderを3個使います。

(1個は頭あたり:前髪と横髪が顔に刺さるのを防ぐ

 もう1個は肩:後ろの髪が胴体に刺さるのを防ぐ

 残りは首:後ろの髪が首に刺さるのを防ぐ)

表示をワイヤーフレームに切り替えると確認しやすい場合があります。

f:id:Pikali:20190114144554j:plain

Headの下に空のGame Objectを作成します。(名前はHead Coliderとかにしときます)

f:id:Pikali:20190114151323j:plain


そこにDynamic Bone Coliderを追加します。

f:id:Pikali:20190114150141j:plain

とりあえずはざっくりこんな感じで作っときます。

f:id:Pikali:20190114152043p:plain

今度は各ボーンにコライダーの当たり判定を設定します。

今回、頭のコライダーには前髪、横髪を設定ます。

まず前髪のDynamic BoneのColider のSizeを1にします。

(このSizeは大きさではなくコライダーの数です)

下のElement 0のマスにDynamic Bone Coliderを作ったオブジェクトをドラックアンドドロップします。

f:id:Pikali:20190114153729j:plain

同じように横髪の2つも設定します。

f:id:Pikali:20190114153937p:plain

ここでコライダーの大きさや位置を調整します。

再生を押すと効果が確認できますので再生しながら調整するのがいいと思います。

アバターの顔は完全な球形ではないので1個のコライダーで完全にカバーするのは難しいのでボーンごとにコライダーを分ける方法もありますが、ほどよいところで決めとくのがよいかと思います。

た再生時の変更は再生を止める(もう1回再生を押す)とリセットされてしまうのでメモを取るなどして再生停止後あらためて入力する必要があります。

f:id:Pikali:20190114155908j:plain

動かしてみる場合はRootを選択して前後左右に動かしてみるとわかりやすいです。

f:id:Pikali:20190114161052j:plain

続いて後です。

(今回の場合後髪のコライダーはRadiusを0.03にしておいたほうが良いようです。)

Upper Chestの下にGameObjectを作成してDynamic Bone Coliderを作成します。

f:id:Pikali:20190114172601j:plain

今回は横に長くしたいのでDirectionをX、Heightを入力します。(とりあえず0.3とか)

球が2個に分かれて見えますが実際には横長のカプセル状のものができています。

続いてNeckの下にも作成します。

こちらは縦長ですのでDirectionをYに設定します。(Heightはとりあえず0.15)

f:id:Pikali:20190114173613j:plain

胴体に貫通しそうな後髪のボーンを選択してDynamic BoneのColiderのSizeを2にします。Elementの欄にそれぞれコライダーを作ったオブジェクトをドラッグアンドドロップします。

同じ作業を他の後髪にも行います。

その後顔と同じようにひたすらサイズや位置を調整して完了です。(この作業がいちばんしんどい)

しかし、頑張った後の結果がこれだからなぁ・・・

f:id:Pikali:20190114183215p:plain

追記

このままではあんまりなので、VRoid直してきました。

VRoidの修正

後髪ボーングループを3分割から左右2分割に

各ボーンの数を3個に減らす。

 Unityでは

頭と首のDynamic Bone Coliderをやめて前髪は固定(Dynamic Boneなし)、

横髪はX方向固定しました。(Freeze Axisをxに)

Upper Chestのコライダーを大きくして後髪だけ関連付けて前に行かないように

してます。

f:id:Pikali:20190114212502p:plain

これでようやくMiddleになりました。

f:id:Pikali:20190114212554p:plain

 

 

Dynamic Boneを使ってVRChatでもVRoidの髪の毛揺らしたい。

先月(2018/12)のアップデートでVRoidで髪の毛を揺らすことができるようになりましたが、VRChatでは揺れてくれません。

これを解決する方法の1つにUnityの有料アセットであるDynamic Boneを使う方法があるらしい、ということがわかり、さらに先月下旬のセールで半額だったので買ってみました。(1/13現在は元の価格に戻っています)

assetstore.unity.com

その後、これを使うとアバターのランクが下がるらしいという話を知ってしまい放置してました・・・がせっかく10$出して買ったんで頑張ってやってみました。

スカートに適用してしまうと足がスカートを貫通してしまい、この対応がまだできないので今回は髪の毛だけやってみようと思います。

VRoid Studioで髪の毛の揺れ物は設定しておいてください。

(ボーングループはあまり多くないほうが良いかもしれません、数がおおいとけっこう面倒ですw)

よくわからない場合はこちらの記事を参考にしていただくとよいかと。

 VRoid公式 on Twitter: "【髪揺れ機能解説①】
現状UIがちょっとわかりにくいので動画で解説します。

揺らしたい髪を選択(複数可)してから「ボーングループを作成」で、選択した房の中心に自動でボーンが設定されます。これだけで揺れます! #VRoid… "

こちらのさくま先生の記事がとても詳しいです、必見!!。

aozoranositade.ape.jp

 

以前の記事5.VRChatにアップロード

の手前まで進んでいる状態から始めます。(UniVRM-xx→Duplicate and Convert for VRChatの操作をしてクローンを作成した後です)

VRoid Studioで揺れ髪の設定をしてあればボーンのHeadの下に以下のHair Joint-~というものが並んでいます。これが髪の毛です。クリックで部位を確認して名称変更しとくと後でやりやすいかと思います。

f:id:Pikali:20190114082417j:plain



 

この時点からDynamic Boneのアセットをインポートしました。

(Dynamic BoneをインポートしてからUniVRM-xx→Duplicate and Convert for VRChatの操作をしてしまうと、足はスカートを貫き、目の動きもおかしくなってしまい、DynamicBoneコライダーが無数に誕生してステータスはVeryPoorになってしまいもはや素人の手には負えなくなってしまいました・・・泣)

f:id:Pikali:20190113163552j:plain

f:id:Pikali:20190113163604j:plain

ダイナミックボーンを髪の毛のボーンに割り当てていきます。

アバターのどこかに空のGame Objectを作ってここで髪の毛ボーンの数と同じだけダイナミックボーンのコンポーネントを作成してもいいという情報もあるのですが、どうもうまくいかないのでこの方法にしました。)

ボーンを選択してAdd ComponentでDynamic Boneを追加します。

f:id:Pikali:20190114094350j:plain

それだけでは動かないのでRootにボーンをD&D割り当てます。

f:id:Pikali:20190114095249j:plain

 

Dynamic Boneのパラメータを設定します。(いろいろ調べましたが結局よくわかんないのでこちらを参考にしました。Radiusは0.01くらいがいい気がします。Unity上だと動きの程度がよくわからないので、何度もアップロードしながら調整することになると思います。)

こちらの記事もおすすめです。

www.asset-sale.net

 

同様の作業をすべての揺らしたいボーンに行います。

今回は8個あるので8回やります

 ここでVRChat SDK ->Show Build Control Panel ->Publishで髪の揺れるアバターがアップロードできます。

注意:VRChatを起動しながら修正するとき、VRChatで選択中のアバターを上書きしようとするとUnityが落ちて作業がパーになるので必ずセーブしましょう。(泣

お疲れさまでした。

 (このままだと髪の毛が顔や体に刺さってしまうのでそれを避けるにはDynamic Bone Coliderの設定が必要です。)

(余談ですが、アップロード時の詳細ステータスにはDynamic Boneの数が0のままですがVRChatで確認すると増えてたりします、バグかな?)

f:id:Pikali:20190114102008j:plain

 

f:id:Pikali:20190114123244p:plain

 

関連記事

pikali.hatenablog.com

VRM(VRoid)アバターに帽子をかぶせてみた

VRoidアバターに帽子をかぶせてみたときの覚書です。

帽子以外にもリボンやかばんなどに応用できそうです。

以前クリスマスにサンタ帽をかぶせてみたのですが、ギリギリすぎたので今回あらためて別の帽子でやってみました。

booth.pm

VRMからVRChat形式に変換するところまでやります。

以前の記事の5.VRChatにアップロード

の手前まで進みます。

pikali.hatenablog.com

ダウンロードした帽子データを解凍します。

解凍したらProjectにドラッグアンドドロップ

f:id:Pikali:20190113131004j:plain

帽子を頭のボーンに貼り付けます。

(VRoidのボーンはボーンと書いていないので初心者の私はしばらくわかりませんでした、、、。)

 

f:id:Pikali:20190113131049j:plain

そのままでは灰色なので帽子にテクスチャを貼り付けます。

(どれか1つでよいようです)

f:id:Pikali:20190113131345j:plain

矢印を操作したり、Inspectorの値を調整して、位置と大きさを調節します。(映っていないときは上の方にあったり足元にあったりします。)

f:id:Pikali:20190113131518j:plain

こんな感じ(多少めりこむのは仕方がないかもです)

f:id:Pikali:20190113131709j:plain

あとはVRChatにアップロードします。

以前の記事5.VRChatにアップロードを参考にしていただければと思います。)

 

VRoidのモデルをVRChatに連れていく(Blenderはわからん、Unityなるべく使わずにとにかく取り込んでみたい人向け)

追記

2019/3/31眉毛、まつ毛、ベースヘアと目のハイライトが描写されない件を修正

VRM Converter for VRChat-6.0.1で改善されました、が映らないときもありますんで・・)

 VRoidで作成したキャラクターをVRChatに取り込むまでの覚書です。

(なるべくUnityでの手間をかけずに取り込める手順を探っています。)

0.取り込む前の注意事項

 しゃがむと上半身が服からはみ出る問題

 上半身の素体テクスチャ(体型編集→テクスチャ)を消しておくと、しゃがんでもお なかや背中がはみ出なくなります。肩まわりもはみ出ることがありますので消しておおいたほうがいいです。(サンプルモデルのテクスチャが消してあったのはそういう意味だったのか!?)

f:id:Pikali:20190212180348j:plain

 

1.使用したもの

VRoidStudio-v0.5.4-p1

Unity 2017.4.15f1

VRM Converter for VRChat-6.0.1 + UniVRM-0.51.0

( UniVRM-0.49を使うと真っ黒になってしまう事象が発生していましたがUniVRM-0.51.で大丈夫になりました、さらにVRM Conerterでベースヘアーや眉毛が透過してしまう件も大丈夫になりました。)

VRCSDK-2018.12.19.17.03

なお本文ではバージョン番号をxxと記しています。 f:id:Pikali:20190202102732p:plain

2.VRoidでモデルを作ってからVRMファイルにエクスポートする。

 

3.VRCSDK、VRM Converter for VRCha + UniVRMのダウンロード

VRCSDKはブラウザからVRChatにログインするとダウンロードできます。

VRM Converter for VRCha + UniVRMはこちらから

 

ダウンロードしたら解凍しますと

VRM Converter for VRChat-xx + UniVRM-xx

VRM Converter for VRChat-xx (xxはバージョン)

の2つファイルができますが、VRM Converter for VRChat-xx + UniVRM-xxの方を使用しますのでこちらとVRCSDKを適当なフォルダに保存します。

 

4.UnityでVRChat形式に変更

Unityで新規プログラムを作成してからまずVRCSDK,次にVRM Converter for VRChat-xx + UniVRM-xxの順にインポートします。

Asset-> Import Package -> Custom Package でもできますが。フォルダからProjectビューのAssetフォルダにD&D(ドラッグアンドドロップ)でもOKです。

まずVRCSDKから。

f:id:Pikali:20181216104621j:plain

VRCSDKのインポート

f:id:Pikali:20181216105651j:plain


ウィンドウが開いたらImportをクリックしてしばらく待ちます。

同じようにVRM Converter for VRChat-xx + UniVRM-xxもインポートします。

f:id:Pikali:20181216110506j:plain

f:id:Pikali:20181216110526j:plain

続いてVRMファイルを同じようにD&Dします。

f:id:Pikali:20181216111513j:plain

 

しばらくするとAssetsフォルダにPrefabができるのでこれをHierarchyにD&Dします。

f:id:Pikali:20181216124355j:plain

選択状態のままUniVRM-xx→Duplicate and Convert for VRChatをクリックします。

 

メニューが開いたら性別がFemaleになっていることを確認し、

視線追従を有効化についてかなり自然な動きになりましたのでチェックを入れていてOKです。(この辺は好みだと思います)

それから「複製して変換」をクリックします

f:id:Pikali:20190331212927p:plain



「複製が完了しました」というウィンドウが出たらOKをクリックしまして閉じます。アバターの(VRChat)が出現します。(以前のバージョンでCloneとなっている場合もあります)

~(VRChat)を選択してInspectorビューのVRC_AvatorDescriptorのView positonを編集して、グレーの球が両目の間になるようにします。

 

f:id:Pikali:20190331214134p:plain

 

2019/3/31修正:UniVRM,VRCConvreterのバージョンによっては睫毛、眉毛、目のハイライトとベースヘアーが描写されず、髪の毛に隙間があると禿げてしまうことがあります。

その場合は

F00_000_EyeExtra_01_EYEに加えて

F00_000_HairBack_00_HAIR

F00_000_EyeHighlight_00_EYE

F00_000_FaceBrow_00_FACE

のRendering Type がTransparentの場合

Cull ModeをOffにします。

(さらにRendering TypeをCut outにしてもいいと思います)

f:id:Pikali:20190331211047p:plain

 

5.VRChatにアップロード

VRChatSDK->SettingからVRChatにログインします。

(VRChatのID,Passwordを入力します)

f:id:Pikali:20181216114103j:plain

 

VRChat SDK->Show Build Control Panelをクリックするとウィンドウが開きます。

エラーが出ていなければBuild & Publishをクリックします。

f:id:Pikali:20181216120308j:plain

ここまでSceneを保存していない Scene保存のウィンドウが出るので適当な名前で保存します。

f:id:Pikali:20181216120828j:plain

しばらくするとGame画面になりますので

Avator Nameと 一番下にチェックを入れてUploadをクリックすればOKです。

(たまにズームされていて、ちゃんと動いていても、まともに映っていないことがありますが、スライダーでズームアウトできます。)

f:id:Pikali:20181216121610j:plain

この画面が出たら成功です。

VRChatで確認してみましょう、お疲れさまでした。

f:id:Pikali:20181216122839j:plain