WoT初心者脱出ブログ

WoT初心者脱出ブログ@れいしき

主にWoTの初心者〜中級者への攻略ブログです。たまに他のことも書きます。

【VRChat】絵心のない素人が3Dアバターを自作をする話(忘備録)

こんにちは、れいしきです。VRCでははやてという名前ですが。

このブログではWoTというゲームを解説してますが、今回は最近はまっているVRCアバター自作についてまとめました。

基本は自分用の忘備録なので読みづらいと思いますが、せっかくなので公開してみることにしました。公開後もちょくちょくメモ代わりに書き足してます。

 

 

ちなみに、今の僕は「VRCアバター自作完全に理解した」状態なのであてにはならないかもしれません。

画像

 

 

 

 

必要なもの

・パソコン(よわよわだときついかも?)

・マウス

・時間

・根気と気合とアバター愛とかそういうあれ

 

使うソフトはBlender、Unityなので無料で使える。ただし、Unityで揺れ物の設定をする時に「DynamicBone」というアドオンを使う。このDynamicBoneが20ドルなので注意。たまにセールしてるらしい。

 

ちなみにぼくがつくったあばたー。モデリング素人でも絵が書けなくてもこれくらいできるようです。解説動画やブログを書いていただいた先人たちに圧倒的感謝を…!

画像

あとHomeのMirrorって光の当たり具合が悪いので別ワールドで見た方がいい。

(ハロウィン仕様だかららしい)

 

 

 

Blender

2.91を使っている。深い意味はない。たぶん2.8以降は似たり寄ったりだが、ところどころ名前が違ったりするので注意。

ちなみに、Vroidからモデルを持ってくればモデリングはかなーーーーり楽になる。僕はやったことないのでやり方はググってください。

モデリングとか

www.youtube.com

mmCGチャンネルを参考に作る。見るべきものは、かぐやさまで出てくる白銀圭を作りながら解説してくれている動画と、ヴァイオレットエヴァーガーデンを作りながらローポリでの作り方を解説してくれている動画。それ以降の動画の多くはタイムラプス(早送り)の作業画面であるため、解説はなしだがとても勉強になるので見れるなら見ておきたい。

(白銀圭ちゃん第1回目⤵)

www.youtube.com

 

VRC用の場合、リギングやIKの設定は使わないのでいらない。特にFeciRigをしなくていいのはデカい。

(だが、表情付けにシェイプキーというものを作る時に、ボーンを動かしてそれをシェイプキーとして設定することもできるため、使えないことはない。が、労力に見合わないと感じる)

(Unityで複雑なアニメーションを作るのはかなり難しいため、Bleder で作っておいた方が良さそうではある。FBXなら持っていける。ただ、そうなるとIKなどはしっかりしておかなければならない。)

 

動画内では一つ一つボーンを組み立てていっているが、基本はプリセットで用意されているHumanoidのままでよい。VRCではRootBoneはいらないが、VRM形式では必要。

 

サブディヴィジョンサーフェイスは少しなら使っても良さそう。VRCアバターの上限である7万ポリはそうそう行かないだろう。(上限とあるが、普通に上限突破しているモデルも見かける。)

髪の毛に関して。白銀圭のチュートリアルでは丁寧に作られているが、ヴァイオレットの方ではローポリ志向で作られている。

基本はローポリ志向のカーブ→メッシュで十分。テクスチャもシェーダーを応用した例のやつでOK(絵心がなくても十分きれい)

髪の毛の裏地がないなら楽できる。ボーンはポニテツインテなどの魅せる必要があるやつはボーンを複数列にしたほうが良い。前髪や横髪はほどほどでよい。あまりにも高い所からボーンを生やしてしまうと、髪揺れを設定したときに揺れすぎて禿げる恐れがあるため、気持ち下めにボーンを生やすこと!!

 

慣れてきたら、四角柱をいじったやつで髪を作る方法もあり。カーブから作る方法では出来ないような造形ができる。髪の流れを表現するならカーブがやりやすく、髪の毛!!!って感じの髪の毛は四角柱ベースの方がよさそう。やり方は以下の動画。

動画内でも言及されている通り、UV展開も楽で先述したシェーダーを応用したテクスチャでも出来る。

www.youtube.com

 

 

白銀圭のときにBlenderで物理設定をしているが、Unityで出来るのでやらないでよい。全体的に、白銀圭チュートリアルではBlenderで何が出来るのかを勉強するためだと思ってやる

VRC用に作るなら、白銀圭チュートリアルを見たうえでヴァイオレットチュートリアルの通りに勧めると良さそう。

 

耳もヴァイオレットちゃんのやつを参考にする。サブディヴィジョンサーフェイスを使うことで結構リアルになる。

顔の造形にかんしては、VRCのアバターミュージアムなどで気に入ったアバターのスクショを取って、それを見ながら作ると良い。

 

体に関して、原神のをモデルにするのがやはり良い。公式さんが公開してくれているので、Blenderでpmxをインポートできるようにすれば凄さが分かる。テクスチャの割り当てが中国語??かなにかで分からんので適当にする。

genshin.mihoyo.com

 

ボーンはHumanoidのままでよいが、Handのところは補助ボーンがあった方が良い。あと目ボーンは真上に向ける(だいぶ後のUnityで役立つ)。

こあろさんのnote参照。

note.com

ショルダーボーンのウェイトは一応脇下にも少し載せておくのが良い。腕を閉じた際に脇が動かねば干渉するため。

首でぶった切って頭と体を別オブジェクトにするのもOK。ただし襟などが必須になる。まぁ繋げて体もサブディヴィジョンサーフェイスしても良さそうではあるが。

足は靴で隠れるので最終的には消すが、ウェイト転送用に適当なのでいいので簡単に足を作っておく。かかとボーンはいらなそう。

テクスチャに関して、顔は原神などを参考にする。チークや唇だけでなく、額の影などもあった方が紙が明るい色の際にメリハリがつく。暗い色の髪色でも多分よくなる。

まつげは立体の方が良い。まゆげと二重は1枚でよい。

顔がデカくなりがちなので、大体6等身くらいを目安にする。(少女の場合)

瞳も厚めのポテチみたいな立体にし、多少外を向けることで追い目?になる。凹側を前にする。

(※Unityで簡易アイトラが出来るのでなくてもよい)

テクスチャもテクスチャペイントで十分。ベタ塗りではなく、減衰するやつでストロークをアンカーでやると良い。ハイライトは分離しておく(同オブジェクト)。

テクスチャ塗った後はレンダーじゃなくてマテリアルプレビューがおすすめ。髪の毛と地毛の色の差が難しいので頑張ろう。

 

ちなみに、クリスタとかでやるならUV展開のときに左上のUV→UV配置をエクスポートみたいなのがあるのでそれでやる。透明度を下げること。

 

テクスチャを透過させたいときは、RGBAの画像を使う。Blenderで透過を映すにはテクスチャのタブからあれこれ設定する。以下の参考元ではアルファクリップとしているが、アルファブレンドの方が良さそう。見た目が変になったら、背面の有無のチェックを消す。

note.com

しかし、Unity に移す際シェーダーの設定は持っていけないため、Unity側で設定しなおす必要がある。

以下を参考にする(UnityちゃんToonShaderの日本語マニュアル)

まずUnityちゃんToonShaderのタイプを変える。(多分、BasicShaderSettingsのFor_TransClippingShaderのTransparencyLevelをいじるだけで良い。

ただし、アウトラインは表示できないので注意する。

f:id:reishiki8810:20211024211401p:plain

Unityちゃん→NoOutline→UnityちゃんTransparent

UnityChanToonShaderVer2_Project/UTS2_Manual_ja.md at release/legacy/2.0 · unity3d-jp/UnityChanToonShaderVer2_Project · GitHub

 

 

 

 

服のデザインは基本パクった方が版権ものなどを参考にした方が個人的満足度は高い。服のウェイトは基本ウェイト転送で行う。シャツ、袖などは体を複製して作ることでウェイトペイントの手間が減ったりする。

選択する順番に注意する。髪の毛の時は特に。

www.stjun.com

 

 

アニメーション

BlenderのアニメーションをUnityに持っていくこともできる。Blenderのアニメーションの作り方がややこしめ。

note.com

 

 

 

 

シェイプキー

(=ブレンドシェイプ。Unityで表情を作るために作る)

 

シェイプキーについて、「い」「え」は口角を引くとそれっぽくなる気がする

シェイプキーを作る時は、Ctrl++/-(Ctrlと+ か -を押すことで段々に選択できる)をつかうと便利。頂点を転送することで、頂点の位置をコピーしたり、途中の状態を転送できたりする。(例:まばたきの途中=ジト目)詳しくは以下の記事。

note.com

 

例によってmmさんの動画もとても参考になる。サブディヴィジョンサーフェイスを適用してから行うこと。

{非公式アドオンであるApplyModiferをインストールすれば、シェイプキーを作った後からでもサブディヴィジョンサーフェイス、ミラーなどのモディファイアーを適用できる。最新版が2.8だが、2.91でも動いた。便利。}

注意点として、アーマチュアモディファイアーも適応されてしまうため、設定しなおす必要がある。とはいえウェイトペイントしなおすわけではなく、モディファイアーを設定し「オブジェクト」に使っているアーマチュアを設定すればいいだけである。

f:id:reishiki8810:20211011154458p:plain

selected_modifiterで適用するモディファイアーを選べる
オブジェクト→適用→ApplyModifer

bluebirdofoz.hatenablog.com

 

また、頂点グループにLEFT・RIGHTを設定しておけば、簡単に左右で分けられる。あとXミラーの動作条件もわかって助かる。

ドライバーを使うことで、ボーンを用いてメッシュを動かせるようになり表情の組み合わせがしやすくなる。

www.youtube.com

 

f:id:reishiki8810:20211002172154p:plain

(><)のような表情では、まゆげや目が邪魔となるため、目の周りと白目の淵をループ選択し、まぶただけを画像の様に絞ることで誤魔化せる。まつげは小さくして頭の中へ。これも原神を参考にした。

 

 

 

他にも、デフォームボーンを用いてシェイプキーを設定する方法もある。体の動きを作る時はこちらを利用するのが良いだろう。また、FaceRigを通したなら表情もこれで設定できるだろう。

knb-mayumi.com

 

 

出来たと思ったら面の向きをチェックする{重要

f:id:reishiki8810:20211002173915p:plain

髪の一部と背中の銃が裏返っている。フードは内側が見えているだけ。

f:id:reishiki8810:20211027174903p:plain

髪留めや目のハイライトなど、複製して左右反転したものは裏返りやすいので注意。
頭の中に埋めた感情用のメッシュも要注意。

ポーズモードで何かしらポーズとってウェイトを確認する{重要}

平行投影だけでなく、透視投影でしっかりチェックする{最重要}

 

オブジェクトの原点をワールド原点に、スケールもちゃんと合わせておく{超重要(多分)}

f:id:reishiki8810:20211013232643p:plain

Ctrl+A

ご覧の通り、ボーンとメッシュの位置がずれるとぐにゃぐにゃになるので、リサイズしたときなどは注意する。

 

 

 

FBX出力時、全て選択しているかチェック。特にボーンを忘れない。

選択項目:全てFBX、リーフボーンのチェックを外す。Unityではメッシュとボーンしか扱わないので、その2つだけチェックしておく。ボーンもデフォーム(変形)ボーンのみで、コントロールボーンはUnityで使えないので、デフォームボーンのみとする。

IKなどを設定してもFBXでは持っていけないため、選択外としておかないとちょっと手間がかかることになる…。あとHumanoidに対応した親子関係でやらないとダメ。

f:id:reishiki8810:20211011173852p:plain

 

 

VRM出力時、ボーンの階層構造やリネームなどを行うことで出力可能。めり込みなどをチェックするときはFBX出力前にチェックできて便利。チェックにはVRM LiveViewerが便利(ボーンリネーム時にウェイトペイントの頂点グループの設定が外れることがある?ため非推奨、要検証)

バックアップを利用しもう一度ボーンリネームしてVRM用に階層を変えたが、ちゃんと動いた。なんだったんだ……()

 

 

 

オブジェクトをまとめておくことで(特に髪の毛)、Unityでの操作が多少楽になる。

 

 

Unity

Unityを入れるとき、UnityHubを使うようにする。また、VRCの公式ページを見て、VRCが対応しているヴァージョンを入れるべし。(2020/10/02で2019.4.30f1)(当日中に2019.4.31f1になった。タイミング……。)

 

 

また、インストールする途中で出てくるモジュールは、AndroidBuildSupportと、WindowsBuildSupportを入れておく。

Blender→Unity

Unityに読み込むときは、フォルダ内にFBXとテクスチャの入ったフォルダの2つのみにする。他に、UTS(Unityちゃんトゥーンシェーダー)、VRCSDKをいれ、左上のAppStoreからDynamicBoneを検索、Importする。

 

Unityに読み込むときに、バグったりする?そんな時は作りなおした方が早い。

以下のツイートのようになるときは、出力したFBXをまたBlenderにインポートして再度FBXで出力する、を何度か重ねると治ったりする。面倒だけど原因が不明なのでどうしようもない。

何度も繰り返すとファイルサイズがどんどん大きくなるので非推奨。色々試してみると治った(要検証)

よくわからないが、FBXを再度Blenderにインポートするとスケールとかが変化しているので、それを直してからまたFBX出力すれば成功確率が高い気がする。Ctrl+Aからスケールを選択する。

 

 

 

Unityでやること

ぶっちゃけ何でもできるらしいので何でも出来るんでしょう(適当)

ここでは、

・自動瞬き

・揺れ物の設定

・表情付け

・自動瞬き・リップシンクと表情との干渉の解決

をします。そのうちAnimationを作りたい。

 

以下の動画ではSDK2だが、SDK3の方が良い気がする。操作画面が割と変わるので互換性は低いが、SDK2の動画も見ておくと早く慣れると思う。また、Blenderで作ったシェイプキーを使って表情を作る操作はSDK3と同じ(Animationでやるやつ)。

Zenさんの動画を参考にする。影の色は赤っぽいグレーがよき。

www.youtube.com

www.youtube.com

カメラの操作はInspecterのFOVやらをいじる。SkyBoxのところで背景を変えられる。

オブジェクトの操作が移動ではなく拡縮になったら、左上の十字矢印アイコンを押すと治る。

動画を見るとわかるが、揺れ物の設定や表情などを設定しない場合、めちゃくちゃ簡単にアップロードできるのだ。つまり、この2つの設定のためにUnity と死闘を繰り広げることになる。

 

ちなみに、透過情報を持ったテクスチャを使う場合は、UnityちゃんToonShaderのTransparency対応のやつを使う必要がある。詳しくはモデリング編のところにかいた。

 

揺れもの設定(物理設定)

DynamicBoneの設定は以下の記事を参考にする。

https://noshilog.com/unity-dynamic-bone

{概要}HeadボーンにDynamicBoneのコンポーネントを付け、RootにHeadを設定するだけでも、Headに連なる髪の毛は揺れる。ただし、Head以下に例えばEyeBoneなどがあると目も揺れる。それは個別に設定することで解決可能。

Headには少し硬めにつけて、各髪の1本目のボーンに柔らかめに付けるとよき。

 

服の詳細設定の参考

hdi9zubf.fanbox.cc

揺れ物では、Blender出力時に除いたリーフボーンが欲しくなるときがある。Unityではボーンのヘッドしか認識しないため、ボーンのテールまで揺らしたいときにリーフボーンが使える。が、DynamicBoneの設定でEndLengthを設定すれば、同じ感じにできる。

f:id:reishiki8810:20211011204644p:plain

コンポーネントのコピペが出来る。PasteはValueの方



 

 

当たり判定(コライダー)の設定はこちら

https://noshilog.com/unity-dynamic-bone-collider

正直、ボーンに直接コンポーネントを付けた方が楽な気がする。どちらにしても手間だが。

髪の毛については、Headにつけるので固定するのは目くらいで済むが、スカートなどではHipsに付けると凄いことになる。そのため、スカートボーンのRootとしてまとめたやつを作った方が良さそう。

 

あと、どれだけやっても貫通するものは貫通する(諦観)

 

 

 

あと何かと便利なまとめさいと⤵

vrcworld.wiki.fc2.com

 

まばたき・表情について

従来のSDK2と、2020.3.2からアプデされたSDK3がある。

 

ーーーーーSDK2の話ーーーーーーーーーーーーーーーーーーーーーーーーーー

自動瞬きに(アイトラ)ついては以下の記事

jellyfish-qrage.hatenablog.com

 

NotBlinkSetterがあればこの方法がしたかった。SDK3の普及により配布終了?

途中までは同じ操作であるため、参考になる。まばたき実装もこの通りにし、Loopにしてみている。Loopは基本使わなそう。

keiki002.com

 

 

IDLEにBlinkAnimationを入れるとまばたき出来たが、歩くと地面に沈む。要因は不明。(棚上げ)

 

Animationの作り方

表情に関しては、Blenderでシェイプキーを設定し、Unityで合わせる。以下の動画を参考にしつつ進める。

www.youtube.com

www.youtube.com

本命アバターを複製し、複製アバターでAnimationを作りそのデータを本命アバターのCustomStanding/SittingAnimsにぶちこむ。ハンドサインでやるやつね。

 

ーーーーーSDK2おわりーーーーーーーーーーーーーーーーーーーーーーーーーー

 

 

 

SDK3について。めっちゃ詳しく書かれているが、詳しすぎてよくわからない

設定自体はここを読まなくても出来る(出来た)ため飛ばしても良い。より理解を深めるには呼んだ方が良さげ。

docs.google.com

 

VRCにアップするときに、Build &Testをすると手っ取り早くテストできる。他人からは見えないらしい?

UdonというVRC独自のプログラミング言語が追加されたSDK3専用っぽい?

動作確認のためにいちいちHMDをかぶるのも面倒なので、デスクトップモードで確認する。ちゃんとハンドサインも出来るので十分。

vrcworld.wiki.fc2.com

 

 

自動瞬き(Avatar3.0)

コンポーネントを追加、vrc_Discripterを開き、EyeLookに自動瞬きの設定やら瞳がきょろきょろする設定ができる。Onにすると良い感じに動くが、ちゃんと設定しないと白目をむいてしまう。

f:id:reishiki8810:20210930162002p:plain

 

これは、BlenderでのEyeボーンの向きによっておこる弊害である。たしかBlenderとUnityは座標軸が違ったような気がするので、それが原因と思われる。

Blenderで修正するなら、Eyeボーンを+Y軸ではなく+Z軸に向けておくといいっぽい。Unityでするなら、Yの値をー90(or 90)と入れてやればOK。

f:id:reishiki8810:20211004223014p:plain

 

 

 

SDK3におけるAnimationの設定について

chibideko.hatenablog.com

この記事を参考にしながら進める。

{メモ}

1.ハンドサイン用のAnimationを作る。作ったやつをアバター本体にD&D。(※Assets>VRCSDK>Examples3>Animation>ProxyAnimsのProxy_Hand_○○を複製して流用可能。モデルによっては使えないらしい?)Animationの作り方は、SDK2と同じ。モデルの複製は要らない気がする。(なくても動いた)

f:id:reishiki8810:20211004215404p:plain

適当なフォルダに入れておくと楽



2.ハンドサインに合わせる表情のAnimationを作る。手の形はIdleを除いて7種類あるため、7種類まで設定可能。また、恐らくAvatar3.0では片手ずつで設定できるので14種類まで作れる?(一応さらに多くの種類を設定する技もあるらしい。詳細は不明→後述するExpressionでやる方法の応用とみられる)

Animationの作り方は、アバター本体を選択し、Animationタブ、Createから作る。Animationタブがない場合はタブバーのWindowから出現させる。

f:id:reishiki8810:20211004220659p:plain

手の形に対応した表情。分かりやすい名前にする。

 

3.表情差分において、別Animation(別クリップ)として真顔の状態の(すべて0)Animationを作っておく。表情リセットに用いる。表情で使ったブレンドシェイプをAddPropertyで追加、値を0にする。

(※リップシンク、自動瞬きに使うシェイプキーは0にしない)

f:id:reishiki8810:20211004220850p:plain

BlendShapes追加時、Shift押しながらだと複数選択できる。

 

 

4.ハンドサイン用のコントローラーをつくる。Assets>VRCSDK>Examples3>Animation>Controllersからvrc_Avatar_HandsLayer2を複製。1.で作ったAnimationをそれぞれの手の形に入れていく。

なお、1.でプリセットのものを流用した場合、複製&リネームだけでOK。

 

5.表情用のコントローラーをつくる。4.と同じように、Assets>VRCSDK>Examples3>Animation>Controllersからvrc_Avatar_HandsLayer2を複製。2.で作ったAnimationを入れていく。IdleはそのままでOK。

f:id:reishiki8810:20211004221413p:plain

Controllersは2回複製することになる。表情用の方に表情Animationを割り当てていく。



 

 

6.表情リセット用のレイヤーを、表情用コントローラーに追加する。FaceResetなど分かりやすい名前にし、3.で作った表情リセットAnimationを入れる。なお、レイヤーのウェイトが1であること、Left/RightHandsよりも上のレイヤーにあること、WriteDefautのチェックが外れていることを確認する。

f:id:reishiki8810:20211004221943p:plain

 

7.アバターを選択し、VRC DiscripterのPlayableLayersをCustomとし、BaseのGestureにはハンドサイン用の、FXには表情用に作ったコントローラーを割り当てる。

 

干渉回避

自動瞬きと表情の干渉問題の解決方法は、以下の画像および記事を参照。

{記事の操作まとめ

Assets>VRCSDK>Examples3>Animation>ControllersのAction、Handsを複製、アバターのDiscripterに割り当てる。FX→Hands、Action→Action

そこをダブルクリックでAnimationが開かれるので、左のタブのLeft/Right Handを開きIdleはTrackingにチェックを、ハンドサインはAnimationにチェックを入れる。

 

やること:表情付けの時に作った表情用コントローラーの各表情のInspecterを開き、AddBihaviorからVRCAnimationTrackingControlを追加する。IdleにはEyes&EyelidsをTrackingにチェックをし、表情ではAnimationの方にチェックをする。

同様の操作をMouth&Jawでもすると、リップシンクとの干渉が回避できる。

 

 

していること:Idle中は自動瞬き可能状態(=Scriptで動く)、Animation中はAnimationのみ稼働状態としている。

 

※オレンジ色のStateにVRCAnimatioTrackingControlのEyelid&EyeのTrackingにチェックを入れておく。そうしないと、自動瞬きが停止したままになる。

 

 

gatosyocora.hatenablog.com

f:id:reishiki8810:20210930134522p:plain

こちらにがとーしょこらさんのメモがまとめられており、非常に参考になる。ありがとうございます。

gatosyocora.memo.wiki

 

 

ちなみに、BlendeShapeの名前を同じにしておくことで、他のアバターへAnimationを流用できる。便利!

 

 

 

 

アバターに近づくと一部だけ消える問題

動画のように、近づいたりすると一部オブジェクトが消えてしまう問題。これは自分では気づきづらく、VRC内で指摘されたもの。

原因は、オブジェクトに設定されているバウンディングボックスがカメラから外れたため、そのオブジェクトが消えてしまうという現象。T-Poseなどでは起こりやすそう?

 

解決方法は以下の記事を参照。

以下の方法では結局ズレた時に消える。うーん?

要は、Blenderの時点でオブジェクトを全部1つにまとめればいいのでは(暴論)。あるいは、バウンディングボックスを大きくすること。

{内容}

該当オブジェクトのInspecterを開き、SkinnedMeshRenderer、RootBoneをオブジェクトと同じ名前にする。そして、BoundsのCenterを(X,Y,Z)を(0,0,0)とする。

kan-kikuchi.hatenablog.com

 

 

無限の表情

ここまではSDK2と同じく、ハンドジェスチャーに対応して表情を付けるという方法であった。そのため、SDK3になって片手ずつに設定できるとはいえ、最大14種類までしか表情付けができない。

そこで、Expressionからたくさんの表情を組み合わせる方法がある。これを使えば、数百通りという表情パターンさえ表現可能となる。簡単に言うと、「Wink_L」と「Smile」を組み合わせて、ウインクしながら笑顔を作れる、といった感じ。

ちなみに、Menuには最大8個までAnimationを設定できる。

詳細は以下の記事より。

kb10uy.hateblo.jp

 

 

無限にするために必要なのがSubMenuを作ること。Menuをさらに複製し、SubMenuを作る。MainMenuからSubMenuに遷移できるボタンを作ることで、より多くのAnimationを設定できる。

SubMenuの作り方は以下を参考にする。こちらではVRCにデフォルトで用意されているアニメーションを設定しているようだ。

note.com

{仕組みの考察}ここで、MenuのValueを1以外の数値にしているのは、ここでのAnimationの再生方法が、後述する任意のAnimationの再生と方法が違うからである。ここのAnimationの再生はVRC側でデフォルトで用意されているものであり、Menuからそれを呼び出しているらしく、恐らくその変数がValueの数値なのかもしれない。

Valueの値は、AnimatorのTrasitionをいじるときに、ConditionのEqualsとかにしたやつで使われる。例えば、Equals=1と設定し、Value=1としていればButtonを押したときにValue=1となり、Conditionの設定であるEquals=1が反応してAnimationが再生されるということである。

また、Equals以外にもGreater(以上)、Less(以下)、NotEquals(以外)などがある。遷移していくAnimationの場合、この辺もいじるといいかもしれない。

 

 

アニメーションを作る(武器の出し入れなど)

以下の記事を参照。

note.com

オブジェクトの出し入れは簡単だが、複数のオブジェクトによる連続的なAnimationとなると相当大変に感じる…。ほんとにやるのこれ…?

アニメーションはFBXでも引き継げるので、いっそのことBleder でアニメーションを作ってUnityに持ってきた方が良さそうではある。ただ、Bleder でアニメーションを作るならIKなどのコントロールボーンを通さねばやってられないので、その分の手間は増えるが…。

MMDでモーションを作る時も似たような感じなので(多分)、経験者はとっつきやすいかもしれない。

 

※Toggle→オンオフで切り替えるタイプ(ループ系はこれ)、Button→単発アニメーション

※ParameterのValueをいじるには、先にAvatarDescripterにMenuとParametersをセットしてから。

f:id:reishiki8810:20211007195751p:plain

 

chimerabbit.com

先述のものと似た内容だが、併せて読むことでより理解が深まる(気がする)。仕組みなども解説してくれているので、応用もできそう。

※こちらはオブジェクトの出し入れではなく、Animationの再生なので、Stateの数がひとつ少ない。

 

blog.pikegadge.com

ある程度理解してくれば、こちらの記事も読めるようになった(何も知らない時に見て混乱した経験がある)。

ExpressionMenuの整理、サムネの設定方法などが紹介されている。表情Animation設定のStateが今までとは少し違っているが、どういう仕組みなのかはわからない。

 

nekorogu.com

AFK(離席)アニメーションを付ける方法。

 

Idle,歩行、座るなどのモーションを変える方法

note.com

関係ないけど、ポーズを取らせたりすると服の貫通やひざの陥没などの問題が浮き出て来て辛い(下手なだけ)。

また、Unity上では上手くいってそうでも実際VRCで確認してみると変だったりするので、ちょいちょい確認して置くべし。さらに言えば、デスクトップモードとHMD被った時でも差が出るので、本アップロードする前にVRモードでも確認すべし。

 

 

浮遊する方法

 

note.com

 

 

ぼくのたどった道(トラブルシューティング含め)

Twitterにちょくちょく上げてるのをまとめます。トラブルシューティング的な意味もあります。

上のツイートはSDK2の話

複数オブジェクトに渡るシェイプキーは一斉に登録できないので、オブジェクトごとにシェイプキーを登録する必要がある(面倒)。

BlenderBlender→Unityで治った。なぞ。

髪の毛暴れだすバグ、オブジェクトの原点をワールド原点に合わせる、スケールを合わせるなどをすると何故か解決した。なぞ。

 

 

原因不明。困ったらとりあえず入れなおすと治ったりした