最終更新 : 2024-01-28
Platinum [1] を購入した。 前回は Felis の手を Loika に移植したが、 今回は代わりに Platinum の手を移植してアバターをアップロードした。
グローバルな座標軸の原点中心で拡大縮小する必要があった。
UV Editor の 2D カーソルを原点に移動する : ([Shift]+[S]) -> Cursor to Origin または([1]) (ref. [2])
座標変換の軸をカーソルにする : ([.]) -> 2D Cursor または([6]) (ref. [2])
その上で、手のポリゴン数を 60% くらいまで減らして使用した。
指示棒を追加した。
まずは Blender で支持棒のメッシュを作成した。
細い五角柱を作成し、 Armature を割り当てた。
Extrude および面の追加・削除を繰り返して形を作り、マテリアルを割り当てた。
テクスチャに白・黒・赤の領域を作成し、その UV 領域に面を配置した。
指示棒先端の赤色の部分の外側を囲うように、法線を逆向きにした黒色の面を配置した。
hand を親とする新規ボーンを作成し、 Weight Paint で指示棒全体のそのボーンの Weight を重み 1 にした。
シェイプキーを作成し、オフ時に指示棒を手の付け根部分に埋めて隠すようにした。通常隠すので、 Basis では隠して新しいシェイプキーの重み 1 のときに現れるようにした。
全体を作ってから、メッシュをマージした。 Skinned Mesh の削減を Unity 側で解決できるならしたかったので Avatar Optimizer を導入したが、方法が得られなかったのでこれは使用しなかった。
VCC で Gesture Manager および Avatar Optimizer をインストールする。 ref. [3]
Animation の作成および Expression Menu への割り当てをした。 [5] がやっていることが極めて近い。ほぼそのままの手順でできたが、追加が 1 点ある。 Animation Parameters のインスペクタの "Default" "Saved" の隣に、 "Synced" というものがあり、そのチェックボックスを ON にしなければパラメータが同期されない。 (ref. [6]) パラメータが同期されなければ他ユーザのクライアントでアニメーションが動作せず、「自分にしか見えないアニメーション」を披露してしまう(一敗)。
どうやら VRChat のアニメーションは以下のような手順で実現されているらしい。
[1] : BOOTH「【オリジナル3Dモデル】Platinum - プラチナ」 ぷらすわん より
[2] : gihyo.jp「Blenderのオブジェクトの概念(3Dカーソル・原点・ピボットポイント)を見てみよう」 いしくらゆか より
[3] : メタカル最前線「【コラム】VCCにこれは入れておけ! アバター改変の便利ツール紹介」 東雲りん より
[4] : 「Avatar Optimizer」 anawata12 より
[5] : note「【VRChat】初心者向け:アニメーションの作り方とEXMenuへの登録【Unity2019】」(「アニメーションを作る」以降) 風庭ゆい より
[6] : note「君たちはどうきいるか(アバター編) 」 みみー より