VRChatでオリジナルのアバターを使うとなると、Unityでアレコレ設定をする必要があります。
Unityも大人しくしていれば良いのですが、だいたい余計なことして思った通りにしてくれません。
今回は諸々の作業の序盤も序盤、モデルを読み込んだ時点で既に色がおかしかった現象についての話です。
Blenderなりでアバターを作成した後、FBX形式で書き出したモデルをUnityへ入れました。
デフォルトの表示でUnityの下部分にある Project の中にFBXファイルをドラッグ&ドロップ。
何も問題なければFBX形式のファイルを入れただけで「Materials」のファイルが作成され、色付きのマテリアルが並び、Sceneに配置するだけで良いのですが...。
今回はアバターが真っ白だったり透明だったり、奇妙な姿になってしまいました。
マテリアルを確認してみると、どれも白くテクスチャが球状になった見た目になっていません。
テクスチャ自体はあるので、マテリアル1つ1つに割り当てれば良いのですが...マテリアルが10個20個となるようなアバターの時は流石に面倒です。
そこで、FBXを入れるだけで個々のマテリアルに正しいテスクチャが貼られるようにツールを使います。
テクスチャ自体はあるので、マテリアル1つ1つに割り当てれば良いのですが...マテリアルが10個20個となるようなアバターの時は流石に面倒です。
そこで、FBXを入れるだけで個々のマテリアルに正しいテスクチャが貼られるようにツールを使います。
Autodesk から FBX 2013.3 Converter というものが出ているのでダウンロード。
使用しているパソコンにもよりますが、今回は「FBX 2013.3 Converter for Windows 64-bit」を使用しました。
使用しているパソコンにもよりますが、今回は「FBX 2013.3 Converter for Windows 64-bit」を使用しました。
ダウンロード後、インストールして起動したら早速FBXファイルを「Source files」にドラッグ&ドロップ。
右下の「FBX 2013」の項目にある「Embed media」にチェックを入れ、更に右下にある 「Convert」を押します。
うまくいくと、Converted と表示され、モデルが保存されているフォルダに「FBX 2013」というフォルダが作成され、中に新しいFBXファイルが作成されます。
この新しいFBXファイルをUnityに入れると、マテリアルにテクスチャが張られた状態になり、アバターにしっかりと色がついた状態になります。
右下の「FBX 2013」の項目にある「Embed media」にチェックを入れ、更に右下にある 「Convert」を押します。
うまくいくと、Converted と表示され、モデルが保存されているフォルダに「FBX 2013」というフォルダが作成され、中に新しいFBXファイルが作成されます。
この新しいFBXファイルをUnityに入れると、マテリアルにテクスチャが張られた状態になり、アバターにしっかりと色がついた状態になります。
が、部分的に半透明であったり、暗く影がかかって見た目があまりよろしくありません。
次にUnity側でマテリアルの設定を変えて見た目を良くしていきます。
Unityに生成されているテクスチャ付きのマテリアルの設定を見ると、画面右上「Rendering Mode」の部分が「Transparent」になっていたので「Opaque」に変更します。
これで半透明な部分は無くなりました。
Unityに生成されているテクスチャ付きのマテリアルの設定を見ると、画面右上「Rendering Mode」の部分が「Transparent」になっていたので「Opaque」に変更します。
これで半透明な部分は無くなりました。
Transparentはガラスやプラスチック等、透明度を必要とするものを再現する際に使用するといいそうですが、今回は使用しません。
代償として腕の番号から透明度が失われて黒くなりましたがここはあとで誤魔化します。
次に、アバターが暗く不気味なのを何とかしたいので、マテリアルに使用するシェーダーを変更します。
マテリアルを全て選択し、右上の「Shader」の項目を押すと、シェーダーを選ぶことが出来ます。
「とりあえず影を無くしたい」という人は「Unlit > Texture」に変更するとテクスチャの色をそのまま表示してくれます。
マテリアルを全て選択し、右上の「Shader」の項目を押すと、シェーダーを選ぶことが出来ます。
「とりあえず影を無くしたい」という人は「Unlit > Texture」に変更するとテクスチャの色をそのまま表示してくれます。
シェーダーはインターネット上で配布されているものも、UnityのProjectに入れれば使用する事ができます。
VRChatのWikiでは下の画像のような感じになるシェーダーが紹介されていました。
VRChatのWikiでは下の画像のような感じになるシェーダーが紹介されていました。
今回は場所の暗さに関係なく常にテクスチャの色が出るよう「Unlit > Texture」で進めます。
腕の部分が黒いので何とかしたいですが、番号の周りが透明なテクスチャを用意する事ができなかったので、肌色に塗って消す事にしました。
ただ、このマテリアルは他の表情モーフなり目のハイライトで使用するパーツも入っているので、目のハイライトを担当している左上が白、後は肌色のテクスチャを用意しています。
(モーフは使わないということで)
ただ、このマテリアルは他の表情モーフなり目のハイライトで使用するパーツも入っているので、目のハイライトを担当している左上が白、後は肌色のテクスチャを用意しています。
(モーフは使わないということで)
該当のマテリアルのシェーダーを「Unlit > Texture」にしてマテリアルのテクスチャを差し替えると、だいぶいい感じになりました。完成で良さそうです。
ここまで来ればアバターをVRChatにアップロードするためにスクリプトを付けたりアニメーションをつけたりと先の作業に進めます。
ここでは書きませんが、またそういった記事を用意できればと思います。
ここでは書きませんが、またそういった記事を用意できればと思います。
※この記事はUnity5で行われた作業を記載していますが、新しいUnityでも大体似たような手順で再現できると思います。











0 コメント:
コメントを投稿