VRCの改変の前提知識と困った時
はじめに
VRCのAvator3.0に関しては良質な解説が多くあり、基本的にはそれに目を通すのが一番です(下の解説等)
ここではなんで動いているんだか分からないけど動くからとにかくヨシ!という意識の低い筆者が心がけている事や遭遇した事をダラダラと書き連ねます、修正方法に関してもなぜ治るのか分からない事が多いです。
聞きかじりの事も多いので間違っている点があったら指摘いただければ幸いです。
1.Animatorの事
1-1.空のstateは別レイヤーを巻こんでバグを起こす
stateのMotionがnoneだと起こる事があります、私はなぜか別Layersの回転するAnimationがカクカクになりました。
とにかくnoneにしない事が重要なのでProjectにreadyとかEnterとか適当な名前の空Animationを作って空のstateにかたっぱしから入れましょう。
1-2.writedefasultsの混在はバグを起こす
writedefasultsのOnOffが混在するとバグります、例えば1回目は正常に再生されるけど2回目以降は何かおかしくなる等です。
OnOffはとにかく統一しましょう、数が増えると見落としが増えるのでツールを使うのが確実です。
1-3.Animationが正常に再生されない
Animation単体の再生では全く問題ないのにstateに入れてUnityの再生などでAnimationを動かそうとするとconstraint等が正常に動作しない事があります。
そんなときはさっさと問題のあるLayersを消し1から同じのを組むと直ります。
俗にいう何にもしてないのに壊れた状態で、これが起こると新しいLayersにstateをコピペしても引き継ぎます、何かをしていると思うしLayersを組みなおすのは面倒なので誰か原因を教えて欲しいです。
1-4.ループアニメーションがキレイにつながらない
unityのAnimationはなんかいい感じにAnimationさせる機能がいろいろとついているらしいのですが、これが悪さをする事があります。
下の画像を見るとわかるのですが自動でゆっくり加速し始めゆっくり減速します、普段はいい感じに働くのですが回転のループアニメ等では加減速を繰り返す感じになります。
始点を右クリックしてRight tangentをLiner、終点を左クリックしてLeft gangentをLinerにしたものが下の画像です、これなら回転をループしても違和感なく繋がるかと思います。
1-5.Parameter Driverが同期しない
stateを高速で通過すると他の人と同期しません、Has Exit timeなどを使い0.2~0.3秒程度はそのParameter Driverがあるstateにとどまるようにしましょう。
1-6.Randomな何かを作りたいけど同期されない
Parameter DriverにRandomという項目がありますが、これに関しては同期されないので同期用の組み方をする必要があります、組み方は下記記事などを参考にしてみてください、私は以前別の記事で組んだけど同期成功率90%くらいでした。
1-7.とにかく同期しない
同期は多分みんな抱えてる問題です、様々な記事があるので読んでみるのがいいでしょう、対応策としBoundsを大きくする等ありますが個人的にはなんか好みではないので採用してないです。
2.アバターの負荷について
アバターは盛れば盛るほどどうしたって重くなります、表現の兼ね合いともなりますができるだけ軽量化しましょう、また軽量化は常に表示する自分に一番恩恵があります、人には押し付けないように気を付けて!
2-1.Animatorの負荷
Animatorの詳細な負荷に関しては海外の方がわかりやすいグラフでの検証をだしています。
https://notes.sleightly.dev/benchmarks/
いろいろ読み取れるかと思いますがとにかくLayersを増やすと重くなる、Anystateから一杯伸ばすと重くなる、これはAnimatorじゃないけどConstraintも増やすと重くなるし一定値を超えると一気に重くなるあたりを気を付ければいいのかと思います、具体的にどれくらい重いのかは私にはよーわからんですが。
2-2.ダウンロードサイズ
4kテクスチャを使っていた場合圧縮するだけでかなり軽くなります、この辺は完全に表現との兼ね合いですが圧縮して問題ない物は圧縮するにこしたことはありません、テクスチャを開きInspectorのMax Sizeを下げれば軽くなります。
エミッションマスクなんかも多分がっつり画像サイズ下げても問題ないと思います、パーティクルにもテクスチャがある場合がありこれもかなりサイズ下げれると思います。
Use Crunch Compressionを使うとダウンロードサイズを下げられますが、テクスチャ容量は変わらないのであまり意味ない派とダウンロードサイズを下げるだけで有効派がいます。おまかせします。
音も物によっては容量をとります、3D音源にする場合は強制モノラルになるのでForce to monoにしても問題ない筈?
圧縮方法に関しては下記記事を参考に
まとめ
記事を作っておいてなんですが情報はできるだけ多面的に集め一つの情報を信用しないようにしましょう、少なくともこの記事を信用するのは危険です、情報のとっかかりくらいに考えて頂ければ。
この記事が気に入ったらサポートをしてみませんか?