イラスト、モデリング、Unity、VR関連

unityとかblenderとかvr関連の作業メモ

vrchatでyoutube動画が再生できない場合

Microsoft Visual C++ 2010ランタイムをインストールする。

Download Microsoft Visual C++ 2010 再頒布可能パッケージ (x86) from Official Microsoft Download Center

 

=>最新版がある、とかの警告が出来てインストールできない人は、

https://support.microsoft.com/ja-jp/help/2977003/the-latest-supported-visual-c-downloads

から、最新版のvrc_redist.x86.exeかx64.exeを使えばいいかもしれない。

 

下の方法も効果ある場合があるっぽい。

私が直したときはなかったけど

 

Releases · rg3/youtube-dl · GitHub

youtube-dl.exeをダウンロードし、

C:\Program Files (x86)\Steam\steamapps\common\VRChat\VRChat_Data\StreamingAssets

youtube-dl.exeと置き換える

blender上での表示とUnity上でのテクスチャ表示が異なる場合

複数のテクスチャを一つにまとめて、unityにインポートしたらテクスチャが変に表示される問題が発生した。テクスチャをまとめる前に使用していたUVマップを削除して、再度FBXエクスポートしてインポートしたら正常に表示された。

blender 複数のテクスチャを一つにまとめる

*まだ使ってないが、UnityのMeshBakerFreeというアセットを使った方がスマートに統合出来るっぽい。

 

++説明の下準備:複数のテクスチャを持つメッシュを用意する

 

平面を二つに分けてそれぞれにテクスチャを設定する。マテリアル名はそれぞれ、m-1,m-2とした

f:id:arumogina:20190203151724p:plain

f:id:arumogina:20190203151813p:plain

これで、それぞれテクスチャが適用された二つのメッシュが生成された。

f:id:arumogina:20190203151927p:plain

なお、テクスチャの設定はshadingから行う

f:id:arumogina:20190203152105p:plain

 

 

++本題、複数のテクスチャを一つにまとめる

この二つのメッシュを選択して、ctrl+Jで統合する。

f:id:arumogina:20190203152515p:plain

メッシュを統合しても、マテリアルは維持され、テクスチャはマテリアルに紐づけられるものであるためテクスチャも維持される。

(ただし、UVマップが違うと片方が消える。なので、統合するメッシュは同じUVマップを使用する必要がある)

(追記:メッシュは統合する必要がないことを確認した。テクスチャとUVマップの共有さえできればいいので、統合せずにメッシュを複数選択してUV展開するだけでいい。作業工程も統合した場合とほぼ同じ。ベイクするとき、対象のメッシュを全て選択しておくことくらい。負荷を考えるならメッシュは可能な限り少なくした方がいいようだが)

 

 

統合直後、UVマップは次のようになっている

f:id:arumogina:20190203153016p:plain

+を押して新たなUVマップ、BakeUVを作成し、(名前は別に何でもいい)UV展開を行う。スマートUV投影がオススメ,展開したUVマップはuv-3として保存する

f:id:arumogina:20190203153214p:plain

 

shadingに移動し、それぞれのマテリアルノード(m-1,m-2)にuv-3の画像テクスチャを設置する。

(ノードはつなげなくてよい)

ノードの要素はctrl+Cでコピー、ctrl+vでペースト出来る

f:id:arumogina:20190203153804p:plain

 

UVマップを以下のように選択する

カメラはUVMapでオンに、BakeUVを選択する。

この時点で大体はモデルのテクスチャが期待通りに表示されてないと思うが、気にしなくてよい(UVの展開図が統合前と異なるため)。

(BakeUVは統合テクスチャの書き込み先。UVMapはテクスチャの書き込み元となるUVマップ)

f:id:arumogina:20190203154129p:plain

 

レンダリングエンジンをcycle・反復に変更する

f:id:arumogina:20190203154332p:plain

下の方にスクロールするとベイク、という項目があるので、次のように設定して(以下の項目はテクスチャをまとめるだけ)、ベイクを押す

f:id:arumogina:20190203154433p:plain

 

ベイクに成功すると、uv-3に統合されたテクスチャが設定される。画像を保存する。

(ベイクに失敗した場合、統合、でベイクするなどベイク方式を変えることでうまくいくことがある)

f:id:arumogina:20190203155211p:plain

そして、UVマップをBakeUVに設定した状態で、全ての頂点を割り当てた新たなマテリアルを作成し、マテリアルノードに先ほど作成した統合テクスチャを設定する。古いマテリアルは必要なければ削除してよい。

f:id:arumogina:20190203155551p:plain

以上で、テクスチャの統合は終了である

 

++exportするとテクスチャがおかしくなる場合は不要なUVマップを削除する

 

++UVマップを分ける理由

UVマップを分けないと、テクスチャがずれる。テクスチャの適用されたメッシュを複数統合して、統合前と同じUVマップに、新たにUV展開すればUVマップ上の頂点の配置が変わるが、テクスチャの画像はそのままなので、テクスチャが期待した通りに適用されなくなる。なので、統合後は新たにUVマップを作成しそこにUV展開する必要がある。

UVマップとは何かについてはこちらを参照

blender UVマップとは何か? - イラスト、モデリング、Unity、VR関連

 

++その他メモ

・他のメッシュとマテリアルを共有している部分はベイクがうまく出来ないっぽい

 

++統合せずに別々のメッシュのままベイクする場合の注意

・UVマップの設定は全てのメッシュで行わなければならない。

一度にすべてのメッシュで新規にUVマップを作製する、というのは出来ない。このときUVマップ名は同一にしなければならない

 

・ベイク時、ベイク対象のメッシュを全て選択しておく必要がある

 

・複数のオブジェクトでベイクするとき、なぜか指定したテクスチャ(上の例だとuv-3)ではなく、オリジナルの元のテクスチャ(uv-1やuv-2)にベイクしてしまうときがある。こういうとき、理屈が不明だが、一つずつベイクするオブジェクトを増やしていくとうまくいく。

 

 

 

 

 

 

 

 

blender UVマップとは何か?

*やってるうちにこういうことか、と学んだ内容なので正確ではないかもしれない。

 

++UVマップとはUV展開したときの頂点の配置である

左側がUVマップ

f:id:arumogina:20190203143100p:plain

 

++UVマップは複数持つことができる

UV展開時に選択しているUVマップにその時の展開図が紐づけられる

f:id:arumogina:20190203143628p:plain

f:id:arumogina:20190203143458p:plain


++UVマップ選択欄の右側にあるカメラマークはレンダリング時に適用するUVマップである。これを利用することで複数のテクスチャを一つにまとめるなどすることが出来る。

 

 



 

blender ボーンを関連付けようとしたら、親が循環しています、と出る場合

blender2.8にて既に一つのメッシュと関連づけられてるボーンと他のメッシュを関連づけようとしたら、親が循環しています、と出て関連付けられない。

 

モディファイアからアームチュアを追加して設定したら関連づけられた。