Unityだけで面白アバター改変 for cluster
clusterユーザーと加速する非公式 Advent Calendar 2020の13日目の記事になります。
Unityだけで簡単にVRMアバターを改変する方法について解説します。clusterアバター向けの記事になります。
今回はこのアバターを使って改変していきます。
使用するUniVRMバージョン
UniVRM v0.61.1を推奨します。v0.62.0ではエクスポート時にTポーズが強制されるので今回使用しません。
大きさを変える
armature(ルートボーン)のScaleを変更します。
10倍にして大きくしたり、逆に小さくしたりできます。
あまり大きすぎると天井や壁の上に登ったり、VRだとUI操作ができなくなるので適度なサイズに収めましょう。
薄くする
armartureのScale:Zを0.01とかにします。0にしないのはポリゴンが重なり合ってちらつくの防ぐためです(Zファイティング防止)。0より大きい0.01などにして見てわからないほどの奥行を持たせています。
この状態でもアニメーションは適用されます。動くけど2次元に見えるのでなかなか面白いです。
アンバランスにする
親と子のボーンのScaleを逆に設定することでアンバランスな体形に変更することができます。
親のボーンとは逆のScaleを設定します。親のボーンが2倍なら逆に1/2に設定して大きさを戻します。
以下の例ではチキンの頭を大きくする改変例です。
neckを1/2倍にして、headを4倍にします。
バランスよく顔だけ大きくすることができました。
ふにゃふにゃにする
SpringBoneを活用することでふにゃふにゃなアバターを作ることができます。
secondaryのVRM Spring Boneコンポーネント、Root Bonesにアバターのhipsを設定します。RootBonesに指定したボーンの子にすべてSpringBoneが適用されます。
armatureに設定すると完全にふにゃふにゃになってしまうので、立ったままふにゃふにゃにするためにhipsをRootBonesに設定します。
腕や頭だけなど一部分だけに適用するのも面白くなると思います。
重力を駆使する
先程のSpringBoneの設定に加えて、重力(Gravity Power)を設定することで一定方向に体を引っ張たり曲げたりということができます。
Gravity Powerを調整して適度な曲がり具合になるように調整します。
X,Z方向も設定する場合はワールドの絶対軸方向にかかるので注意が必要です。
姿勢を変える
SpringBoneを設定するとそのボーンにcluster内でのアニメーションが適用されなくなります。これを利用して好きな姿勢にすることができます。
ボーンを編集して好きなポーズにします。
上のポーズではhips以下をいじってるのでhipsをSpringBonesに設定しています。また、Stiffness Force、Drag forceを強めにして移動時の揺れを減らしています。ぶるぶる震えるのも面白いのでここはお好みで好きな値に設定してください。
ポーズを付ける以外にarmatureを移動して高さもつ通常より高く調整しています。
光らせる
このアバターはMagicaVoxelで作成したボクセルアバターなので、EmissionとTexture Scrollを組み合わせることでゲーミング化できます。
LitTextureと同じテクスチャを設定して、テクスチャスクロール速度(ScrollX)を0.01に設定します。激しく点滅しないようにスクロール速度は遅めに設定しています。
EmissionのカラーでIntensityを増やすことでBloomを使用しているワールドでは輝きます。
レーザービームを出す
モデルを組み合わせることでアバターの表現の幅を広げることができます。
Hierarchyビューを右クリックして3D ObjectからCylinderをhead直下に設置します。
headボーン直下に設置することで頭の向きに追随するようになります。
以下のようなパラメータでMToonマテリアルを作成します。
Emissionの色はお好みで適当に設定します。
チキンの口からレーザービームが出るようになりました。
最後に
ちょっとだけいじるだけでこれだけパターンが作れました。いろんなアバターに応用できますのでぜひ自分だけの改変アバターを作ってみましょう。
※改変可能かどうかはアバター配布元のライセンスを必ず確認しましょう。
お手軽に改変できるのでアバター枠がいっぱいにならないように定期的に整理しましょう。自分はこの記事を書いているときに上限に達しました。
明日14日はkoturnさんです。いったいどんな記事が出るのか楽しみですね。