悪のアバター研究室 Vol.1-変身-
記録日:
はじめまして、「内儀・似非」です。変形してバイクになる怪人です。
※2021/10 追記 アバターギミックのavatars3.0への完全移行に伴いこのページの方法は非推奨となりました。
ヴァリアールの理念、それはこの仮想世界を我らのような異形・怪人・悪の姿を持つ者達が堂々と闊歩する場所に造り替える事にある。
そこでこの「悪のアバター研究室」シリーズでは、異形・怪人の姿を持ちたいが、未だそのイメージの定まらない眠れる同志諸君に対し、アバターの怪人化改変に向けたアイデアソースとして、
特殊なVRChatアバターギミックを紹介する事を目的としている。
本記事が新たなる異形誕生の切っ掛けとなれば幸いである。
※基本的に当シリーズでは公開時点でのPCVR環境での動作を想定している。Oculus Questでは使用不可ギミックを紹介する事がある点にご注意頂きたい。
確認したい方は「Oculus Quest対応 VRChat」にて検索を勧める。
また、2020年4月より使用可能となったConstraintコンポーネントもQuestでは使用不可である。こちらは本筋ではないものの本記事にて触れる為ご注意を。
◆記念すべき第一回目は変身!◆
結社理念とは裏腹に、現在の仮想世界では平和な容姿のアバターが溢れている。publicは気にしてはいけない。
そんな中で異形・怪人アバターを用いるのは不用意に目立ち過ぎてしまうだろう。
そこで今回ご紹介するのは「変身」である。結社としては「怪人化」改変を行いたいが、変身ヒーロー、あるいは変形ロボとなるかは君次第だ。
なお、下記画像のバイクに変形する筆者アバターは「変形ロボ」と呼ばれる事もあるが、こちらも原理は同一である。今日は変身という事にして欲しい。
これは極端な作例であるが、アバター全身に新たに鎧を着る・あるいは脱ぐといったものも変身であると言えよう。
◆必要な知識◆
しかし、ただメッシュを入れ替えるだけなら「違うアバターを用いる」のと変わらない。
「変身」には過程が求められる。
バイクへ変形するアバターではパーツの移動や、体勢の変化を行うアニメーションが挟まれる。
人型↔人型の場合には…変身ヒーローの変身シーンを思い出して頂きたい。
さて、その為に押さえておきたい知識であるが、google検索にて
「アニメーションオーバーライド 物を取り出す」
「EmoteSwitch 物を取り出す」
上記の2項目を検索して出て来る記事を理解出来る事が望ましい。
何故ならば、VRChatにおける「変身」とはつまり、「全身のメッシュを取り替える」という行為だからである。
変身前のメッシュを残すか否かは、デザイン次第で変わって来るだろう。
◆変身メッシュのリギング◆
体格が変わらない(同じボーンを使う)のであれば、全身を変身させる、あるいは鎧等の装備の着脱をさせる場合に同一のボーンによって動くよう、それらのメッシュをblender上でリギングを行う。
ここでは、変身前後の姿や、素体と鎧などの、同時に表示されないタイミングのあるメッシュを分けよう。
そしてunity上で前述の「アニメーションオーバーライド」あるいは「EmoteSwitch」の設定によってメッシュの表示/非表示を交互に切り替える事となる。
鎧等の装備の着脱タイプであれば、軸となる素体メッシュは表示されたままである事が多い。
◆変身メッシュのconstraint同期◆
体格が異なる場合、諸君の操るhumanoidの動きをconstraint等で変身後のボーンへ同期させる必要がある。
「VRChat サブアーム」で検索だ。
バイクの様なgenelicアバターの様な見た目なら視線の方角へ回転するので、そもそも同期自体不要である。
◆変身手法の選択◆
アニメーションオーバーライドはハンドサインによって作動し、EmoteSwitchはEmoteによって作動する別ギミックである。
求める変身シーンに合った手法を選ぼう。
なお、EmoteSwitch方式はアニメーション作成スキルが求められる点で実装ハードルが高い。
アニメーションオーバーライド方式は暴発リスクがやや高めであるが、使用者がそれらしいポージングを取り、「変身!」と叫びつつハンドサイン操作でメッシュを交換すれば概ねそれらしく済み、アニメーション作成も最小限で済む点で、実装ハードルは低いと言えよう。
(変形ロボなら頑張って変形後に近しいポーズを取るか…?)
◆変身アニメを作ろう◆初回ボーナス◆
さて、最後に初回ボーナスとして、参考までに筆者の使用するアバターのHierarchyと改変EmoteSwitchエモートを紹介しよう。
上記のバイクに変形するアバターも、改変EmoteSwitchアニメーションによって変形前後のメッシュを交互に非表示メッシュと入れ替えている。
下記の変形アニメーションではメッシュBに対応するボーンで(1)変形アニメーションを再生しつつ、並行して変形前後であるメッシュA、Bをアニメーション開始直後に(2)EmoteSwitchで表示し、続いて変形前のメッシュAのみを(3)EmoteSwitchで非表示としている。
また、アニメーション開始時のメッシュの重なり防止の為、EmoteSwitchとは別で(4)メッシュA非表示を行っている。
上記の赤枠にて囲まれているキーフレームは下記のEmoteSwitch表示アニメーションのキーフレームをそのままコピペしたものである。
EmoteSwitchの構造上、下記キーフレーム間隔の変更は推奨しない。コピペ、しよう。この時に左端へキーフレームをドラッグし押し付けると間隔が潰れてしまうので注意。
青枠も同様に下記の非表示アニメーションからコピペを行おう。
EmoteSwitchは上記の通り本来、非表示アニメーションのみで機能するが、変身等アニメーションを追加する場合、前述の赤枠に示した様に非表示にしたいメッシュであっても、EmoteSwitchで全表示してからでないと青枠の非表示アニメーションが機能しない。
(厳密には自身の視点では機能するが、他ユーザーからは変身が同期しない)
メッシュA・Bの表示が逆の場合は、EmoteSwitch部分の青枠で示す非表示アニメーションを、逆のものを同様にコピペで構わない。
但し、変身アニメーションを行うメッシュを極力非表示にしない様にEmoteSwitchキーフレーム配置を調整しよう。
※EmoteSwitchキーフレーム配置の調整が不要になる為、理想としては変身前後とは別に、更に変身シーンのみを行うメッシュ・ボーンが更に有ると変身アニメーションを作成し易くなり、エモートを強制中断しても表示に問題が出ない。が、ポリゴン数が変形前後と変形中で、オリジナルのメッシュの3倍になる事に注意。筆者の場合、ポリゴン数が限界なのだ。
変身過程のエモートアニメーションの作成は各々作成する事が望ましいが、困難を伴う作業である事も確かである。
BOOTH配布・販売のエモートからそれらしい物を流用するのも手だ。
◆ヴァリアライザーで変身◆
そこで、更にこの【怪人変身ライター】DXヴァリアライザーを用いる方法も軽くご紹介しよう。
※販売ページ https://booth.pm/ja/items/1606546
本アイテムは本来、アニメーションオーバーライドを用いる事を想定したアイテムであるが、簡単な作業でEmoteSwitch方式にも対応が可能だ。
まず、本来の使用方法と同様に、ヴァリアライザーのUnity packageをProjectにインポートした後、パーティクル・サウンド再生用のプレハブ「VAREALIZING UNIT」をアバターの最上階層(前述のボーンやEmoteSwitchと同じである)に置く。またプレハブ「ヴァリアライザー」をアバターの「右の」「Handボーンの」子にする。
なお、先述と異なりここではボーンの名称が「Armature」に変更されているが、これは次で説明するアニメーション「ヴァリアライザー着火」のAnimationClipが参照パスがその名称で指定されている為である。
もしAnimationClipが黄色文字でMissingと表示されている場合には、「Armature」から「Hand.R」までのボーン名称が上記の画像と異なっているので、リネームしよう。
ヴァリアライザーの配置が済んだら、ヴァリアライザーの非表示を忘れずに行おう。
次に下記画像のアニメーション「ヴァリアライザー着火」内のキーフレームを前述の様なemote用のアニメーションへただコピペすればよい。
こちらのアニメーションには上から3行までの「ヴァリアライザー及び手元パーティクルの表示」と、下から2行までの「パーティクル・サウンド再生」が含まれる。こちらの改変も推奨する。
このパーティクルに身を隠し、その間に変身アニメーションを済ませてしまおう。
(どうせ見えないからアニメーション作成も簡単だしね)
それでは、諸君の新たな姿を楽しみにしているよ。
※結社では戦力増強のため、日々アバターギミックを探求している構成員も居ます。本シリーズにて紹介して欲しいギミックがありましたら、結社公式Twitter(@VRHeel)への自薦をお待ちしています。実装方法は必須ではありませんが、あると助かります。