NeosVRの日本語Wiki


はじめに

基本のアバターセットアップ
アバターに関して、ポリゴン数・ボーン数・マテリアル数など制限は特にありません。
ボーンやブレンドシェイプのあるアバターをセットアップする場合、いくつか構成に注意点があります。
それら情報を確認したい場合は下の折りたたみを開け確認してください。

(折りたたみ)ボーン名の注意点など

公式Wiki Humanoid Rig Requirements for IK

Oculusリップシンクの口形素名に準じているブレンドシェイプは自動でリップシンクに割り当てられます。
・まばたきには"blink", "wink", "eye close" + "left" / "right"で判定されます。

その他の注意
・コンストレイントなど補助ボーンを使用したモデルについては、自動でインポートさせることはできません。
(Blenderでボーンを編集するか、Logixやコンポーネントを使用して自分で動作を設定すればどんな動きでも設定可能です)
・Unityで大幅な改変(主に「服の着せ替え」など、二つ以上のFBXからメッシュを取り出した場合)を行った後、
FBX ExporterやUniVRMを用いてFBX/VRM/GLTFとして出力したモデルについては、まずNeosVRにインポートする前に一度Unityで再確認してみてください。
その時点でメッシュの位置やシェイプキーが壊れていることがあります。Unityで確認し、壊れている場合はそもそもNeosVRに持ち込んでも壊れたままです。
・頭が極端に大きかったり、腕が短いヒューマノイドモデルは操作が困難になる可能性があります。
IKのないアバターの作成
単純なボーンのメッシュモデルや、写真などもアバターにできます。
IKのあるアバターよりもIKの計算を行わない分軽量です。
ヒューマノイドリグの設定されていないモデルや写真をアバターにする

IKのないアバターの作成

単純なボーンのメッシュモデルや、写真などもアバターにできます。
IKのあるアバターよりもIKの計算を行わない分軽量です。

アバタークリエイターを使用します。
頭の位置に頭として設定してほしいものを、両手にはそれぞれ手として設定してほしいものをおいた上で、そのまま作成すれば完成となります。
もし手に何も設定しない場合はデフォルトの手が補完されます。

この設定方法を利用したアバター例を下にいくつか紹介します。参考にしてください。

ペンで書いた絵・文字をアバターにする

まずはBrushTipで適当に絵を描く。
一筆書き、もしくは素早く書いた線は一塊として扱われます。
その状態でアバタークリエイターを起動して、それぞれのメッシュの位置に、HMDや手のモデルを置いてセットアップすればアバターの完成です。

この手法で書いてくれるイベントも開催しています。詳しくは公開イベントページにて。

画像をアバターにする

撮影した写真やファイルブラウザから適当に画像をインポートします。
その後アバタークリエイターを起動し、画像を頭や手の位置に合わせて作成することもできます。

NeosVRでアバターを用意する

NeoRoidクリエーターをつかう

オレンジさん、もふやんさんが開発した軽量アバタークリエーター"NeoRoid"をつかうと、その場で好きなアバターを作ることができます。

公開されているアバター作成ワールド

折りたたみ

Neosでセットアップされたアバターを使用する

JP Avatarsというフォルダには作者から許可の撮ったアバターが使用できる形式で保管されています。
こちらからアバターを出してもらえれば、利用規約同意後クリックのみでアバターを着用することが出来ます。面倒な操作はありません。
詳しくはこちら

Neos向けにセットアップされたアバターをダウンロード or 購入し使用する

アバターによってはBoothからダウンロードしたファイルの中にNeosで使用しやすくなるよう設定済みのデータが同梱されていることもあります。
https://booth.pm/ja/items/3741802
https://booth.pm/ja/items/2982024
https://booth.pm/ja/items/3853503


これらを確認して、なお自分のリグ付きアバターをセットアップしたい場合は下を参考に作成を進めてください。通常はNeosに慣れた人同伴での作成を推奨しています。

基本のアバターセットアップ

モデルのインポート

.fbx、.glb、.blendファイルを読み込めます。
ダッシュメニューのファイルブラウザからアバターのモデルを選択してNeosVRにインポートします。
(参考、インポートする

出てきた画面(モデルインポーター)で、3Dモデル > レギュラー/アバター > ヒューマノイドの身長に自動設定 > 高度な設定 を順番に選択します。

   

高度な設定の画面で、マテリアルを"XiexeToon"(NeosVRで使用できるトゥーンシェーダー)に設定します。
下にスクロールして最下段の"アセットをオブジェクト内に入る"にチェックを入れて、"インポート実行"を押してください。
 

すると、読み込みが行われます。
正常に読み込みが完了すると、アバターの3Dモデルが出現します。
 
(この時点で、テクスチャが読み込まれず真っ白でも、後から設定できます。下記)

読み込みが終わらない場合

アバタークリエイター

ダッシュメニューのホームの右側に"アバタークリエイター"があるのでそれを使用します。
ヘッドマウントディスプレイ(HMD)と左右の手のモデルとパネルが出てきます。

アバタークリエイター各項目の説明

(折りたたみ)


HMDをグラブしてアバターの頭にだいたい合わせます。
アバタークリエイターのパネルの"頭の前方向を揃える""頭の上方向を揃える""頭の右方向を揃える""頭の中心を揃える""手の位置をあわせる"を順番にクリックしましょう。


すると、いい感じの位置に合わせてくれます。手の向きが違う場合は自分で掴んで合わせてください。
(手首の位置を合わせて、指先がアバターから少し出ているくらいがベスト)
 

この時、アバターを間違って動かしてしまった時はコンテキストメニューから"戻す"を押して、位置を戻してください。
(そのままだと、アバターがおかしくなることがあります。)

"プロテクトアバター"のチェックが入っていることを確認して(販売アバターなど、他の人が着れないようにするためにプロテクトを設定する。プロテクトのチェックを入れれない場合は、NeosVRにログインできていないことがある。)
"作成"を押すとアバター化できます。(作成を押すのはアバターを利用する本人。作成ボタンを押したユーザーのアバターとしてプロテクトが設定される。)

アバター化した後は、アバターに対してレーザーを当て、トリガーすることでアバターを着用できます。


追加の設定をする場合にも、この地点でインベントリに保存しておくことをお勧めします。

インベントリの操作(アバター)

アバターのセーブの仕方
出来上がったアバターはインベントリに保存します。フォルダを専用に作っておくといいでしょう。
ダッシュメニューからインベントリを表示させます。アバターをグラブしながら(頭の近くを掴める)、もう一方の手で、右上のを押すと保存されます。
(共有ファイルなど自分の編集権限のないフォルダには保存できません)
現在着ているアバターを保存したい時は、を押します。
他のアバターに着替えたいときには
インベントリからアバターを選んで上の押します。
デフォルトアバターにするには
アバターをデフォルトアバター(ワールドに入った時に着ているアバター)に設定する時はアバターを選んで上のを押します。

テクスチャを設定する(アバターが真っ白な時)

以下の設定ではToolTipを使用します。
ToolTipについてのページを一度確認しておきましょう。
マテリアルインスペクターを開く
モデルを読み込んだ時と同様にして、テクスチャ(画像)をNeosVRへインポートします。
(参考、インポートする
画像インポーターでは"イメージ/テクスチャ"を選択してください。


画像が読み込まれたら、インベントリの"Essential Tools"からDevToolTipを取りだします。
装備して、アバターへレーザーを当てて、セカンダリーで選択します。(ギズモが表示される)
DevToolTipを装備している手でコンテキストメニューを開き、"インスペクターを開く"を選択します。


インスペクターが開くので、左上のを押すと、アバターのルート階層に移動します。
スロットの名前左のを押すと、スロットの下の階層が見えるので、順番に開いて、メッシュを見つける。
大抵は、〜.FBX>CenteredRoot>RootNode の下にあるので、メッシュの名前をダブルトリガーで選択する。


メッシュのスロットには"SkinnedMeshRenderer"コンポーネントがある。ここに、マテリアルのリストがある。

Materials(list):の各名前の左側のを押すと、マテリアルインスペクターが開く。
マテリアルインスペクターが開く、ここから各マテリアルの設定を行う。

メッシュは複数ある場合があり、そこからそれぞれマテリアルの編集が必要になる事がある。
画像を設定する
まず、そのマテリアルがアバターのどこの部分に対応しているか確認する。
マテリアルインスペクターの"MainTexture:"の下の"Color:"の一番右にある四角い枠を押すと、カラーインジゲーターが出てくる。
カラーインジゲーターを操作して色を変えると、どの場所のマテリアルか分かる。
 

マテリアルの色をもとに戻す(白色に)。
対応するテクスチャ(画像)をグラブし、もう片方の手でレーザーをマテリアルインスペクターの"MainTexture:"の白い枠に当ててトリガーを押すと、テクスチャが設定される。


同様の設定をそれぞれのマテリアルに設定する。
終わったら忘れずに保存しよう。

その他、詳しいマテリアルの設定については、マテリアルの調整例

透過(アルファ)の設定

表情のブレンドシェイプなどで透過のマテリアルを使用している場合があり、特別な設定が必要になることがある。

ブレンドシェイプの設定されたメッシュをインスペクターで選択して、下にスクロールすると、ブレンドシェイプのリストが見つかる。


このアバターの場合、"cheek_on"の数値を変えると、表示がおかしくなるため、透過の設定が必要だとわかる。


そこで、対応するマテリアルのマテリアルインスペクターを開き、"BlendMode:"を"Alpha"に、"ZWrite:"を"On"に設定する。
(CutOffに設定して、AlphaClipの値を調整した方が良いときもある)
 

通常のテクスチャと透過用のマスクテクスチャが別れている場合


その他、マテリアルの設定についてはこちら

TIPS

取り込んだアバターが変形してしまう

モデルのボーン構成がNeosVRに対応していない
ボーン・メッシュのトランスフォームが適応されていない。
もしくは、Blenderで作成したfbxをNeosVRにインポートしたときに、動きが変になることがある。
メッシュやボーンのPositionが(0,0,0)、Rotationが(0,0,0)、Scaleが(1,1,1)になっていないためかもしれない。

次の2つを試すといいでしょう。
  • キーボードをのAキーを押して、メッシュとボーンを全選択する。Ctrl+Aででる適用メニューにある「全トランスフォーム」を選択する。
  • fbxをエクスポートするときに「トランスフォームを適用(過去verでは、!実験的機能!トランスフォーム適用)」をチェックしておく。

UnityからFBX Exporterで出力した
Unityで改変したモデルや、VRMのモデルはFBX Exporterで出力すると、メッシュの位置やシェイプキーがおかしくなる。
下記でUnityからモデルをNeosVRへ持っていく方法を解説している。

アバターの目の動きが大きい

アバターによっては目の動きが大きい場合がある、その時は"Head"ボーンの下に、"Eye Manager"というスロットがある、
この中に"EyeRotationDriver"コンポーネントがある、その"MaxSwing"の値を小さくすればよい。
 

瞬きを設定する

ブレンドシェイプの名前がNeos側で認識できれば自動で入る。
瞬きは"blink", "wink", "eye close" + "left" / "right"との名前が入っている必要がある。根拠1根拠2
アバターセットアップ時に割り当てられていなかったり、おかしければ手動で設定できる。
"Head"ボーンの下に、"Eye Manager"というスロットがある、その中に"EyeLinearDriver"コンポーネントがある。
"Eyes(list):"の"OpenCloseTarget"にブレンドシェイプを割り当てればよい、リストに項目がなければ"Add"で追加する。
ブレンドシェイプの瞬きに相当する名前をグラブして、"OpenCloseTarget"へドロップする。
"Side"で左右どちらかや両方かの設定ができる。

リップシンクの設定

リップシンク(発言に合わせた口パク)の設定がおかしい場合も、上記"瞬きを設定する"同様に設定する。
ブレンドシェイプの設定されたメッシュに"DirectVisemeDriver"コンポーネントがある。
ここに、それぞれ対応するブレンドシェイプを割り当てればよい。
ブレンドシェイプの名前をグラブして、それぞれ対応する枠へドロップする。


・例、Bodyメッシュにあるブレンドシェイプ。この名前の部分をグラブする。


DirectVisemeDriverがない場合は、新しくコンポーネントを割当し、Head ProxyにVisemeAnalyzer, AvatarVoiceSourceAssignerを割り当て、それぞれ接続する必要がある。

アバターのサイズを変える

コンテキストメニューから自分の大きさを変えることができますが。
アバターの標準の大きさを変えたい場合はDefaultUserScaleコンポーネントをアバターに設定します。

アバターのプロテクトをかけ忘れた。

SimpleAvatarProtectionコンポーネントをアバターに設定します。

アバターにプロテクトがかけられない

ログインしていないと下記のようにプロテクトアバターが灰色になってプロテクトがかけられない状態になります。

(NeosJapan discord 質問 2020/3/20)

アバターの髪やメッシュが邪魔で前が見えない

2つの解決方法があります。
ビューポジションを調整する(推奨)
アバターのルート -> Head Proxyに"Target"がある。
このターゲットの位置を前後に動かすことで、視点に対するアバターの頭の位置を調整できる。

これで解決できない場合、下記ニアクリップを設定する。
ニアクリップを設定する
下記の図のようにHead Proxyの下に、NearClip(名前は何でも良い)という子スロットを作り、そこにAvatarRendarSettingsというコンポーネントをつける。
位置はUsers→Common Avatar System→AvatarRendarSettingsです。
そして、"NearClip:"にチェックを入れて0.075を入力します。設定が終わったらセーブして、着替え直す。そうすると設定が反映される。
これで視点に近い位置のメッシュが描画されなくなり、髪の毛の邪魔がなくなります。

ツールシェルフが袖に埋まってしまってうまく使えません

位置を調整しましょう。
DevToolTipを使用する。
図のスロット「Toolshelf Anchor」の位置や回転を調整する。

取り外しができる帽子をつける

帽子の方にSnapperというコンポーネントを追加する。Transform->Interaction->Snapper

頭の方にSnapAreaとSnapという名前のスロットを作り、SnapにSnapTargetというコンポーネントを追加する。Transform->Interaction->SnapTarget

位置などを調整する。

Unityで改変したモデルをNeosVRにインポートする

UnityからモデルをVRMで出力し、BlenderでGLTF形式(もしくはFBX形式)にしてインポートする方法です。
(検証環境: Unity 2019.4.10f1 / Blender 2.83 LTS)

検証環境が古いのでたたんでいます。そのうち書き直します。

(NeosJapan discord 豆知識・テク かずさん2021/2/7)

メンバーのみ編集できます